信号与系统的MATLAB仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档