这学期学的 DSP 爆肝后顺利通过了,记录一下前期没搞懂的卷积的内容,主要是线性卷积计算方法和使用线性卷积计算圆周卷积的方法。为此学习了一下之前从来没有接触过的 LaTeX 语法,一直使用的是 Word 里面内嵌的 Unicode Math 语法。不得不说,LaTeX 挺香
线性卷积
线性卷积一般使用不进位乘法(或称对位相乘相加法)进行计算
例题:
设线性时不变系统的单位脉冲响应 h(n) 和输入序列 x(n) 如下,求输出序列 y(n) = x(n) * h(x)
$$ x(n)=\{1,2,\underline4,3\}\\ h(n)=\{\underline2,3,5\} $$
解:
如题,x(n) 最右侧的数字 3 距离下划线的距离为 1,故 n=1
h(n) 最右侧的数字 5 距离下划线的距离为 2,故 n=2
将 x(n) 和 h(n) 列为竖式乘法的形式,并在最右侧标注 n 的值
$$ \begin {array}{ccc} &1&2&4&3&\leftarrow n=1\\ \times &&2&3&5&\leftarrow n=2\\ \hline \end {array} $$
接下来进行常规的竖式乘法计算
$$ \begin {array}{ccc} &&&1&2&4&3&\leftarrow n=1\\ \times &&&&2&3&5&\leftarrow n=2\\ \hline &&&5&10&20&15\\ &&3&6&12&9\\ &2&4&8&6\\ \hline \end {array} $$
然后进行竖式乘法相加,注意计算结果不进位
$$ \begin {array}{ccc} &&&1&2&4&3&\leftarrow n=1\\ \times &&&&2&3&5&\leftarrow n=2\\ \hline &&&5&10&20&15\\ &&3&6&12&9\\ &2&4&8&6\\ \hline &2&7&19&28&29&15 \end {array} $$
最后将 x(n) 和 h(n) 的 n 相加,得到 n=1+2=3 写在结果后面
$$ \begin {array}{ccc} &&&1&2&4&3&\leftarrow n=1\\ \times &&&&2&3&5&\leftarrow n=2\\ \hline &&&5&10&20&15\\ &&3&6&12&9\\ &2&4&8&6\\ \hline &2&7&19&28&29&15&\leftarrow n=3 \end {array} $$
故从右往左数第 n+1 个数为 y(0)
按顺序写下不进位乘法结果即为答案
$$ y(n)=\{2,7,\underline{19},28,29,15\} $$
循环卷积、圆周卷积
循环卷积和圆周卷积是一个意思,之后文章里统一使用圆周卷积来作说明
圆周卷价一般使用矩阵相乘法求解
但是这里给出一个更简单的方法,使用线性卷积间接计算圆周卷积
例题:
设线性时不变系统的单位脉冲响应 h(n) 和输入序列 x(n) 如下,求它们的 4 点圆周卷积、 5 点圆周卷积和 7 点圆周卷积
$$ x(n)=\{1,2,\underline4,3\}\\ h(n)=\{\underline2,3,5\} $$
解:
由上面例题的求解过程可以知道它们的线性卷积为
$$ y(n)=\{2,7,\underline{19},28,29,15\} $$
y(n) 的序列长度为 6
对于 4 点圆周卷积
由于 4 点小于线性卷积的 6 点,其中的两点存在混杂现象,那么将第五点的值加到第一点上,第六点的值加到第二点上,故 4 点圆周卷积为
$$ z^1(n)=\{31,22,\underline{19},28\} $$
同理,对于 5 点圆周卷积
其中一点存在混杂现象,那么只需要将第六点加到第一点上,故 5 点圆周卷积为
$$ z^2(n)=\{17,7,\underline{19},28,29\} $$
对于 7 点圆周卷积
由于 7 点大于线性卷积的 6 点,没有发生混杂现象,只需要在线性卷积右侧使用 0 补足 7 点即可,故 7 点圆周卷积为
$$ z^3(n)=\{2,7,\underline{19},28,29,15,0\} $$