前言
为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
一、实验目的
1.熟悉傅里叶变换的性质
2.熟悉常见信号的傅里叶变换
3.了解傅里叶变换的 MATLAB 实现方法
二、实验原理
三、实验环境
硬件:装有Windows 10系统的PC机
软件:MATLAB 2018b
四、实验内容和步骤及实验数据
%实验内容1(1)
clear;clc;
syms t w
Gt=str2sym('heaviside(2*t+1)-heaviside(2*t-1)');
fourier(Gt,w)
%实验内容1(2)
clear;clc;
syms t w
Gt=str2sym('exp(-t)*heaviside(t)');
fourier(Gt,w)
%实验内容1(3)
clear;clc;
syms t w
Fw=str2sym('(-j*2*w)/(16+w^2)');
ifourier(Fw,w,t)
%实验内容2
syms t w
Fw=simplify(fourier(str2sym('heaviside(t+1)-heaviside(t-1)')));
subplot(311);
ezplot(abs(Fw),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
Fw1=simplify(fourier(str2sym('(heaviside(t+1)-heaviside(t-1))*exp(-1i*20*t)')));
Fw2=simplify(fourier(str2sym('(heaviside(t+1)-heaviside(t-1))*exp(1i*20*t)')));
subplot(312);
ezplot(abs(Fw1),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
subplot(313);
ezplot(abs(Fw2),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
五、实验结论
%实验内容1(1)
clear;clc;
syms t w
Gt=str2sym('heaviside(2*t+1)-heaviside(2*t-1)');
fourier(Gt,w)
%实验内容1(2)
clear;clc;
syms t w
Gt=str2sym('exp(-t)*heaviside(t)');
fourier(Gt,w)
%实验内容1(3)
clear;clc;
syms t w
Fw=str2sym('(-j*2*w)/(16+w^2)');
ifourier(Fw,w,t)
%实验内容2
syms t w
Fw=simplify(fourier(str2sym('heaviside(t+1)-heaviside(t-1)')));
subplot(311);
ezplot(abs(Fw),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
Fw1=simplify(fourier(str2sym('(heaviside(t+1)-heaviside(t-1))*exp(-1i*20*t)')));
Fw2=simplify(fourier(str2sym('(heaviside(t+1)-heaviside(t-1))*exp(1i*20*t)')));
subplot(312);
ezplot(abs(Fw1),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
subplot(313);
ezplot(abs(Fw2),[-24*pi 24*pi])
grid on
axis([-24*pi 24*pi -0.2 2.2]);
六、实验总结
单位阶跃信号:heaviside(t)
或 stepfun(t,t0)
,其中,t是以向量形式表示的变量,t0表示信号发生突变的时刻。
在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的Symbolic Math Toolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。
1.直接调用专用函数法
①在 MATLAB 中实现傅里叶变换的函数为:
F=fourier(f)
对f(t)进行傅里叶变换,其结果为F(w)
F=fourier(f,v)
对f(t)进行傅里叶变换,其结果为F(v)
F=fourier(f,u,v)
对f(u)进行傅里叶变换,其结果为F(v)
②傅里叶反变换
f=ifourier(F)
对F(w)进行傅里叶反变换,其结果为f(x)
f=ifourier(F,U)
对F(w)进行傅里叶反变换,其结果为f(u)
f=ifourier(F,v,u)
对F(v)进行傅里叶反变换,其结果为f(u)
由于MATLAB中函数类型非常丰富,要想了解函数的意义和用法,可以用mhelp命令。如在命令窗口键入:mhelp fourier回车,则会得到fourier的意义和用法。
在遇到问题时,多使用doc函数进行查询