实验4离散时间信号和系统分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1.复习离散时间信号和系统的基本概念及其运算的实现;
2.通过仿真实验,建立对典型的离散时间信号和系统的直观认识。 二、实验容
1. 在n=[-15,15]之间产生离散时间信号
⎩⎨
⎧≤≤-=others
n n n x 0443)(
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. 产生复信号
320)()8/(≤≤=n e n x n
j π
1010)()3.01.0(≤≤-=+-n e n x n j 并画出它们的实部和虚部及幅值和相角。
信号一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)模:
(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)实部:
(2)虚部:
(3)模:
(4)相角:
3. 已知序列
⎪⎪⎪⎩⎪⎪⎪⎨⎧==-===others
n n n n n x 0
4331
210
2)( 分别画出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;1,1,1,1,1][,3,2,1,0;4,3,2,1][====k n y k n x ,计算][][n y n x *并画出卷积结果。 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. 求离散时间系统
][]3[]2[2]1[4][n x n y n y n y n y =-+-+-+ 的单位脉冲响应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.求系统传递函数 2
2121)(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) 运行结果: