实验七
- 格式:doc
- 大小:147.00 KB
- 文档页数:7
实验七 离散时间信号和系统
§7.1离散时间正弦信号
目的
学习创建和分析离散时间正弦信号。
相关知识
离散时间正弦和余弦信号能够用复指数信号表示,即
)(21)sin()(21)cos(njnjnjnjeejneen
基本题
1.考虑下面离散时间信号:NMnnxM2sin][,假设N=12。对于M=4,5,7
和10,在120Nn区间上画出][nxM。用stem创建这些图,并在图的各坐标轴
上给出适当标注。每一个信号的基波周期是什么?由任意的整数M和N值,一
般如何来确定信号的基波周期?务必考虑NM的情况。
代码:clear;clc;
N=12;
n=0:(2*N-1);
i=1;
for M=[4 5 7 10 15]
x=sin(2*pi*M*n./N);
subplot(2,3,i)
stem(n,x,'fill');
grid;
xlabel('n');
ylabel('x');
i=i+1;
end
运行结果:
分析:第一个信号的基波周期为3;第二个信号的基波周期为12;第三个信
号的基波周期为12;第四个信号的基波周期为6。
由任意的整数M和N值,一般来说信号的基波周期为N/(M与N
的最大公约数)
§7.2离散时间信号时间变量的变换
目的
主要研究离散时间信号的延时与反褶运算。
基本题
1.定义一个MATLAB向量nx是在73n上的时间变量,而MATLAB向量x
是信号][nx在这些样本上的值,][nx给出如下:
nnnnnnx其余 ,04 ,3
3 1,2 ,10 ,2][
请正确定义][nx,用stem(nx,x)画出该离散时间序列。
代码:clear;clc;
n=-3:7;
x=zeros(1,11);
x(4)=2;
x(6)=1;
x(7)=-1;
x(8)=3;
stem(n,x,'fill')
grid;
运行结果:
2.定义MATLAB向量y1~y4,来表示下列离散时间信号:
]1[][][][]1[][]2[][4321nxny
nxny
nxny
nxny
为此,应该定义y1~y4,关键是要正确定义标号向量ny1~ny4。首先应判断当变
换到][nyi时,一个给定的][nx样本的变量时如何改变的。标号向量不必要跨于和
nx相同的一组变量值,但至少都是11个样本长,并包含了与有关信号全部非零
样本的变量值。
代码:clear;clc;
x=zeros(1,11);
x(4)=2;
x(6)=1;
x(7)=-1;
x(8)=3;
n=-3:7;
n1=n-2;
n2=n+1;
n3=-n;
n4=-n+1;
y1=x;
y2=x;
y3=x;
y4=x;
§7.3离散时间系统的性质
目的
懂得如何来证明一个系统满足或不满足某一给定性质。
相关知识
本课程研究的离散时间系统通常是用几个性质来表征的,如线性、时不变、
稳定性、因果性及可逆性等。
基本题
1.系统][2sin][nxny不是线性的。利用信号][][1nnx和][2][2nnx来证明该
系统是如何违反线性性质的。
证明:当n=0时,若输入 ][][1nnx,则x1(0) =1,y10)=1;若 ][2][2nnx,则
x2(0)=2,y2(0)=sin(pi/4)=2/2, 结果不等于 2倍y1(0),因此是非线形的。
2.系统]1[][][nxnxny不是因果的。利用信号][][nunx证明它。定义MATLAB
向量x和y分别代表95n上的输入和96n上的输出。
证明:y[n]=x[n]+x[n+1]=u[n]+u[n+1],当n=-1时,y[-1]=u[-1]+u[0]=1,即当n<0时,
存在y(n)不等于0,因此系统]1[][][nxnxny不是因果的。
代码:clear;clc;
for n=-5:9
x(n)=Heaviside(n);
end
for n=-6:9
y(n)=Heaviside(n)+Heaviside(n+1);
end
x
y
中等题
3.系统][log][nxny不是稳定的。
分析:当n<0时,x[n]=0,而log 0等于负无穷大,此时y[n]无界,也就是说y不
是绝对可和,因此系统][log][nxny不是稳定的
§7.4实现一阶差分方程
目的
学习求解自递归差分方程。
相关知识
离散时间系统往往用线性常系数差分方程来实现。两种最简单的差分方程是
一阶移动平均]1[][][nbxnxny和一阶自递归][]1[][nxnayny,能用这些简单系
统对许多实际系统进行建模或近似。例如,一阶自递归可以用于银行帐户建模,
这时][ny就是第n次的结余,][nx是第n次的存款或取款,而ra1就是利率为r的
复利。
深入题
1.写出一个函数y=diffeqn(a,x,yn1),该函数计算][]1[][nxnayny所描述的因果
系统的输出][ny。输入向量x包含10Nn内的][nx,yn1提供y[-1]的值。输出
向量y包含10Nn内的][ny。M文件的第一行应该读出function
y=diffeqn(a,x,yn1)
提示:从y[-1]计算y[0]是自递归的第一步。在M文件中利用for循环从0n开
始依次计算到较大n值的][ny。
代码:function [y]=diffeqn(a,x,yn1);
N=length(x);
for n=1:N
if n==1
y(n)=a*yn1*x(n)
else y(n)=a*y(n-1)+x(n)
end
end
2.假设0]1[,1ya,而且仅关心300n内的输出。利用这个函数计算
][][1nnx
和][][2nunx时的响应,用stem画出每个响应。
代码:clear;clc;
a=1;yn1=-1;
for n=0:30
x2(n+1)=1;
if n==0
x1(n+1)=1;
else x1(n+1)=0;
end
end
y1=diffeqn(a,x1,yn1)
y2=diffeqn(a,x2,yn1)
n=[0:30];
subplot(2,1,1)
stem(n,y1);grid;
title('y1');
subplot(2,1,2)
stem(n,y2);grid;
title('y2');
运行结果: