离散系统的时域分析matlab

  • 格式:doc
  • 大小:657.00 KB
  • 文档页数:24

下载文档原格式

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

实验一 常见离散信号的MATLAB 产生和图形显示

一、 实验目的

加深对常见离散信号的理解 二、实验原理

1、单位抽样序列的产生

,10,0{=≠=n n n )(δ

在MATLAB 中可以用zeros()函数实现 x=[1,zeros(1,N-1)]; 或x=zeros(1,N); x(1)=1;

2、单位阶跃序列的产生

0,10,0{u ≥<=n n n )(

在MATLAB 中可以用ones()函数实现 x=one(1,N); 3、正弦序列的产生 在MATLAB 中实现方法如下: N=0:N-1

X=A*sin(2*pi*f*n/fs+fai) 4、复正弦序列的产生jwn

e A n x *)(=

在MATLAB 中实现方法如下:

n)

*w *ex p(j *A 1

:0=-=x N n

5、实指数序列的产生n

a A n x *)(= 在MATLAB 中实现方法如下:

n

a A x N n .^*1

:0=-=

三、实验内容及步骤

编制程序产生以下信号,并绘出其图形。 1)产生64点的单位抽样序列)(n δ

N=64

x=[1,zeros(1,N-1)]

stem(x)

2)产生64点并移位20位的单位抽样序列)20(-n δ

N=64

x=[0,zeros(1,N-1)] x(20)=1 stem(x)

3)任意序列)5(7.0)4(9.2)3(6.5)2(8.1)1(4.3)(0.8)(-+-+-+-+-+=n n n n n n n f δδδδδδ b=[1];

a=[8,3.4,1.8,5.6,2.9,0.7]; xh=[1,zeros(1,20)]; h=filter(b,a,xh) figure(1); n=0:20; stem(n,h,) legend('冲激')

4)产生幅度A=3,频率f=100,初始相位ϕ=1.2,点数为32 点的正弦序列。

n=0:31;

x=3*exp(j*314*n)

figure(1)

stem(n,x)

5)产生幅度A=3,角频率ω=314,点数为32 点的复正弦序列。

n=0:31

A=3;

w=314;

x=A*exp(w*j*n)

stem(x)

6)产生幅度A=3,a=0.7,点数为32 点的实指数序列。n=0:31;

A=3;

a=0.7;

x=A*a.^n

stem(x)

实验二 离散系统的时域分析

一、 实验目的

(1)熟悉并掌握离散系统的差分方程表示方法 (2)加深对冲激响应和卷积方法的理解 二、实验原理 1、对于离散时间系统

其输入与输出的关系可以用以下的差分方程描述:

][][0

k n x p k n y d

M

k k N

k k

-=-∑∑==

d k =0,k=0,1,2....N 时,h[n]是有限长度的,称此时系统为FIR 系统;反之,称系统为IIR 系统。

2、在MATLAB 中,可以用y=filter(p,d,x)函数实现差分方程的仿真,也可以用y=conv(x ,h)计算卷积,用y=impz(p,d,N)求系统的冲激响应。

三、 实验内容与要求

编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。 要求分别用 filter 、conv 、impz 三种函数完成。 y [n ]+ 0.75y [n −1]+ 0.125y [n − 2] = x [n ]− x [n −1] y [n ] = 0.25{x [n −1]+ x [n − 2]+ x [n −3]+ x [n − 4]} 给出理论计算结果和程序计算结果并讨论。 (1)

1)a1=[1,0.75,0.125]; b1=[1,-1]; n=0:20;

x2=ones(1,21);

y1filter=filter(b1,a1,x2); stem(n,y1filter);

title('y1filter_step'); xlabel('x'); ylabel('y');

2)

a1=[1,0.75,0.125];

b1=[1,-1];

n=0:20;

x2=ones(1,21);

[h]=impz(b1,a1,20);

y1=conv(h,x2);

y1conv=y1(1:21);

n1=0:20;

stem(n1,y1conv,'filled'); title('y1conv');

xlabel('n');

ylabel('y1[n]');

3)

a=[1,0.75,0.125];

b=1;

impz(b,a);

(2)

1)

a2=1;

b2=[0 0.25*ones(1,4)];

n=0:20;

x2=ones(1,21);

y2filter=filter(b2,a2,x2); stem(n,y2filter);

title('y2filter_step'); xlabel('x');

ylabel('y');

2)

h=[0 0.25*ones(1,4)];

x2=ones(1,21);

n=0:20;

y2=conv(h,x2);

y2conv=y2(1:21);

stem(n,y2conv,'filled'); title('y2conv');

xlabel('n');

ylabel('y[n]');