实验三傅里叶变换及其性
质
The Standardization Office was revised on the afternoon of December 13, 2020
信息工程学院实验报告
课程名称:信号与系统
实验项目名称:实验3 傅里叶变换及其性质实验时间:2013-11-29 班级: 姓名: 学号:
一、实验目的:
1、学会运用MATLAB 求连续时间信号的傅里叶(Fourier )变换;
2、学会运用MATLAB 求连续时间信号的频谱图;
3、学会运用MATLAB 分析连续时间信号的傅里叶变换的性质。
二、实验环境:
1、硬件:在windows 7 操作环境下;
2、软件:Matlab 版本
三、实验原理:
傅里叶变换的实现
信号()f t 的傅里叶变换定义为: ()[()]()j t F F f t f t e dt ωω∞
--∞
==
?
,
傅里叶反变换定义为:1
1
()[()]()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 函数所定义的符号变量或者符号表达式。
连续时间信号的频谱图
信号()f t 的傅里叶变换()F ω表达了信号在ω处的频谱密度分布情况,这就是信号的傅里叶变换的物理含义。()F ω一般是复函数,可以表示成()
()()j F F e
?ωωω=。()~F ωω与()~?ωω
曲线分别称为非周期信号的幅度频谱与相位频谱,它们都是频率ω的连续函数,在形状上与相应的周期信号频谱包络线相同。非周期信号的频谱有两个特点,密度谱和连续谱。要注意到,采用fourier()和ifourier() 得到的返回函数,仍然是符号表达式。若需对返回函数作图,则需应用ezplot()绘图命令。 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 的取值。假设是因果信号,
则有
1
()(),
01M n j n F f n e n M ωω-=-?=??≤≤-∑
傅里叶变换后在ω域用MATLAB 进行求解,对上式的角频率ω进行离散化。假设离散化后得到N 个样值,即 2,0k k k N N πω=
≤≤?
-1,
因此有 1
()(),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 ω-?
。当?足够小时,上式的内积运算(即相乘求和运算)结果即为所求的连续时间信号傅里叶变
换的数值解。 傅里叶变换的性质
傅里叶变换的性质包含了丰富的物理意义,并且揭示了信号的时域和频域的关系。熟悉这些性质成为信号分析研究工作中最重要的内容之一。 尺度变换特性
傅里叶变换的尺度变换特性为:若()()f t F ω?,则有1()()f at F a a
ω
?,其中,a 为非零实常数。
频移特性
傅里叶变换的频移特性为:若()()f t F ω?,则有00()()j t
f t e
F ωωω?-。频移技术在通信系统
中得到广泛应用,诸如调幅变频等过程都是在频谱搬移的基础上完成的。频移的实现原理是将信号
()f t 乘以载波信号0cos t ω或0sin t ω,从而完成频谱的搬移,即
0000001
()cos [()()]
2
()sin [()()]
2
f t t F F j
f t t F F ωωωωωωωωωω?++-?+--
四、实验内容及结果分析:
试用MATLAB 命令求下列信号的傅里叶变换,并绘出其幅度谱和相位谱。
(1)1sin 2(1)()(1)t f t t ππ-=- (2)2
2sin()()t f t t ππ??
=????
第一题的实验程序代码: clc;clear;
Ft= sym('sin(2*pi*(t-1))/(pi*(t-1))'); Fw = fourier(ft); subplot(211)
ezplot(abs(Fw));grid on
title('幅度谱');
phase = atan(imag(Fw)/real(Fw)); subplot(212)
ezplot(phase);grid on title('相位谱'); 第二题的实验程序代码:
clc;clear; ft =
sym('(sin(pi*t)/(pi*t))^2'); 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所示,第二题实验结果如图2所示。 图1 图2
试用MATLAB 命令求下列信号的傅里叶反变换,并绘出其时域信号图。
(1)1104(
)35F j j ωωω
=-++ (2)2
24()F e ωω-= 第一题的实验程序代码: clc;clear; t=sym('t');
Fw = sym('10/(3+i*w)-4/(5+i*w)');
ft = ifourier(Fw); ezplot(ft),grid on
第二题的实验程序代码:
clc;clear; t=sym('t');
Fw = sym('exp(-4*(w^2))'); ft = ifourier(Fw); ezplot(ft),grid on
第一题实验结果如图3所示,第二题实验结果如图4所示。
图3 图4 试用MATLAB数值计算方法求门信号的傅里叶变换,并画出其频谱图。
门信号即
1,/2 ()
0,/2
t
g t
t
τ
τ
τ
?≤
?
=?
>
??
,其中1
τ=。
实验程序代码:
clc;clear;
ft1 = sym('Heaviside(t+1/2)-
Heaviside(t-1/2)');
subplot(121);
ezplot(ft1,[ ]),grid on
Fw1 = simplify(fourier(ft1));
subplot(122);
ezplot(abs(Fw1),[-10*pi 10*pi]),
grid on
axis([-10*pi 10*pi ]);
实验结果如图5所示:
图5
已知两个门信号的卷积为三角波信号,试用MATLAB命令验证傅里叶变换的时域卷积定理。两个门信号卷积成为三角波信号的实验程序代码:
clc;
clear;
dt = ; t = -1:dt:;
f1 = uCT(t+1/2)- uCT(t-1/2); f2 = uCT(t+1/2)- uCT(t-1/2);
f = conv(f1,f2)*dt;
n =length(f);
tt = (0:n-1)*dt-2; subplot(211), plot(t,f1),grid on;
axis([-1, 1, ,]);
title('f1(t)'); xlabel('t'); subplot(212), plot(tt,f),grid on;
axis([-2, 2, ,]);
title('f(t)=f1(t)*f2(t)'); xlabel('t');
两个门信号卷积成为三角波信号的实验结果如图6所示:
图6
三角波信号傅里叶变换的实验程序代码:
clc;clear;
dt = ;
t = -4:dt:4;
ft = (t+1).*uCT(t+1)-
2*t.*uCT(t)+(t-1).*uCT(t-1);
N = 2000;
k = -N:N;
W = 2*pi*k/((2*N+1)*dt);
F = dt * ft*exp(-j*t'*W);
plot(W,F), grid on
axis([-10*pi 10*pi ]);
xlabel('W'), ylabel('F(W)') title('f1(t)*f2(t)的频谱图');ft1和ft2分别傅里叶变换然后再相乘的代码:
clc;clear;
ft1 = sym('Heaviside(t+1/2)-Heaviside(t-1/2)');
Fw1 = fourier(ft1);
ft2 = sym('Heaviside(t+1/2)-Heaviside(t-1/2)');
Fw2 = fourier(ft2);
Fw=Fw1.*Fw2;
ezplot(Fw,[-10*pi 10*pi]);grid on
axis([-10*pi 10*pi ]);
三角波信号傅里叶变换的实验结果如图7所示,ft1和ft2分别傅里叶变换然后再相乘的实验结果如图8所示。
图7 图8
图7和图8几乎是一样的,所以傅里叶变换的时域卷积定理是正确的。