实验一 离散系统的时域分析
一、实验目的
1、掌握离散时间信号的MATLAB表示; 2、信号运算;
3、差分方程的求解;
4、离散时间信号的卷积运算。
二、实验原理
1、离散时间信号
离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n取整数代表时间的离散时刻。
在matlab中用向量来表示一个有限长度的序列。
2、序列的类型
为了分析的方便,在数字信号处理中规定了一些基本的序列。 a) 单位采样序列 ?1????n?0?(n)??
?0????n?0
?1????n?n0 ?(n?n0)??0????n?n0
function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0];
调用该函数
[x,n]=impseq(-2,8,2); stem(n,x)
单位采样序列的另一种生成方法
n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end end stem(n,x)
b) 单位阶跃序列
?1????n??0 ?(n)???0????n?0
?1????n??n0?(n?n0)? 0????n?nfunction [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0];
?0调用该函数
[x,n]=stepseq(-2,8,2); stem(n,x)
c) 实数指数序列
x(n)=an (运算符“.^”)
n=[0:10]; x=0.9.^n; stem(n,x)
d) 复数指数序列 x(n)?e(??j?)n x(n)?e(?0.1?j0.3)n????(?10?n?10)
n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n);
real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x)
e) 正弦和余弦序列 x(n)?sin(?0n??)n=[0:10]; stem(n,x)
x=3*cos(0.1*pi*n+pi/3);
x(n)?cos(?0n??)
f)
随机序列
rand(1,N)产生其元素在[0,1]之间均匀分布长度为N的随机序列。 randn(1,N)产生均值为0,方差为1,长度为N的高斯随机序列。 a) b) c) d) e) f)
信号时移 信号倒置 信号加 信号乘 信号微分 信号积分等
3、信号运算