MATLAB中的fft后為何要用fftshift?_第1頁(yè)
MATLAB中的fft后為何要用fftshift?_第2頁(yè)
MATLAB中的fft后為何要用fftshift?_第3頁(yè)
MATLAB中的fft后為何要用fftshift?_第4頁(yè)
MATLAB中的fft后為何要用fftshift?_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 MATLAB中的fft后為何要用fftshift? 分類(lèi): Matlab 2011-08-15 10:52 581人閱讀 評(píng)論(0) 收藏 舉報(bào) fft是一維傅里葉變換,即將時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào)fftshift是針對(duì)頻域的,將FFT的DC分量移到頻譜中心即對(duì)頻域的圖像,(假設(shè)用一條水平線和一條垂直線將頻譜圖分成四塊)對(duì)這四塊進(jìn)行對(duì)角線的交換與反對(duì)角線的交換FFTSHIFT Shift zero-frequency component to center of spectrum.    For vectors, FFTSHIFT(X) swaps(交換

2、) the left and right halves of    X. For matrices, FFTSHIFT(X) swaps the first and third    quadrants and the second and fourth quadrants. For N-D    arrays, FFTSHIFT(X) swaps "half-spaces" of X along each    dimension.  

3、;  FFTSHIFT(X,DIM) applies the FFTSHIFT operation along the     dimension DIM.    FFTSHIFT is useful for visualizing the Fourier transform with    the zero-frequency component in the middle of the spectrum.fftshift就是對(duì)換數(shù)據(jù)的左右兩邊比如x=1 2 3 4fftshift(

4、x) ->3 4 1 2IFFTSHIFT Inverse FFT shift.(就是fftshift的逆)x=1     2     3     4     5;y=fftshift(x)y =     4     5     1     2  

5、60;  3ifftshift(y)ans =     1     2     3     4     5       IFFTSHIFT undoes the effects of FFTSHIFT.注意:在使用matlab的fft及fftshift時(shí),應(yīng)注意。假定采樣頻率fs,采樣間隔dt,采樣點(diǎn)數(shù)N。fft后,頻率為(0:N-1)/

6、N/dt進(jìn)行fftshift后,頻率為if mod(N,2)=0n1=(0:N-1)-N/2;elsen1=(0:N-1)-(N-1)/2;end實(shí)際上,頻率為N點(diǎn)為周期的,所以(0:N-1)所以,對(duì)于頻率0,1,2,3,4,實(shí)際上為0,1,2,-2(3-5),-1(4-5)。fftshift后的頻率為-2,-1,0,1,2對(duì)于二維fftshift,其與直接用下面的結(jié)果一樣if mod(tempN,2)=0    kx=(0:tempM-1)/tempM/dx-tempM/2/tempM/dx;% kx=kx*2*pielse    kx=(0:temp

7、M-1)/tempM/dx-(tempM-1)/2/tempM/dx;% kx=kx*2*piendkx=kx*2*pi;if mod(tempM,2)=0    ky=(0:tempN-1)/tempN/dy-tempN/2/tempN/dy;% kx=kx*2*pielse    ky=(0:tempN-1)/tempN/dy-(tempN-1)/2/tempN/dy;% kx=kx*2*piendky=ky*2*pi;temp1=sqrt(kx.2+ky.2);k1=temp1;kx,ky=meshgrid(kx,ky);如下面程序表明上面兩個(gè)相同

8、:dx=50e3;    dy=50e3;% % % % % % % % % % % tempN=41;tempM=41;% % % % % % % % % % % % % % % %determining the wavenumber kx and kyif mod(tempM,2)=0    kx=(0:tempM-1)-tempM/2;% kx=kx*2*pielse    kx=(0:tempM-1)-(tempM-1)/2;% kx=kx*2*piendkx=kx*2*pi/tempM/dx;if mod

9、(tempN,2)=0    ky=(0:tempN-1)-tempN/2;% kx=kx*2*pielse    ky=(0:tempN-1)-(tempN-1)/2;% kx=kx*2*piendky=ky*2*pi/tempN/dy;kxx,kyy=meshgrid(kx,ky);k00=sqrt(kx.2+ky.2);% % % % % % % % % % % % % % % % if mod(tempM,2)=0    temp1=tempM/2-1;    temp2=(temp1+1):(t

10、empM-1);    temp2=temp2-tempM;    temp3=0:temp1,temp2;    kx=temp3/tempM/dx;% kx=kx*2*pielse    temp1=(tempM-1)/2;    temp2=(temp1+1):(tempM-1);    temp2=temp2-tempM;    temp3=0:temp1,temp2;    kx=temp3/tempM/dx;% kx=kx*

