在學(xué)習(xí)數(shù)字信號(hào)處理時(shí),很多種頻率很容易搞混淆,有模擬/數(shù)字/頻率/角頻率等等,也不是特別清楚不同頻率之間的關(guān)系,希望這篇文件可以為各種頻率來(lái)個(gè)了結(jié).
4種頻率及其數(shù)量關(guān)系
實(shí)際物理頻率表示物理信號(hào)的真實(shí)頻率; fs為采樣頻率,表示ADC采集物理信號(hào)的頻率,由奈奎斯特采樣定理可以知道,fs必須≥信號(hào)最高頻率的2倍才不會(huì)發(fā)生信號(hào)混疊,因此fs能采樣到的信號(hào)最高頻率為fs/2。
角頻率Ω是物理頻率的2π倍, 這個(gè)也稱模擬頻率。
歸一化頻率是將物理頻率按fs歸一化之后的結(jié)果,最高的信號(hào)頻率為fs/2對(duì)應(yīng)歸一化頻率0.5(ω=π),這也就是為什么在matlab的fdatool工具中歸一化頻率為什么最大只到0.5的原因。歸一化頻率中不含fs的信息.
圓周頻率是歸一化頻率的2*pi倍,這個(gè)也稱數(shù)字頻率ω。

有關(guān)FFT頻率與實(shí)際物理頻率的分析
做n個(gè)點(diǎn)的FFT,表示在時(shí)域上對(duì)原來(lái)的信號(hào)取了n個(gè)點(diǎn)來(lái)做頻譜分析,n點(diǎn)FFT變換的結(jié)果仍為n個(gè)點(diǎn)。
換句話說(shuō),就是將2π數(shù)字頻率ω分成n份,而整個(gè)數(shù)字頻率ω的范圍覆蓋了從0-2π*fs的模擬頻率范圍。這里的fs是采樣頻率。而我們通常只關(guān)心0-π中的頻譜,因?yàn)楦鶕?jù)奈科斯特定律,只有f=fs/2范圍內(nèi)的信號(hào)才是被采樣到的有效信號(hào)。那么,在w的范圍內(nèi),得到的頻譜肯定是關(guān)于n/2對(duì)稱的。
舉例說(shuō),如果做了16個(gè)點(diǎn)的FFT分析,你原來(lái)的模擬信號(hào)的最高頻率f=32kHz,采樣頻率是64kHz,n的范圍是0,1,2...15。這時(shí),64kHz的模擬頻率被分成了16分,每一份是4kHz,這個(gè)叫頻率分辨率。那么在橫坐標(biāo)中,n=1時(shí)對(duì)應(yīng)的f是4kHz, n=2對(duì)應(yīng)的是8kHz, n=15時(shí)對(duì)應(yīng)的是60kHz,你的頻譜是關(guān)于n=8對(duì)稱的。你只需要關(guān)心n=0到7以內(nèi)的頻譜就足夠了,因?yàn)?,原?lái)信號(hào)的最高模擬頻率是32kHz。
這里可以有兩個(gè)結(jié)論:
必須知道原來(lái)信號(hào)的采樣頻率fs是多少,才可以知道每個(gè)n對(duì)應(yīng)的實(shí)際頻率是多少,第k個(gè)點(diǎn)的實(shí)際頻率的計(jì)算為f(k)=k*(fs/n)
你64kHz做了16個(gè)點(diǎn)FFT之后,因?yàn)轭l率分辨率是4kHz,如果原來(lái)的信號(hào)在5kHz或者63kHz有分量,你在頻譜上是看不見(jiàn)的,這就表示你越想頻譜畫(huà)得逼真,就必須取越多的點(diǎn)數(shù)來(lái)做FFT,n就越大,你在時(shí)域上就必須取更長(zhǎng)的信號(hào)樣本來(lái)做分析。但是無(wú)論如何,由于離散采樣的原理,你不可能完全準(zhǔn)確地畫(huà)出原來(lái)連續(xù)時(shí)間信號(hào)的真實(shí)頻譜,只能無(wú)限接近(就是n無(wú)限大的時(shí)候),這個(gè)就叫做頻率泄露。在采樣頻率fs不變得情況下,頻率泄漏可以通過(guò)取更多的點(diǎn)來(lái)改善,也可以通過(guò)做FFT前加窗來(lái)改善,這就是另外一個(gè)話題了。
為什么抽取/內(nèi)插看起來(lái)對(duì)頻譜有影響?
在數(shù)字信號(hào)處理時(shí),經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行抽取或者內(nèi)插處理.抽取之后的頻率展寬了n倍,內(nèi)插之后的頻率壓縮了n倍,從而需要在變采樣率之后添加抗混疊濾波器.但是實(shí)際上信號(hào)的頻率在抽取/內(nèi)插的前后并沒(méi)有發(fā)生變化.這里的核心原因是:歸一化頻率失去了采樣率fs信息.
抽取和內(nèi)插的實(shí)質(zhì)是采樣率fs的變化
舉個(gè)例子:
我們?cè)O(shè)定fs=30.72MHz,使用3個(gè)cw信號(hào)的合成信號(hào)代表一個(gè)BW=8MHz的寬帶信號(hào),使用實(shí)際頻率來(lái)表示信號(hào),看到BW沒(méi)有變化,使用數(shù)字頻率w來(lái)表示信號(hào),信號(hào)的BW似乎被壓縮了.
Q: 為什么要在歸一化頻率下來(lái)分析信號(hào)?
歸一化頻率
clear all;
close all;
fs = 30.72e6;
ts = 1/fs;
nFFT=4096;
%nFFT=32768;
t=0:ts:(nFFT-1)*ts;
d0=100*sin(2*pi*10e6*t);
d1=50*cos(2*pi*5e6*t);
d2=10*cos(2*pi*2e6*t);
dSum=d0+d1+d2;
dFFT = abs(fftshift(fft(dSum,nFFT)))/(nFFT/2);
%dFFT = abs(fft(dSum,nFFT))/(nFFT/2);
fAxis = (-1/2*nFFT:(1/2*nFFT-1))/nFFT*fs;
figure(1)
subplot(2,1,1)
plot(fAxis,dFFT)
title(‘original signal’)
subplot(2,1,2)
dSumI= zeros(1,2*nFFT);
for k =1:nFFT
dSumI(2*k) = dSum(k);
end
dFFTI = abs(fftshift(fft(dSumI,2*nFFT)))/(nFFT);
fAxisI = (-nFFT:(nFFT-1))/(2*nFFT)*fs*2; %fs double
plot(fAxisI,dFFTI)
title(‘interpolated signal’)
figure(2)
subplot(2,1,1)
wAxis = 2*pi*(-1/2*nFFT:(1/2*nFFT-1))/(nFFT);
plot(wAxis,dFFT)
set(gca,‘XTick’,-2*pi:pi/2:2*pi)
title(‘original signal normalize’)
subplot(2,1,2)
wAxisI = 2*pi*(-nFFT:(nFFT-1))/(2*nFFT);
plot(wAxisI,dFFTI)
set(gca,‘XTick’,-2*pi:pi/2:2*pi)
title(‘interpolated signal normalize’)
-
數(shù)字信號(hào)處理
+關(guān)注
關(guān)注
16文章
571瀏覽量
47801 -
頻率
+關(guān)注
關(guān)注
4文章
1585瀏覽量
62077
發(fā)布評(píng)論請(qǐng)先 登錄
數(shù)字信號(hào)處理MATLAB版資料分享
地的分割和數(shù)字信號(hào)的關(guān)系
超高速雷達(dá)數(shù)字信號(hào)處理技術(shù)
基于FPGA數(shù)字信號(hào)處理
DSPBuilder在數(shù)字信號(hào)處理中的應(yīng)用
數(shù)字信號(hào)處理技術(shù)中不同頻率之間的關(guān)系
評(píng)論