离散时间系统及离散卷积

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

实验一、离散时间系统及离散卷积

1、单位脉冲响应

源程序:

function pr1() %定义函数pr1

a=[1,-1,0.9]; %定义差分方程y(n)-y(n-1)+0.9y(n-2)=x(n) b=1;

x=impseq(0,-20,120); %调用impseq函数(matlab软件的函数库)

n=[-20:120]; %定义n的范围,从-20 到120

h=filter(b,a,x); %调用函数给纵坐标赋值

figure(1) %绘图figure 1 (冲激响应)

stem(n,h); %在图中绘出冲激

title('单位冲激响应(耿海锋)'); %定义标题为:'冲激响应(耿海锋)'

xlabel('n'); %绘图横座标为n

ylabel('h(n)'); %绘图纵座标为h(n)

figure(2) %绘图figure 2

[z,p,g]=tf2zp(b,a); %绘出零极点图

zplane(z,p)

function [x,n]=impseq(n0,n1,n2) %声明impseq函数

n=[n1:n2];

x=[(n-n0)==0];

结果:

Figure 1:

Figure 2:

2、离散系统的幅频、相频的分析

源程序:

function pr2()

b=[0.0181,0.0543,0.0543,0.0181];

a=[1.000,-1.76,1.1829,-0.2781];

m=0:length(b)-1; % m的范围,从0 到3

l=0:length(a)-1; % l的范围,从0 到3

K=5000;

k=1:K;

w=pi*k/K; %角频率w

H=(b*exp(-j*m'*w))./(a*exp(-j*l'*w));%对系统函数的定义

figure(1)

magH=abs(H); %magH为幅度

angH=angle(H); %angH为相位

plot(w/pi,magH-耿海锋); %绘制w(pi)-magH-耿海锋的图形

figure(2)

axis([0,1,0,1]); %限制横纵座标从0到1

xlabel('w(pi)'); %x座标为 w(pi)

ylabel('|H|'); %y座标为 angle(H)-耿海锋

title('幅度,相位响应(耿海锋)'); %图的标题为:'幅度,相位响应(耿海锋)'

plot(w/pi,angH); %绘制w(pi)-angH的图形

grid; %为座标添加名称

xlabel('w(pi)'); %x座标为 w(pi)

ylabel('angle(H)'); %y座标为 angle(H)

结果:

Figure1

Figure2

3、卷积计算

源程序:

function pr3()

n=-5:50; %声明n的范围,从-5到50

u1=stepseq(0,-5,50); %调用stepseq函数声用明u1=u(n)

u2=stepseq(10,-5,50); %调用stepseq函数声用明u2=u(n-10)

%输入x(n)和冲激响应h(n)

x=u1-u2; %x(n)=u(n)-u(n-10)

h=((0.9).^n).*u1; %h(n)=0.9^n*u(n)

figure(1)

subplot(3,1,1); %绘制第一个子图

stem(n,x); %绘制图中的冲激

axis([-5,50,0,2]); %限定横纵座标的范围

title('输入序列-52101702-耿海锋'); %规定标题为:'输入序列-52101702-耿海锋'

xlabel('n'); %横轴为n

ylabel('x(n)'); %纵轴为x(n)

subplot(3,1,2); %绘制第二个子图

stem(n,h); %绘制图中的冲激

axis([-5,50,0,2]); %限定横纵座标的范围

title('冲激响应序列-52101702-耿海锋'); %规定标题为:'冲激响应序列-52101702-耿海锋'

xlabel('n'); %横轴为n

ylabel('h(n)'); %纵轴为h(n)

%输出响应

[y,ny]=conv_m(x,n,h,n); %调用conv_m函数

subplot(3,1,3); %绘制第三个子图

stem(ny,y);

axis([-5,50,0,8]);

title('输出响应-52101702-耿海锋'); %规定标题为:'输出响应-52101702-耿海锋'

xlabel('n');

ylabel('y(n)'); %纵轴为y(n)

%stepseq.m子程序

%实现当n>=n0时x(n)的值为1

function [x,n]=stepseq(n0,n1,n2)

n=n1:n2;

x=[(n-n0)>=0];

%con_m的子程序

%实现卷积的计算

function [y,ny]=conv_m(x,nx,h,nh) nyb=nx(1)+nh(1);

nye=nx(length(x))+nh(length(h)); ny=[nyb:nye];

y=conv(x,h);

结果:

相关文档
最新文档