用FFT对信号作频谱分析

更新时间:2024-03-17 18:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三:用FFT对信号作频谱分析 一、实验原理与方法

1、用FFT对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2?N,因此要求2?N?D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近连续谱,因此N要适当选择大一些。

2、周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。

3、对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

二、实验内容

1、对以下序列进行FFT谱分析: x1(n)?R4(n)

??n?1 x2(n)??8?n??00?n?34?n?7其他n

??4?n0?n?3 x3(n)??n?34?n?7

?其他n?0选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析。程序见附录3.1、实验结果见图3.1。 2、对以下周期序列进行谱分析:

?x4(n)?cosn

4

??x5(n)?cosn?cosn

48

选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。程序见附录3.2、实验结果见图3.2。 3、对模拟周期信号进行频谱分析:

x6(t)?cos8?t?cos16?t?cos20?t

选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。程序见附录3.3、实验结果见图3.3。

4、已知有序列:

??n?1 x2(n)??8?n??00?n?34?n?7其他n

??4?nx3(n)??n?3??0 0?n?34?n?7其他n

x9(n)?x2(n)?jx3(n)

对x9(n)选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析。程序见附录3.4、实验结果见图3.4。

1,2,3,3,2,1?。 5、已知序列x(n)??(1)求出x(n)的傅里叶变换X(ejw),画出幅频特性相频特性曲线(提示:用1024点FFT近似X(ejw));

