信号与系统实验报告文档格式.docx
- 文档编号:14280033
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:29
- 大小:288.03KB
信号与系统实验报告文档格式.docx
《信号与系统实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《信号与系统实验报告文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
⑶常见信号的MATLAB表示
单位阶跃信号
单位阶跃信号的定义为:
方法一:
调用Heaviside(t)函数
首先定义函数Heaviside(t)的m函数文件,该文件名应与函数名同名即Heaviside.m。
%定义函数文件,函数名为Heaviside,输入变量为x,输出变量为y
functiony=Heaviside(t)
y=(t>
0);
%定义函数体,即函数所执行指令
%此处定义t>
0时y=1,t<
=0时y=0,注意与实际的阶跃信号定义的区别。
方法二:
数值计算法
在MATLAB中,有一个专门用于表示单位阶跃信号的函数,即stepfun()函数,它是用数值计算法表示的单位阶跃函数。
其调用格式为:
stepfun(t,t0)
其中,t是以向量形式表示的变量,t0表示信号发生突变的时刻,在t0以前,函数值小于零,t0以后函数值大于零。
有趣的是它同时还可以表示单位阶跃序列,这只要将自变量以及取样间隔设定为整数即可。
符号函数
符号函数的定义为:
在MATLAB中有专门用于表示符号函数的函数sign(),由于单位阶跃信号(t)和符号函数两者之间存在以下关系:
,因此,利用这个函数就可以很容易地生成单位阶跃信号。
2.离散时间信号
离散时间信号又叫离散时间序列,一般用表示,其中变量k为整数,代表离散的采样时间点(采样次数)。
在MATLAB中,离散信号的表示方法与连续信号不同,它无法用符号运算法来表示,而只能采用数值计算法表示,由于MATLAB中元素的个数是有限的,因此,MATLAB无法表示无限序列;
另外,在绘制离散信号时必须使用专门绘制离散数据的命令,即stem()函数,而不能用plot()函数。
单位序列
单位序列)的定义为
单位阶跃序列
单位阶跃序列的定义为
3.卷积积分
两个信号的卷积定义为:
MATLAB中是利用conv函数来实现卷积的。
功能:
实现两个函数和的卷积。
格式:
g=conv(f1,f2)
说明:
f1=f1(t),f2=f2(t)
表示两个函数,g=g(t)表示两个函数的卷积结果。
三、实验内容
1.分别用MATLAB的向量表示法和符号运算功能,表示并绘出下列连续时间信号的波形:
⑴⑵
(1)t=-1:
0.01:
10;
t1=-1:
-0.01;
t2=0:
f1=[zeros(1,length(t1)),ones(1,length(t2))];
f=(2-exp(-2*t)).*f1;
plot(t,f)
axis([-1,10,0,2.1])
symst;
f=sym('
(2-exp(-2*t))*heaviside(t)'
);
ezplot(f,[-1,10]);
(2)
t=-2:
8;
f=0.*(t<
0)+cos(pi*t/2).*(t>
0&
t<
4)+0.*(t>
4);
cos(pi*t/2)*[heaviside(t)-heaviside(t-4)]'
ezplot(f,[-2,8]);
2.分别用MATLAB表示并绘出下列离散时间信号的波形:
⑵
⑶
(2)t=0:
t1=-10:
15;
f=[zeros(1,10),t,zeros(1,7)];
stem(t1,f)
axis([-10,15,0,10]);
(3)t=0:
50;
f=[zeros(1,10),sin(t*pi/4)];
axis([-10,50,-2,2])
3.已知两信号,,求卷积积分,并与例题比较。
0;
1;
t3=-1:
f1=ones(size(t1));
f2=ones(size(t2));
g=conv(f1,f2);
subplot(3,1,1),plot(t1,f1);
subplot(3,1,2),plot(t2,f2);
subplot(3,1,3),plot(t3,g);
与例题相比较,g(t)的定义域不同,最大值对应的横坐标也不同。
4.已知,求两序列的卷积和。
N=4;
M=5;
L=N+M-1;
f1=[1,1,1,2];
f2=[1,2,3,4,5];
kf1=0:
N-1;
kf2=0:
M-1;
kg=0:
L-1;
subplot(1,3,1),stem(kf1,f1,'
*k'
xlabel('
k'
ylabel('
f1(k)'
gridon
subplot(1,3,2),stem(kf2,f2,'
f2(k)'
subplot(1,3,3);
stem(kg,g,'
g(k)'
实验心得:
第一次接触Mutlab这个绘图软件,觉得挺新奇的,同时,由于之前不太学信号与系统遇到一些不懂的问题,结合这些图对信号与系统有更好的了解。
实验四
连续时间信号的频域分析
一、
实验目的
1.熟悉傅里叶变换的性质
2.熟悉常见信号的傅里叶变换
3.了解傅里叶变换的MATLAB实现方法
二、
实验原理
从已知信号求出相应的频谱函数的数学表示为:
傅里叶反变换的定义为:
在MATLAB中实现傅里叶变换的方法有两种,一种是利用MATLAB中的SymbolicMathToolbox提供的专用函数直接求解函数的傅里叶变换和傅里叶反变换,另一种是傅里叶变换的数值计算实现法。
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)
注意:
(1)在调用函数fourier()及ifourier()之前,要用syms命令对所有需要用到的变量(如t,u,v,w)等进行说明,即要将这些变量说明成符号变量。
对fourier()中的f及ifourier()中的F也要用符号定义符sym将其说明为符号表达式。
(2)采用fourier()及fourier()得到的返回函数,仍然为符号表达式。
在对其作图时要用ezplot()函数,而不能用plot()函数。
(3)fourier()及fourier()函数的应用有很多局限性,如果在返回函数中含有δ(ω)等函数,则ezplot()函数也无法作出图来。
另外,在用fourier()函数对某些信号进行变换时,其返回函数如果包含一些不能直接表达的式子,则此时当然也就无法作图了。
这是fourier()函数的一个局限。
另一个局限是在很多场合,尽管原时间信号f(t)是连续的,但却不能表示成符号表达式,此时只能应用下面介绍的数值计算法来进行傅氏变换了,当然,大多数情况下,用数值计算法所求的频谱函数只是一种近似值。
2、傅里叶变换的数值计算实现法
严格说来,如果不使用symbolic工具箱,是不能分析连续时间信号的。
采用数值计算方法实现连续时间信号的傅里叶变换,实质上只是借助于MATLAB的强大数值计算功能,特别是其强大的矩阵运算能力而进行的一种近似计算。
傅里叶变换的数值计算实现法的原理如下:
对于连续时间信号f(t),其傅里叶变换为:
其中τ为取样间隔,如果f(t)是时限信号,或者当|t|大于某个给定值时,f(t)的值已经衰减得很厉害,可以近似地看成是时限信号,则上式中的n取值就是有限的,假定为N,有:
若对频率变量ω进行取样,得:
通常取:
,其中是要取的频率范围,或信号的频带宽度。
采用MATLAB实现上式时,其要点是要生成f(t)的N个样本值的向量,以及向量,两向量的内积(即两矩阵的乘积),结果即完成上式的傅里叶变换的数值计算。
时间取样间隔τ的确定,其依据是τ必须小于奈奎斯特(Nyquist)取样间隔。
如果f(t)不是严格的带限信号,则可以根据实际计算的精度要求来确定一个适当的频率为信号的带宽。
三、实验内容
1.编程实现求下列信号的幅度频谱
(1)
求出的频谱函数F1(jω),请将它与上面门宽为2的门函数的频谱进行比较,观察两者的特点,说明两者的关系。
(2)三角脉冲
(3)单边指数信号
(4)高斯信号
(1)symstw
Gt=sym('
Heaviside(2*t+1)-Heaviside(2*t-1)'
Fw=fourier(Gt,t,w);
FFw=maple('
convert'
Fw,'
piecewise'
FFP=abs(FFw);
ezplot(FFP,[-10*pi10*pi]);
grid;
axis([-10*pi10*pi02.2])
与的频谱比较,的频谱函数F1(jω)最大值是其的1/2。
symstw;
(1+t)*(Heaviside(t+1)-Heaviside(t))+(1-t)*(Heaviside(t)-Heaviside(t-1))'
axis([-10*p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 系统 实验 报告