11、2*piendkx=kx*2*pi;if mod(tempN,2)=0    temp1=tempN/2-1;    temp2=(temp1+1):(tempN-1);    temp2=temp2-tempN;    temp3=0:temp1,temp2;    ky=temp3/tempN/dy;% kx=kx*2*pielse    temp1=(tempN-1)/2;    temp2=(temp1+1):(tempN-1);  &#

12、160; temp2=temp2-tempN;    temp3=0:temp1,temp2;    ky=temp3/tempN/dy;% kx=kx*2*piendky=ky*2*pi;kx,ky=meshgrid(kx,ky);kx=fftshift(kx);ky=fftshift(ky);k=sqrt(kx.2+ky.2);figuresubplot(3,1,1),contourf(kxx-kx)subplot(3,1,2),contourf(kyy-ky)subplot(3,1,3),contourf(k00-k)%fft及fftshift示例

13、:clf;fs=100;N=256;   %采樣頻率和數(shù)據(jù)點(diǎn)數(shù)n=0:N-1;t=n/fs;   %時(shí)間序列x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信號(hào)y1=fft(x,N);    %對(duì)信號(hào)進(jìn)行快速Fourier變換y2=fftshift(y1);mag1=abs(y1);     %求得Fourier變換后的振幅mag2=abs(y2);    f1=n*fs/N;    %頻率序列f2=n*fs/N-fs/2;%這個(gè)未必正確subplot(

14、3,1,1),plot(f1,mag1,'r');   %繪出隨頻率變化的振幅xlabel('頻率/Hz');ylabel('振幅');title('圖1:usual FFT','color','r');grid on;subplot(3,1,2),plot(f2,mag1,'b');   %繪出隨頻率變化的振幅xlabel('頻率/Hz');ylabel('振幅');title('圖2:FFT without fftshi

15、ft','color','b');grid on;subplot(3,1,3),plot(f2,mag2,'c');   %繪出隨頻率變化的振幅xlabel('頻率/Hz');ylabel('振幅');title('圖3:FFT after fftshift','color','c');grid on;Matlab fftshift 詳解 - 信號(hào)處理基本功  2010-04-13 21:51:10|  分類(lèi):

16、 默認(rèn)分類(lèi) |  標(biāo)簽:matlab  radar   |字號(hào)大中小 訂閱 愿消三障諸煩惱,愿得智慧真明了,普愿罪障悉消除,世世常行菩薩道。愿以此功德。莊嚴(yán)佛凈土。上報(bào)四重恩。下濟(jì)三途苦。若有見(jiàn)聞?wù)摺Oぐl(fā)菩提心。盡此一報(bào)身。同生極樂(lè)國(guó)。 一. 實(shí)信號(hào)情況因?yàn)閷?shí)信號(hào)以fs為采樣速率的信號(hào)在 fs/2 處混疊,所以實(shí)信號(hào)fft的結(jié)果中前半部分對(duì)應(yīng)0, fs/2,后半部分對(duì)應(yīng) -fs/2, 01)實(shí)信號(hào)fft的結(jié)果前半部分對(duì)應(yīng)0, fs/2是正頻率的結(jié)果,后半部分對(duì)應(yīng) -fs/2, 0是負(fù)頻率的結(jié)果。大于fs/2的部分的

17、頻譜實(shí)際上是實(shí)信號(hào)的負(fù)頻率加fs的結(jié)果。故要得到正確的結(jié)果,只需將視在頻率減去fs即可得到頻譜對(duì)應(yīng)的真實(shí)負(fù)頻率2)如果要讓實(shí)信號(hào)fft的結(jié)果與-fs/2, fs/2對(duì)應(yīng),則要fft后fftshift一下即可,fftshift的操作是將fft結(jié)果以fs/2為中心左右互換3)如果實(shí)信號(hào)fft的繪圖頻率f從-fs/2, fs/2,并且沒(méi)有fftshift,則fft正頻譜對(duì)應(yīng)f在0, fs/2的結(jié)果將混疊到(f - fs/2)的位置;fft負(fù)頻譜對(duì)應(yīng)f在-fs/2, 0的結(jié)果混疊到 f + fs - fs/2 的位置,注意這里f為負(fù)值,也就是說(shuō)此種情況下fft負(fù)頻譜對(duì)應(yīng)的視在頻率減去fs/2即可得到頻

