<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Da Blog of Doctuh Fouriah</title>
	<atom:link href="http://doctuh4iah.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://doctuh4iah.wordpress.com</link>
	<description>Da Wickedest Place 2 Brainstorm</description>
	<lastBuildDate>Tue, 28 Aug 2007 17:09:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='doctuh4iah.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Da Blog of Doctuh Fouriah</title>
		<link>http://doctuh4iah.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://doctuh4iah.wordpress.com/osd.xml" title="Da Blog of Doctuh Fouriah" />
	<atom:link rel='hub' href='http://doctuh4iah.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Unified Fourier Reconstruction (gridding)</title>
		<link>http://doctuh4iah.wordpress.com/2007/08/28/unified-fourier-reconstruction-gridding/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/08/28/unified-fourier-reconstruction-gridding/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 17:04:35 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Scientific Stuff]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/08/28/unified-fourier-reconstruction-gridding/</guid>
		<description><![CDATA[This is some earlier work of mine. I was working on an algorithm to impelment Band-limited interpolation from unevenly spaced sampled data after Mehrdad Soumekh. It is also known as &#8220;gridding&#8221; in SAR and CAT communities (see The gridding method for image reconstruction by Fourier transformation Schomberg, H. and Timmer, J., for example). The best [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=16&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>This is some earlier work of mine. I was working on an algorithm to impelment                      <strong>Band-limited interpolation from unevenly spaced sampled data</strong> after Mehrdad Soumekh. It is also known as &#8220;gridding&#8221; in SAR and CAT communities (see                      <strong>The gridding method for image reconstruction by Fourier transformation</strong> Schomberg, H. and Timmer, J., for example).</em></p>
<p><em>The best way to delve into the secrets of UFR is probably to have a look at some code. <a href="http://doctuh4iah.files.wordpress.com/2007/08/imag.pdf" title="this file">This file</a> accompanied the book &#8220;Fourier Array Imaging&#8221; by M. Soumekh. The book is out of print, but you might find it in a good technical university library.</em></p>
<p><em>Unfortunately, one cannot place m-files here. So I&#8217;ll just drop the code in the text. The convention will be that text in <strong>bold italics</strong> will mark separate Matlab scripts or functions. </em>Normal text<em> is the Matlab code itself. They should all run without a hitch &#8211; you&#8217;ll just need to fix some wrapped lines, I suspect. Also, the indentations disappeared, but I don&#8217;t have time to fix that now. If there are some other problems, please let me know.</em><span id="more-16"></span></p>
<p><strong><em>The starting code from the file above is here. You can copy and paste it into Matlab editor as ufr.m, for instance.</em></strong></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%               INTERPOLATION VIA UFR              %<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%<br />
% This matlab program performs interpolation from nonuniform data stored<br />
% in array g(alpha,beta). In its present form, the target function is a<br />
% rectangular pulse. The transformation is POLAR.<br />
%<br />
%          (x0,y0): target&#8217;s support<br />
%          (nx,ny): target&#8217;s image size<br />
%          mm: the number of samples within the Hamming window that cuts<br />
%              off the interpolating kernel<br />
%          (kx1,ky1): size of the Hamming window<br />
%          ma: the number of samples in the alpha domain<br />
%          mb:  &#8221;    &#8221;     &#8221;    &#8221;     &#8221;  &#8221;   beta   &#8220;<br />
%          (da,db): sample spacing in the (alpha,beta) domain<br />
%          a: alpha array<br />
%          b: beta array<br />
%          g: 2D array of avialble data in the (alpha,beta) domain<br />
%          kx: transformation in the kx domain; tkx: scalar form<br />
%          ky: transformation in the ky domain; tky: scalar form<br />
%          jac: Jacobian of the transformation<br />
%          ff: F.T. of the target function<br />
%          f: target function<br />
%<br />
% (ax,by): SIZE OF RECTANGULAR PULSE; REMOVE THIS LINE IN FUTURE USAGE<br />
ax=1; by=.5;<br />
%<br />
% REPLACE THE FOLLOWING LINE WITH YOUR OWN PARAMETERS<br />
nx=320; ny=160; x0=3; y0=1.5; ma=32; mb=50; da=pi/3; db=pi/(mb-1);<br />
%<br />
ff=0; f=0; kx=0; ky=0; a=0; b=0; g=0; mm=3;<br />
nnx=nx/2+1; nny=ny/2+1; dx=(2*x0)/nx; dy=(2*y0)/ny; dkx=pi/x0; dky=pi/y0;<br />
kx0=pi/dx; ky0=pi/dy; kx1=dkx*(mm+1); ky1=dky*(mm+1);<br />
%<br />
for i=1:nx; for j=1:ny; ff(i,j)=0; end; end;<br />
for i=1:ma; a(i)=da*(i-1-ma/2); end;<br />
for i=1:mb; b(i)=db*(i-1-mb/2); end;<br />
%<br />
for i=1:ma; for j=1:mb;<br />
%<br />
% MODIFY THE FOLLOWING LINE FOR OTHER TRANSFORMATIONS<br />
tkx=a(i)*cos(b(j)); tky=a(i)*sin(b(j)); jac=abs(a(i)); % *** POLAR TRANS.<br />
%<br />
ij=(i-1)*mb+j; kx(ij)=tkx; ky(ij)=tky;<br />
%<br />
% REMOVE THE FOLLOWING 3 LINES; g(i,j) SHOLD BE INPUT FROM ANOTHER PROGRAM<br />
if tkx == 0, sincx=1; else sincx=sin(tkx*ax)/(tkx*ax); end;<br />
if tky == 0, sincy=1; else sincy=sin(tky*by)/(tky*by); end;<br />
g(i,j)=sincx*sincy; % ***** INPUT<br />
%<br />
cp=g(i,j)*jac*da*db*(.97*2*x0)*(.97*2*y0);<br />
%<br />
% INTERPOLATION VIA UFR<br />
%<br />
fii=(tkx/dkx)+nnx;<br />
fjj=(tky/dky)+nny;<br />
inf=round(fii);<br />
jnf=round(fjj);<br />
for iii=-mm:mm;<br />
iif=inf+iii;<br />
if(iif &gt;= 1 &amp; iif &lt;= nx),<br />
cx=dkx*(iif-nnx);<br />
d1=abs(cx-tkx);<br />
if d1 &lt;= kx1,<br />
for jjj=-mm:mm;<br />
jjf=jnf+jjj;<br />
if(jjf &gt;= 1 &amp; jjf &lt;= ny),<br />
cy=dky*(jjf-nny);<br />
d2=abs(cy-tky);<br />
if d2 &lt;= ky1,<br />
w1=.54+.46*cos((pi*d1)/kx1);<br />
w2=.54+.46*cos((pi*d2)/ky1);<br />
if d1 == 0, sincx=1; else, sincx=sin(.97*x0*d1)/(.97*x0*d1); end;<br />
if d2 == 0, sincy=1; else, sincy=sin(.97*y0*d2)/(.97*y0*d2); end;<br />
ct=w1*w2*sincx*sincy*cp;<br />
ff(iif,jjf)=ff(iif,jjf)+ct;<br />
end;<br />
end;<br />
end;<br />
end;<br />
end;<br />
end;<br />
end; end;<br />
%<br />
% INVERSE TRANSFORM TO OBTAIN THE IMAGE<br />
%<br />
f = fftshift(ifft2(fftshift(ff)));<br />
%<br />
% FOLLOWING SHOWS YOU THE CONTOUR OF AVAILABLE DATA IN (Kx,Ky) DOMAIN<br />
%<br />
plot(kx,ky,&#8217;.');<br />
figure(2)<br />
mesh(abs(ff))<br />
figure(3)<br />
mesh(abs(f))</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><strong><em>My first attempt was to try reducing the number of loops this code had. Here&#8217;s the result:</em></strong></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function my_ufr_interp<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%               INTERPOLATION VIA UFR              %<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%<br />
% This matlab program performs interpolation from nonuniform data stored<br />
% in array g(alpha,beta). In its present form, the target function is a<br />
% rectangular pulse. The transformation is POLAR.<br />
%<br />
%          (x0,y0): target&#8217;s support<br />
%          (nx,ny): target&#8217;s image size<br />
%          mm: the number of samples within the Hamming window that cuts<br />
%              off the interpolating kernel<br />
%          (kx1,ky1): size of the Hamming window<br />
%          ma: the number of samples in the alpha domain<br />
%          mb:  &#8221;    &#8221;     &#8221;    &#8221;     &#8221;  &#8221;   beta   &#8220;<br />
%          (da,db): sample spacing in the (alpha,beta) domain<br />
%          a: alpha array<br />
%          b: beta array<br />
%          g: 2D array of avialble data in the (alpha,beta) domain<br />
%          kx: transformation in the kx domain; tkx: scalar form<br />
%          ky: transformation in the ky domain; tky: scalar form<br />
%          jac: Jacobian of the transformation<br />
%          ff: F.T. of the target function<br />
%          f: target function<br />
%<br />
% (ax,by): SIZE OF RECTANGULAR PULSE; REMOVE THIS LINE IN FUTURE USAGE<br />
ax=1; by=.5;<br />
%<br />
% REPLACE THE FOLLOWING LINE WITH YOUR OWN PARAMETERS<br />
nx=320; ny=160; x0=3; y0=1.5; ma=32; mb=50; da=pi/3; db=pi/(mb-1);<br />
%<br />
ff=0; f=0; kx=0; ky=0; a=0; b=0; g=0; mm=3;<br />
nnx=nx/2+1; nny=ny/2+1; dx=(2*x0)/nx; dy=(2*y0)/ny; dkx=pi/x0; dky=pi/y0;<br />
kx0=pi/dx; ky0=pi/dy; kx1=dkx*(mm+1); ky1=dky*(mm+1);<br />
%<br />
ff=zeros(nx,ny);<br />
a=da*(-ma/2:ma/2-1);<br />
b=db*(-mb/2:mb/2-1);</p>
<p>[th,r]=meshgrid(b,a);<br />
[tkx,tky]=pol2cart(th,r);</p>
<p>figure(1)<br />
plot(tkx,tky,&#8217;.');</p>
<p>%tkx=round(tkx/dkx)*dkx;<br />
%tky=round(tky/dky)*dky;</p>
<p>g=sparse(sinc(tkx*ax/pi).*sinc(tky*by/pi).*(abs(tkx)&lt;=kx0).*(abs(tky)&lt;=ky0));<br />
jac=abs(r);<br />
cp=g.*jac*da*db*(2*x0)*(2*y0);</p>
<p>kx=dkx*(-nx/2:nx/2-1);<br />
ky=dky*(-ny/2:ny/2-1);</p>
<p>% for m=1:nx,<br />
%     d1=kx(m)-tkx;<br />
%     w1=abs(d1)&lt;=dkx;<br />
% %    w1=abs(d1)&lt;=kx1+dkx;<br />
%     for n=1:ny,<br />
%         d2=ky(n)-tky;<br />
%         w2=abs(d2)&lt;=dky;<br />
%  %       w2=abs(d2)&lt;=ky1+dky;<br />
%         I=sparse(sinc(x0*sparse(d1.*w1)/pi).*sinc(y0*sparse(d2.*w2)/pi).*w1.*w2);<br />
%         F(m,n)=full(sum(sum(cp.*I)));<br />
%     end<br />
% end</p>
<p>for m=1:nx,<br />
d1=kx(m)-tkx;<br />
w1=abs(d1)&lt;=dkx;<br />
%    w1=abs(d1)&lt;=kx1+dkx;<br />
for n=1:ny,<br />
d2=ky(n)-tky;<br />
w2=abs(d2)&lt;=dky;<br />
%       w2=abs(d2)&lt;=ky1+dky;<br />
I=sparse(sinc(sparse(x0*d1.*w1+y0*d2.*w2)/pi).*w1.*w2);<br />
F(m,n)=full(sum(sum(cp.*I)));<br />
end<br />
end</p>
<p>% figure(2)<br />
% imagesc(w1)<br />
%<br />
% figure(3)<br />
% imagesc(w2)</p>
<p>figure(4)<br />
mesh(F)</p>
<p>figure(5)<br />
mesh(real(fftshift(ifft2(fftshift(F)))))</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><strong><em>I wasn&#8217;t too happy with this &#8211; it was too slow. What I needed was an idea. In order to find it, I took the original code and reduced it to a one-dimensional version:</em></strong></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%               INTERPOLATION VIA UFR              %<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%<br />
% This matlab program performs interpolation from nonuniform data stored<br />
% in array g(alpha,beta). In its present form, the target function is a<br />
% rectangular pulse. The transformation is POLAR.<br />
%<br />
%          (x0,y0): target&#8217;s support<br />
%          (nx,ny): target&#8217;s image size<br />
%          mm: the number of samples within the Hamming window that cuts<br />
%              off the interpolating kernel<br />
%          (kx1,ky1): size of the Hamming window<br />
%          ma: the number of samples in the alpha domain<br />
%          mb:  &#8221;    &#8221;     &#8221;    &#8221;     &#8221;  &#8221;   beta   &#8220;<br />
%          (da,db): sample spacing in the (alpha,beta) domain<br />
%          a: alpha array<br />
%          b: beta array<br />
%          g: 2D array of avialble data in the (alpha,beta) domain<br />
%          kx: transformation in the kx domain; tkx: scalar form<br />
%          ky: transformation in the ky domain; tky: scalar form<br />
%          jac: Jacobian of the transformation<br />
%          ff: F.T. of the target function<br />
%          f: target function<br />
%<br />
clear all<br />
% (ax,by): SIZE OF RECTANGULAR PULSE; REMOVE THIS LINE IN FUTURE USAGE<br />
ax=1;<br />
%<br />
% REPLACE THE FOLLOWING LINE WITH YOUR OWN PARAMETERS<br />
nx=32; x0=3; ma=32; da=pi/3;<br />
%<br />
ff=0; f=0; kx=0; a=0; g=0; mm=3;<br />
nnx=nx/2+1; dx=(2*x0)/nx; dkx=pi/x0;<br />
kx0=pi/dx; kx1=dkx*(mm+1);<br />
%<br />
for i=1:nx; ff(i)=0; end;<br />
for i=1:ma; a(i)=da*(i-1-ma/2); end;<br />
%<br />
for i=1:ma;<br />
%<br />
% MODIFY THE FOLLOWING LINE FOR OTHER TRANSFORMATIONS<br />
tkx=a(i)^3/8; jac=abs(3*a(i)^2/8); % *** CUBIC TRANS.<br />
%<br />
kx(i)=tkx;<br />
%<br />
% REMOVE THE FOLLOWING 3 LINES; g(i,j) SHOLD BE INPUT FROM ANOTHER PROGRAM<br />
if tkx == 0, sincx=1; else sincx=sin(tkx*ax)/(tkx*ax); end;<br />
g(i)=sincx; % ***** INPUT<br />
%<br />
cp=g(i)*jac*da*(.97*2*x0);<br />
%<br />
% INTERPOLATION VIA UFR<br />
%<br />
fii=(tkx/dkx)+nnx;<br />
inf=round(fii);<br />
fiif(i)=inf;<br />
for iii=-mm:mm;<br />
iif=inf+iii;<br />
if(iif &gt;= 1 &amp; iif &lt;= nx),<br />
cx=dkx*(iif-nnx);<br />
d1=abs(cx-tkx);<br />
if d1 &lt;= kx1,<br />
if d1 == 0, sincx=1; else, sincx=sin(.97*x0*d1)/(.97*x0*d1); end;<br />
dd1(i)=d1;<br />
ct=sincx*cp;<br />
ff(iif)=ff(iif)+ct;<br />
end;<br />
end;<br />
end;<br />
end;<br />
%<br />
% INVERSE TRANSFORM TO OBTAIN THE IMAGE<br />
%<br />
f = fftshift(ifft2(fftshift(ff)));<br />
%<br />
% FOLLOWING SHOWS YOU THE CONTOUR OF AVAILABLE DATA IN (Kx,Ky) DOMAIN<br />
%<br />
figure(1)<br />
stem(kx(1:22),dd1);<br />
figure(2)<br />
plot(kx,fiif,&#8217;.')<br />
figure(3)<br />
plot(kx,kx,&#8217;.')<br />
kx(end)-kx(1)<br />
size(dd1)</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><strong><em>For whatever reason I transformed the code above into this:</em></strong></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%               INTERPOLATION VIA UFR              %<br />
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br />
%<br />
% This matlab program performs interpolation from nonuniform data stored<br />
% in array g(alpha,beta). In its present form, the target function is a<br />
% rectangular pulse. The transformation is POLAR.<br />
%<br />
%          (x0,y0): target&#8217;s support<br />
%          (nx,ny): target&#8217;s image size<br />
%          mm: the number of samples within the Hamming window that cuts<br />
%              off the interpolating kernel<br />
%          (kx1,ky1): size of the Hamming window<br />
%          ma: the number of samples in the alpha domain<br />
%          mb:  &#8221;    &#8221;     &#8221;    &#8221;     &#8221;  &#8221;   beta   &#8220;<br />
%          (da,db): sample spacing in the (alpha,beta) domain<br />
%          a: alpha array<br />
%          b: beta array<br />
%          g: 2D array of avialble data in the (alpha,beta) domain<br />
%          kx: transformation in the kx domain; tkx: scalar form<br />
%          ky: transformation in the ky domain; tky: scalar form<br />
%          jac: Jacobian of the transformation<br />
%          ff: F.T. of the target function<br />
%          f: target function<br />
%<br />
clear all<br />
% (ax,by): SIZE OF RECTANGULAR PULSE; REMOVE THIS LINE IN FUTURE USAGE<br />
ax=1;<br />
%<br />
% REPLACE THE FOLLOWING LINE WITH YOUR OWN PARAMETERS<br />
nx=32; x0=3; ma=32; da=pi/3;<br />
%<br />
ff=0; f=0; kx=0; a=0; g=0; mm=3;<br />
nnx=nx/2+1; dx=(2*x0)/nx; dkx=pi/x0;<br />
kx0=pi/dx; kx1=dkx*(mm+1);<br />
%<br />
for i=1:nx; ff(i)=0; end;<br />
for i=1:ma; a(i)=da*(i-1-ma/2); end;<br />
%<br />
for i=1:ma;<br />
%<br />
% MODIFY THE FOLLOWING LINE FOR OTHER TRANSFORMATIONS<br />
tkx=a(i)^3/8; jac=abs(3*a(i)^2/8); % *** CUBIC TRANS.<br />
%<br />
kx(i)=tkx;<br />
%<br />
% REMOVE THE FOLLOWING 3 LINES; g(i,j) SHOLD BE INPUT FROM ANOTHER PROGRAM<br />
if tkx == 0, sincx=1; else sincx=sin(tkx*ax)/(tkx*ax); end;<br />
g(i)=sincx; % ***** INPUT<br />
%<br />
cp=g(i)*jac*da*(.97*2*x0);<br />
%<br />
% INTERPOLATION VIA UFR<br />
%<br />
fii=(tkx/dkx)+nnx;<br />
inf=round(fii);<br />
%   fiif(i)=inf;<br />
for iii=-mm:mm;<br />
iif=inf+iii;<br />
if(iif &gt;= 1 &amp; iif &lt;= nx),<br />
cx=dkx*(iif-nnx);<br />
d1=abs(cx-tkx);<br />
if d1 &lt;= kx1,<br />
w=.54+.46*cos((pi*d1)/kx1);<br />
if d1 == 0, sincx=1; else, sincx=sin(.97*x0*d1)/(.97*x0*d1); end;<br />
dd1(i,iif)=d1;<br />
gg(i,iif)=g(i);<br />
ct=w*sincx*cp;<br />
gg1(i,iif)=ct;<br />
ff(iif)=ff(iif)+ct;<br />
end;<br />
end;<br />
end;<br />
end;<br />
%<br />
% INVERSE TRANSFORM TO OBTAIN THE IMAGE<br />
%<br />
f = fftshift(ifft2(fftshift(ff)));<br />
%<br />
% FOLLOWING SHOWS YOU THE CONTOUR OF AVAILABLE DATA IN (Kx,Ky) DOMAIN<br />
%<br />
figure(1)<br />
plot(kx,g);<br />
%pcolor(dd1)<br />
figure(2)<br />
plot(dx*(-nx/2:nx/2-1),f)<br />
%pcolor(gg)<br />
figure(3)<br />
plot(dkx*(-nx/2:nx/2-1),ff)<br />
%pcolor(gg1)</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><strong><em>After some mental process, of which I have no recollection anymore, I figured out how to express this code without any loops in it and I applied the results to examples given in the original paper by Soumekh:</em></strong></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function art_ufr</p>
<p>%K=10;<br />
%X0=10;</p>
<p>%alpha=linspace(-2,2,2*K+1);<br />
%mu=linspace(S(-2),S(2),2*K+1);</p>
<p>X0=3;ax=1;<br />
p=1; %auxiliary constant to regulate sampling<br />
nx=32*p; ma=32*p; da=pi/3/p;<br />
%<br />
ff=0; f=0; kx=0; a=0; g=0; mm=3;<br />
nnx=nx/2+1; dx=(2*X0)/nx; dkx=pi/X0;<br />
kx0=pi/dx; kx1=dkx*(mm+1);</p>
<p>alpha=da*(-ma/2:ma/2-1);<br />
mu=dkx*(-nx/2:nx/2-1);</p>
<p>F=2*ax*sinc(mu*ax/pi);<br />
F=F/max(F); %normalize<br />
G=2*ax*sinc(S(alpha)*ax/pi);</p>
<p>figure(1)<br />
subplot(2,1,1)<br />
stem(alpha,G)<br />
xlabel(&#8216;alpha&#8217;)<br />
ylabel(&#8216;G(alpha)&#8217;)<br />
title(&#8216;Sampled frequency spectrum of a rectangular pulse in alpha and mu domains.&#8217;)<br />
subplot(2,1,2)<br />
stem(S(alpha),G)<br />
xlabel(&#8216;mu&#8217;)<br />
ylabel(&#8216;G(S(alpha))=G(mu)&#8217;)</p>
<p>%Shannon&#8217;s reconstruction;<br />
dalpha=da;<br />
[mur alphar]=meshgrid(mu,alpha);<br />
d=(T(mur)-alphar); %argument of the interp. kernel<br />
w=abs(d)&lt;T(kx1); %windowing mask<br />
Fs=G*sparse(sinc(sparse(d.*w)/dalpha).*w);<br />
Fs=Fs/max(Fs); %normalize</p>
<p>figure(2)<br />
plot(mu,real(Fs))<br />
title(&#8216;Shannon&#8221;&#8221;s reconstruction for a given span of mu&#8217;)<br />
xlabel(&#8216;mu&#8217;)<br />
ylabel(&#8216;F_s(mu)&#8217;)</p>
<p>%Modified Shannon&#8217;s reconstruction;<br />
dalpha=da;<br />
mur=meshgrid(mu);<br />
Fms=Tp(mu+1e-12).*((G.*Sp(alpha))*sinc((T(mur)-alphar)/dalpha));<br />
%infty=find(isinf(Fms)); %test for infinite results<br />
%Fms(infty)=2*X0; %correct results<br />
Fms=Fms/max(Fms); %normalize</p>
<p>figure(3)<br />
plot(mu,real(Fms))<br />
title(&#8216;Modified Shannon&#8221;&#8221;s reconstruction for a given span of mu&#8217;)<br />
xlabel(&#8216;mu&#8217;)<br />
ylabel(&#8216;F_{ms}(mu)&#8217;)</p>
<p>%Soumekh&#8217;s reconstruction<br />
%dalpha=2*pi/K;<br />
dalpha=da*pi;<br />
[mur alphar]=meshgrid(mu,alpha);<br />
d=mur-S(alphar); %argument of the interp. kernel<br />
w=abs(d)&lt;kx1; %windowing mask<br />
Fsou=dalpha*(G.*Sp(alpha))*sparse(sinc(X0*sparse(d.*w)/pi).*w);<br />
Fsou=Fsou/max(Fsou); %normalize</p>
<p>R=G./Tp(S(alpha));</p>
<p>figure(4)<br />
plot(mu,real(Fsou))<br />
title(&#8216;Unified Fourier reconstruction for a given span of mu&#8217;)<br />
xlabel(&#8216;mu&#8217;)<br />
ylabel(&#8216;F_{ufr}(mu)&#8217;)</p>
<p>figure(5)<br />
plot(mur(1,:),F,&#8217;+',mur(1,:),Fs,&#8217;:',mur(1,:),Fms,mur(1,:),Fsou,&#8217;-.&#8217;)<br />
title(&#8216;Comparison between interpolations and precise values&#8217;)<br />
xlabel(&#8216;mu&#8217;)<br />
ylabel(&#8216;F(mu)&#8217;)<br />
legend(&#8216;precise&#8217;,'Shannon&#8217;,'Modified Shannon&#8217;,'UFR&#8217;)<br />
% plot(real(fftshift(fft(fftshift(R)))))<br />
% plot(S(alpha),R)</p>
<p>function out=S(alpha)<br />
%coordinate transformation<br />
out=alpha.^3/8;</p>
<p>function out=T(mu)<br />
%coordinate transformation<br />
out=sign(mu).*abs(2*mu.^(1/3));</p>
<p>function out=Sp(alpha)<br />
%analytically calculated Jacobian<br />
out=abs(3/8*alpha.^2);</p>
<p>function out=Tp(mu)<br />
%analytically calculated Jacobian<br />
out=abs(2/3*mu.^(-2/3));</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><em><strong>Somewhere around here, I had the idea to factor this algorithm using the k-nearest neighbor search. The results yielded an algorithm below and a paper with a nice trip to a conference. <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </strong></em></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function art_ufr<br />
X0=3;ax=1;<br />
p=5; %auxiliary constant to regulate sampling<br />
nx=32*p; ma=32*p; da=pi/3/p;<br />
%<br />
ff=0; f=0; kx=0; a=0; g=0; mm=30;<br />
nnx=nx/2+1; dx=(2*X0)/nx; dkx=pi/X0;<br />
kx0=pi/dx; kx1=dkx*(mm+1);<br />
%kx1=dkx*.1;</p>
<p>alpha=da*(-ma/2:ma/2-1);<br />
mu=dkx*(-nx/2:nx/2-1);</p>
<p>F=2*ax*sinc(mu*ax/pi);<br />
F=F/max(F); %normalize<br />
G=2*ax*sinc(S(alpha)*ax/pi);</p>
<p>dalpha=da*pi;<br />
const=kx1*100;</p>
<p>% %Soumekh with nearest neighbors engine<br />
ind=interp1(T(mu),(1:length(mu)),alpha,&#8217;nearest&#8217;,'extrap&#8217;);<br />
I=find(abs(mu(ind)-S(alpha))&lt;const);<br />
J=interp1(T(mu),(1:length(mu)),alpha(I),&#8217;nearest&#8217;,'extrap&#8217;);<br />
sum=zeros(ma,nx);<br />
ind2=sub2ind(size(sum),I,J);<br />
sum(ind2)=sinc(X0*(mu(J)-S(alpha(I)))/pi);<br />
Fsou_near=dalpha*(G.*Sp(alpha))*sparse(sum)<br />
Fsou_near=Fsou_near/max(Fsou_near); %normalize</p>
<p>%Nearest neighbor interpolation<br />
Fnear=interp1(alpha,G,mu,&#8217;nearest&#8217;,'extrap&#8217;);<br />
Fnear=Fnear/max(Fnear); %normalize</p>
<p>% %Matrix-free version<br />
ind=interp1(T(mu),(1:length(mu)),alpha,&#8217;nearest&#8217;,'extrap&#8217;);<br />
I=find(abs(mu(ind)-S(alpha))&lt;const); %here can be simply: I=1:ma;<br />
J=interp1(T(mu),(1:length(mu)),alpha(I),&#8217;nearest&#8217;,'extrap&#8217;);<br />
summ=sinc(X0*(mu(J)-S(alpha(I)))/pi);<br />
Fsou_free(J)=dalpha*(G(I).*Sp(alpha(I))).*summ;<br />
Fsou_free=Fsou_free/max(Fsou_free); %normalize</p>
<p>figure(1)<br />
imagesc(sum)<br />
figure(2)<br />
%plot(mu,F,mu,Fsou_near,mu,Fnear,mu,Fsou_free)<br />
plot(Fsou_free)<br />
figure(3)<br />
plot(abs(fftshift(fft(fftshift(Fsou_free)))))</p>
<p>function out=S(alpha)<br />
%coordinate transformation<br />
out=alpha.^3/8;</p>
<p>function out=T(mu)<br />
%coordinate transformation<br />
out=sign(mu).*abs(2*mu.^(1/3));</p>
<p>function out=Sp(alpha)<br />
%analytically calculated Jacobian<br />
out=abs(3/8*alpha.^2);</p>
<p>function out=Tp(mu)<br />
%analytically calculated Jacobian<br />
out=abs(2/3*mu.^(-2/3));</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><em><strong>The fact that the algorithm can be factored into several steps based on the k-nearest neighbor search doesn&#8217;t mean much &#8211; it&#8217;s just another way to write this code. Using the full database of k-nearest neighbors, we would get exactly the same result as before. I tried to argue, however, that it will be enough to use </strong>only the nearest neighbors<strong> to get a sufficient precision. Here is some numerical analysis.</strong></em></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function casino</p>
<p>%K=10;<br />
%X0=10;</p>
<p>%alpha=linspace(-2,2,2*K+1);<br />
%mu=linspace(S(-2),S(2),2*K+1);</p>
<p>X0=3;ax=1;<br />
p=5; %auxiliary constant to regulate sampling<br />
nx=32*p; ma=32*p; da=pi/3/p;<br />
%<br />
ff=0; f=0; kx=0; a=0; g=0; mm=30;<br />
nnx=nx/2+1; dx=(2*X0)/nx; dkx=pi/X0;<br />
kx0=pi/dx; kx1=dkx*(mm+1);<br />
%kx1=dkx*.1;</p>
<p>alpha=da*(-ma/2:ma/2-1);<br />
mu=dkx*(-nx/2:nx/2-1);</p>
<p>F=2*ax*sinc(mu*ax/pi);<br />
F=F/max(F); %normalize<br />
G=2*ax*sinc(S(alpha)*ax/pi);</p>
<p>for dn=1:10,<br />
%Soumekh&#8217;s reconstruction<br />
%dalpha=2*pi/K;<br />
dalpha=da*pi;<br />
[mur alphar]=meshgrid(mu,alpha);<br />
d=mur-S(alphar); %argument of the interp. kernel<br />
w=abs(d)&lt;kx1/40*dn; %windowing mask<br />
Fsou=dalpha*(G.*Sp(alpha))*(sinc(X0*(d.*w)/pi).*w);<br />
summm=(sinc(X0*(d.*w)/pi).*w);<br />
Fsou=Fsou/max(Fsou); %normalize</p>
<p>error(dn)=sum((Fsou-F).^2);<br />
operations(dn)=sum(sum(w));<br />
end</p>
<p>dalpha=da*pi;<br />
[mur alphar]=meshgrid(mu,alpha);<br />
d=mur-S(alphar); %argument of the interp. kernel<br />
w=abs(d)&lt;kx1*1000; %windowing mask<br />
Fsou=dalpha*(G.*Sp(alpha))*(sinc(X0*(d.*w)/pi).*w);<br />
summm=(sinc(X0*(d.*w)/pi).*w);<br />
Fsou=Fsou/max(Fsou); %normalize</p>
<p>e=sum((Fsou-F).^2)<br />
op=sum(sum(w))</p>
<p>% R=G./Tp(S(alpha));</p>
<p>%Soumekh&#8217;s reconstruction w/ nearest neighbor search<br />
mu=mu.&#8217;;<br />
alpha=alpha.&#8217;;<br />
m=length(mu);<br />
n=length(alpha);<br />
i=(1:m).&#8217;; %create index vector for x<br />
I=i(:,ones(1,n)); %create index matrix<br />
j=1:n; %create index vector for y<br />
J=j(ones(1,m),:); %create index matrix<br />
D=zeros(m,n);<br />
D(:)=sqrt(sum(abs(mu(I(:),:)-S(alpha(J(:),:))).^2,2)); %calculate euclidean distance matrix</p>
<p>[s,I]=sort(D);<br />
i=(1:m);</p>
<p>for kn=1:10,<br />
W=zeros(m,n);<br />
for k=1:kn, %k-nearest neighbors<br />
j=I(k,:);<br />
ind=sub2ind([m n],i,j);<br />
W(ind)=1;<br />
end</p>
<p>Fnn=dalpha*(G.*Sp(alpha.&#8217;))*(sinc(X0*(D.&#8217;.*W)/pi).*W);<br />
summ=(sinc(X0*(D.&#8217;.*W)/pi).*W);<br />
Fnn=Fnn/max(Fnn); %normalize</p>
<p>error_nn(kn)=sum((Fnn-F).^2);<br />
operations_nn(kn)=sum(sum(W));<br />
end</p>
<p>figure(1)<br />
pcolor(abs(w))</p>
<p>figure(2)<br />
pcolor(abs(W))</p>
<p>figure(3)<br />
plot(mu,Fsou,mu,Fnn,mu,F)</p>
<p>figure(1)<br />
plot(operations_nn,error_nn,&#8217;*')<br />
title(&#8216;Accuracy vs speed for 1 to 10 nearest neighbors&#8217;)<br />
xlabel(&#8216;number of calculations&#8217;)<br />
ylabel(&#8216;error&#8217;)</p>
<p>function out=S(alpha)<br />
%coordinate transformation<br />
out=alpha.^3/8;</p>
<p>function out=T(mu)<br />
%coordinate transformation<br />
out=sign(mu).*abs(2*mu.^(1/3));</p>
<p>function out=Sp(alpha)<br />
%analytically calculated Jacobian<br />
out=abs(3/8*alpha.^2);</p>
<p>function out=Tp(mu)<br />
%analytically calculated Jacobian<br />
out=abs(2/3*mu.^(-2/3));</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><em><strong>And that&#8217;s it! An open question now is how to do this in two, three, n-dimensions. That&#8217;s where the power of nearest neighbor search algorithms really pays of. There are two more pieces of code which might be of some help. I wrote them to test some examples in the book &#8220;Fourier Array Imaging&#8221;.</strong></em></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function jacob<br />
%Soumekh, Fourier Array Imaging, pages 24 to 25</p>
<p>N=500;<br />
X0=2*pi;<br />
x=linspace(-X0,X0,N+1);<br />
y=sin(x.^2);<br />
xt=g(x);</p>
<p>gx=linspace(g(-X0),g(X0),N+1);</p>
<p>yt=interp1(xt,y,gx);<br />
s=y.*J(x); %this line uses function J</p>
<p>%J=diff(xt)*N/(abs(x2)-abs(x(N)); %Jacobian calculated numerically<br />
%J=[J 0];<br />
%s=y.*J;</p>
<p>trapz(x,s)<br />
trapz(gx,yt)</p>
<p>figure(1)<br />
plot(x,x,x,xt,x,interp1(xt,x,xt))<br />
figure(2)<br />
plot(x,y,gx,yt)</p>
<p>dx=2*X0/N;<br />
dxt=2*g(X0)/N;</p>
<p>dkx=2*pi/N/dx;<br />
dkxt=2*pi/N/dxt;</p>
<p>kx=linspace(-N*dkx/2,N*dkx/2,N+1);<br />
kxt=linspace(-N*dkxt/2,N*dkxt/2,N+1);</p>
<p>%kx=linspace(-4*pi,4*pi,N+1); %original freq. span for num. integration<br />
Fn=trapz(x,meshgrid(s).*exp(-j*kxt&#8217;*g(x)),2);<br />
Fnt=trapz(gx,meshgrid(yt).*exp(-j*kxt&#8217;*gx),2);</p>
<p>figure(3)%ideally, the spectra will be real only (see analytical expressions)<br />
plot(kxt,real(Fn),kxt,real(Fnt),kxt,real(fftshift(fft(fftshift(yt))))*dxt)</p>
<p>%Shannon&#8217;s reconstruction; anti-aliasing filter<br />
%gx=gx(1:end-1);<br />
yt=yt(1:end-1);<br />
kx=kx(1:end-1);<br />
kxt=kxt(1:end-1);</p>
<p>n=-N/2:N/2;<br />
n=n(1:end-1);<br />
%n=1:N+1;<br />
kxtt=g(kx);<br />
kxttt=interp1(kxtt,kx,kx);<br />
[kxttt n]=meshgrid(kxttt,n);<br />
Fns=fftshift(fft(yt))*sinc((kxttt-n*dkxt)/dkxt);</p>
<p>%Soumekh&#8217;s reconstruction; anti-aliasing filter<br />
%Fnss=dkxt*fftshift(fft(yt))*(sinc((kx-interp1(g((-N/2:N/2)*dkxt),(-N/2:N/2)*dkxt,n*dkxt))/pi));%./J(kx));<br />
%Fnss=dkxt*fftshift(fft(yt))*(sinc((kx-g(n*dkxt))/pi)./J(n*dkxt));</p>
<p>figure(4)<br />
%match vector lengths<br />
x=x(1:end-1);<br />
y=y(1:end-1);<br />
plot(x,real(ifft(fftshift(Fns))),x,y)</p>
<p>function out=g(x)<br />
%coordinate transformation<br />
a=0.01;<br />
out=x+a*x.^3;</p>
<p>function out=J(x)<br />
%analytically calculated Jacobian<br />
a=0.01;<br />
out=abs(1+3*a*x.^2);</p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p><em><strong>The second piece of code.</strong></em></p>
<p>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</p>
<p>function jacob2<br />
%Soumekh, Fourier Array Imaging, pages 26 to 27</p>
<p>global X0</p>
<p>N=100;<br />
X0=50;<br />
x=linspace(-X0,X0,N+1);<br />
%dx=2*X0/N;<br />
dx=2;<br />
[x n]=meshgrid(x,(-N/2:N/2));<br />
y=sum(dirac(x-n*dx))&#8217;;<br />
figure(1)<br />
stem(x(1,:),y)</p>
<p>yt=J(x(1,:)).*sum(dirac(g(x)-g(n*dx)));<br />
figure(2)<br />
stem(g(x(1,:)),yt)</p>
<p>function out=dirac(x)<br />
global X0<br />
out=abs(x==0);</p>
<p>function out=g(x)<br />
%coordinate transformation<br />
a=0.01;<br />
out=x+a*x.^3;</p>
<p>function out=J(x)<br />
%analytically calculated Jacobian<br />
a=0.01;<br />
out=abs(1+3*a*x.^2);</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=16&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/08/28/unified-fourier-reconstruction-gridding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on SAR Interferometry; Ionospheric influence</title>
		<link>http://doctuh4iah.wordpress.com/2007/08/24/notes-on-sar-interferometry-ionosperic-influence/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/08/24/notes-on-sar-interferometry-ionosperic-influence/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 21:40:18 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Scientific Stuff]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/08/24/notes-on-sar-interferometry-ionosperic-influence/</guid>
		<description><![CDATA[My student recently defended her thesis on ionospheric influence on SAR interferometry (InSAR). The problem was a possibility of significant ionospheric influence on space-borne InSAR at low frequencies (P-band) used in forest monitoring, for example. Here&#8217;s a few musings on the modeling of the problem. Obviously, this post will go to the scientific section&#8230; This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=12&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>My student recently defended her thesis on ionospheric influence on SAR interferometry (InSAR). The problem was a possibility of significant ionospheric influence on space-borne InSAR at low frequencies (P-band) used in forest monitoring, for example. Here&#8217;s a few musings on the modeling of the problem. Obviously, this post will go to the scientific section&#8230; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em></strong><span id="more-12"></span></p>
<p>This will be exercise in my presentation skills&#8230; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Great possibilities of a free vector graphics program <a href="http://www.inkscape.org">InkScape</a> inspired me to be more &#8220;picture oriented&#8230;&#8221; <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  This post will need several revisions before it&#8217;s correct. Don&#8217;t take anything written here for granted!</p>
<h1>Problem</h1>
<p>Consider the following picture: <a href="http://doctuh4iah.files.wordpress.com/2007/08/ionospheresvg.pdf" title="single-satellite configuration">single-satellite configuration</a></p>
<p>A space-borne  SAR makes a range measurement. The pulses will arrive at times <img src='http://s0.wp.com/latex.php?latex=%5Ctau+%27&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;tau &#039;' title='&#92;tau &#039;' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=%5Ctau+%27%27&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;tau &#039;&#039;' title='&#92;tau &#039;&#039;' class='latex' />, respectively. Ionosphere induces an extra delay that can be converted to an extra range increment <img src='http://s0.wp.com/latex.php?latex=r%3D%7B%5Crm+f%7D%28%5Ctheta%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r={&#92;rm f}(&#92;theta)' title='r={&#92;rm f}(&#92;theta)' class='latex' />. Note that time and range are related via the constant <img src='http://s0.wp.com/latex.php?latex=2%2Fc&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='2/c' title='2/c' class='latex' />. Consider a linear approximation</p>
<p><img src='http://s0.wp.com/latex.php?latex=r_m%27+%3D+a_o+%2B+a_1%5Ctheta_m%27&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r_m&#039; = a_o + a_1&#92;theta_m&#039;' title='r_m&#039; = a_o + a_1&#92;theta_m&#039;' class='latex' /></p>
<p>First, let&#8217;s suppose that <img src='http://s0.wp.com/latex.php?latex=r%28%5Ctheta%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r(&#92;theta)' title='r(&#92;theta)' class='latex' /> is a slowly varying function. Then,</p>
<p><img src='http://s0.wp.com/latex.php?latex=r_m%27%27+%3D+a_o+%2B+a_1%5Ctheta_m%27%27.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r_m&#039;&#039; = a_o + a_1&#92;theta_m&#039;&#039;.' title='r_m&#039;&#039; = a_o + a_1&#92;theta_m&#039;&#039;.' class='latex' /></p>
<p>What happens during the interferometric processing is that the first point is shifted in to time <img src='http://s0.wp.com/latex.php?latex=t%3D0&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='t=0' title='t=0' class='latex' /> and it is associated with a <em>reference range</em> <img src='http://s0.wp.com/latex.php?latex=R_1&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='R_1' title='R_1' class='latex' />. That means, the only information about ionospheric influence we have is in the time distance between the two points:</p>
<p><img src='http://s0.wp.com/latex.php?latex=%5Ctau+%27-+%5Ctau+%27%27+%3D+2%2Fc%5Cleft%5BR_m%27-R_m%27%27%2B+a_1%28%5Ctheta_m%27-+%5Ctheta_m%27%27%29%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;tau &#039;- &#92;tau &#039;&#039; = 2/c&#92;left[R_m&#039;-R_m&#039;&#039;+ a_1(&#92;theta_m&#039;- &#92;theta_m&#039;&#039;)&#92;right]' title='&#92;tau &#039;- &#92;tau &#039;&#039; = 2/c&#92;left[R_m&#039;-R_m&#039;&#039;+ a_1(&#92;theta_m&#039;- &#92;theta_m&#039;&#039;)&#92;right]' class='latex' /></p>
<p>The phase used for interferometry should be</p>
<p><img src='http://s0.wp.com/latex.php?latex=%5Cphi_m+%3D+4%5Cpi%2Fc%5Cleft%5BR_1+%2B+R_m%27-R_m%27%27%2B+a_1%28%5Ctheta_m%27-+%5Ctheta_m%27%27%29%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;phi_m = 4&#92;pi/c&#92;left[R_1 + R_m&#039;-R_m&#039;&#039;+ a_1(&#92;theta_m&#039;- &#92;theta_m&#039;&#039;)&#92;right]' title='&#92;phi_m = 4&#92;pi/c&#92;left[R_1 + R_m&#039;-R_m&#039;&#039;+ a_1(&#92;theta_m&#039;- &#92;theta_m&#039;&#039;)&#92;right]' class='latex' />.</p>
<p>&#8230;and here comes the task: Suppose we add a <a href="http://doctuh4iah.files.wordpress.com/2007/08/ionosphere1svg.pdf" title="single-satellite configuration, slave">second (slave) satellite (see the picture here)</a>. What will the calculation of <img src='http://s0.wp.com/latex.php?latex=%5Cphi_s&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;phi_s' title='&#92;phi_s' class='latex' /> look like? And what about the complete model for hight determination?</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=12&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/08/24/notes-on-sar-interferometry-ionosperic-influence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
		<item>
		<title>Visualize, Visualize</title>
		<link>http://doctuh4iah.wordpress.com/2007/08/16/vizualize-vizualize/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/08/16/vizualize-vizualize/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 17:33:59 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Daily Business]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/08/23/vizualize-vizualize/</guid>
		<description><![CDATA[As a researcher in multi-dimensional data processing, one inevitably encounters the problem of data visualization. It is no problem to visualize 1D or 2D data nowadays&#8230; After some searching, I realized it isn&#8217;t too big a deal to visualize your 3d data either! Here&#8217;s how. I have abandoned Matlab some time ago, to embrace free [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=8&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>As a researcher in multi-dimensional data processing, one inevitably encounters the problem of data visualization. It is no problem to visualize 1D or 2D data nowadays&#8230; After some searching, I realized it isn&#8217;t too big a deal to visualize your 3d data either! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Here&#8217;s how.</em></strong></p>
<p>I have abandoned <a href="http://www.mathworks.com" title="matlab link">Matlab</a> some time ago, to embrace free software such as <a href="http://www.scilab.org">Scilab,</a> for scientific calculations. Compared to Matlab, though, Scilab has a little more problems with visualization. Some early endeavors of mine included fighting with Scilab&#8217;s 2D plotting functions and using the excellent ENRICO toolbox for 3d data. But now, I&#8217;ve discovered VTK&#8230;<span id="more-8"></span></p>
<p>Well, <a href="http://www.vtk.org">VTK </a>(visualization toolkit) is way too complicated for me to use. Rather, I&#8217;m using front ends based on it: <a href="http://mayavi.sourceforge.net/">MayaVi</a> and <a href="http://www.llnl.gov/visit/">VisIt</a>. The first step is to get data. Then, one needs to covert the data into the vtk format and that&#8217;s it, you can plunge into the third dimension! The description of the vtk format is <a href="http://www.vtk.org/pdf/file-formats.pdf">here</a>. I guess the best way is an example.</p>
<p>First, generate some sample data. Scilab code:</p>
<p>********************begin code*********************</p>
<p>clear<br />
m=16;n=16;p=16;<br />
cj=sqrt(-1);</p>
<p>x=linspace(-1,1,m);<br />
y=linspace(-1,1,n);<br />
z=linspace(-1,1,p);</p>
<p>s=hypermat([m,n,p]);<br />
kx=0;ky=10;kz=-10;<br />
for i=1:p,<br />
s(:,:,i)=exp(-cj*ky*y&#8217;)*exp(-cj*kx*x)*exp(-cj*kz*z(i));<br />
end<br />
kx=0;ky=-10;kz=-10;<br />
for i=1:p,<br />
s(:,:,i)=s(:,:,i)+exp(-cj*ky*y&#8217;)*exp(-cj*kx*x)*exp(-cj*kz*z(i));<br />
end<br />
kx=0;ky=0;kz=10;<br />
for i=1:p,<br />
s(:,:,i)=s(:,:,i)+exp(-cj*ky*y&#8217;)*exp(-cj*kx*x)*exp(-cj*kz*z(i));<br />
end<br />
kx=0;ky=0;kz=0;<br />
for i=1:p,<br />
s(:,:,i)=s(:,:,i)+exp(-cj*ky*y&#8217;)*exp(-cj*kx*x)*exp(-cj*kz*z(i));<br />
end<br />
kx=-10;ky=10;kz=0;<br />
for i=1:p,<br />
s(:,:,i)=s(:,:,i)+.5*exp(-cj*ky*y&#8217;)*exp(-cj*kx*x)*exp(-cj*kz*z(i));<br />
end</p>
<p>************************end code**********************************</p>
<p>This is a set of three-dimensional  harmonic functions. To obtain focused points in space, perform the 3D Fourier transform:</p>
<p>*********************begin code***************************</p>
<p>pad=64;<br />
S=hypermat([pad,pad,pad]);<br />
for i=1:m,<br />
for j=1:n,<br />
S(i,j,:)=fftshift(fft(fftshift([matrix(s(i,j,:),1,p),zeros(1,pad-p)])));<br />
end<br />
end</p>
<p>for i=1:pad,<br />
S(:,:,i)=fftshift(fft2(fftshift(S(:,:,i))));<br />
end</p>
<p>******************end code********************************</p>
<p>&#8230;and save data in ASCII format.</p>
<p>*********************begin code*****************************</p>
<p>S1=zeros(pad,pad);<br />
for r=1:pad,<br />
S1=[S1;abs(S(:,:,r))];<br />
end<br />
S1=S1(pad+1:$,:);<br />
savematfile(&#8216;data.mat&#8217;,'-ascii&#8217;,'S1&#8242;);</p>
<p>**********************end code*************************</p>
<p>To create a .vtk file, you need a <a href="http://www.vtk.org/pdf/file-formats.pdf" title="vtk file formats">header</a>. For our case, it would look like this:</p>
<p>******************begin header******************</p>
<p># vtk DataFile Version 2.0<br />
3D harmonic visualization<br />
ASCII<br />
DATASET STRUCTURED_POINTS<br />
DIMENSIONS 64 64 64<br />
ASPECT_RATIO 1 1 1<br />
ORIGIN 0 0 0<br />
POINT_DATA 262144<br />
SCALARS 3D_harmonic double<br />
LOOKUP_TABLE default</p>
<p>*******************end header******************</p>
<p>You could naturally place the header directly in front of the ascii data file, but this isn&#8217;t too handy for big files. You can simply join them together using a DOS command:</p>
<p>copy header.txt+data.mat data.vtk</p>
<p>That&#8217;s it! Don&#8217;t forget the CR character at the end of header (simple enter to create a new line), otherwise the data comes directly after the header text. (Although I didn&#8217;t try what that might do, I suppose it could be a problem.)</p>
<p>Then, get <a href="http://www.llnl.gov/visit/">VisIt</a> (it&#8217;s free) and VISUALIZE! <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://doctuh4iah.files.wordpress.com/2007/08/visit0005.jpeg" title="3D visualization"><img src="http://doctuh4iah.files.wordpress.com/2007/08/visit0005.thumbnail.jpeg?w=480" alt="3D visualization" /></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=8&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/08/16/vizualize-vizualize/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>

		<media:content url="http://doctuh4iah.files.wordpress.com/2007/08/visit0005.thumbnail.jpeg" medium="image">
			<media:title type="html">3D visualization</media:title>
		</media:content>
	</item>
		<item>
		<title>Playing With Shifts</title>
		<link>http://doctuh4iah.wordpress.com/2007/07/09/playing-with-shifts/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/07/09/playing-with-shifts/#comments</comments>
		<pubDate>Mon, 09 Jul 2007 14:38:42 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Scientific Stuff]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/07/09/playing-with-shifts/</guid>
		<description><![CDATA[This post is related to a very specific problem that I was solving. (Which one isn&#8217;t&#8230;?) It will hopefully find its use in low resolution SAR and sonar systems. I hope to publish it soon and this is the first try. I expect some trouble with mathematics. So, if you are good at Math, and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=7&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em><strong>This post is related to a very specific problem that I was solving. (Which one isn&#8217;t&#8230;?) It will hopefully find its use in low resolution SAR and sonar systems. I hope to publish it soon and this is the first try. I expect some trouble with mathematics. So, if you are good at Math, and you are reading this, let me know what you think.</strong></em></p>
<p><span id="more-7"></span></p>
<h1>Intro</h1>
<p>Suppose we have a following function:</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=s%28x%2Cy%29%3D%5Csum_%7Bi%3D1%7D%5E%7BI%7D%5Csigma_i%5Cexp%5Cleft%5B-%5Cjmath%5C%2C+a_i%28y%2F2-x%29%2B%5Cjmath%5C%2C+b_i+x%5Cright%5D%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s(x,y)=&#92;sum_{i=1}^{I}&#92;sigma_i&#92;exp&#92;left[-&#92;jmath&#92;, a_i(y/2-x)+&#92;jmath&#92;, b_i x&#92;right],' title='s(x,y)=&#92;sum_{i=1}^{I}&#92;sigma_i&#92;exp&#92;left[-&#92;jmath&#92;, a_i(y/2-x)+&#92;jmath&#92;, b_i x&#92;right],' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where <img src='http://s0.wp.com/latex.php?latex=i%5Cin+%5Cmathbb%7BN%7D%2C+%5Csigma%5Cin+%5Cmathbb%7BC%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='i&#92;in &#92;mathbb{N}, &#92;sigma&#92;in &#92;mathbb{C}' title='i&#92;in &#92;mathbb{N}, &#92;sigma&#92;in &#92;mathbb{C}' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=a%2Cb%5Cin+%5Cmathbb%7BR%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='a,b&#92;in &#92;mathbb{R}' title='a,b&#92;in &#92;mathbb{R}' class='latex' />. The objective is to divide this function into two functions <img src='http://s0.wp.com/latex.php?latex=s_a&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_a' title='s_a' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=s_b&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_b' title='s_b' class='latex' />, i.e.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=s%28x%2Cy%29%3Ds_a%28x%2Cy%29%2Bs_b%28x%2Cy%29%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s(x,y)=s_a(x,y)+s_b(x,y),' title='s(x,y)=s_a(x,y)+s_b(x,y),' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">such that</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=s_a%28x%2Cy%29%3D%5Csum_%7Bk%3D1%7D%5E%7BK%7D%5Csigma_k%5Cexp%5Cleft%5B-%5Cjmath%5C%2C+a_k%28y%2F2-x%29%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_a(x,y)=&#92;sum_{k=1}^{K}&#92;sigma_k&#92;exp&#92;left[-&#92;jmath&#92;, a_k(y/2-x)&#92;right]' title='s_a(x,y)=&#92;sum_{k=1}^{K}&#92;sigma_k&#92;exp&#92;left[-&#92;jmath&#92;, a_k(y/2-x)&#92;right]' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=s_b%28x%2Cy%29%3D%5Csum_%7Bl%3D1%7D%5E%7BL%7D%5Csigma_l%5Cexp%5Cleft%5B-%5Cjmath%5C%2C+a_l%28y%2F2-x%29%2B%5Cjmath%5C%2C+b_l+x%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_b(x,y)=&#92;sum_{l=1}^{L}&#92;sigma_l&#92;exp&#92;left[-&#92;jmath&#92;, a_l(y/2-x)+&#92;jmath&#92;, b_l x&#92;right]' title='s_b(x,y)=&#92;sum_{l=1}^{L}&#92;sigma_l&#92;exp&#92;left[-&#92;jmath&#92;, a_l(y/2-x)+&#92;jmath&#92;, b_l x&#92;right]' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=I%3DK%2BL+%5Cqquad+k%2Cl%5Cin+%5Cmathbb%7BN%7D.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='I=K+L &#92;qquad k,l&#92;in &#92;mathbb{N}.' title='I=K+L &#92;qquad k,l&#92;in &#92;mathbb{N}.' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Analysis</h1>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">We do not know values of <img src='http://s0.wp.com/latex.php?latex=a&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='a' title='a' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=b&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='b' title='b' class='latex' />. What we do know, however, is that in 2D spectral domain <img src='http://s0.wp.com/latex.php?latex=%28k_x%2Ck_y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='(k_x,k_y)' title='(k_x,k_y)' class='latex' />, function <img src='http://s0.wp.com/latex.php?latex=s_a&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_a' title='s_a' class='latex' /> will produce peaks located on a straight line <img src='http://s0.wp.com/latex.php?latex=k_y%3D-k_x%2F2&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y=-k_x/2' title='k_y=-k_x/2' class='latex' />.</p>
<p style="text-indent:0;margin:0;">To show this, suppose that <img src='http://s0.wp.com/latex.php?latex=%5Csigma&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;sigma' title='&#92;sigma' class='latex' /> is a continuous amplitude function instead of a discrete one. Then,</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=s_a%28x%2Cy%29%3D%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty%5Csigma+%28a%29%5Cexp%5Cleft%5B-%5Cjmath%5C%2C+a%28y%2F2-x%29%5Cright%5D+da.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_a(x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (a)&#92;exp&#92;left[-&#92;jmath&#92;, a(y/2-x)&#92;right] da.' title='s_a(x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (a)&#92;exp&#92;left[-&#92;jmath&#92;, a(y/2-x)&#92;right] da.' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Fourier transform of <img src='http://s0.wp.com/latex.php?latex=s_a%28x%2Cy%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='s_a(x,y)' title='s_a(x,y)' class='latex' /> with respect to <img src='http://s0.wp.com/latex.php?latex=x&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='x' title='x' class='latex' /> will be:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%3D%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty+s_a%28x%2Cy%29%5Cexp+%28-%5Cjmath%5C%2C+k_x+x%29%5C%2C+dx%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty s_a(x,y)&#92;exp (-&#92;jmath&#92;, k_x x)&#92;, dx,' title='&#92;hat{s}_a(k_x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty s_a(x,y)&#92;exp (-&#92;jmath&#92;, k_x x)&#92;, dx,' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%3D%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty+%5Csigma+%28a%29%5Cexp%28-%5Cjmath%5C%2C+ay%2F2%29%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty%5Cexp%28%5Cjmath%5C%2C+ax%29%5Cexp+%28-%5Cjmath%5C%2Ck_x+x%29%5C%2C+dx%5C%2C+da%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty &#92;sigma (a)&#92;exp(-&#92;jmath&#92;, ay/2)&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;exp(&#92;jmath&#92;, ax)&#92;exp (-&#92;jmath&#92;,k_x x)&#92;, dx&#92;, da,' title='&#92;hat{s}_a(k_x,y)=&#92;int&#92;limits_{-&#92;infty}^&#92;infty &#92;sigma (a)&#92;exp(-&#92;jmath&#92;, ay/2)&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;exp(&#92;jmath&#92;, ax)&#92;exp (-&#92;jmath&#92;,k_x x)&#92;, dx&#92;, da,' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%3D2%5Cpi%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty+%5Csigma+%28a%29%5Cexp+%28-%5Cjmath%5C%2C+ay%2F2%29%5Cdelta+%28a-k_x%29%5C%2C+da%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty &#92;sigma (a)&#92;exp (-&#92;jmath&#92;, ay/2)&#92;delta (a-k_x)&#92;, da,' title='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty &#92;sigma (a)&#92;exp (-&#92;jmath&#92;, ay/2)&#92;delta (a-k_x)&#92;, da,' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%3D2%5Cpi%5Csigma+%28k_x%29%5Cexp+%28-%5Cjmath%5C%2C+k_xy%2F2%29.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;sigma (k_x)&#92;exp (-&#92;jmath&#92;, k_xy/2).' title='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;sigma (k_x)&#92;exp (-&#92;jmath&#92;, k_xy/2).' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Fourier transform of <img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28x%2Cy%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(x,y)' title='&#92;hat{s}_a(x,y)' class='latex' /> with respect to <img src='http://s0.wp.com/latex.php?latex=y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='y' title='y' class='latex' /> will be:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=S_a%28k_x%2Ck_y%29%3D2%5Cpi%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty%5Chat%7Bs%7D_a%28k_x%2Cy%29%5Cexp%28-%5Cjmath%5C%2C+k_yy%29%5C%2C+dy%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_a(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;hat{s}_a(k_x,y)&#92;exp(-&#92;jmath&#92;, k_yy)&#92;, dy,' title='S_a(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;hat{s}_a(k_x,y)&#92;exp(-&#92;jmath&#92;, k_yy)&#92;, dy,' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=S_a%28k_x%2Ck_y%29%3D2%5Cpi%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty%5Csigma+%28k_x%29%5Cexp%28-%5Cjmath%5C%2C+k_xy%2F2%29%5Cexp%28-%5Cjmath%5C%2C+k_yy%29%5C%2C+dy&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_a(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (k_x)&#92;exp(-&#92;jmath&#92;, k_xy/2)&#92;exp(-&#92;jmath&#92;, k_yy)&#92;, dy' title='S_a(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (k_x)&#92;exp(-&#92;jmath&#92;, k_xy/2)&#92;exp(-&#92;jmath&#92;, k_yy)&#92;, dy' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=S_a%28k_x%2Ck_y%29%3D4%5Cpi%5E2%5Csigma%28k_x%29%5Cdelta%28k_y%2Bk_x%2F2%29.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_a(k_x,k_y)=4&#92;pi^2&#92;sigma(k_x)&#92;delta(k_y+k_x/2).' title='S_a(k_x,k_y)=4&#92;pi^2&#92;sigma(k_x)&#92;delta(k_y+k_x/2).' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Since Dirac delta <img src='http://s0.wp.com/latex.php?latex=%5Cdelta+%28x%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;delta (x)' title='&#92;delta (x)' class='latex' /> has a value other than zero only at <img src='http://s0.wp.com/latex.php?latex=x%3D0&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='x=0' title='x=0' class='latex' />, <img src='http://s0.wp.com/latex.php?latex=S_a%28k_x%2Ck_y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_a(k_x,k_y)' title='S_a(k_x,k_y)' class='latex' /> will exhibit peaks at a line <img src='http://s0.wp.com/latex.php?latex=k_y%3D-k_x%2F2&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y=-k_x/2' title='k_y=-k_x/2' class='latex' />.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Solution</h1>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">If we could shift the points on this line in such a way that <img src='http://s0.wp.com/latex.php?latex=k_y%3D0&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y=0' title='k_y=0' class='latex' />, techniques described <a href="http://doctuh4iah.wordpress.com/2007/06/29/mean-removal-experiments/" title="clutter rejection">previously</a> could be used for the separation. The solution is to multiply <img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a+%28k_x%2Cy%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a (k_x,y)' title='&#92;hat{s}_a (k_x,y)' class='latex' /> by <img src='http://s0.wp.com/latex.php?latex=%5Cexp%28%5Cjmath%5C%2C+k_xy%2F2%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;exp(&#92;jmath&#92;, k_xy/2)' title='&#92;exp(&#92;jmath&#92;, k_xy/2)' class='latex' />.</p>
<p style="text-indent:0;margin:0;">To show this, recall that</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%3D2%5Cpi%5Csigma+%28k_x%29%5Cexp+%28-%5Cjmath%5C%2C+k_xy%2F2%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;sigma (k_x)&#92;exp (-&#92;jmath&#92;, k_xy/2)' title='&#92;hat{s}_a(k_x,y)=2&#92;pi&#92;sigma (k_x)&#92;exp (-&#92;jmath&#92;, k_xy/2)' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Fourier transform of <img src='http://s0.wp.com/latex.php?latex=%5Chat%7Bs%7D_a%28k_x%2Cy%29%5Cexp%28-%5Cjmath%5C%2C+k_xy%2F2%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;hat{s}_a(k_x,y)&#92;exp(-&#92;jmath&#92;, k_xy/2)' title='&#92;hat{s}_a(k_x,y)&#92;exp(-&#92;jmath&#92;, k_xy/2)' class='latex' /> with respect to <img src='http://s0.wp.com/latex.php?latex=y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='y' title='y' class='latex' /> will yield:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=S_c%28k_x%2Ck_y%29%3D2%5Cpi%5Cint%5Climits_%7B-%5Cinfty%7D%5E%5Cinfty%5Csigma+%28k_x%29%5Cexp%28-%5Cjmath%5C%2C+k_y+y%29%5C%2C+dy%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_c(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (k_x)&#92;exp(-&#92;jmath&#92;, k_y y)&#92;, dy,' title='S_c(k_x,k_y)=2&#92;pi&#92;int&#92;limits_{-&#92;infty}^&#92;infty&#92;sigma (k_x)&#92;exp(-&#92;jmath&#92;, k_y y)&#92;, dy,' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">which is</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=S_c%28k_x%2Ck_y%29%3D4%5Cpi%5E2%5Csigma%28k_x%29%5Cdelta%28k_y%29.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='S_c(k_x,k_y)=4&#92;pi^2&#92;sigma(k_x)&#92;delta(k_y).' title='S_c(k_x,k_y)=4&#92;pi^2&#92;sigma(k_x)&#92;delta(k_y).' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">This function is a line of points located at <img src='http://s0.wp.com/latex.php?latex=%28k_x%2Ck_y%3D0%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='(k_x,k_y=0)' title='(k_x,k_y=0)' class='latex' />. Note that this solution is applicable even to a discrete function <img src='http://s0.wp.com/latex.php?latex=%5Csigma+%28a%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;sigma (a)' title='&#92;sigma (a)' class='latex' />.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=7&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/07/09/playing-with-shifts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
		<item>
		<title>Mean Removal Experiments</title>
		<link>http://doctuh4iah.wordpress.com/2007/06/29/mean-removal-experiments/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/06/29/mean-removal-experiments/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 11:02:28 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Scientific Stuff]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/06/29/mean-removal-experiments/</guid>
		<description><![CDATA[This post is a follow up of the text posted yesterday (I&#8217;m afraid this will often be the case ). It is related to radar, sonar and multi-channel signal processing, singular value decomposition, matched filtering, and more specifically to something that&#8217;s called clutter rejection. Intro There is another problem related to the one discussed yesterday. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=4&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>This post is a follow up of the text posted <a href="http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/" title="experiments w/ SVD">yesterday</a> (I&#8217;m afraid this will often be the case <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). It is related to radar, sonar and multi-channel signal processing, singular value decomposition, matched filtering, and more specifically to something that&#8217;s called clutter rejection.</em></strong></p>
<p><span id="more-4"></span></p>
<h1>Intro</h1>
<p>There is another problem related to the one discussed <a href="http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/" title="experiments w/ SVD">yesterday</a>. Consider again the function from example 3:</p>
<p align="center"><img src='http://s0.wp.com/latex.php?latex=%5Csum_i+A_i%5Cexp%7B%5Cleft%5B-%5Cjmath+%28x+k_%7Bx%2Ci%7D+%2B+y+k_y%29%5Cright%5D%7D+%3D+f%28x%29%5Ccdot+h%28y%29%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;sum_i A_i&#92;exp{&#92;left[-&#92;jmath (x k_{x,i} + y k_y)&#92;right]} = f(x)&#92;cdot h(y),' title='&#92;sum_i A_i&#92;exp{&#92;left[-&#92;jmath (x k_{x,i} + y k_y)&#92;right]} = f(x)&#92;cdot h(y),' class='latex' /></p>
<p>where</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x%29++%3D++%5Csum_i+A_i%5Cexp%7B%28-%5Cjmath+x+k_%7Bx%2Ci%7D%29%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x)  =  &#92;sum_i A_i&#92;exp{(-&#92;jmath x k_{x,i})}' title='f(x)  =  &#92;sum_i A_i&#92;exp{(-&#92;jmath x k_{x,i})}' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=h%28y%29++%3D++%5Cexp%7B%28-%5Cjmath+y+k_y%29%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='h(y)  =  &#92;exp{(-&#92;jmath y k_y)}' title='h(y)  =  &#92;exp{(-&#92;jmath y k_y)}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">and</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=k_%7Bx%2Ci%7D+%5Cin+%5B-K_x%2CK_x%5D%2C+%5Cqquad+K_x%3D%5Cmbox%7Bconst.%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_{x,i} &#92;in [-K_x,K_x], &#92;qquad K_x=&#92;mbox{const.}' title='k_{x,i} &#92;in [-K_x,K_x], &#92;qquad K_x=&#92;mbox{const.}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">This gives a signal that can be decomposed into two singular vectors <img src='http://s0.wp.com/latex.php?latex=f%28%5Cmathbf%7Bx%7D%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(&#92;mathbf{x})' title='f(&#92;mathbf{x})' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=h%28%5Cmathbf%7By%7D%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='h(&#92;mathbf{y})' title='h(&#92;mathbf{y})' class='latex' />. Thus, one can write:</p>
<p align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BS%7D+%3D+%5Cmathbf%7Bf%7D%5Cmathbf%7Bh%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{S} = &#92;mathbf{f}&#92;mathbf{h}' title='&#92;mathbf{S} = &#92;mathbf{f}&#92;mathbf{h}' class='latex' /></p>
<p style="text-indent:0;margin:0;">Suppose we know <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BS%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{S}' title='&#92;mathbf{S}' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=k_y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y' title='k_y' class='latex' /> and we are trying to estimate <img src='http://s0.wp.com/latex.php?latex=A_i&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='A_i' title='A_i' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=k_%7Bx%2Ci%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_{x,i}' title='k_{x,i}' class='latex' />. Equation above implies that</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7B%5Chat%7Bf%7D%7D+%3D+%5Cmathbf%7BS%7D%5Cmathbf%7Bh%7D%5E%5Cdagger&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{&#92;hat{f}} = &#92;mathbf{S}&#92;mathbf{h}^&#92;dagger' title='&#92;mathbf{&#92;hat{f}} = &#92;mathbf{S}&#92;mathbf{h}^&#92;dagger' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7B%5Chat%7Bf%7D%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{&#92;hat{f}}' title='&#92;mathbf{&#92;hat{f}}' class='latex' /> is an estimate of <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bf%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{f}' title='&#92;mathbf{f}' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=%5E%5Cdagger&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='^&#92;dagger' title='^&#92;dagger' class='latex' /> denotes matrix pseudo inverse. This solution is called <em>Wiener filter</em>. For vectors, we have</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bf%5E%5Cdagger%7D+%3D+%5Cmathbf%7Bh%7D%27%2Fn%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{f^&#92;dagger} = &#92;mathbf{h}&#039;/n,' title='&#92;mathbf{f^&#92;dagger} = &#92;mathbf{h}&#039;/n,' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where <img src='http://s0.wp.com/latex.php?latex=%27&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#039;' title='&#039;' class='latex' /> denotes a conjugated transpose. <img src='http://s0.wp.com/latex.php?latex=n&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='n' title='n' class='latex' /> is the length of vector <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bh%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{h}' title='&#92;mathbf{h}' class='latex' />. In the signal processing literature, <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bh%7D%27%2Fn&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{h}&#039;/n' title='&#92;mathbf{h}&#039;/n' class='latex' /> is called <em>matched filter</em>. Further, suppose that <img src='http://s0.wp.com/latex.php?latex=k_y%3D0&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y=0' title='k_y=0' class='latex' />. In that case, <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bh%7D%3D%5B1%5C%2C+1%5C%2C+1%5C%2C+%5Cdots%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{h}=[1&#92;, 1&#92;, 1&#92;, &#92;dots]' title='&#92;mathbf{h}=[1&#92;, 1&#92;, 1&#92;, &#92;dots]' class='latex' />. Clearly, <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7B%5Chat%7Bf%7D%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{&#92;hat{f}}' title='&#92;mathbf{&#92;hat{f}}' class='latex' /> can then be calculated as:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7B%5Chat%7Bf%7D%7D+%3D+%5Cfrac%7B1%7D%7Bn%7D%5Csum_j+%5C%7BS%5C%7D_%7Bi%2Cj%7D.&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{&#92;hat{f}} = &#92;frac{1}{n}&#92;sum_j &#92;{S&#92;}_{i,j}.' title='&#92;mathbf{&#92;hat{f}} = &#92;frac{1}{n}&#92;sum_j &#92;{S&#92;}_{i,j}.' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">This means simply a calculation of an average over columns of matrix <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BS%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{S}' title='&#92;mathbf{S}' class='latex' />.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Signal Separation</h1>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Now suppose that we have some other signals <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BS_m%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{S_m}' title='&#92;mathbf{S_m}' class='latex' /> at unknown frequencies <img src='http://s0.wp.com/latex.php?latex=%28k_%7Bx%2Cm%7D%2Ck_%7By%2Cm%7D%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='(k_{x,m},k_{y,m})' title='(k_{x,m},k_{y,m})' class='latex' /> but <img src='http://s0.wp.com/latex.php?latex=k_%7By%2Cm%7D%5Cneq+k_y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_{y,m}&#92;neq k_y' title='k_{y,m}&#92;neq k_y' class='latex' />. These signals will be added to the signal from our previous section:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BZ%7D%3D%5Cmathbf%7BS%7D%2B%5Csum_m%5Cmathbf%7BS_m%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{Z}=&#92;mathbf{S}+&#92;sum_m&#92;mathbf{S_m}' title='&#92;mathbf{Z}=&#92;mathbf{S}+&#92;sum_m&#92;mathbf{S_m}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">One can then estimate signals <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BS_m%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{S_m}' title='&#92;mathbf{S_m}' class='latex' /> like this:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cwidehat%7B%5Csum_m%5Cmathbf%7BS_m%7D%7D%3D%5Cmathbf%7BZ%7D-%5Cfrac%7B1%7D%7Bn%7D%5Cmathbf%7BZ%7D%5Ccdot%5Cmathbf%7Bh%27%7D%5Cmathbf%7Bh%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;widehat{&#92;sum_m&#92;mathbf{S_m}}=&#92;mathbf{Z}-&#92;frac{1}{n}&#92;mathbf{Z}&#92;cdot&#92;mathbf{h&#039;}&#92;mathbf{h}' title='&#92;widehat{&#92;sum_m&#92;mathbf{S_m}}=&#92;mathbf{Z}-&#92;frac{1}{n}&#92;mathbf{Z}&#92;cdot&#92;mathbf{h&#039;}&#92;mathbf{h}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Now, this leads to a least squares problem and that&#8217;s where the SVD comes into play; see the post from yesterday. I still need to figure this out&#8230;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Channel Mismatch</h1>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">One can ask a question: &#8220;Why should I care about least squares if I know <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bh%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{h}' title='&#92;mathbf{h}' class='latex' />?&#8221; The answer is: You should. The reason is that the solution demonstrated above works only for the cases when we know <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bh%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{h}' title='&#92;mathbf{h}' class='latex' /> (and therefore <img src='http://s0.wp.com/latex.php?latex=h%28y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='h(y)' title='h(y)' class='latex' />) <em>precisely</em>. This, however, isn&#8217;t the case in practice. In practice, function <img src='http://s0.wp.com/latex.php?latex=h%28y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='h(y)' title='h(y)' class='latex' /> will be modulated by another function <img src='http://s0.wp.com/latex.php?latex=e%28y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='e(y)' title='e(y)' class='latex' />, which is generally unknown. In radar, sonar and other multi-sensor applications, this function often models so-called <em>channel mismatch</em>. How does SVD help in this case? Well, what we know about the result <img src='http://s0.wp.com/latex.php?latex=r%28y%29%3Dh%28y%29%5Ccdot+e%28y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r(y)=h(y)&#92;cdot e(y)' title='r(y)=h(y)&#92;cdot e(y)' class='latex' /> is that it is still a function of <img src='http://s0.wp.com/latex.php?latex=y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='y' title='y' class='latex' /> only and thus it is <em>orthogonal</em> to function <img src='http://s0.wp.com/latex.php?latex=f%28x%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x)' title='f(x)' class='latex' />. So, under the conditions discussed <a href="http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/" title="experiments w/ SVD">yesterday</a>, we can still estimate functions <img src='http://s0.wp.com/latex.php?latex=f%28x%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x)' title='f(x)' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=r%28y%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='r(y)' title='r(y)' class='latex' /> using SVD without really knowing them&#8230;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Da Code</h1>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Again, some code to play with. Here it is&#8230;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<table border="1">
<tr>
<td><font size="+1"><tt><br />
clear<br />
</tt></font><br />
<font size="+1"><tt><br />
cj=sqrt(-1);m=16;n=16;<br />
x=linspace(-1,1,m)'*%pi;<br />
y=linspace(-1,1,n)'*%pi;<br />
</tt></font><br />
<font size="+1"><tt><br />
s=zeros(m,n);<br />
f=0;<br />
Kx=7;ky=.1;<br />
kx=linspace(-Kx,Kx,100);<br />
h=exp(-cj*y'*ky);<br />
for i=1:100,<br />
g=exp(-cj*x*kx(i));<br />
f=f+10*rand(1,1)*g;<br />
end<br />
s=f*h;<br />
</tt></font><br />
<font size="+1"><tt><br />
s1=zeros(m,n);<br />
kx=-2;ky=2;<br />
w=.1*exp(-cj*x*kx);<br />
z=exp(-cj*y'*ky);<br />
s1=s1+w*z;<br />
</tt></font><br />
<font size="+1"><tt><br />
kx=3;ky=-5;<br />
w=.5*exp(-cj*x*kx);<br />
z=exp(-cj*y'*ky);<br />
s1=s1+w*z;<br />
</tt></font><br />
<font size="+1"><tt><br />
s=s+s1;<br />
</tt></font><br />
<font size="+1"><tt><br />
//f_=sum(s,2)/n;<br />
f_=s*h'/n;<br />
s=s-f_*h; //try commenting this out<br />
//to see all signals<br />
</tt></font><br />
<font size="+1"><tt><br />
pad=96;<br />
S=fftshift(fft2(fftshift([s,...<br />
zeros(m,pad-n);zeros(pad-m,pad)])));<br />
</tt></font><br />
<font size="+1"><tt><br />
fig1=scf(1);<br />
map=jetcolormap(256);<br />
xset("colormap",map)<br />
Matplot(log10(abs(S)+1e-12)*50)<br />
</tt></font></td>
</tr>
</table>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=4&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/06/29/mean-removal-experiments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
		<item>
		<title>Some Experiments with Eigenanalysis of Data Matrices</title>
		<link>http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 17:32:53 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Scientific Stuff]]></category>

		<guid isPermaLink="false">http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/</guid>
		<description><![CDATA[This post gives some examples of the use of singular value decomposition (SVD) in some data separation problems. Could be useful in radar, sonar, computer tomorgaphy, etc&#8230; Let&#8217;s start with having a look where to find some info on this&#8230; The problem at hand is also called the principal components analysis (PCA). So, the book [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=3&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>This post gives some examples of the use of singular value decomposition (SVD) in some data separation problems. Could be useful in radar, sonar, computer tomorgaphy, etc&#8230;</em></strong></p>
<p>Let&#8217;s start with having a look where to find some info on this&#8230; The problem at hand is also called <em>the principal components analysis</em> (PCA). So, the book by <a href="http://jim-stone.staff.shef.ac.uk/" title="Independent Component Analysis">J V Stone</a> is an excellent start. Lately, I have found the following <a href="http://geosci.uchicago.edu/~gidon/geosci236/med/demoSVD.html" title="Principal Components Analysis">reference</a>. A lot of ideas (and inspiring Matlab code) came from the HOSA (higher-order spectral analysis) Matlab package and its accompanying manual. There will be probably much more  (possibly better) references to study. If you know any good ones, please let me know.</p>
<p>The examples are accompanied with a <a href="http://www.scilab.org" title="Scilab environment">Scilab</a> code. <a href="http://www.scilab.org" title="Scilab environment">Scilab</a> is a free equivalent of Matlab. I would encourage to try the code, simply by pasting it into a workspace window. You could either use Matlab (then you need to make some changes) or you can try <a href="http://www.scilab.org" title="Scilab environment">Scilab</a> (it doesn&#8217;t take too much effort and disk space to install it).</p>
<p><span id="more-3"></span></p>
<h1>Example 1</h1>
<p style="text-indent:0;margin:0;" align="left">Consider the following example: A two-dimensional harmonic function</p>
<p style="text-indent:0;margin:0;" align="left">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x%2Cy%29%3DA%5Cexp%7B%5Cleft%5B-%5Cjmath+%28x+k_x+%2B+y+k_y%29%5Cright%5D%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x,y)=A&#92;exp{&#92;left[-&#92;jmath (x k_x + y k_y)&#92;right]}' title='f(x,y)=A&#92;exp{&#92;left[-&#92;jmath (x k_x + y k_y)&#92;right]}' class='latex' /></p>
<p style="text-indent:0;margin:0;">can be also expressed as</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x%2Cy%29%3DA%5Cexp%7B%28-%5Cjmath+x+k_x%29%7D+%5Cexp%7B%28-%5Cjmath+y+k_y%29%7D%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x,y)=A&#92;exp{(-&#92;jmath x k_x)} &#92;exp{(-&#92;jmath y k_y)},' title='f(x,y)=A&#92;exp{(-&#92;jmath x k_x)} &#92;exp{(-&#92;jmath y k_y)},' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where <img src='http://s0.wp.com/latex.php?latex=x%2Cy&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='x,y' title='x,y' class='latex' /> are variables and <img src='http://s0.wp.com/latex.php?latex=k_x%2Ck_y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_x,k_y' title='k_x,k_y' class='latex' /> are some constants. A sampled version would be:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x_i%2Cy_j%29%3DA%5Cexp%7B%28-%5Cjmath+x_i+k_x%29%7D+%5Cexp%7B%28-%5Cjmath+y_j+k_y%29%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x_i,y_j)=A&#92;exp{(-&#92;jmath x_i k_x)} &#92;exp{(-&#92;jmath y_j k_y)}' title='f(x_i,y_j)=A&#92;exp{(-&#92;jmath x_i k_x)} &#92;exp{(-&#92;jmath y_j k_y)}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">One can then write that</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x_i%2Cy_j%29%3D%5C%7Bf%5C%7D_%7Bi%2Cj%7D%3DA%5Cexp%7B%28-%5Cjmath+%5Cmathbf%7Bx%7D+k_x%29%7D+%5Cexp%7B%28-%5Cjmath+%5Cmathbf%7By%7D%27+k_y%29%7D%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x_i,y_j)=&#92;{f&#92;}_{i,j}=A&#92;exp{(-&#92;jmath &#92;mathbf{x} k_x)} &#92;exp{(-&#92;jmath &#92;mathbf{y}&#039; k_y)},' title='f(x_i,y_j)=&#92;{f&#92;}_{i,j}=A&#92;exp{(-&#92;jmath &#92;mathbf{x} k_x)} &#92;exp{(-&#92;jmath &#92;mathbf{y}&#039; k_y)},' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bx%7D%2C%5Cmathbf%7By%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{x},&#92;mathbf{y}' title='&#92;mathbf{x},&#92;mathbf{y}' class='latex' /> are column vectors.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">A Scilab code that would generate such a function is shown in this table:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<table border="1">
<tr>
<td><font size="+1"><tt><br />
clear</tt></font><font size="+1"><tt><br />
cj=sqrt(-1);m=16;n=16;<br />
x=linspace(-1,1,m)'*%pi;<br />
y=linspace(-1,1,n)'*%pi; </tt></font><br />
<font size="+1"><tt><br />
s=zeros(m,n);<br />
kx=3;ky=1;<br />
g=exp(-cj*x*kx);<br />
h=exp(-cj*y'*ky);<br />
s=g*h;<br />
</tt></font></td>
</tr>
</table>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;"> The vectors <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bx%7D%2C%5Cmathbf%7By%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{x},&#92;mathbf{y}' title='&#92;mathbf{x},&#92;mathbf{y}' class='latex' /> form an orthogonal basis for the  function <img src='http://s0.wp.com/latex.php?latex=f&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f' title='f' class='latex' />. Singular value decomposition factors a matrix into a product of three matrices: <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BU%7D%2C%5Cmathbf%7BV%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{U},&#92;mathbf{V}' title='&#92;mathbf{U},&#92;mathbf{V}' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BD%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{D}' title='&#92;mathbf{D}' class='latex' />. Matrices <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BU%7D%2C%5Cmathbf%7BV%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{U},&#92;mathbf{V}' title='&#92;mathbf{U},&#92;mathbf{V}' class='latex' /> are orthogonal or unitary square matrices, <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BD%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{D}' title='&#92;mathbf{D}' class='latex' /> is a diagonal matrix. Hence, it should not come as a surprise that the SVD performed on matrix <img src='http://s0.wp.com/latex.php?latex=%5C%7Bf%5C%7D_%7Bi%2Cj%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;{f&#92;}_{i,j}' title='&#92;{f&#92;}_{i,j}' class='latex' /> will give the following result:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5C%7Bf%5C%7D_%7Bi%2Cj%7D%3D%5Cmathbf%7BU%5CSigma+V%7D%27%2C&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;{f&#92;}_{i,j}=&#92;mathbf{U&#92;Sigma V}&#039;,' title='&#92;{f&#92;}_{i,j}=&#92;mathbf{U&#92;Sigma V}&#039;,' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BU%7D+%3D+%5Cleft%5B%5C%2C%5Cexp%7B%28-%5Cjmath+%5Cmathbf%7Bx%7D+k_x%29%7D++%5Cquad+%5Cmathbf%7B0%7D+%5Cquad+%5Cdots%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{U} = &#92;left[&#92;,&#92;exp{(-&#92;jmath &#92;mathbf{x} k_x)}  &#92;quad &#92;mathbf{0} &#92;quad &#92;dots&#92;right]' title='&#92;mathbf{U} = &#92;left[&#92;,&#92;exp{(-&#92;jmath &#92;mathbf{x} k_x)}  &#92;quad &#92;mathbf{0} &#92;quad &#92;dots&#92;right]' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7B%5CSigma%7D+%3D+%5Cleft%5B%5C%2C%5Cmathbf%7Ba%7D+%5Cquad+%5Cmathbf%7B0%7D+%5Cquad++%5Cdots%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{&#92;Sigma} = &#92;left[&#92;,&#92;mathbf{a} &#92;quad &#92;mathbf{0} &#92;quad  &#92;dots&#92;right]' title='&#92;mathbf{&#92;Sigma} = &#92;left[&#92;,&#92;mathbf{a} &#92;quad &#92;mathbf{0} &#92;quad  &#92;dots&#92;right]' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BV%7D+%3D+%5Cleft%5B%5C%2C%5Cexp%7B%28-%5Cjmath+%5Cmathbf%7By%7D+k_y%29%7D++%5Cquad%5Cmathbf%7B0%7D%5Cquad++%5Cdots%5Cright%5D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{V} = &#92;left[&#92;,&#92;exp{(-&#92;jmath &#92;mathbf{y} k_y)}  &#92;quad&#92;mathbf{0}&#92;quad  &#92;dots&#92;right]' title='&#92;mathbf{V} = &#92;left[&#92;,&#92;exp{(-&#92;jmath &#92;mathbf{y} k_y)}  &#92;quad&#92;mathbf{0}&#92;quad  &#92;dots&#92;right]' class='latex' /></p>
<p style="text-indent:0;margin:0;"><img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Ba%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{a}' title='&#92;mathbf{a}' class='latex' /> is a coulmn vector containing a single eigenvalue <img src='http://s0.wp.com/latex.php?latex=a&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='a' title='a' class='latex' /> in the first entry, the rest are zeros.  <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7Bo%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{o}' title='&#92;mathbf{o}' class='latex' /> is a column vector with zero entries.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">A code that could demonstrate this is in the table below. We also plot the Fourier transform of the signal <font size="+1"><tt>s</tt></font>. This will allow us to observe separation properties of SVD, later on.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<table border="1">
<tr>
<td><font size="+1"><tt><br />
[U,D,V]=svd(s);<br />
pad=96;<br />
S=fftshift(fft2(...<br />
fftshift([s,...<br />
zeros(m,pad-n);...<br />
zeros(pad-m,pad)])));<br />
</tt></font><font size="+1"><tt><br />
fig1=scf(1);<br />
map=jetcolormap(256);<br />
xset("colormap",map)<br />
Matplot(log10(...<br />
abs(S)+1e-12)*50)<br />
</tt></font></td>
<td><font size="+1"><tt><br />
fig2=scf(2);<br />
plot(diag(D),'.')<br />
</tt></font><br />
<font size="+1"><tt><br />
fig3=scf(3);<br />
plot(x,U(:,1),...<br />
x,g/sqrt(D(1,1)))<br />
</tt></font><br />
<font size="+1"><tt><br />
fig4=scf(4);<br />
plot(y,V(:,1),...<br />
y,h/sqrt(D(1,1)))<br />
</tt></font></td>
</tr>
</table>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Example 2</h1>
<p>In the second example, we add one more signal of much smaller amplitude than signal <font size="+1"><tt>s</tt></font>. For instance, like so:</p>
<table border="1">
<tr>
<td><font size="+1"><tt><br />
s1=zeros(m,n);kx=-2;ky=5;<br />
w=exp(-cj*x*kx);<br />
z=exp(-cj*y'*ky);<br />
s1=.1*w*z;<br />
s=s+s1<br />
</tt></font></td>
</tr>
</table>
<p>After running the code from example 1 again, one can observe that now there will be two singular values corresponding to two singular vectors in matrices <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BU%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{U}' title='&#92;mathbf{U}' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BV%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{V}' title='&#92;mathbf{V}' class='latex' />. It can be further observed that again, the first two columns of <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BU%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{U}' title='&#92;mathbf{U}' class='latex' /> will be very close to functions <font size="+1"><tt>g</tt></font>  and <font size="+1"><tt>w</tt></font>, respectively. Just as well as columns of matrix <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BV%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{V}' title='&#92;mathbf{V}' class='latex' /> will be close to functions <font size="+1"><tt>h</tt></font> and <font size="+1"><tt>z</tt></font>. Clearly, now the signals <font size="+1"><tt>s</tt></font> and <font size="+1"><tt>s</tt></font> can be <em>separated</em> simply by nulling their corresponding singular values. The singular values are in descending  order. Thus, the signals will be ordered depending on their amplitude.</p>
<p style="text-indent:0;margin:0;">A different situation occurs, if signals <font size="+1"><tt>s</tt></font> and <font size="+1"><tt>s1</tt></font> have comparable amplitudes. Matrix <img src='http://s0.wp.com/latex.php?latex=%5Cmathbf%7BD%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;mathbf{D}' title='&#92;mathbf{D}' class='latex' /> will still contain two singular values, but the singular vectors will no longer correspond to basis functions of the original signals. In such cases, it is said that the original signals are <em>mixed</em>. Canceling one of the singular values will not produce one of the two original signals, as can be easily verified. The way out of this leads onto so-called <em>independent component analysis</em>, or ICA for short. Fortunately, we will see later that there are some cases of interest where PCA (that is, the method described above) will be sufficient.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<h1>Example 3</h1>
<p>In the last example, let us consider the following special case: Suppose that both signals in our simulation have the same constant <img src='http://s0.wp.com/latex.php?latex=k_y&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_y' title='k_y' class='latex' />, say equal to 1. What will the SVD look like? Even though two signals are present, only one singular value is calculated. The reason is quite plain:</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=%5Csum_i+A_i%5Cexp%7B%5Cleft%5B-%5Cjmath+%28x+k_%7Bx%2Ci%7D+%2B+y+k_y%29%5Cright%5D%7D+%3D+g%28y%29%5Ccdot+f%28x%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='&#92;sum_i A_i&#92;exp{&#92;left[-&#92;jmath (x k_{x,i} + y k_y)&#92;right]} = g(y)&#92;cdot f(x)' title='&#92;sum_i A_i&#92;exp{&#92;left[-&#92;jmath (x k_{x,i} + y k_y)&#92;right]} = g(y)&#92;cdot f(x)' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">where</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=f%28x%29+%3D+%5Csum_i+A_i%5Cexp%7B%28-%5Cjmath+x+k_%7Bx%2Ci%7D%29%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(x) = &#92;sum_i A_i&#92;exp{(-&#92;jmath x k_{x,i})}' title='f(x) = &#92;sum_i A_i&#92;exp{(-&#92;jmath x k_{x,i})}' class='latex' /></p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=g%28y%29+%3D+%5Cexp%7B%28-%5Cjmath+y+k_y%29%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='g(y) = &#92;exp{(-&#92;jmath y k_y)}' title='g(y) = &#92;exp{(-&#92;jmath y k_y)}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">and</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;" align="center"><img src='http://s0.wp.com/latex.php?latex=k_%7Bx%2Ci%7D+%5Cin+%5B-K_x%2CK_x%5D%2C+%5Cqquad+K_x%3D%5Cmbox%7Bconst.%7D&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='k_{x,i} &#92;in [-K_x,K_x], &#92;qquad K_x=&#92;mbox{const.}' title='k_{x,i} &#92;in [-K_x,K_x], &#92;qquad K_x=&#92;mbox{const.}' class='latex' /></p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">So, now we have a signal that can be decomposed into two singular vectors <img src='http://s0.wp.com/latex.php?latex=f%28%5Cmathbf%7Bx%7D%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='f(&#92;mathbf{x})' title='f(&#92;mathbf{x})' class='latex' /> and <img src='http://s0.wp.com/latex.php?latex=g%28%5Cmathbf%7By%7D%29&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='g(&#92;mathbf{y})' title='g(&#92;mathbf{y})' class='latex' />.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<p style="text-indent:0;margin:0;">Our simulation is performed for <img src='http://s0.wp.com/latex.php?latex=i%3D2&amp;bg=ffffff&amp;fg=555555&amp;s=0' alt='i=2' title='i=2' class='latex' />, but the general case can be easily verified:</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<table border="1">
<tr>
<td><font size="+1"><tt><br />
s=zeros(m,n);<br />
f=0;<br />
Kx=7;ky=1;<br />
kx=linspace(-Kx,Kx,10);<br />
h=exp(-cj*y'*ky);<br />
for i=1:10,<br />
g=exp(-cj*x*kx(i));<br />
f=f+rand(1,1)*g;<br />
end<br />
s=f*h;<br />
</tt></font></td>
</tr>
</table>
<p>It becomes obvious that adding one more signal such as <font size="+1"><tt>s1</tt></font> will produce the same behavior as above.</p>
<h1>Conclusions</h1>
<p style="text-indent:0;margin:0;">One may ask why all this exposition when all the operations described can be performed in the Fourier domain as the figures clearly show. Well, the reason is that the most interesting cases are when the number of samples is so small that the Fourier transform using the FFT algorithm fails to resolve the signals in question. It can be verified by setting smaller numbers <font size="+1"><tt>m</tt></font> and <font size="+1"><tt>n</tt></font>, that while capability of FFT analysis to resolve the signals decreases, SVD analysis remains unaffected by the number of samples.</p>
<p style="text-indent:0;margin:0;">&nbsp;</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=3&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/06/28/some-experiments-with-eigenanalysis-of-data-matrices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://doctuh4iah.wordpress.com/2007/06/28/hello-world/</link>
		<comments>http://doctuh4iah.wordpress.com/2007/06/28/hello-world/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 12:56:01 +0000</pubDate>
		<dc:creator>doctuh4iah</dc:creator>
				<category><![CDATA[Daily Business]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[All right now, so this is bloggin&#8217;! Wow&#8230; Well, this blog is primarily meant to be some kind of a platform where I&#8217;m going to try to formulate my ideas before I shape them into some more academic form. The reason why I choose blog is obvious: researches are usually requested to have log book. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=1&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>All right now, so this is bloggin&#8217;! Wow&#8230; Well, this blog is primarily meant to be some kind of a platform where I&#8217;m going to try to formulate my ideas before I shape them into some more academic form. The reason why I choose blog is obvious: researches are usually requested to have log book. So, I hope this could be it. It seems to give a perfect opportunity to simply put things down as they pop up in my head without any need to be accurate in mathematics or writing style &#8212; on contrary, I hope that perhaps I might even get some suggestions from  the outside world&#8230; let&#8217;s see <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p align="left">I was encouraged by blogs like <u><a href="http://sixthform.info/maths/index.php">this one</a></u> and <u><a href="http://www.artofproblemsolving.com/Community/AoPS_Y_Blog.php">this one</a></u>. Of course, a question of &#8220;scientific priority&#8221; and copyright issues came to my mind, so I did my search: <u><a href="http://sciencepolitics.blogspot.com/2006/04/publishing-hypotheses-and-data-on-blog.html" title="science and politics">this</a></u> is a very interesting blog in this regard and a very nice one, too.  <img src='http://s1.wp.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> )</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/doctuh4iah.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/doctuh4iah.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/doctuh4iah.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/doctuh4iah.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/doctuh4iah.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=doctuh4iah.wordpress.com&amp;blog=1298567&amp;post=1&amp;subd=doctuh4iah&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://doctuh4iah.wordpress.com/2007/06/28/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/f6c500dddb041467f5ea013dfa78dd09?s=96&#38;d=identicon" medium="image">
			<media:title type="html">doctuh4iah</media:title>
		</media:content>
	</item>
	</channel>
</rss>
