实验六傅里叶变换及其反变换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六 傅里叶变换及其反变换
6.1实验目的
1.学会运用MATLAB 求连续时间信号的傅里叶变换;
2.学会运用MATLAB 求连续时间信号的傅里叶反变换;
3.学会运用MATLAB 求连续时间信号的频谱图。
6.2实验原理及实例分析
1.连续时间信号傅里叶变换----CTFT
傅里叶变换在信号分析中具有非常重要的意义,它主要是用来进行信号的频谱分析的。傅里叶变换和其逆变换定义如下:
⎰∞
∞--=
dt e t x j X t j ωω)()( 6.1
⎰∞∞-=ωωπωd e j X t x t j )(21)( 6.2
连续时间傅里叶变换主要用来描述连续时间非周期信号的频谱。按照教材中的说法,任意非周期信号,如果满足狄里克利条件,那么,它可以被看作是由无穷多个不同频率(这些频率都是非常的接近)的周期复指数信号e j ωt 的线性组合构成的,每个频率所对应的周期复指数信号e j ωt 称为频率分量(frequency component ),其相对幅度为对应频率的|X(j ω)|之值,其相位为对应频率的X(j ω)的相位。
X(j ω)通常为关于的复函数,可以按照复数的极坐标表示方法表示为:
X(j ω)=| X(j ω)|e j ∠ X(j ω)
其中,| X(j ω)|称为x(t)的幅度谱,而∠X(j ω)则称为x(t)的相位谱。
给定一个连续时间非周期信号x(t),它的频谱也是连续且非周期的。对于连续时间周期信号,也可以用傅里变换来表示其频谱,其特点是,连续时间周期信号的傅里叶变换时有冲激序列构成的,是离散的——这是连续时间周期信号的傅里叶变换的基本特征。 2.用MATLAB 实现CTFT 的计算
MATLAB 进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算。
1) MATLAB 符号运算求解法
MATLAB 符号数学工具箱提供了直接求解傅里叶变换与傅里叶反变换的函数fourier( )及ifourier( )。常用的是:F=fourier(f) 默认返回值是关于ω的函数。
f=fourier(F,t) 返回值是关于t 的函数
例:利用MATLAB 求单边指数信号f(t) = e -2t u(t)的傅里叶变换,画出f(t)及其幅度谱和相位谱图。
syms t v w x phase im re ; %定义符号变量
f = exp(-2*t)*sym('Heaviside(t)'); %f(t)=exp(-2*t)*u(t)
Fw = fourier(f); %求傅里叶变换
subplot(311);
ezplot(f); %绘制f(t)的时域波形
axis([-1 2.5 0 1.1]);
subplot(312);
ezplot(abs(Fw)); %绘制幅度谱
im = imag(Fw); %计算F(w)的虚部
re = real(Fw); %计算F(w)的实部
phase = atan(im/re); %计算相位谱
subplot(313);
ezplot(phase); %绘制相位谱
%End
2) MATLAB 数值计算求解法
符号运算求解法的局限性在于,如果返回函数中有诸如δ(t )等项,则用ezplot( )函数无法作图。对某些信号求变换时,其返回函数可能包含一些不能直接用符号表达的式子,因而也不返回函数作图。故有必要给出连续信号傅里叶变换的数值计算法。
采用数值计算算法的理论依据是:
⎰∞
∞-Ω-=
dt e t x j X t j )()(ω∑∞-∞=-→=k T jk T T e kT x ω)(lim 0
若信号为时限信号,当时间间隔T 取得足够小时,上式可演变为:
∑-=-=N N k T jk e kT x T
j X ωω)()(
T
e e e t x t x t x N t j t j t j N ],,,[)](,),(),([12211221+---+⋅=ωωω 上式用MA TLAB 表示为:
X=x*exp(-j*t ’*w)*T
其中X 为信号x(t)的傅里叶变换,w 为频率Ω,T 为时间步长。
相应的MA TLAB 程序:
T = 0.01; dw = 0.1; %时间和频率变化的步长
t = -10:T:10;
w = -4*pi:dw:4*pi;
%X(jω)可以按照下面的矩阵运算来进行:
X=x *exp(-j*t'*ω)*T %傅里叶变换
X1=abs(X); %计算幅度谱
phai=angle(X); %计算相位谱
为了使计算结果能够直观地表现出来,还需要用绘图函数将时间信号x(t),信号的幅度谱|X(jω)|和相位谱∠ X(jω)分别以图形的方式表现出来,并对图形加以适当的标注。
6.3 编程练习
1. 设双边指数信号f(t) = e-a|t| (a>0),用MA TLAB编程求其傅里叶变换,绘出频谱图。要求
由键盘交互式地设置a的值,观察当a逐渐趋于0时,其频谱函数的变化趋势。
>> syms t v w x phase im re; %定义符号变量
a=input('请输入a=');
f = exp(-a*abs(t)) ; %f(t)= exp(-a*abs(t))
Fw = fourier(f); %求傅里叶变换
subplot(311);
ezplot(f); %绘制f(t)的时域波形
axis([-1 2.5 0 1.1]);
subplot(312);
ezplot(abs(Fw)); %绘制幅度谱
im = imag(Fw); %计算F(w)的虚部
re = real(Fw); %计算F(w)的实部
phase = atan(im/re); %计算相位谱
subplot(313);
ezplot(phase); %绘制相位谱
请输入a=6