楊晉霞 汪東芳
摘要:利用MATLAB對信號頻譜進行分析,通過兩種方法將頻譜橫軸的快速傅里葉變換點數(shù)轉(zhuǎn)換成頻率。以常見信號頻譜分析為例,將結(jié)果以圖形化的方式顯示出來。通過MATLAB仿真,使以往抽象的內(nèi)容具體化。
關(guān)鍵詞:頻譜分析;MATLAB;快速傅里葉變換;仿真
中圖分類號:TN911.6 文獻標識碼:A 文章編號:1009-3044(2016)19-0240-01
1 背景
信號的頻域分析在信號處理中非常重要。MATLAB 軟件作為一種科學計算工具,因其功能強大,被越來越多的科研和工程技術(shù)人員用來進行科學研究與計算。MATLAB提供的豐富的計算函數(shù)和繪圖命令,很方便實現(xiàn)信號頻域分析這一抽象理論的可視化,為信號分析提供了方便。
2 傅里葉變換
信號的分析方法包括時域分析方法和頻率域分析方法兩種。傅里葉變換可以用于連續(xù)時間信號系統(tǒng)和離散時間系統(tǒng)的頻率分析中,其中常用的是離散傅里葉變換( DFT)和快速傅里葉變換(FFT)。
設(shè) x (n) 為 N 點的有限長序列,其離散傅里葉變換為F(k),從公式中可以看出,離散信號的傅里葉變換需要N2-N次復(fù)數(shù)加法和N2次復(fù)數(shù)乘法運算。當N很大時,運算時間會很長,要求設(shè)備較復(fù)雜,影響了離散傅里葉變換的使用。
Cooley- Tukey于1965年發(fā)表的快速傅立葉變換算法 , 使得信號處理中傅立葉變換和卷積的計算量從 N2量級降到了 Nlog2N量級, 為數(shù)字信號處理的發(fā)展史揭開了新的一頁。 它利用了傅里葉變換式中旋轉(zhuǎn)因子W的對稱性和周期性,使長序列的 DFT分解為更小點數(shù)的 DFT,從而大大減少了運算工作量,計算量銳減使FFT得到了極大地推廣。
3 仿真分析
文中采用MATLAB7.0仿真平臺,產(chǎn)生一個連續(xù)時間信號并生成其頻譜。以頻率為1Hz和2Hz的余弦信號x(t)和y(t)為例,采樣間隔取ts=1/100s,利用matlab中函數(shù)fft對其進行4096點的快速傅立葉變換。得到的頻譜橫軸為采樣點數(shù),縱軸為頻譜幅值,從圖中無法確定頻譜幅值非零位置對應(yīng)的頻率,即不能確定信號的頻譜范圍。
于是采用兩種方法對橫坐標的采樣點數(shù)進行改進,將采樣點轉(zhuǎn)換為頻率值。第一種方法仍然是對頻率為1Hz和2Hz的余弦信號x(t)和y(t)信號進行4096點的FFT變換,進行變換后,將頻譜中心搬到零頻,再求幅頻值,最后對橫軸進行了處理,實現(xiàn)了指定點傅里葉變換圖。代碼如下:
z1=fft(x,4096);%使信號x(t)產(chǎn)生4096點的傅里葉變換
z=fftshift(z1);%移動頻譜中心到零頻
z=abs(z);%求幅頻值
u1=fft(y,4096);% 使信號y(t)產(chǎn)生4096點的傅里葉變換
u=fftshift(u1); %移動頻譜中心到零頻
u=abs(u); %求幅頻值
a=[-2048:2047]*fs/4096;%將橫坐標點數(shù)轉(zhuǎn)換為頻率
第二種方法是對頻率為1Hz和2Hz的余弦信號x(t)和y(t)信號進行FFT變換,然后移動頻譜中心到零頻,求幅頻值,最后將橫軸采樣點和頻率進行轉(zhuǎn)換,得到了橫軸為頻率的頻譜圖。其代碼為:
z1=fft(x);%對信號x(t)進行傅里葉變換
z=fftshift(z1);%移動頻譜中心到零頻
z=abs(z);%求幅頻值
u1=fft(y);% 對信號y(t)進行傅里葉變換
u=fftshift(u1); %移動頻譜中心到零頻
u=abs(u); %求幅頻值
l=length(t);%計算信號的長度
a=0:fs/(l-1):fs;
a=a-fs/2;%將橫軸轉(zhuǎn)換為頻率
圖1為橫軸轉(zhuǎn)換成頻率的1Hz和2Hz余弦信號頻譜,其中1(a)和1(b)為采用第一種方法轉(zhuǎn)換得到的頻譜圖,2(a)和2(b)為采用第二種方法轉(zhuǎn)換得到的頻譜圖。從圖中可以看出,通過這兩種方法都可以確定頻率在哪個位置幅頻值不為零,和理論分析結(jié)果一致,將抽象的概念和復(fù)雜的公式計算通過圖形表示出來,使我們對信號的頻譜分析更容易。
4 結(jié)束語
MATLAB是通信、電子專業(yè)的實驗仿真工具。MATLAB的通信工具箱是一個運算函數(shù)和仿真模塊的集合體, 可以用來進行通信領(lǐng)域的研發(fā)、系統(tǒng)設(shè)計和仿真分析。將MATLAB引入信號頻譜分析中,通過觀察MATLAB生成的信號時域波形和頻譜圖,方便直觀地給出信號頻譜分布情況,文中采用兩種方法將橫軸的FFT點數(shù)轉(zhuǎn)換成頻率,仿真得到的結(jié)果與理論分析一致。
參考文獻:
[1] 程鈴, 徐冬冬. Matlab仿真在通信原理教學中的應(yīng)用[J]. 實驗室研究與探索, 2010, 29(2): 117-119.
[2] 胡麗瑩, 肖蓬. 快速傅里葉變換在頻譜分析中的應(yīng)用[J]. 福建師范大學學報, 2011, 27(4):27-30.
[3] 徐巖, 張曉明. 基于離散傅里葉變換的頻譜分析新方法[J]. 電力系統(tǒng)保護與控制, 2011,39(11):38-43.