实验2 傅里叶变换的MATLAB 实现

更新时间:2023-09-27 23:04:01 阅读量: 综合文库 文档下载

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

实验2 傅里叶变换的MATLAB 实现

一. 实验目的

1. 傅里叶变换的matlab实现。

2. 连续时间信号傅里叶变换的数值计算。 二. 实验原理

1. Matlab的Symbolic Math Toolbox 提供了能直接求解傅里叶变换和逆变换的函数

fourier(_)和ifourier()。

使用上述函数有一个局限性。尽管信号f(t)是连续的,但却不可能表示成符号表达式,而更多的实际测量现场获得的信号是多组离散的数值量f(n),此时也不可能应用fourier( )对f(n)进行处理,而只能应用傅里叶变换的数值计算方法。 2. 傅里叶变换的数值计算方法的理论依据如下:

F?j????f?t?e????i?tdt?lim??0n????f(n?)e??j?n?? (1)

对于一大类信号,当取?足够小时,上式的近似情况可以满足实际需要。若信号f(t)是时限的,则(1)式的n取值就是有限的,设为N,有:

F?k????f(n?)en?0N?1?j?kn?,0?k?N (2)

上式是对(1)中的频率?进行取样,通常: ?k?2?k N?采用matlab实现(2)式时,其要点是要正确生成f?t?的N个样本f?n??的向量f及向量 e?j?kn?,两向量的内积(即两矩阵的乘积)结果即完成式(2)的

计算。下面举例说明:

??1例1.已知门信号f?t??g2?t?????0t?1t?1 ,求其傅里叶变换F?j??。

解:实现该过程的matlab命令程序如下:

tau=0.02;t=-2:tau:2; f= [(t>-1 &t<1)];

W1=2*pi*5; % the bandlimit N=500;k=0:N;W=k*W1/N; F=f*exp(-j*t'*W)*tau; F=real(F);

W=[-fliplr(W),W(2:501)]; F=[fliplr(F),F(2:501)];

subplot(2,1,1);plot(t,f); xlabel('t');ylabel('f(t)'); title('f(t)=u(t+1)-u(t-1)'); subplot(2,1,2);plot(W,F); xlabel('w');ylabel('F(w)'); title('f(t)的付氏变换F(w)');

程序执行出现图Fig3-1所示的曲线。显然,该曲线与我们熟知的理论结果完全吻

合。

三. 实验内容

1.设 f?t??图Fig3-1 门信号时域波形及频谱曲线

1?2teu?t?,利用fourier()函数,试画出f(t)及其幅频图。 22.设f?t??u?t?1??u?t?1?,f1?t??f?t?cos?10?t?,画出f?t?,f1?t? 的 时域波形图,利用傅里叶变换的数值计算方法绘出其频谱图。

四. 思考题:

1. 列出实验内容1,2的程序清单及波形; 2. 思考实验2体现了傅里叶变换的哪一性质。

3. 将实验2的观察范围扩大,会发现什么现象,如何解释?

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

Top