題述
有一調幅信號$x_\alpha (t)=[1+cos(2\pi \times 100t)]cos(2\pi \times 600t)$,用DFT做頻譜分析,要求能分辨出$x_\alpha (t)$的所有頻率分量。
理論分析
本題考察的是對時域采樣和頻域采樣的理解。
對於時域采樣,不失真的條件是$f_s > 2f_h$,即采樣頻率必須大於信號的最大頻率分量;其次,我們還能得到數字頻率量和模擬頻率之間的關系:$\omega = \Omega T$,T為采樣的時間間隔,該關系是由以下變換得到的:
$x_a(t)=Asin(\Omega t + \varphi ) \rightarrow x(n)=Asin(\Omega nT + \varphi )=Asin(\omega n + \varphi )$
對於頻域采樣,DFT實際上是對Z域單位圓上的等間隔采樣,假設輸入的有限長序列長度為N,則采樣間隔$\Delta \omega = \frac{2 \pi}{N}$。結合時域采樣,可知DFT變換的結果$X(k)$各頻率點對應的模擬頻率為$\Omega = \frac{2 \pi k}{NT}$,頻譜的分辨率為$\Delta f = \frac{1}{NT}$。
顯然,如果時域信號里的有較大的頻率分量,那么為了保證不失真,就要增大采樣頻率;但是這樣一來會使得頻譜分辨率變大,更多的頻率分量會被忽略,所以必須增大序列長度N,也就是在時域采更多的點。
題目中的調幅信號可以簡化為$x_\alpha (t)=cos(2\pi \times 600t) + \frac{1}{2}cos(2\pi \times 700t)+ \frac{1}{2}cos(2\pi \times 500t)$。最高頻率為700Hz,那么采樣頻率需滿足$f_s > 1.4kHz$,這里取$f_s = 3kHz$;因為信號最小的頻率差是100Hz,於是可得$N > 30$。實驗中一般選擇2的冪次方,利用FFT加速計算。
實驗結果
這里對比了N=32和N=512的兩種情況,在N=32時,由於截斷了較少的數據點,頻譜發生了嚴重的泄露,導致其他分量上也出現了較大的幅值;N=512時,頻域采樣較密,結果更精確。
另外還應注意到,得到的兩個頻譜都關於$\omega = \pi$對稱。事實上,由於采樣條件$f_s > 2f_h$的限制,使得有效的數字頻率$|\omega| = \Omega T \leq \frac{2\pi f_h}{f_s} \leq \pi$。也就是說,在$\omega = \pi$的附近是高頻,而0和$2\pi$則是低頻。有時候,$w=0 \sim \pi$的頻譜就完全可以表示時域信號的頻率特性,只是DFT是在$w=0 \sim 2\pi$上多采樣了半個周期罷了。當然,有時候頻譜並不是關於$\omega = \pi$對稱的,還得看頻域的采樣點是否能取到$\omega = \pi$。