实验2 傅里叶变换的MATLAB 实现
- 格式:docx
- 大小:48.39 KB
- 文档页数:2
实验2 傅里叶变换的MATLAB 实现
一. 实验目的
1. 傅里叶变换的matlab 实现。
2. 连续时间信号傅里叶变换的数值计算。
二. 实验原理
1. Matlab 的Symbolic Math Toolbox 提供了能直接求解傅里叶变换和逆变换的函数fourier(_)和ifourier()。
使用上述函数有一个局限性。尽管信号f(t)是连续的,但却不可能表示成符号表达式,而更多的实际测量现场获得的信号是多组离散的数值量f(n),此时也不可能应用fourier( )对f(n)进行处理,而只能应用傅里叶变换的数值计算方法。
2. 傅里叶变换的数值计算方法的理论依据如下:
()()ττωτωτωn j n t i e n f dt e t f j F -∞-∞=→-∞∞-∑⎰==)(lim 0 (1)
对于一大类信号,当取τ足够小时,上式的近似情况可以满足实际需要。若信号f(t)是时限的,则(1)式的n 取值就是有限的,设为N ,有:
()N k e
n f k F n j N n k ≤≤=--=∑0,)(10τωττ (2)
上式是对(1)中的频率ω进行取样,通常:
k N k τ
πω2= 采用matlab 实现(2)式时,其要点是要正确生成()t f 的N 个样本()τn f 的
向量f 及向量 τωn j k e -,两向量的内积(即两矩阵的乘积)结果即完成式(2)的计算。下面举例说明:
例1.已知门信号()()⎪⎩⎪⎨⎧><==10112t t t g t f ,求其傅里叶变换()ωj F 。
解:实现该过程的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.设 ()()t u e t f t 22
1-=,利用fourier()函数,试画出f(t)及其幅频图。 2.设()()()11--+=t u t u t f ,()()()t t f t f π10cos 1=,画出()()t f t f 1, 的 时域波形图,利用傅里叶变换的数值计算方法绘出其频谱图。
四. 思考题:
1. 列出实验内容1,2的程序清单及波形;
2. 思考实验2体现了傅里叶变换的哪一性质。
3. 将实验2的观察范围扩大,会发现什么现象,如何解释?
图Fig3-1 门信号时域波形及频谱曲线