华南理工大学信号与系统实验基于Matlab的FFT应用

更新时间:2024-03-06 22:15:01 阅读量: 综合文库 文档下载

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

第3讲 基于Matlab的FFT应用

实验内容(1)

(1) 确定该稳定LTI系统的频率响应的幅度和相位

d2y(t)dy(t)d2x(t)3?4?y(t)??5x(t)22dtdtdt程序源代码:

function sy3_1

a=[3 4 1]; b=[1 0 5];

[H,omega]=freqs(b,a) %计算连续时间系统的频率响应H(jw) A=abs(H) ;%H(jw)的模 W=angle(H);%H(jw)的相位 subplot(2,1,1), plot(omega,A,'g','LineWidth',3); title('H(jw)的模'), grid on; xlabel('omega'),ylabel('A');

subplot(2,1,2), plot(omega,W,'m','LineWidth',3); title('H(jw)的相位'), grid on;

xlabel('omega'),ylabel('W');

执行结果如下所示:

H(jw)的模64A200123456omegaH(jw)的相位7891010W-1-2-3012345omega678910

1

(2) 求下面离散系统在[ 0 , ? ]区间的频率响应

y[n]?0.8y[n?1]?2x[n]?x[n?2]程序源代码:

function sy3_2 a=[1 -0.8]; b=[2 0 -1];

[H omega]=freqz(b,a,256,'whole')

A=abs(H) ;%H(jw)的模 W=angle(H);%H(jw)的相位 subplot(2,1,1), plot(omega,A,'g','LineWidth',3); title('H(jw)的模'), grid on; xlabel('omega'),ylabel('A');

subplot(2,1,2),plot(omega,W,'m','LineWidth',3); title('H(jw)的相位'),grid on;

xlabel('omega'),ylabel('W');

执行结果如下所示:

H(jw)的模64A2001234567omegaH(jw)的相位10.5W0-0.5-10123omega4567

2

(3) : 计算 x [ ] ? u ] ? u [ n 10 n[ n?]的DTFT

程序源代码:

function sy3_3 N=128; n=0:N;

x=[(n-10)<=0]; X=fft(x);

Xc=fftshift(X); Xw=angle(Xc);

subplot(2,1,1),plot(-N/2:N/2,abs(Xc),'g','LineWidth',3); title('DTFT的模'), grid on;

xlabel('omega'),ylabel('A');

subplot(2,1,2), plot(Xw,'m','LineWidth',3); title('DTFT的相位'), grid on; xlabel('omega'),ylabel('W');

执行结果如下所示:

DTFT的模1510A50-80-60-40-20020omegaDTFT的相位40608042W0-2-40204060omega80100120140

3

实验内容(2)DFT例子:

受噪声干扰的正弦信号的频谱

考虑两个频率分别为50hz及120hz的正弦信号之和: x(t)=sin(2*pi*50t)+sin(2*pi*120t) 收到随机噪声的加性干扰: y(t)=x(t)+2randn(t)

分别对信号x(t)和y(t)以1000hz进行采样,观察信号的波形,并分析采样信号x(n)和y(n)的频谱。

程序源代码:

function sy3_4 t=0:0.001:1;

r=2*randn(size(t));

x=sin(2*pi*50*t)+sin(2*pi*120*t); y=x+r;

subplot(2,1,1),plot(t,x,'g','LineWidth',3); title('原信号'), grid on;

xlabel('t'),ylabel('x(t)');legend('x(t)=sin(2*pi*50*t)+sin(2*pi*120*t)'); subplot(2,1,2), plot(t,y,'m','LineWidth',3); title('受到干扰的信号'), grid on; xlabel('t'),ylabel('y(t)');legend('y(t)=x(t)+2randn(t)');

figure;

subplot(2,1,1),stem(x(1:200),'g','filled');%为图像美观,只画所取的前200个采样点 title('对信号x(t)以1000hz进行采样'), grid on; xlabel('n'),ylabel('x[n]'); subplot(2,1,2), stem(y(1:200),'m','filled');%为图像美观,只画所取的前200个采样点 title('对信号y(t)以1000hz进行采样'), grid on; xlabel('n'),ylabel('y[n]');

figure; %画出采样所得信号对应频谱的模 X=fft(x);

Xc=fftshift(X); Y=fft(y);

Yc=fftshift(Y);

subplot(2,1,1);stem(-1000/2:1000/2,abs(Xc),'g','filled'); title('采样信号x(n)的频谱'), grid on; xlabel('omega'),ylabel('X'); subplot(2,1,2);stem(-1000/2:1000/2,abs(Yc),'m');

title('采样信号y(n)的频谱'), grid on; xlabel('omega'),ylabel('Y');

figure; %画出采样所得信号对应频谱的相位 subplot(2,1,1);stem(-1000/2:1000/2,angle(Xc),'g','filled'); title('采样信号x(n)的频谱'), grid on; xlabel('omega'),ylabel('X'); subplot(2,1,2);stem(-1000/2:1000/2,angle(Yc),'m');

title('采样信号y(n)的频谱'), grid on; xlabel('omega'),ylabel('Y');

4

执行结果如下所示:

(1)信号x(t)和y(t)的图形如下所示:

原信号1x(t)=sin(2*pi*50*t)+sin(2*pi*120*t)0.5 x(t)0-0.5-1 00.10.20.30.50.6t受到干扰的信号0.40.70.80.9110y(t)=x(t)+2randn(t)5 y(t)0-5 00.10.20.30.40.5t0.60.70.80.91

(2)对信号x(t)和y(t)以1000hz进行采样,所得的波形如下所示:(为图形美观,只显示前200个采样点)

对信号x(t)以1000hz进行采样21x[n]0-1-202040100120140n对信号y(t)以1000hz进行采样6080160180200105y[n]0-5-10020406080100n120140160180200

5

3)采样得到的信号x(n)和y(n)的频谱如下所示:(上为对应频谱的模,下为对应频谱的相位)

采样信号x(n)的频谱600400X200-5000-400-300-200-1000100200300400500omega采样信号y(n)的频谱600400Y200-5000-400-300-200-1000100200300400500omega

采样信号x(n)的频谱42X0-2-4-500-400-300-200-1000100200300400500omega采样信号y(n)的频谱42Y0-2-4-500-400-300-200-1000100200300400500omega

6

结果分析:信号x(n)的频谱的运行结果跟理论计算完全吻合,而受到随机噪声加性干扰的y(n),由于噪声的随机性,所得频谱与x(n)的频谱有所不同,而且在多次运行程序、重复实验过程中频谱改变呈现出的高度随机性。实验结果较好的验证了理论知识。

实验总结

这一次课实验课的练习,让我在上机实践中得到了很多经验。对matlab的处理风格有了更进一步的了解,尤其是对DTFT的采样及其图像显示方面的练习,给我相当多的实践经验,不仅从中学到了很多乐趣,也为理论课的学习提供了更多的帮助,深化了课本相关知识与概念的理解!感谢老师的辛勤指导与解答!

7

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

Top