DFT泄露问题和DFT的频率轴表示方法(第三章离散傅里叶变换(3.8,3.13.4)学习笔记)
文章目錄
- 1、DFT泄露原因
- 2、DFT的頻率軸
- 1、以Hz為單位的頻率軸
- 2、以Fs歸一化的DFT頻率軸
- 3、使用歸一化角度的DFT頻率軸
1、DFT泄露原因
一個被稱之為“”泄露“”的特性使得DFT結果只是數字采樣前原始輸入信號真實譜的近似。
我們知道分析頻率是 f(analysis)=(mFs)/N (m取整數)
如果輸入信號在分析頻率 mFs/N 上存在信號分量,如1.5Fs/N(m非整數的地方) ,那么在某種程度上這個輸入信號將會在DFT所有N個輸出分析頻率樣值上出現。
下面把連續信號改為3.4,頻譜精度為1,這樣分辨率就不夠了,產生了泄露,從公式上來講m只能取整數,取不到3.4。
clear;%清除內存 close all;%關閉所有圖形 x=sin(2*pi*(0:63)*3.4/64);%產生某時段的正弦信號;連續信號頻率3.4 采樣頻率64 figure; plot(x);%畫圖 grid on;%并打網格 title('時域可分信號','FontSize',14); ylabel('x(n)','FontSize',14); xlabel('n','FontSize',14);%標注X軸,Y軸坐標 xf=fft(x,64);%FFT(X,N)是N點的FFT,如果X小于0,就用0填充 figure; plot((0:63)*64/64,abs(xf(1:64))); grid on;%畫圖 xlabel('KHZ','FontSize',14); ylabel('信號頻譜','FontSize',14);%標注XY軸坐標 title('信號頻譜','FontSize',14);
現在我們再來更改輸入序列,看是否會導致頻譜泄露。
現在把輸入序列的點數改為201個點,大于了做FFT的64個點。分辨率是1hz
并不產生DFT泄露。
下面,我們再把輸入序列的點數小于做FFT的點數。改為61個輸入序列點,發生泄露
clear;%清除內存
close all;%關閉所有圖形
x=sin(2pi(0:60)*3/64);%產生某時段的正弦信號;連續信號頻率0.5 采樣頻率10
figure;
plot(x);%畫圖
grid on;%并打網格
title(‘時域可分信號’,‘FontSize’,14);
ylabel(‘x(n)’,‘FontSize’,14);
xlabel(‘n’,‘FontSize’,14);%標注X軸,Y軸坐標
xf=fft(x,64);%FFT(X,N)是N點的FFT,如果X小于0,就用0填充
figure;
plot((0:63)*64/64,abs(xf(1:64)));
grid on;%畫圖
xlabel(‘KHZ’,‘FontSize’,14);
ylabel(‘信號頻譜’,‘FontSize’,14);%標注XY軸坐標
title(‘信號頻譜’,‘FontSize’,14);
下面我們把采樣率也改改,看與FFT的點數有什么關系么?
clear;%清除內存
close all;%關閉所有圖形
x=sin(2pi(0:63)*3.5/32);%產生某時段的正弦信號;連續信號頻率3.5 采樣頻率32
figure;
plot(x);%畫圖
grid on;%并打網格
title(‘時域可分信號’,‘FontSize’,14);
ylabel(‘x(n)’,‘FontSize’,14);
xlabel(‘n’,‘FontSize’,14);%標注X軸,Y軸坐標
xf=fft(x,64);%FFT(X,N)是N點的FFT,如果X小于0,就用0填充
figure;
plot((0:63)*32/64,abs(xf(1:64)));
grid on;%畫圖
xlabel(‘KHZ’,‘FontSize’,14);
ylabel(‘信號頻譜’,‘FontSize’,14);%標注XY軸坐標
title(‘信號頻譜’,‘FontSize’,14);
通過上面的實際仿真,我們驗證了DFT泄露有兩種原因,
第一原因,就是Fs/N分辨率不夠。
第二原因,就是輸入序列的點數小于了做FFT的點數。
特別提醒:與輸入序列是不是一個周期沒有關系!,這種情況依然能夠輸出正常的DFT。
輸入序列是一個完整周期或者非完整周期均可。你不信!我們實驗數據來看看。
下面是輸入序列N=71個點??隙ú皇钦闹芷诎?/strong>
**下面是頻譜,清晰可見!沒有泄露!!!!!**這里只取了一半
所以,我們可以得出造成泄露的兩大原因:1,點數小于了FFT點數。2 分辨率不夠
另外,我們再想一下那個公式k代表啥k,就是代表的就是真實模擬頻率!模擬頻率如果剛好等于頻譜數字化的頻率m,落在了分辨率上,那么,就不會造成泄露!
實際信號中,我們的信號頻率不可能剛好在一個整數上,說不定是3.11111111hz,不可能剛好精確3hz,所以必然產生分辨力不夠的問題,從而必然產生DFT泄露。
這里,我還要額外補充一點,書中說,周期輸入信號和非周期輸入信號也會導致DFT泄露,這一點,其實是這樣的,如果點數足夠大于了FFT點數,且滿足了頻率分辨率的情況下,確實是存在這樣的情況,由周期影響,但是,現實生活中,由于噪聲總是存在的,根本就沒有理想的周期信號,所以一段看似周期的信號都是不能代表原始信號的,所以必然存在頻譜泄露。
2、DFT的頻率軸
1、以Hz為單位的頻率軸
以HZ為單位,Fs/N,即為分辨率,長度為Fs為一個周期循環。2、以Fs歸一化的DFT頻率軸
以Fs歸一化的DFT,需要將信號的頻率f /Fs 進行歸一化,最大頻率為1,以1為一個循環,分辨率是1/N,單位為周期/樣值。3、使用歸一化角度的DFT頻率軸
頻率變量為w,頻率分辨率是2π/N,重復間隔是2π,以2π為一個循環。總結
以上是生活随笔為你收集整理的DFT泄露问题和DFT的频率轴表示方法(第三章离散傅里叶变换(3.8,3.13.4)学习笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的书法记录--2018.12.2
- 下一篇: 3.9 降低DFT泄露的一种办法---