(2)计算x(n)的N(N?6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线;

(3)将X(ejw)和X(k)的幅频特性和相频曲线特性分别画在同一幅图中,验证

X(k)是X(ejw)的等间隔采样,采样间隔为2?/N;

(4)计算X(k)的N点IDFT,验证DFT和IDFT的唯一性。程序见附录3.5、实验结果见图3.5、3.6、3.7。

6、选择合适的变换区间长度N,用DFT对下列信号进行谱分析,画出幅频特性和相频特性曲线。程序见附录3.6、实验结果见图3.8、3.9。

x2(n)?sin(0.45?n)sin(0.55?n)

x3(n)?2

?n1R21(n?10)

三、实验结果和分析、讨论及结论 1、实验结果

图3.1 x1(n)、x2(n)、x3(n)的幅频特性曲线

实验分析、讨论及结论:

x1(n)、x2(n)、x3(n)是非周期的对称序列。由实验结果可以看出所得的实

验频谱图是正确的,它与理论频谱是一致的。 2、实验结果

图3.2

x4(n)、x5(n)的幅频特性曲线

实验分析、讨论及结论:

x4(n)?cosn的周期为8,所以N=8和N=16均是其周期的整数倍,得到正

4确的单一频率正弦波的频谱,仅在0.25?处有1根单一谱线。

x5(n)?cosn?cosn的周期为16,所以N=8不是其周期的整数倍,得到

48的频谱不正确。N=16是其一个周期,得到正确的频谱,仅在0.25π和0.125π处有2根单一谱线。 3、实验结果

???

图3.3

x6(t)采样频率Fs=64Hz的幅频特性曲线

实验分析、讨论及结论:

由实验结果可知,x6(t)有3个频率成分:f1=4Hz, f2=8Hz, f3=10Hz。所以

x6(t)的周期为0.5s,采样频率Fs=64 Hz=16f1=8f2=6.4f3。

变换区间N=16时,观察时间Tp=16T=0.25 s,不是x6(t)的整数倍周期,所以所得频谱不正确,如图3.3(6a)所示。变换区间N=32,64 时,观察时间Tp=0.5s,1s,是x6(t)的整数周期,所以所得频谱正确。 4、实验结果

(9a) 8点DFT[x9(n)]302520302520(9b) 16点DFT[x9(n)]幅度151050幅度00.51ω/π1.5215105000.51ω/π1.52 图3.4 x9(n)的幅频特性曲线 实验分析、讨论及结论: 实验结果表明所得x9(n)的频谱和其理论得出的频谱一致。它是由x2(n)和jx3(n)相加所得,可以看出它是一个非周期性的近似对称序列。 5、实验结果 x(n)的幅频曲线15105000.20.40.60.811.21.41.61.82x(n)的相频曲线420-2-400.20.40.60.811.21.41.61.82 图3.5 傅里叶变换X(ejw)的幅频特性相频特性曲线

N=6点时的DFT[x(n)]=x1(k)154205-2-4x1(k)的相位1000123456012345N=18点的DFT[x(n)]=X2(k)154205-2-4X2(k)的相位100051015200510X3(k)的相位1520N=36点时的DFT[x(n)]=X3(k)154205-2-410001020304005101520253035 图3.6 N(N?6)点离散傅里叶变换X(k)的幅频特性相频特性曲线

x1(k)作2DFT,得到的xl(n)与原序列x(n)一致32.521.510.5000.511.522.533.544.55 图3.7

X(k)的2点IDFT

实验分析、讨论及结论:

图3-5显示的是x(n)的傅里叶变换X(ejw)的幅频特性和相频特性曲线;图3-6显示的是x(n)在N处分别等于6,18,36点时的DFT及相应的相位特性曲线,并且在图3-5中将X(ejw)和X(k)的幅频特性分别画在同一幅图中,可以看出,X(k)

是X(ejw)的等间隔采样,采样间隔为2?N。图3-7显示的是利用得到的X(k)作IDFT,得到的序列与原序列x(n)完全一致,因此也验证了DFT和IDFT的唯一性。 6、实验结果

性图20(c) x2(n)的幅频特性图幅度21001.500.51ω/π1.525相位20-51.500.51ω/π1.52

图3.8 x2(n)的幅频特性图

(e) x3(n)的32点周期延拓序列10.80.60.40.200510152025(f) DFT[x3(n)]32的幅频特性图303510.80.60.40.20010(h) x3(n)的64点周期延拓序列20304050(i) DFT[x3(n)]64的幅频特性图6070332幅度幅度21100x 10-30.511.5 (g) DFT[x3(n)]ω/π32的相位200x 10-30.511.5 (j) DFT[x3(n)]ω/π32的相位242相位42相位0-2-40-2-400.51ω/π1.5200.51ω/π1.52 图3.9 x3(n)的幅频特性相频特性曲线

实验分析、讨论及结论:

x2(n)是周期序列,所以截取了一个周期用DFT进行谱分析,而x3(n)是非因

果、非周期序列。它也是一个实偶对称序列,所以其相位应该是零。

四、思考题

1、对于周期序列,如果周期不知道,如何用FFT进行谱分析?

答:可先截取M点进行DFT,再将截取长度扩大1倍,比较两次的结果。如果二者的主谱差别满足分析误差要求,则以两者中的一个近似表示周期序列的频谱,否则,继续把截取长度加倍,重复上述步骤。

2、如何选择FFT的变换区间?(包括非周期信号和周期信号)

答:(1)对于非周期信号:有频谱分辨率F,而频谱分辨率直接和FFT的变换区间有关,因为FFT能够实现的频率分辨率是2π/N...因此有最小的N>2π/F。就可以根据此式选择FFT的变换区间。

(2)对于周期信号,周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。

3、当N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16 呢? 答:不同,因为这样会影响是不是周期的整数倍的问题,即影响了频谱的正确性。

五、总结与心得体会

实验总结如下: 通过实验,我知道了用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2?N?D。可以根据此式选择FFT的

变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。

此次实验所遇到的问题主要出现在编程方面,由于对FFT的了解不够深刻,编程时经常出现大大小小的问题,也出现过漏加符号的情况,但通过认真的学习了解,成功的解决了问题。另外,在解决书里面的题时,因为对傅里叶变换的理解有误,导致进行傅里叶变换时出现了错误,但通过同学的讲解,解决了对傅里叶变换的困惑,成功的完成了实验。

实验的心得体会见下:

在此次试验中,通过实验加深了对MATLAB软件的了解,体会到了MATLAB具有完备的图形处理功能,实现计算结果和编程的可视化等功能。通过做实验的过程以及实验分析的结果,知道了用FFT对信号作频谱分析是学习数字信号处理

的重要内容。

通过这次的实验。极大地提升了自己对于程序编辑的熟练度,增加了对于书本里面知识点的应用,更深一层的加深了对MATLAB软件的使用。这对自己以后的实验积累了丰富的经验。

六、附件:MATLAB原程序清单

3.1 对x1(n)、x2(n)、x3(n)作FFT变换区间N为8和16时的频谱分析

x1n=[ones(1,4)]; %产生序列向量x1(n)=R4(n) M=8; xa=1:(M/2);

xb=(M/2):-1:1; x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa];

X1k8=fft(x1n,8); %计算x1n的8点DFT X1k16=fft(x1n,16); %计算x1n的16点DFT X2k8=fft(x2n,8); %计算x1n的8点DFT X2k16=fft(x2n,16); %计算x1n的16点DFT X3k8=fft(x3n,8); %计算x1n的8点DFT X3k16=fft(x3n,16); %计算x1n的16点DFT %以下绘制幅频特性曲线 subplot(3,2,1);

mstem(X1k8); %绘制8点DFT的幅频特性图

title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k8))])

subplot(3,2,2);mstem(X1k16); %绘制16点DFT的幅频特性图

