2021年实验4 离散时间信号和系统分析之欧阳学文创编

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

一、实验目的

欧阳光明(2021.03.07)

1.复习离散时间信号和系统的基本概念及其运算的实现;

2.通过仿真实验,建立对典型的离散时间信号和系统的直观认识。

二、实验内容

1.在n=[-15,15]之间产生离散时间信号

MATLAB代码:

单位阶跃函数序列(定义函数):

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

%产生x(n)=u(n-n0)

n=[n1:n2];

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

产生离散时间信号:

n=[-15:15];

s=(step_seq(-4,-15,15)-step_seq(5,-15,15).*n*3;

stem(n,s);

xlabel('n');

ylabel('x(n)');

grid;

图像:

2.产生复信号

并画出它们的实部和虚部及幅值和相角。信号一MATLAB代码:

n=[0:32];

x=exp(j*pi/8*n);

figure(1);

stem(n,real(x));

xlabel('n');

ylabel('x real');

figure(2);

stem(n,imag(x));

xlabel('n');

ylabel('x imag');

figure(3);

stem(n,abs(x));

xlabel('n');

ylabel('x magnitude');

figure(4);

stem(n,angle(x));

xlabel('n');

ylabel('x phase');

(1)实部:

(2)虚部:

(3)模:

信号二MATLAB代码:n=[-10:10];

x=exp((-0.1+0.3*j)*n); figure(1);

stem(n,real(x));

xlabel('n');

ylabel('x real');

figure(2);

stem(n,imag(x));

xlabel('n');

ylabel('x imag');

figure(3);

stem(n,abs(x));

xlabel('n');

ylabel('x magnitude'); figure(4);

stem(n,angle(x));

xlabel('n');

ylabel('x phase');

(1)实部:

(2)虚部:

(3)模:

3.已知序列

分别画出x(n),x(n-3)和x(-n)。

MATLAB代码:

1.x(n):

n=[-15:15];

figure(1);

x0=2*delta(0,-15,15)+delta(2,-15,15)-delta(3,-15,15)+3*delta(4,-15,15); stem(n,x0);

2.x(n-3):

n=[-15:15];

figure(1);

x0=2*delta(3,-15,15)+delta(5,-15,15)-delta(6,-15,15)+3*delta(7,-15,15); stem(n,x0);

3.x(-n):

n=[-15:15];

figure(1);

x0=2*delta(0,-15,15)+delta(-2,-15,15)-delta(-3,-15,15)+3*delta(-4,-15,1 5);

stem(n,x0);

图像:

4. 已知序列{}{}4,3,2,1,0

n

=k

y

k

x,计算][

n

=

;1,1,1,1,1

[

=

,3,2,1,0

]

;4,3,2,1

[=

]

x*

n

[n

y

]

并画出卷积结果。

MATLAB代码:

x=[1,2,3,4];

y=[1,1,1,1,1];

z=conv(x,y);

N=length(z);

stem(0:N-1,z);

图像:

5.求离散时间系统

的单位脉冲响应h[k]

MATLAB 代码:

k=[0:10];

a=[1 4 2 1];

b=[1];

h=impz(b,a,k);

stem(k,h);

图像:

6.求

• x(k)=cos(n)u(n)的Z 变换;

• )2)(1(1

)(z z z X ++=的Z 反变换。

信号一MATLAB 代码:

x=sym('cos(n)');

X=ztrans(x)

运行结果:

X =(z*(z - cos(1)))/(z^2 - 2*cos(1)*z + 1)

信号二MATLAB 代码:

x=sym('1/((1+z)*(2+z))');

X=iztrans(x)

运行结果:

X =(-2)^n/2 - (-1)^n + kroneckerDelta(n, 0)/2

7.求系统传递函数22121)(z z z

z H +++=

• 零极点并画出零极点图;

• 系统的单位脉冲响应h(n)和频率响应)(Ωj e H

零极点和零极点图的MATLAB 代码:

b=[2,1];

a=[1,2,1];

[r,p,k]=tf2zp(b,a)

zplane(b,a)

运行结果:

r = -0.5000

p = -1 -1

k =2

单位脉冲响应和频率响应的MATLAB 代码:

num=[0,2,1];

den=[1,2,1];

h=impz(num,den);

figure(1);

stem(h);

相关文档
最新文档