大多数学生可能对FFT变换后的共轭对称特性有所了解,但怎么利用共轭对称特性经IFFT转换为实数序列会些困难,因为在书中有几处会用到这样的特性,所以在这里先介绍共轭对称特性,再说明IFFT得实数序列。
FFT后的共轭对称特性为X(k)=X*(N-k)(其中k=0,1,…,N-1),严格地说,共轭对称轴在k=0处(但在MATLAB中下标或索引从1开始,此时共轭对称轴在k=1处)。以下用一个8点随机数的FFT来观察。程序清单为
x=randn(1,8);
X=fft(x);
X1=fftshift(X);
subplot 221; stem(real(X),'k');
subplot 222; stem(imag(X),'k');
subplot 223; stem(real(X1),'k');
subplot 224; stem(imag(X1),'k');
序列x经FFT后为X,又经fftshift后改为X1,其图如下。图中标出了Xr和Xi,标明X的实部和虚部,对X1也是一样标出实部和虚部。
为了说明方便起见,图中标出了Xr(1)~Xr(8)和 Xi(1)~Xi(8),在X1图中也把X的Xr(1)~Xr(8)和 Xi(1)~Xi(8)也标注出来。在X1的实部图中可以看出以Xr(1)相当于是一条对称轴的轴线,Xr(2)=Xr(8)、Xr(3)=Xr(7)、Xr(4)=Xr(6);在X1的虚部图中也可以看出Xr(1)相当于反对称的轴线,Xi(2)=-Xi(8)、Xi(3)=-Xi(7)、Xi(4)=-Xi(6)。在这8条谱线中X (1)和X(5)都不和其它谱线具有对称性的,X (1)永远可以做对称轴。
按K=0,1,…,N-1,对称关系式为X(k)=X*(N-k),若按K=1,…,N,对称关系式为X(k)=X*(N-k+2)。
在N是偶数时可以延伸把X(5),相当于X(N/2+1)也可以作为对称轴。从X的实部图中可看到Xr(4)=Xr(6) 、Xr(3)=Xr(7)、Xr(2)=Xr(8);从X的虚部图中可看到Xi(4)=-Xi(6) 、Xi(3)=-Xi(7)、Xi(2)=-Xi(8)。同上以X (1)为对称轴时得的结果一样。
对果我们要取局部的谱线进行反变换。为了保证反变换后还是实数序列,在取有限谱线时还要保留谱线的共轭对称的特性(这样选取IFFT后理论上为实数序列,但由于在MATLAB中计算机计算误差的存在,常常虚部还有数值,但都很小,所以在反变换后还用real函数取实部)。例如我们在正频率区间取X(2:3)两条谱线,为了保留谱线共轭对称性,按上的讨论在负频应取X(7:8)两条谱线。如果还要保留直流分量,则在正频率区间取X(1:3)叁条谱线。
当序列长N,取m条谱线(不包括直流分量),则取谱线有
X(1:m+1) ~ X(N-m+1:N),或X(end-m+1:end)
这是在pr3_1_1中用的关系式。若在m条谱线中已包含了直流分量,可把上关系变换一下:
X(1:m+1) ~ X(N-m+1:N),或X(end-m+1:end)
设j=m+1,则有m=j-1,代入上式得
X(1:j) ~ X(N-j+2:N),或X(end-j+2:end)
这就是在第9章中程序pr9_2_1用到的关系式。
mg01as.jpg
(34.87 KB, 下载次数: 17)
2013-11-27 10:10 上传