>> stem(k,abs(X)) >> grid
>> xlabel('k');ylabel('|X[k]|');
图6-1
理论分析如下:
由欧拉公式得:x[n]?cos(2?2?12??7n)?cos(?19n) N2N2?2?2?j?(N?7n)1j?7n1j?19n1jN?(N?19n)?eN?eN?e) ?(eN222
对p[n]?ej2??knN,其2N点的DFT变换为:
2N?1 p[m]??p[n]en?0?j2?mn2N?2N?1j2?n(2k?m)2N?en?0
当2k?m时,p[m]?1?ej2??2N(2k?m)2Nj2?(2k?m)2N =0
1?e 当2k?m时,即p[2k]?2N
由此可得x[k]当k=14,38,90,114时有值其余为0(0?k?2N?1)
x[14]?x[114]?64,x[38]?x[90]?32 与图6-1有相同的结论。
例2 考虑x(n)?cos(0.48?n)?cos(0.52?n)
(1) 取x(n)(0?n?10)时,求x(n)的DFT : X(k);
(2) 将(1)中的x(n)以补零方式使x(n)加长到0?n?100,求X(k); (3)取x(n)(0?n?100),求X(k)
要求画出x(n)和X(k),并比较(1)~(3)的结果。
解:首先定义DFT和IDFT function[XK]=dft(xn,N)
n=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk; XK=xn*WNnk;
function[xn]=idft(Xk,N)
n=[0:1:N-1]; k=[0;1:N-1]; WN=exp9(-j*pi/N); nk=n'*k; WNnk=WN.^(-nk);
xn=(Xk*WNnk)/N;
(1)x(n)的10点DFT
n=[0:1:99];
x=cos(0.48*pi*n)+cos(0.52*pi*n); n1=[0:1:9];y1=x(1:1:10); subplot(211);
stem(n1,y1);title('sign x(n),n[0,9]'); axis([0,10,-2.5,2.5]);text(10.2,-2.5,'n') Y1=dft(y1,10);
magY1=abs(Y1(1:1:6)); k1=0:1:5;
w0=pi*2/10*k1;
subplot(212);stem(w0/pi,magY1); title('在频域dtft分析'); xlabel('单位 pi')
由于采样的频率太小,在上图中无法确定x(n)由两个频率成分组成的。
(2) 以补零方式将x(n)加长到100个样本
n2=[0:1:99];
y2=[x(1:1:10) zeros(1,90)]; subplot(211); stem(n2,y2);
title('信号x(n),0<=n<=9+90zeros'); Y2=dft(y2,100);
magY2=abs(Y2(1:1:51));
k2=0:1:50;
w2=2*pi/100*k2; subplot(212);
plot(w2/pi,magY2);
title('DTFT幅度'); xlabel('频率(单位:pi)')
实验内容:用fft函数代替例2中的dft函数后,看看运行结果如何?
例3:用FFT分析信号频率成分
一被噪声污染的信号,很难看出它所包含的频率分量,如一个由50Hz和150Hz正弦信号构成的信号,受到均值为零、均方差为0.5的高斯随机信号的于扰,数据采样率fs=500Hz.通过FFT来分析其信号频率成分,用matlab实现如下:
fs=500; %采样频率fs=500Hz. t=0:1/fs:1; %采样周期为1/fs.
f=sin(2*pi*50*t)+sin(2*pi*150*t); % 产生信号f(t) subplot(3,1,1);plot(t,f);title('原始信号'); y=f+0.5*randn(1,length(t)); %加噪
subplot(3,1,2);plot(t,y);title('受噪声污染的信号'); N=256;
Y=fft(y,N); %对加噪信号进行FFT k=0:N-1; f=fs*k/N;
subplot(3,1,3);plot(f,abs(Y));title('FFT(幅度谱)');
(由频谱图可见,在50Hz和150Hz各出现很长的谱线,表明含噪信号y中含有这二个频率的信号.在350Hz和450Hz处也出现很长的谱线,这并不是说y中也含350Hz和450Hz的信号,这是由于采样信号的频谱是以采样频率fs为间隔周期出现而造成的)
注意: 当采样频率fs>2fm=2*150=300 Hz时,满足奈奎斯特抽样定理条件,不会产生频谱混迭现象.当fs<300 Hz时则会产生频谱混迭现象. F(?)1 T 0?s>2 ?m
??????? 不发生混叠
F(?)1 T
?s<2 ?m
发生混叠
???? 0 F(?)1T ?s=2 ?m 临界 ????0
例4 傅里叶变换的频移特性 sssmms1sss1sss若F(f(t)]=F(ω),则
F[f(t)ej?0t]?F(ω-?0)
例:设f(t)=sin(400? t),ω0=200?.
fs=1000; %采样频率fs=1000Hz. t=0:1/fs:1;
y1=sin(400*pi*t);
y2=sin(400*pi*t).*exp(j*200*pi*t); N=512;
Y1=fft(y1,N); Y2=fft(y2,N);
subplot(3,1,1);plot(t,y1); k=0:N-1; f=fs*k/N;
subplot(3,1,2);plot(f,abs(Y1)); subplot(3,1,3);plot(f,abs(Y2));
三、实验内容 1.2N点实数序列
2?12????cos(7n)?cos(19n),n?0,1,2,...,2N?1?x(n)??? N2N??0,其它n??N=64。用一个64点的复数FFT程序,一次算出
X(k)?DFT[x(n)]2N,并绘出X(k)。
2.用fft函数代替例2中的dft函数后,看看运行结果如何? 3. 设f(t)= 5sin(2*pi*30*t)+2sin(2*pi*60*t)+0.5sin(2*pi*90*t). . 对f(t)分别以fs1=300 Hz和fs2=150 Hz进行采样,然后将二个采样信号进行快速离散傅里叶变换(FFT),观察频谱图,指出是否产生频谱混迭现象.
4.将上题中的f(t)的频谱右移100Hz.