fft算法的matlab實(shí)現(xiàn)過程詳解
? ? ? ? (一) 實(shí)驗(yàn)?zāi)康模?理解離散傅立葉變換時(shí)信號(hào)分析與處理的一種重要變換,特別是FFT 在數(shù)字信號(hào)處理中的高效率應(yīng)用。
?。ǘ?實(shí)驗(yàn)原理:
1、有限長序列x(n)的DFT的概念和公式:
2、FFT 算法
調(diào)用格式是
X= fft(x) 或X=fft(x.N)
對(duì)前者,若x 的長度是2的整數(shù)次冪,則按該長度實(shí)現(xiàn)x 的快速變換,否則,實(shí)現(xiàn)的是慢速的非2的整數(shù)次冪的變換; 對(duì)后者,N應(yīng)為2的整數(shù)次冪,若x的長度小于N,則補(bǔ)零,若超過N,則舍棄N 以后的數(shù)據(jù)。Ifft 的調(diào)用格式與之相同。
?。ㄈ?實(shí)驗(yàn)內(nèi)容
l、題- ~:若x(n)=cos(n*pi/6)是- 一個(gè)N=l2 的有限序列,利用MATLAB 計(jì)算它的
DFT 并畫出圖形。
源程序:
clc;
N=12;
n=0:N- 1;
k=0:N- 1;
xn=cos( n *pi/6);
W=exp(-j* 2* pi/N );
kn=n‘*k
Xk=xn*(W.^kn)
stem( n,Xk );
xlabel(k
ylabel(Xk’);
gridon ;
也可用FFT 算法直接得出結(jié)果,程序如F:
clc;
N=l2;
n=0: N- 1;
xn=cos(n*pi/6);
Xk=fft(xn,N):
stem( n,Xk );
xlabel( k );
ylabel( Xk‘);
gridon;
實(shí)驗(yàn)結(jié)果
分析實(shí)驗(yàn)結(jié)果:
用DFT 和用FFT對(duì)序列進(jìn)行運(yùn)算,最后得到的結(jié)果相同。但用快速傅立葉變換的運(yùn)算速度可以快很多。
2、題二:一被噪聲污染的信號(hào),很難看出它所包含的頻率分量,如- -個(gè)由50HZ和120HZ 正弦信號(hào)構(gòu)成的信號(hào),受均值隨機(jī)噪聲的干擾,數(shù)扒采樣率為1000Hz,
通過FFT 來分析其信號(hào)頻率成分,用MATLAB實(shí)現(xiàn)。
源程序:
clc;
fs = 1000;
N=1024;
n=0:N- l;
t=n/fs;
x=sin(2*pi*50*t)+sin(2*pi* 120*[)+rand( l,N);
y=fft(x,N );
mag=abs( y );
f=n t fs/N ;
subplot( l,2,l),plot(f,mag );
xlabel(頻率/Hz‘);
ylabel(振幅’);title( N= 102 4);grid on;
subplot( 1,2,2),plot(f( l:N/2),mag( 1:N/2 );
xlabel(“頻率/Hz);
ylabel(振幅);title( N= 1024 );grid
on;
實(shí)驗(yàn)結(jié)果;
分析實(shí)驗(yàn)結(jié)果:
用FFT 運(yùn)算,將序列轉(zhuǎn)變到頻域上,雖然信號(hào)受到均值隨機(jī)噪聲的干擾,但分析頻譜可清楚看到原信號(hào)的頻率,50Hz 120Hz。
3、題三:調(diào)用原始語音信號(hào)mtlb,對(duì)其進(jìn)行FFT 變換尼去掉幅值小于1的FFT最后重構(gòu)語音信號(hào)。變換值,最后重構(gòu)語言信號(hào)。
(要求有四幅語音信號(hào)的頻譜圖在同一圖形窗口以便比較: 分別是1、原始語音信號(hào);2、FFT 變換; 3 去掉幅值小于1的FFT 變換值;4、重構(gòu)語音信號(hào))
源程序:
clc;
load mtlb
% Load data
N=512;
subplot(2,2,l)
plot([ l:N],mtlb( 1:N));
title(屬i始語音信號(hào)‘); grid;
y=ff(mtlb( 1:N));
評(píng)論
查看更多