江苏大学计算机14信号仿真实验.docx
- 文档编号:24644021
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:19
- 大小:306.80KB
江苏大学计算机14信号仿真实验.docx
《江苏大学计算机14信号仿真实验.docx》由会员分享,可在线阅读,更多相关《江苏大学计算机14信号仿真实验.docx(19页珍藏版)》请在冰豆网上搜索。
江苏大学计算机14信号仿真实验
课程:
信号与线性系统
姓名:
学院:
计算机科学与通信工程学院
学号:
专业班级:
指导老师:
作业一
1.问题分析:
使用MATLAB,产生并绘出以下信号
(1)正弦波
(2)周期三角波
(3)矩形脉冲函数
(4)单位冲击函数
(5)单位阶跃函数
(6)抽样函数
2.设计:
(1)正弦波
正弦信号A*cos(W0*t+phi)和A*sin(W0*t+phi)分别用MATLAB的内部函数cos和sin表示,其调用形式为:
A*cos(W0*t+phi)
A*sin(W0*t+phi)
(2)周期三角波
周期性三角波信号在MATLAB中用sawtooth函数来表示,其调用形式为:
y=sawtooth(t,WIDTH)
用以产生一个周期为2π,最大幅度为1,最小幅度为-1的周期性三角波信号,其中的WIDTH参数表示最大幅度出现的位置,在一个周期内,信号从t=0到WIDTHx2π时函数是从-1到1线性增加的,从而WIDTHx2π到2π时函数又是从1到-1线性递减的,在其他周期内依此类推。
(3)矩形脉冲函数
矩形脉冲信号在MATLAB中用rectpuls函数来表示,其调用形式为:
y=rectpuls(t,width)
用以产生一个幅值为1,宽度为width,相对于t=0点左右对称的矩形波信号。
该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围。
width的默认值为1。
(4)单位冲激函数
冲击函数为f(t)=δ(t),图像特点为在0点值为1的冲激,大于0和小于0的值皆为0。
即将单位冲激函数写成MATLAB函数的形式,利用关系运算符“==”来实现。
(5)单位阶跃函数
阶跃函数为f(t)=ε(t),阶跃函数信号在MATLAB中用stepfun函数来表示,其调用形式为:
y=stepfun(t,t0)
用以产生一个幅值为1,宽度为width,相对于t0点左右对称的单位阶跃函数
信号。
(6)抽样函数
抽样函数Sa(t)在MATLAB中用sinc函数表示。
其定义为:
sinc(t)=sin(π*t)/(π*t)
其调用形式为:
y=sinc(t)
3.过程记录:
3.1.1正弦波仿真程序如下:
(取A=1,W0=2π,初相位为π/6)
%programsin
A=1;W0=2*pi;phi=pi/6;
t=0:
0.001:
8;
ft=A*sin(W0*t+phi);
plot(t,ft);gridon;
3.1.2如图1所示为正弦信号波形图。
图1正弦信号
3.2.1周期三角波仿真程序如下:
%programtriangular
t=-5*pi:
pi/10:
5*pi;
x=sawtooth(t,0.5);
plot(t,x);axis([-1616-22]);gridon;
3.2.2如图2所示为周期三角波信号波形图。
图2周期三角波
3.3.1矩形脉冲函数仿真程序如下:
%programrectpuls
t=0:
0.001:
4;
T=1;
ft=rectpuls(t-2*T,2*T);
plot(t,ft);gridon;axis([04-0.51.5]);
3.3.2如图3所示为矩形脉冲函数信号波形图。
图3矩形脉冲函数信号
3.4.1单位冲击函数仿真程序如下:
%programchongji
t=-5:
0.001:
5;
y=0*(t>+-5&t<0)+0*(t<=5&t>0)+1*(t==1);
plot(t,y);axis([-55-11.5]);
3.4.2如图4所示为单位冲激函数信号波形图。
图4单位冲激函数
3.5.1单位阶跃函数仿真程序如下:
%programstepfun
t=-1:
0.001:
1;
t0=0;
y=stepfun(t,t0);
plot(t,y);gridon;axis([-11-0.21.2]);
3.5.2如图5所示为单位阶跃函数信号波形图。
图5单位阶跃函数
3.6.1抽样函数仿真程序如下:
%programsinc
t=-3*pi:
pi/100:
3*pi;
ft=sinc(t/pi);
plot(t,ft);gridon;
3.6.2如图6所示为抽样函数波形图。
图6抽样函数
4.报告总结:
本次实验报告完成大概花了1小时时间,由于刚开始接触MATLAB,实验着实遇到了不小挑战,还好第一次实验只是辅助软件理解,利用MATLAB绘画一些信号波形,利用MATLAB库里存在的函数来进行波形的绘画方便了很多,只需要进行参数传递便可实现,期间学了一些代码,如gridon是实现界面覆盖表格,plot(t,y)是以t向量为X轴,y向量为Y轴绘制波形的;axis()函数可以设置界面X,Y轴最大显示值。
cos,sin是实现余弦函数和正弦函数,sinc实现抽样函数,rectupls实现矩形脉冲信号,周期性矩形波信号为square函数,三角脉冲信号用tripuls函数来表示,周期性三角波信号在MATLAB中用sawtooth函数来表示,一般周期性脉冲信号用pulstran函数来表示。
期间遇到的问题,有代码敲错,或者遇到信号不知使用哪一个函数调用,我便使用从图书馆借来的书查阅。
作业二
1.问题分析:
1.1利用MATLAB画出图7周期三角波信号的频谱。
图7周期三角波信号
1.2利用MATLAB采用数值计算方法近似计算以下三角波信号的频谱。
2.设计:
2.1例一设计思路
经计算,该周期三角波信号的福利叶级数系数为:
根据上式便可在规划出定义域上的值域,用abs函数求幅度,用angle函数求相位。
2.2例题二的设计思想
为了利用quad8函数计算f(t)的频谱,定义如下的MATLAB函数:
functiony=sf1(t,w);
Y=(abs(t)<=1),*(1-abs(t)).*exp(-j*w*t);
对于不同的参数w,函数sf1将计算出傅里叶变换中被积函数的值,其中的(abs(t)<=1).*(1-abs(t))就是信号f(t)的MATLAB表示。
注意,要将上面的MATLAB函数以文件名sf1.m保存。
然后利用quadl函数是从MATLAB6.0版本才开始出现的一个新的积分函数,MATLAB建议用quadl函数来代替以前的MATLAB版本中支持的quad8函数,因为quadl函数具有更高的求积精度(当然,目前在MATLAB6.x和7.x版本中依然可以调用quad8函数,只是会有警告信息的提示)。
注意:
quadl的最后一个字符是字母l,而非数字1。
quadl函数的一般调用形式为:
y=quadl(fun,a,b)
Y=quadl(fun,a,b,TOL,TRACE,p1,p1...)
其中的fun指定被积函数,可以用下列两种等效的形式来制定,第一种形式为:
F=inline(‘1./(x.^3-2*x-5)’);
Q=quadl(F,0,2);
第二种形式为:
Q=quadl(@myfun,0,2);
这里的myfun.m是一个内存如下的.m文件:
Functiony=myfun(x);
Y=1./(x/^3-2*x-5);
上面的“@”符号表示取函数的句柄,而quadl函数中的其他参数的意义跟quadl8函数相同。
3.过程记录:
3.1.1例一仿真程序
%programexampleN=10;
N=10;
n1=-N:
-1;c1=-4*j*sin(n1*pi/2)/pi^2./n1.^2;%计算n=-N到-1时的傅里叶级数系数
c0=0;%计算n=0时的傅里叶级数系数
n2=1:
N;c2=-4*j*sin(n2*pi/2)/pi^2./n2.^2;%计算n=1到N时的傅里叶级数系数
cn=[c1c0c2];n=-N:
N;
subplot(2,1,1);stem(n,abs(cn));ylabel('Cn的幅度');
subplot(2,1,2);stem(n,angle(cn));ylabel('Cn的相位');
xlabel('\omega/\omega_0');
3.1.2例一周期三角波信号的频谱图如图8所示。
图8周期三角波信号的频谱
3.2.1例二仿真程序
%programsf1
functiony=sf1(t,w);
y=(abs(t)<=1),*(1-abs(t)).*exp(-j*w*t);
%programexample
w=linspace(-6*pi,6*pi,512);
N=length(w);F=zeros(1,N);
fork=1:
N
F(k)=quadl(@sf1,-1,1,[],[],w(k));
end;
figure
(1);plot(w,real(F));
xlabel('\omega');ylabel('F(j\omega)');title('三角波信号近似频谱');
figure
(2);plot(w,real(F)-sinc(w/2/pi).^2);%这里的sinc函数值即为理论计算结果
xlabel('\omega');ylabel('error');title('计算误差');
3.2.2例二三角波信号近似频谱图如图9所示,计算误差如图10所示。
图9三角波信号近似频谱
图10计算误差
4.报告总结:
本次实验包括报告大概花了45分钟,书写报告需要不少时间,在仿真程序设计过程中,出现了调用quadl和quad8函数得出不同的误差图,其实是变量赋值出现错误,可以见到代码一旦多起来,就越需要敲代码的人越发仔细,通过本次实验,学到了新建文件进行编程的方式,实验一是在CommandWindow直接进行逐步编译,本次实验学会建立.m文件进行完整代码直接编译,同时学会了几个函数,如abs求幅度,angle求相位,还可以利用subplot函数进行同一个窗口显示几个图,当然重点还是复习了一遍求傅里叶系数的算法。
作业三
1.问题分析:
设有两个稳定的LTI系统,可有以下微分方程描述
(1)
(2)
请画出系统的冲激响应和阶跃响应,并画出它们的系统频率响应的幅值和相位的特性曲线。
2.设计:
利用impulse函数实现冲激响应,利用step实现阶跃响应,具体参数传递根据其函数本身的定义来进行赋初值。
而系统频率响应的幅值和相位的特性曲线根据freqs函数进行传递与计算。
3.过程记录:
3.1.1例一仿真程序
%programImpulse(冲激响应)
impulse(tf(3,[32]),10);xlabel('t(sec)');ylabel('y(t)');gridon;
%programstep(阶跃响应)
step(tf(3,[32]),10);xlabel('t(sec)');ylabel('y(t)');gridon;
%系统频率响应的幅值和相位的特性曲线:
w=-3*pi:
0.01:
3*pi;
b=[3];a=[1,3];
H=freqs(b,a,w);
subplot(211)
plot(w,abs(H)),gridon
xlabel('\omega(rad/s)'),ylabel('|H(\omega)|')
title('H(w)的频率特性')
subplot(212)
plot(w,angle(H)),gridon
xlabel('\omega(rad/s)'),ylabel('\phi(\omega)|')
title('H(w)的相频特性')
3.1.2例一冲激响应如图11所示,阶跃响应如图12所示,频率特性及相频特性如图13所示。
图11例一冲激响应
图12例一阶跃响应
图13频率特性及相频特性
3.2.1例二仿真程序
%programImpulse(冲激响应)
impulse(tf([15],[341]),10);xlabel('t(sec)');ylabel('y(t)');gridon
%programstep(阶跃响应)
step(tf([15],[341]),10);xlabel('t(sec)');ylabel('y(t)');gridon
%系统频率响应的幅值和相位的特性曲线:
w=-3*pi:
0.01:
3*pi;
b=[1,0,5];a=[3,4,1];
H=freqs(b,a,w);
subplot(211)
plot(w,abs(H)),gridon
xlabel('\omega(rad/s)'),ylabel('|H(\omega)|')
title('H(w)的频率特性')
subplot(212)
plot(w,angle(H)),gridon
xlabel('\omega(rad/s)'),ylabel('\phi(\omega)|')
title('H(w)的相频特性')
3.2.2例一冲激响应如图14所示,阶跃响应如图15所示,系统频率响应的幅值和相位的特性曲线如图16所示。
图14例二冲激响应
图15例二阶跃响应
图16例二频率特性及相频特性
4.报告总结:
本次实验加报告完成时间大概在1.5小时左右,由于对于函数不够理解代码方面花费了不少时间,在此过程中学到了如何绘图系统冲激响应和阶跃响应及其系统频率响应的幅值和相位的特性曲线,可以利用impulse函数求冲激响应,利用step函数求系统的阶跃响应,利用freqs进行参数的传递来求频率响应的幅值和相位,还有xlabel函数可以命名窗口界面X坐标,ylabel函数可以命名窗口界面的Y坐标,title函数进行窗口标题的命名。
作业四
1.问题分析:
对连续时间系统
,用MATLAB作图求其奈奎斯特频率。
2.设计:
先求出y(t),y(t)利用正弦函数相加得出,然后利用nyquist函数求其奈奎斯特频率。
3.过程记录:
3.1仿真程序如下。
%programnyquist
num1=[40*pi];
den1=[10((40*pi)^2)];
tf1=tf(num1,den1);
num2=[24*pi];
den2=[10((24*pi)^2)];
tf2=tf(num2,den2);
tf=tf1+tf2;%建立系统模型
nyquist(tf);
3.2奈奎斯特频率图如17所示
图17奈奎斯特频率
4.报告总结:
本次实验加报告完成时间大概在1小时左右,提高了报告完成效率,代码部分花费了一小段时间,本次实验主要考察系统奈奎斯特频率的计算以及绘图,使用了nyquist函数,它是绘制奈奎斯特频率图的专用函数。
只需进行各个变量的初值幅值便可实现奈奎斯特频率的绘制。
本次实验完成的较为顺利。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江苏 大学计算机 14 信号 仿真 实验