实验3 傅里叶变换及其性质

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验3 傅里叶变换及其性质

1. 实验目的

学会运用MATLAB 求连续时间信号的傅里叶(Fourier )变换;学会运用MATLAB 求连续时间信号的频谱图;学会运用MATLAB 分析连续时间信号的傅里叶变换的性质。

2. 实验原理及实例分析

傅里叶变换的实现

信号()f t 的傅里叶变换定义为: ()[()]()j t F F f t f t e dt ωω∞--∞==⎰

, 傅里叶反变换定义为:11()[()]()2j t f t F F f e d ωωωωπ

∞--∞==⎰。 信号的傅里叶变换主要包括MATLAB 符号运算和MATLAB 数值分析两种方 法,下面分别加以探讨。同时,学习连续时间信号的频谱图。

MATLAB 符号运算求解法

MATLAB 符号数学工具箱提供了直接求解傅里叶变换与傅里叶反变换的函 数fourier( )和ifourier( )。Fourier 变换的语句格式分为三种。

(1) F=fourier(f):它是符号函数f 的Fourier 变换,默认返回是关于ω的函数。

(2) F=fourier(f,v):它返回函数F 是关于符号对象v 的函数,而不是默认的ω,

即()()jvt F v f t e dt ∞

--∞=⎰。

(3) F=fourier(f,u,v):是对关于u 的函数f 进行变换,返回函数F 是关于v 的

函数,即()()jvu F v f t e du ∞

--∞=⎰。

傅里叶反变换的语句格式也分为三种。

(1) f=ifourier(F):它是符号函数F 的Fourier 反变换,独立变量默认为ω,默

认返回是关于x 的函数。

(2) f=ifourier(F,u):它返回函数f 是u 的函数,而不是默认的x 。

(3) f=ifourier(F,u,v):是对关于v 的函数F 进行反变换,返回关于u 的函数f 。 值得注意的是,函数fourier( )和ifourier( )都是接受由sym 函数所定义的符号 变量或者符号表达式。

例1 用MATLAB 符号运算求解法求单边指数信号2()()t f t e u t -=的傅里叶变换。 解:MATLAB 源程序为:

ft = sym('exp(-2*t)*Heaviside(t)');

Fw = fourier(ft)

运行结果为:Fw = 1/(2+i*w)

例2 用MATLAB 符号运算法求21()1F ωω=

+的傅里叶逆变换()f t 解:MATLAB 源程序为:

ft = sym('exp(-2*t)*Heaviside(t)');

Fw = fourier(ft)

运行结果为:ft = 1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t)

连续时间信号的频谱图

信号()f t 的傅里叶变换()F ω表达了信号在ω处的频谱密度分布情况,这就 是信号的傅里叶变换的物理含义。()F ω一般是复函数,可以表示成 ()()()j F F e ϕωωω=。()~F ωω与()~ϕωω曲线分别称为非周期信号的幅度频谱与相位频谱,它们都是频率ω的连续函数,在形状上与相应的周期信号频谱包络线相同。非周期信号的频谱有两个特点,密度谱和连续谱。要注意到,采用fourier()和ifourier() 得到的返回函数,仍然是符号表达式。若需对返回函数作图,则需应用ezplot()绘图命令。

例3 用MATLAB 命令绘出例1中单边指数信号的幅度谱和相位谱。 解:MATLAB 源程序为

ft = sym('exp(-2*t)*Heaviside(t)');

Fw = fourier(ft);

subplot(211)

ezplot(abs(Fw));grid on

title('幅度谱')

phase = atan(imag(Fw)/real(Fw));

subplot(212)

ezplot(phase);grid on

title('相位谱')

图1 单边指数信号的幅度谱和相位谱

MATLAB 数值计算求解法

fourier( )和ifourier( )函数的一个局限性是,如果返回函数中有诸如单位冲激函数()t δ等项,则用ezplot()函数无法作图。对某些信号求变换时,其返回函数可能包含一些不能直接用符号表达的式子,因此不能对返回函数作图。此外,在很多实际情况中,尽管信号()f t 是连续的,但经过抽样所获得的信号则是多组离散的数值量()f n ,因此无法表示成符号表达式,此时不能应用fourier()函数对f(n)进行处理,而只能用数值计算方法来近似求解。

从傅里叶变换定义出发有0()()lim ()j t j n F f t e dt f n e ωωω∞

-∞∆→-∞--∆==∆∆∑⎰, 当∆足够小时,上式的近似情况可以满足实际需要。对于时限信号()f t ,或者在所研究的时间范围内让()f t 衰减到足够小,从而近似地看成时限信号,则对于上式可以考虑有限n 的取值。假设是因果信号,则有

10()(),

01M n j n F f n e n M ωω-=-∆=∆∆≤≤-∑

傅里叶变换后在ω域用MATLAB 进行求解,对上式的角频率ω进行离散化。假设离散化后得到N 个样值,即 2,0k k k N N πω=

≤≤∆-1, 因此有 10()(),01M n k j n F k f n e

k N ω-=-∆=∆∆≤≤-∑。采用行向量,用矩阵表示为

1*1**[()][()][]k j n T T T N M M N F k f n e

ω-∆=∆∆。其要点是要正确生成()f t 的M 个样本向量[()]f n ∆与向量[]j n k e ω-∆。当∆足够小时,上式的内积运算(即相乘求和运算)结果即为所求的连续时间信号傅里叶变换的数值解。

例4 用MATLAB 数值计算法求三角脉冲幅度谱。三角脉冲的数学表达式如下:

12,402()12,042

t t f t t t ⎧+-≤≤⎪⎪=⎨⎪-+≤≤⎪⎩ 解:MATLAB 源程序为:

dt = 0.01;

t = -4:dt:4;

ft = (t+4 )/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4);

N = 2000;

k = -N:N;

W = 2*pi*k/((2*N+1)*dt);

相关文档
最新文档