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

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

一、实验目的
欧阳歌谷(2021.02.01)
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)虚部:
(4)相角:
信号二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)实部:
(3)模:
(4)相角:
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, 15);
stem(n,x0);
图像:
4. 已知序列{}{}4,3,2,1,0
=k
n
=
n
x,计算
k
y
=
]
;1,1,1,1,1
[=
[
,3,2,1,0
]
;4,3,2,1
y
x*并画出卷积结果。

n
[n
]
[
]
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);
zlabel('k');
title('Impulse Repone');
[H,w]=freqz(num,den);
figure(2);
plot(w/pi,abs(H));
xlabel('Frequency\omega');
title('Magnitude Response');
单位脉冲响应的图像:
频率响应的图像:
三、实验心得和体会
通过这次实验,我明白了定义函数的重要性,有了一些定义的函数,在编写代码时就可以直接使用了。

在这次实验中,我进一步加深了对各类变换与反变换的认识,更加熟练运用了stem函数。

如果图像点是连续的,则用plot函数更好,如果图像点是离散的,则用stem函数更好。

相关文档
最新文档