信号与系统的MATLAB仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号与系统的MATLAB 仿真
一、信号生成与运算的实现
1.1 实现)3(sin )()(π±==
=t t
t
t S t f a )(sin )sin()sin(sin )()(t c t t t t t t t S t f a '='
'==
==πππ
π
ππ m11.m
t=-3*pi:0.01*pi:3*pi; % 定义时间范围向量t f=sinc(t/pi); % 计算Sa(t)函数 plot(t,f); % 绘制Sa(t)的波形 运行结果:
1.2 实现)10()
sin()(sin )(±==
=t t
t t c t f ππ m12.m
t=-10:0.01:10; % 定义时间范围向量t f=sinc(t); % 计算sinc(t)函数
plot(t,f); % 绘制sinc(t)的波形 运行结果:
1.3 信号相加:t t t f ππ20cos 18cos )(+=
m13.m
syms t; % 定义符号变量t
f=cos(18*pi*t)+cos(20*pi*t); % 计算符号函数f(t)=cos(18*pi*t)+cos(20*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果:
1.4 信号的调制:t t t f ππ50cos )4sin 22()(+=
m14.m
syms t; % 定义符号变量t
f=(2+2*sin(4*pi*t))*cos(50*pi*t) % 计算符号函数f(t)=(2+2*sin(4*pi*t))*cos(50*pi*t) ezplot(f,[0 pi]); % 绘制f(t)的波形 运行结果:
1.5 信号相乘:)20cos()(sin )(t t c t f π⋅=
m15.m
t=-5:0.01:5; % 定义时间范围向量
f=sinc(t).*cos(20*pi*t); % 计算函数f(t)=sinc(t)*cos(20*pi*t) plot(t,f); % 绘制f(t)的波形 title('sinc(t)*cos(20*pi*t)'); % 加注波形标题 运行结果:
二、系统时域的仿真分析
2.1 实现卷积)(*)(t h t f ,其中:)2()()()],1()([2)(--=--=t t t h t t t f εεεε m21.m
p=0.01; % 取样时间间隔 nf=0:p:1; % f(t)对应的时间向量 f=2*((nf>=0)-(nf>=1)); % 序列f(n)的值
nh=0:p:2; % h(t)对应的时间向量 h=(nh>=0)-(nh>=2); % 序列h(n)的值 [y,k]=sconv(f,h,nf,nh,p); % 计算y(t)=f(t)*h(t) subplot(3,1,1),stairs(nf,f); % 绘制f(t)的波形 title('f(t)');axis([0 3 0 2.1]);
subplot(3,1,2),stairs(nh,h); % 绘制h(t)的波形 title('h(t)');axis([0 3 0 1.1]);
subplot(3,1,3),plot(k,y); % 绘制y(t)=f(t)*h(t)的波形 title('y(t)=f(t)*h(t)');axis([0 3 0 2.1]);
子程序 sconv.m
% 此函数用于计算连续信号的卷积y(t)=f(t)*h(t) function [y,k]=sconv(f,h,nf,nh,p)
% y:卷积积分y(t)对应的非零样值向量 % k:y(t)对应的时间向量 % f:f(t)对应的非零样值向量 % nf:f(t)对应的时间向量 % h:h(t)对应的非零样值向量 % nh:h(t)对应的时间向量 % p:取样时间间隔
y=conv(f,h); % 计算序列f(n)与h(n)的卷积和y(n) y=y*p; % y(n)变成y(t)
left=nf(1)+nh(1) % 计算序列y(n)非零样值的起点位置 right=length(nf)+length(nh)-2 % 计算序列y(n)非零样值的终点位置 k=p*(left:right); % 确定卷积和y(n)非零样值的时间向量 运行结果:
2.2 实现卷积)(*)(t h t f ,其中:)()()],2()([2)(t e t h t t t f t
εεε-=--= m22.m
p=0.01; % 取样时间间隔 nf=0:p:2; % f(t)对应的时间向量 f=2*((nf>=0)-(nf>=2)); % 序列f(n)的值
nh=0:p:4; % h(t)对应的时间向量 h=exp(-nh); % 序列h(n)的值 [y,k]=sconv(f,h,nf,nh,p); % 计算y(t)=f(t)*h(t) subplot(3,1,1),stairs(nf,f); % 绘制f(t)的波形 title('f(t)');axis([0 6 0 2.1]);
subplot(3,1,2),plot(nh,h); % 绘制h(t)的波形 title('h(t)');axis([0 6 0 1.1]);
subplot(3,1,3),plot(k,y); % 绘制y(t)=f(t)*h(t)的波形 title('y(t)=f(t)*h(t)');axis([0 6 0 2.1]);运行结果:
2.3 设方程 )(2)(6)(5)('''t e t y t y t y t
ε-=++,试求零状态响应)(t y m23.m :
yzs=dsolve('D2y+5*Dy+6*y=2*exp(-t)','y(0)=0,Dy(0)=0') ezplot(yzs,[0 8]); 运行结果:
yzs =exp(-t)+exp(-3*t)-2*exp(-2*t) 即:)()2()(32t e e e
t y t t t
ε---+-=
2.4 已知二阶系统方程)(1)(1)()(''
't LC
t u LC t u L R t u c c δ=++
对下列情况分别求)(t h ,并画出其波形。 a. F C H L R 3/1,1,4==Ω= b. F C H L R 1,1,2==Ω= c. F C H L R 1,1,1==Ω=
d. F C H L R 1,1,0==Ω=
m24.m:
R=input('电阻R='); % 以交互方式输入电阻R 的值 L=input('电感L='); % 以交互方式输入电阻L 的值 C=input('电容C='); % 以交互方式输入电阻C 的值 b=[1/(L*C)];
a=[1 R/L 1/(L*C)]; impulse(b,a); 运行结果:
a. 电阻R=4 电感L=1 电容C=1/3