DSP

序列的运算

2019-07-13 20:25发布

class="markdown_views prism-github-gist">

序列的运算

基本运算

调制

  两个序列样本值的乘积,指的是将两个序列的样本值逐点对应相乘,从而得到新的序列:
y[n]=x[n]w[n]y[n]=x[n]w[n]
在一些应用中,序列的乘积也叫做调制,实现该运算的器件称为调制器。

相乘

  一个序列的每个样本值都乘以标量A以产生新的序列
y[n]=Ax[n]y[n]=Ax[n]
实现相乘运算的器件称为乘法器。
在这里插入图片描述

相加

  把两个序列的样本值逐点的相加得到新的序列
y[n]=x[n]+w[n]y[n]=x[n]+w[n]
实现该运算的器件称为加法器。

时移

  时移运算表现为
y[n]=x[nN]y[n]=x[n-N]
N>0N>0,则称之为延迟运算,若N<0N<0则称之为超前运算。
  单位延迟为延迟一个单位,即
y[n]=x[n1]y[n]=x[n-1]
ZZ变换中,延迟一个单位相当于乘以z1z^{-1},所以在方框图用z1z^{-1}表示延迟一个单位
  同理,单位超前一个单位可以写为
y[n]=x[n+1]y[n]=x[n+1]
ZZ变换中,超前一个单位相当于乘以zz,所以在方框图用zz表示超前一个单位

反褶

  序列的反褶表现为
y[n]=x[n]y[n]=x[-n]


  下面给出一些序列运算的例子,我将以图形的形式给出 调制
相加
单位延迟
单位超前
反褶
  大多数的应用都是采用上述基本运算的组合。

卷积

  x[n]x[n]h[n]h[n]为两个序列,这两个序列通过卷积后产生新的序列是
y[n]=m=x[m]h[nm]y[n]=sum_{m=-infty}^{infty}x[m]h[n-m]
至于为什么会有卷积和这种运算,在离散时间系统那里详细介绍过,卷积和可以说是信号与系统分析中最重要的运算之一。
  观察卷积的表达式,发现卷积也是由基本运算组成的:首先对h[m]h[m]进行反褶得到h[m]h[-m],然后进行时移运算,由h[m]h[-m]得到h[(mn)]=h[nm]h[-(m-n)]=h[n-m],然后进行调制运算x[m]h[nm]x[m]h[n-m],最后进行相加运算得到y[n]=m=x[m]h[nm]y[n]=sum_{m=-infty}^{infty}x[m]h[n-m],所以一个卷积运算是由反褶,时移,调制,相加等基本运算组成的。   其实在实际的计算,计算过程就是由我上面所说的过程组成,从这里就可以看到,其实做卷积运算是比较麻烦的,在学习变换域时,有更好的办法进行卷积运算。   卷积和一般也写成y[n]=x[n]y[n]=m=x[m]h[nm]y[n]=x[n]*y[n]=sum_{m=-infty}^{infty}x[m]h[n-m]
我们对上面的式子做一个变换,令m=nkm=n-k,则:
y[n]=k=h[k]x[nk]=h[n]x[n]y[n]=sum_{k=-infty}^{infty}h[k]x[n-k]=h[n]*x[n]
所以卷积满足交换律。

不做卷积得到某一项的值

  如何快速展开得到卷积某一项的值,比如想得到y[2]y[2]的值。   假设x[n],w[n]x[n],w[n]的起点都是00,那么可以快速写出y[2]=x[0]w[2]+x[1]w[1]+x[2]w[0]y[2]=x[0]w[2]+x[1]w[1]+x[2]w[0]
观察表达式可以得到xx的下标和ww的下标加起来等于22,所以想快速得到卷积后某一项的值可以快速的写出来,只要xx的下标加上ww的下标等于nn
  那么y[3]y[3]可以写为 y[3]=x[0]w[3]+x[1]w[2]+x[2]w[1]+x[3]w[0]y[3]=x[0]w[3]+x[1]w[2]+x[2]w[1]+x[3]w[0]
这里假设xxww都是从00开始的,并且xxww都能取到x[3]x[3]w[3]w[3]   当然对于不是从00开始的也成立,假设xx是从1-1开始的,ww是从00开始的,那么 y[2]=x[1]w[3]+x[0]w[2]+x[1]w[1]+x[2]w[0]y[2]=x[-1]w[3]+x[0]w[2]+x[1]w[1]+x[2]w[0]
上述表达式成立前提是xxx[2]x[2]www[3]w[3]

有限长序列卷积

卷积后的长度

  假设序列x[n]x[n]的有值区间为N1nN2N_1leq n leq N_2,长度为N=N2N1+1N=N_2-N_1+1w[n]w[n]