18、譜對(duì)應(yīng)的真實(shí)負(fù)頻率 二. 復(fù)信號(hào)情況1)復(fù)信號(hào)沒(méi)有負(fù)頻率,以fs為采樣速率的信號(hào),fft的頻譜結(jié)果是從0, fs的。2)在 f > fs/2 時(shí),對(duì)復(fù)信號(hào)的fft結(jié)果進(jìn)行fftshift會(huì)產(chǎn)生頻率混疊(將下面的示例2中的頻率從f=15改為f=85可以驗(yàn)證f=85的譜線在fftshift后跑到 f = -15 = 85 - fs = 85 - 100的位置了),所以復(fù)信號(hào)也一般要求 f <= fs/23)在對(duì)雷達(dá)的慢時(shí)間維(復(fù)信號(hào))進(jìn)行fft后,由于要用doppler = (0:LFFT-1)/LFFT  - 0.5)*PRF; 計(jì)算多普勒頻率,所以對(duì)該慢時(shí)間信號(hào)

19、fft后要fftshift下,以便和正確的頻率單元相對(duì)應(yīng)。注意多普勒頻率fd < = PRF/2 時(shí)才測(cè)的準(zhǔn)!fftshift 作用:將零頻點(diǎn)移到頻譜的中間用法:Y=fftshift(X)Y=fftshift(X,dim)描述:fftshift移動(dòng)零頻點(diǎn)到頻譜中間,重新排列fft,fft2和fftn的輸出結(jié)果。將零頻點(diǎn)放到頻譜的中間對(duì)于觀察傅立葉變換是有用的。示例1 - 實(shí)信號(hào)的情況:clf;fs=100;N=256;   %采樣頻率和數(shù)據(jù)點(diǎn)數(shù)n=0:N-1;t=n/fs;   %時(shí)間序列x=0.5*sin(2*pi*15*t)+2*sin(2*p

20、i*40*t); %信號(hào)y1=fft(x,N);    %對(duì)信號(hào)進(jìn)行快速Fourier變換y2=fftshift(y1);mag1=abs(y1);     %求得Fourier變換后的振幅mag2=abs(y2);     f1=n*fs/N;    %頻率序列f2=n*fs/N-fs/2; subplot(3,1,1),plot(f1,mag1,'r');   %繪出隨頻率變化的振幅xlabel('頻率/Hz

21、');ylabel('振幅');title('圖1:usual FFT','color','r');grid on;subplot(3,1,2),plot(f2,mag1,'b');   %繪出隨頻率變化的振幅xlabel('頻率/Hz');ylabel('振幅');title('圖2:FFT without fftshift','color','b');grid on;subplot(3,1,3),plot

22、(f2, mag2,'c');   %繪出隨頻率變化的振幅xlabel('頻率/Hz');ylabel('振幅');title('圖3:FFT after fftshift','color','c');grid on;結(jié)論: 1)如果期望繪制的幅頻圖的頻率范圍為0fs,則無(wú)需運(yùn)行fftshift變換,正頻率對(duì)應(yīng)在0, fs/2, 大于fs/2的頻譜的頻率值為對(duì)應(yīng)-fs/2  , 0 負(fù)頻率f + fs,注意f是負(fù)頻率,是個(gè)負(fù)數(shù)。如圖1。2)如果期望繪制的幅頻圖的頻率范圍為-fs/2fs/2,則需要運(yùn)行fftshift變換,如圖3;如果不變換,圖示的響應(yīng)頻點(diǎn)會(huì)發(fā)生變換,如圖2,分析見(jiàn)頂端。示例2 - 復(fù)信號(hào)的情況:close all; clear; clf;fs=100;N=256;   %采樣頻率和數(shù)據(jù)點(diǎn)數(shù)n=0:N-1;t=n/fs;   %時(shí)間序列x=0.5*exp(j*2*pi*15*t)+2*exp(j*2*pi*40*t); %

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論