信号课程设计成品平Word格式文档下载.docx
《信号课程设计成品平Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信号课程设计成品平Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
f=(t==0);
t=-1:
正弦信号f(t)=sin(ωt+ψ)
1、符号法生成正弦交流信号
t=0:
0.001:
f=sym('
sin(2*pi*t)'
);
ezplot
2、数值法生成正弦交流信号
t=0:
y=sin(2*pi*t);
plot(t,y)
周期方波信号
y=t=0:
square(2*pi*15*t);
%生成方波
axis([0,1,-1.5,1.5])
title('
周期方波'
xlabel('
时间(t)'
ylabel('
幅值(f)'
周期锯齿方波
t=0:
2.5;
y=sawtooth(2*pi*30*t);
axis([0,0.2,-1,1]);
锯齿方波'
常见离散信号产生和实现
1、五种基本函数的生成
程序如下:
(1)、单位抽样序列
%单位抽样序列和延时的单位抽样序列
clf;
n=0:
10;
x1=[1zeros(1,10)];
x2=[zeros(1,5)1zeros(1,5)];
subplot(1,2,1);
stem(n,x1);
xlabel('
时间序列n'
);
振幅'
单位抽样序列x1'
subplot(1,2,2);
stem(n,x2);
xlabel('
延时了5的单位抽样序列'
(2)、单位阶越序列
u=[ones(1,11)];
stem(n,u);
xlabel(,时间序列n'
单位阶跃序列'
所得的图形如下所示:
(3)正弦函数
n=1:
30;
x=2*sin(pi*n/6+pi/3);
stem(n,x);
xlabel('
正弦函数序列x=2*sin(pi*n/6+pi/3)'
(4)、复指数序列
x=2*exp(j*3*n);
复指数序列x=2*exp(j*3*n)'
图形如下:
(5)指数序列
x=1.2.^n;
指数序列x=1.2.^n'
专业:
电子信息工程
学号:
信号与系统
课程设计
题目:
学生姓名:
院(系、部):
机电工程学院
指导教师:
马崇霄张云
2013年12月12日
摘要
设计者:
王路玲吴盼盼邓小丛
指导老师:
马崇霄张云
MATLAB的数学运算主要有两种:
数值运算与符号运算。
MATLAB强大的数值运算功能使其成为目前最为优秀的科学计算软件。
目前,大部分的文献都是介绍其数值运算方面的。
与数值计算一样,符号运算也是MATLAB的一个极其重要的组成部分。
在符号运算中,科学计算的对象从具体的数值抽象为一般的文字符号,即符号对象。
运算时无需事先对变量赋值,运算所得结果以标准的符号形式表达,即函数关系式。
由于符号表示的解析式比数值解具有更好的通用性,具有直观明了的特点,方便进一步的数学分析,所以符号解在公示推演中有着数值运算无法替代的功能。
我们小组在本次课程设计中着重研究连续典型非周期信号的傅里叶变换和反变换及其MATLAB实现。
通过本次课程设计,我们应用MATLAB软件仿真一些典型非周期信号的傅里叶变换及其反变换,通过对这些典型非周期信号频谱的研究,我们希望能够对非周期信号的傅里叶变换及其反变换有更加深刻的认识和了解,同时也希望能够掌握MATLAB软件以实现其对函数信号的仿真应用。
关键词:
matlab,符号运算,傅里叶变换及其反变换,非周期信号
1绪论
本设计利用MATLAB强大的符号运算功能实现了几种典型非周期信号的傅里叶变换及其反变换。
本设计通过对M文件的编译和运行,得到了几种典型非周期信号的频谱图,更为直观的展现了非周期信号经过傅里叶变换后的图形,完成了通过MATLAB的符号运算功能实现傅里叶正反变换的设计。
2设计内容及要求
本小组在本次课程设计中的主要研究内容是典型非周期信号的傅里叶正反变换及MATLABA仿真实现。
2.1主要研究的函数:
1.单边指数信号时域波形图、频域图。
2.直流信号时域波形图、频域图
3.符号函数信号时域波形图、频域图
4.单位阶跃信号时域波形图、频域图
5.门函数信号时域波形图、频域图
2.2非周期信号的傅里叶变换原理及性质
信号
的傅立叶变换定义为:
(1-1)
值得注意的是,
的傅立叶变换存在的充分条件是
在
无限区间内绝对可积,即
满足式子:
。
但此式并非是
的必要条件。
当引入奇异函数概念后,使一些不满足绝对可积的
也能进行傅立叶变换。
傅立叶逆变换定义是:
(1-2)
称为
的频谱密度函数。
2.3傅立叶变换的性质
(1)线性性质:
(1-3)
(2)频移性质:
(1-4)
(3)时移性质:
(1-5)
(4)尺度变换性质:
(1-6)
(5)对称性质:
(1-7)
(6)时域微分性质:
(1-8)
(7)频域微分性质:
(1-9)
(8)时域积分性质:
(1-10)
(9)频域卷积定理:
则(1-11)
(10)时域卷积定理:
则(1-12)
2.4设计的目的及主要任务
2.4.1设计目的
(1)在了解MATLAB语言的基础上进一步掌握和精通MATLAB;
(2)熟悉几种典型非周期信号的MATLAB表示方法;
(3)熟悉MATLABPLOT等函数的应用;
(4)更深刻的理解傅里叶正反变换;
2.4.2设计任务及要求
应用MATLAB软件强大的符号运算功能仿真实现几种典型非周期信号傅里叶变换及其逆变换,通过对典型非周期信号频谱的研究更加深刻的理解非周期信号的傅里叶变换及其反变换,同时能够熟练地掌握MATLAB软件对函数信号的仿真应用。
2.5设计思想
本设计应用MATLAB软件仿真一些典型非周期信号的傅里叶变换及其反变换,通过对这些典型信号频谱的研究以及位移性质和尺度变换性质的综合应用,我们希望能够对非周期信号的傅里叶变换及其反变换有更加深刻的认识和了解,同时也希望能够掌握MATLAB软件以实现其对函数信号的仿真应用。
3MATLAB简介
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
3.1MATLAB程序设计
MATLAB有两种工作方式:
一种是交互式的命令行工作方式;
另一种是M文件的程序工作方式。
在前一种工作方式下,MATLAB被当做一种高级数学演算纸和图形表现器来使用,MATLAB提供了一套完整的而易于使用的编程语言,为用户提供了二次开发的工具,下面主要介绍MATLAB控制语句和程序设计的基本方法。
用MATLAB语言编写的程序,称为M文件。
M文件有两类:
命令文件和函数文件。
两者区别在于:
命令文件没有输入参数,也不返回输出参数;
而函数文件可以输入参数,也可以返回输出参数。
命令文件对MATLAB工作空间的变量进行操作,而且函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。
M文件可以使用任何编辑程序建立和编辑,而一般常用的是使用MATLAB提供的M文件窗口。
3.2M文件的使用
在处理一些包含多条命令的问题时,如果在MATLAB的命令窗口中进行处理,当出现错误时不好修改,这时我们需要借助MATLAB提供的M文件方式来处理。
M文件类似于批处理件,单击MATLAB菜单中的“file”选项,从下拉列表中选取“new”选项,从其下拉列表中选取“m_file”,即可打开M文件的编辑窗口如图所示:
另外,M文件还可以编写函数。
MATLAB的工具箱提供了丰
富的函数,但有些时候,我们在解决一些问题的时候,需要编
写一些自己需要而工具箱没有提供的函数。
函数在编写完成后进行保存时要注意,保存的文件名要与你定义的函数名一致,也就是说,该函数的文件名应该是“two_add.m
如何调用该函数?
使用MATLAB时候还有一些需要注意的地方:
1、变量的大小写有区别。
2、可以借助键盘的光标键调出之前输入的命令重新执行。
3、在命令窗口调用编写的M文件时,是有路径要求的,它的默认路径是“work”子目录。
如你编写的M文件在其他目录,需要修改当前路径,修改的地方在命令窗口的工具栏上“CurrentDirectory”处,如图所示。
四、非周期信号傅立叶变换及逆变换的程序设计
4.1傅里叶正反变换MATLAB函数含义说明
MATLAB的SymbolicMathToolbox提供了能直接求解傅里叶变换及逆变换的函数fourier()及ifourier()。
傅立叶变换
(1)F=fourier(f)
(2)F=fourier(f,v)
(3)F=fourier(f,u,v)
说明:
(1)F=fourier(f)是符号函数f的傅立叶变换,缺省返回是关于ω的函数。
如果f=f(ω),则fourier函数返回关于t的函数。
(2)F=fourier(f,v)返回函数F是关于符号对象v的函数,而不是默认的ω,即
(3)F=fourier(f,u,v)对关于u的函数f进行变换,返回函数F是关于v的函数,即
傅立叶逆变换
(1)f=ifourier(F)
(2)f=ifourier(F,u)
(3)f=ifourier(F,v,u)
(1)f=ifourier(F)是函数F的傅立叶逆变换。
默认的独立变量是w,默认返回的
关于x的函数。
如果F=F(x),则ifourier函数返回关于t的函数;
(2)f=ifourier(F,u)返回函数f是u的函数,而不是默认x的函数;
(3)f=ifourier(F,v,u)对关于v的函数F进行逆变换,返回关于u的函数。
注意:
在调用fourier()和ifourier()之前,要用syms命令对所有用到的变量