回顾序列相关性
如果我们将卷积操作(2.11)和两序列相关性的定义(2.6)进行比较,我们可以发现二者有紧密的相关性
如果序列是有限的,这些相关性的计算可以用conv函数实现
例2.8
这个例子我们会阐述互相关序列的应用
>> x=[3,11,7,0,-1,4,2];
>> nx=[-3:3];
>> [y,ny]=sigshift(x,nx,2);
>> nw=ny;
>> w=randn(1,length(y));
>> [y,ny]=sigadd(y,ny,w,nw);
>> [x,nx]=sigfold(x,nx);
>> [rxy,nrxy]=conv_m(y,ny,x,nx);
>> subplot(1,1,1),subplot(2,1,1);
>> stem(nrxy,rxy);
>> axis([-5,10,-50,250]);
由图可知,在nrxy=2时二者相关性最强,意味着y与x平移2后的图像相似,这个方法可以应用在雷达信号处理中的识别以及定位目标。
要注意在matlab的信号处理工具箱中提供了函数xcorr来计算序列的相关性,代码如下
>> xcorr(x,y);
代码
>> xcorr(x,x);
计算x的自相关,这个函数在学生版的matlab中无法使用,它生成的结果与conv_m函数生成的结果完全相同,但是xcorr不能提供时间信息,只能通过其他方法获得,所以我们强调conv_m函数的使用。
差分方程
一个LTI离散系统可以用差分方程的形式表示
如果aN!=0,这是一个顺序为N的差分方程
这个方程的解法可以从下面的形式获得
结果的同种类部分,yH(n)如下
结果的特殊部分,yP(n)由2.18的右半部分决定,在第四章我们讨论用z变换解决差分方程。
matlab应用
当给出输入以及差分方程的系数时,一个函数filter可以解决差分方程
函数援引方式如下
y = filter(b,a,x)
b = [b0,b1,b2……,bM]; a = [a0,a1,a2,a3,……,aN];
是(2.18)给出的系数数组,x是输入序列数组,输出y的长度与x的长度相同,一个必须要确保的是系数a0不是0,在下面的例子将会解释该函数的应用
例2.9
a
>> b=[1];a=[1,-1,0.9];
>> x=impseq(0,-20,120);n=[-20:120];
>> h=filter(b,a,x);
>> subplot(2,1,1);stem(n,h);
b
>> b=[1];a=[1,-1,0.9];
>> x=stepseq(0,-20,120);
>> s=filter(b,a,x);
>> subplot(2,1,2);stem(n,s)
c
为了判断系统的稳定性,我们不得不确定所有n上的h(n),虽然我们没有描述一个解决差分方程的方法,但是我们可以使用冲激响应的图像判断当n > 120时h(n)趋近于0,可以用
>> sum(abs(h))
ans = 14.8785
计算h(n)的和,意味着系统是稳定的,另一种方法基于(2.20)使用matlab的根函数
>> z=roots(a);
>> magz=abs(z);
magz = 0.9487
0.9487
因为所有根的长度小于1,所以稳定。