信号与系统的matlab表示

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

连续信号与系统分析

一、典型信号的matlab 表示

表示连续信号,需定义自变量的范围和取样间隔,如t=0:0.01:3

1.实指数信号y=k*exp(a*t)

2.正弦信号k*sin(w*t+phi)k*cos(w*t+phi)

3.复指数信号y=k*exp((a+i*b)*t)

实部real(y)虚部imag(y)模abs(y)相角angle(y)共轭conj(y)

4.抽样信号Sat=sinc(t/pi)

5.矩形脉冲信号y=rectpuls(t,width)

周期方波信号y=square(2*pi*f*t,duty)%产生频率为fHZ ,占空比为duty%的方波

6.三角脉冲信号

非周期三角波y=tripuls(t,width,skew)%斜度skew ,最大幅度出现在t=(width/2)*skew 周期三角波y=sawtooth(t,width)

7.单位阶跃信号function y=uCT(t)y=(t>=0)

阶跃信号符号函数Heaviside()y=sym(‘Heaviside(t)’)%调用时必须用sym 定义冲激信号符号函数Dirac()

二、Matlab 的符号运算

1.定义符号变量

syms 变量名syms x

sym(‘变量名’)x=sym(‘x’)

sym(‘表达式’)sym(‘x+1’)

2.化简符号运算结果simple 或simplify

3.绘制符号表达式图形ezplot(y,[a,b])

三、连续信号的运算

微分和积分运算(用符号表达式来表示)

1.微分运算

Diff(function,’variable’,n)%variable 为求导变量,n 为求导阶数

例:syms a x y

y=sin(a*x^2);

dy=diff(y,’x’)

2.积分运算

int(function,’variable’,a,b)%a 为积分下限,b 为积分上限

3.信号的反折fliplr(x)

4.卷积计算

1)符号运算计算卷积(求解积分的方法)例:)

(*)()(t u e t u e t y t t

--=syms T t tao

xt1=exp(-t);

xt2=exp(-t/T);

xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);

yt=int(xt_tao,tao,0,t);

yt=simplify(yt);

2)数值计算法求卷积

conv()

y =dt*conv(e,h)

例:求e(t)=u(t)-u(t-1)和h(t)=u(t)-u(t-1)的卷积

t0=-2;t1=4;dt =0.01;

t =t0:dt:t1;

e =u(t)-u(t-1);

h =u(t)-u(t-1);

y =dt*conv(e,h);%Compute the convolution of x(t)and h(t)

subplot(221)

plot(t,e),grid on,title('Signal e(t)'),axis([t0,t1,-0.2,1.2])

subplot(222)

plot(t,h),grid on,title('Signal h(t)'),axis([t0,t1,-0.2,1.2])

subplot(212)

t =2*t0:dt:2*t1;%the time range to the convolution of e and h.

plot(t,y),grid on,title('The convolution of x(t)and h(t)'),axis([2*t0,2*t1,-0.1,1.2]),

xlabel('Time t sec')

四、连续LTI 系统的时域分析

1.系统响应的符号求解dsolve(‘eq1,eq2,…’,’cond1,cond2,…’);

%eqi 表示微分方程,condi 表示初始条件

例:eq=’D3y+2*D2y+Dy=0’;

cond=’y(0)=1,Dy(0)=1,D2y(0)=2’;

yzi=dsolve(eq,cond);%零输入响应

simplify(yzi);

eq1=’D3y+4*D2y+8*Dy=3*Dx+8*x’;

eq2=’x=Heaviside(t)’;

cond=’y(-0.01)=0,Dy(-0.01)=0,D2y(-0.01)=0’;

yzs=dsolve(eq1,eq2,cond);

simplify(yzs.y);%零状态响应

2.零状态响应的数值求解

1)y=lsim(sys,f,t)

%sys 表示系统模型,由sys=tf(b,a)生成的系统函数对象

%f 输入信号向量,t 时间抽样点向量

例:)

()sin()(),()()()('''t u t t f t f t y t y t y π210665==++ts=0;te=5;dt=0.01;

sys=tf([6],[1,5,6]);

t=ts:dt:te;

f=10*sin(2*pi*t).*UT(t);

y=lsim(sys,f,t);

plot(t,y),grid on;

xlabel(‘time’),ylabel(‘y(t)’);

title(‘零状态响应’);

2)y=conv(f,impul)

3.连续系统冲激响应y=impulse(sys,t)%sys 表示系统模型

4.连续系统阶跃响应y=step(sys,t)

五、信号的频域分析

1.傅立叶变换

1)符号运算求法

fourier()和ifourier()

例:)()(t u e t f t 2-=的傅立叶变换

ft=sym(‘exp(-2*t)*Heaviside(t)’);

fw=fourier(ft)

ezplot(abs(fw));%或者fw_conj=conj(fw);Gw=sqrt(fw*fw_conj);

phase=atan(image(fw)/real(fw));%或者angle(fw)ezplot(phase)

211

Ω+=Ω)(j F 的傅立叶反变换

syms t

fw=sym(‘1/(1+w^2’);

ft=ifourier(fw,t)

2)数值计算求法

[][][]N

k k N e n f k F k T

N M n j T M T N k ≤≤∆=∆∆=-⨯-∆--⨯-⨯02111111,)()()

()()()(π

ωω例:求)(t G 82的傅立叶变换

1)数值计算

dt=0.01;t=-4:dt:4;

ft=(t+4)/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4);

N=2000;

k=-N:N;

W=pi*k/(N*dt);

F=dt*ft*exp(-j*t'*W);

F=abs(F);

plot(W,F),grid on;

axis([-pi pi -19]);

title('amplitude spectrum');

2)符号计算

相关文档
最新文档