title('(1b)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k16))])

subplot(3,2,3);mstem(X2k8); %绘制8点DFT的幅频特性图

title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k8))])

subplot(3,2,4);mstem(X2k16); %绘制16点DFT的幅频特性图

title('(2b)16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k16))])

subplot(3,2,5);mstem(X3k8); %绘制8点DFT的幅频特性图

title('(3a) 8点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X3k8))])

subplot(3,2,6);mstem(X3k16); %绘制16点DFT的幅频特性图

title('(3b)16点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X3k16))])

3.2 对x4(n)、x5(n)作FFT变换区间N为8和16时的频谱分析

N=8;n=0:N-1; ?T的变换区间N=8 x4n=cos(pi*n/4);

x5n=cos(pi*n/4)+cos(pi*n/8);

X4k8=fft(x4n); %计算x4n的8点DFT X5k8=fft(x5n); %计算x5n的8点DFT N=16;n=0:N-1; ?T的变换区间N=16 x4n=cos(pi*n/4);

x5n=cos(pi*n/4)+cos(pi*n/8);

X4k16=fft(x4n); %计算x4n的16点DFT X5k16=fft(x5n); %计算x5n的16点DFT

subplot(2,2,1);mstem(X4k8); %绘制8点DFT的幅频特性图

title('(a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k8))])

subplot(2,2,3);mstem(X4k16); %绘制16点DFT的幅频特性图 title('(b)16点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k16))])

subplot(2,2,2);mstem(X5k8); %绘制8点DFT的幅频特性图

title('(a) 8点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k8))])

subplot(2,2,4);mstem(X5k16); %绘制16点DFT的幅频特性图 title('(b)16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k16))])

3.3 对x8(t)选择F(s)?64Hz进行三种情况的谱分析

Fs=64;T=1/Fs;

N=16;n=0:N-1; ?T的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)16点采样 X6k16=fft(x6nT); %计算x6nT的16点DFT

X6k16=fftshift(X6k16); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心) subplot(3,1,1);stem(fk,abs(X6k16),'.');box on %绘制8点DFT的幅频特性图 title('(6a) 16点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))]) N=32;n=0:N-1; ?T的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)32点采样 X6k32=fft(x6nT); %计算x6nT的32点DFT

X6k32=fftshift(X6k32); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心) subplot(3,1,2);stem(fk,abs(X6k32),'.');box on %绘制8点DFT的幅频特性图 title('(6b) 32点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))]) N=64;n=0:N-1; ?T的变换区间N=16

x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(t)64点采样 X6k64=fft(x6nT); %计算x6nT的64点DFT

X6k64=fftshift(X6k64); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %频率分辨率F

k=-N/2:N/2-1;fk=k*F; %产生16点DFT对应的采样点频率(以零频率为中心) subplot(3,1,3);stem(fk,abs(X6k64),'.'); box on%绘制8点DFT的幅频特性图 title('(6a) 64点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])

3.4对x9(n)作FFT变换区间N为8和16时的频谱分析

M=8;xa=1:(M/2); xb=(M/2):-1:1;

x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa]; x9n=x2n+x3n*j X9k8=fft(x9n,8); X9k16=fft(x9n,16); figure(1); N=8;

f=2/N*(0:N-1);

subplot(2,2,1);stem(f,abs(X9k8),'.'); %绘制8点DFT的幅频特性图 title('(9a) 8点DFT[x_9(n)]');xlabel('ω/π');ylabel('幅度'); N=16;

f=2/N*(0:N-1);

subplot(2,2,2);stem(f,abs(X9k16),'.'); %绘制16点DFT的幅频特性图 title('(9b) 16点DFT[x_9(n)]');xlabel('ω/π');ylabel('幅度');

1,2,3,3,2,1?的有关问题 3.5 序列x(n)??w=2*pi*(0:255)/256;

xw=1+2*exp(-j*w)+3*exp(-j*2*w)+3*exp(-j*3*w)+2*exp(-j*4*w)+exp(-j*5*w);

figure(1); subplot(2,1,1);

plot(w/pi,abs(xw),'.'); title('x(n)的幅频曲线');

subplot(2,1,2); plot(w/pi,angle(xw)); line([0,2],[0,0]); title('x(n)的相频曲线'); figure(2); N1=6;K1=0:N1-1; N2=18;K2=0:N2-1; N3=36;K3=0:N3-1; xn=[1,2,3,3,2,1]; xk1=fft(xn,N1);

subplot(3,2,1);stem(K1,abs(xk1),'.'); title('N=6点时的DFT[x(n)]=x1(k)');hold on; plot(N1/2*w/pi,abs(xw),'r');

subplot(3,2,2);stem(K1,angle(xk1),'.'); title('x1(k)的相位'); xk2=fft(xn,N2);

subplot(3,2,3);stem(K2,abs(xk2),'.'); title('N=18点的DFT[x(n)]=X2(k)');hold on; plot(N2/2*w/pi,abs(xw),'.');

subplot(3,2,4);stem(K2,angle(xk2),'.'); title('X2(k)的相位');xk3=fft(xn,N3); subplot(3,2,5);stem(K3,abs(xk3),'.'); title('N=36点时的DFT[x(n)]=X3(k)');hold on; plot(N3/2*w/pi,abs(xw),'r');

subplot(3,2,6);stem(K3,angle(xk3),'.'); title('X3(k)的相位');hold on; figure(3);

xn1=ifft(xk1,N1);stem(K1,xn1);

title('x1(k)作2DFT,得到的xl(n)与原序列x(n)一致');

3.6 用FFT对信号x2(n)、x3(n)选择合适的变换区间N进行谱分析

clear all;close

all; %==================================================================

n2=0:50;n3=-10:10; ;N2=20;N3a=32;N3b=64;

x2n=2*sin(0.45*pi*n2).*sin(0.55*pi*n2); %计算序列x2(n) x3n=0.5.^abs(n3); %计算序列x3(n)

x3anp=zeros(1,N3a); %构造x3(n)的周期延拓序列,周期为N3a

for m=1:10,

x3anp(m)=x3n(m+10);x3anp(N3a+1-m)=x3n(11-m); end

x3bnp=zeros(1,N3b); %构造x3(n)的周期延拓序列,周期为N3b

for m=1:10,

x3bnp(m)=x3n(m+10);x3bnp(N3b+1-m)=x3n(11-m); end

X2k=fft(x2n,N2); %计算序列x2(n)的N2点DFT X3ak=fft(x3anp,N3a); %计算序列x3(n)的N3a点DFT X3bk=fft(x3bnp,N3b); %计算序列x3(n)的N3b点DFT %以下为绘图部分

%==============绘制x2(n)的频谱特性图============================

k=0:N2-1;wk=2*k/N2; %产生N2点DFT对应的采样点频率(关于π归一化值) subplot(3,2,2);stem(wk,abs(X2k),'.');grid on;box on %绘制x2(n)的N2点DFT的幅频特性图

title('(c) x2(n)的幅频特性图');xlabel('ω/π');ylabel('幅度')

subplot(3,2,4);stem(wk,angle(X2k),'.');grid on;box on %绘制x2(n)的N2点DFT的相频特性图

line([0,2],[0,0]) %画横坐标轴线 title('(d) x2(n)的相频特性图'); xlabel('ω/π');ylabel('相位'); figure(2)

%=============绘制32点周期延拓序列和32点DFT[x3(n)]的频谱特性图===============

n=0:N3a-1;subplot(3,2,1);stem(n,x3anp,'.');box on title('(e) x3(n)的32点周期延拓序列');

k=0:N3a-1;wk=2*k/N3a; %产生N3a点DFT对应的采样点频率(关于π归一化值) subplot(3,2,3);plot(wk,abs(X3ak)); %绘制x3(n)的N3a点DFT的幅频特性图 title('(f) DFT[x3(n)]_3_2的幅频特性图');xlabel('ω/π');ylabel('幅度') subplot(3,2,5);plot(wk,angle(X3ak)); %绘制x3(n)的N3点DFT的相频特性图 line([0,2],[0,0]) %画横坐标轴线 title(' (g) DFT[x3(n)]_3_2的相位'); xlabel('ω/π');ylabel('相位');

%=============绘制64点周期延拓序列和64点DFT[x3(n)]的频谱特性图===============

n=0:N3b-1;subplot(3,2,2);stem(n,x3bnp,'.');box on title('(h) x3(n)的64点周期延拓序列');

k=0:N3b-1;wk=2*k/N3b; %产生N3a点DFT对应的采样点频率(关于π归一化值) subplot(3,2,4);plot(wk,abs(X3bk)); %绘制x3(n)的N3a点DFT的幅频特性图 title('(i) DFT[x3(n)]_6_4的幅频特性图');xlabel('ω/π');ylabel('幅度') subplot(3,2,6);plot(wk,angle(X3bk)); %绘制x3(n)的N3点DFT的相频特性图 line([0,2],[0,0]) %画横坐标轴线

title(' (j) DFT[x3(n)]_3_2的相位'); xlabel('ω/π');ylabel('相位');

本文来源:https://www.bwwdw.com/article/1xd8.html

Top