《深入浅出通信原理》学习(1-8)

来源:互联网 发布:日语手写输入软件 编辑:程序博客网 时间:2024/06/11 17:07

    本文主要整理深入浅出通信原理的1-8帖,从“多项式乘法”到“利用卷积计算信号乘积”,链接如下:

http://bbs.c114.net/thread-394879-1-1.html#pid4546802


一、多项式乘法

    一般的求多项式乘积的方法是,逐项相乘再合并同类项,如下:


卷积求多项式乘积,则分为四步:反褶,平移,相乘,求和


以上图为例,具体步骤是:

1)将一个多项式升幂排列,一个降幂排列,并且刚好不重叠。(反褶)

2)平移下面一行的多项式(降幂排列),对重叠项交叉相乘。

3)每次平移一位,求一个系数值。

注:我们可以换成两个同幂的多项式自行验证。


二、卷积(Convolution)的表达式

    从上面多项式乘法可以看出,卷积的优点是:

1)是可以各个系数可以分开求解;

2)是各个系数的求解过程类似,方便编程实现。

从算法的角度分析:

1)普通多项式乘法的效率是O(n^2),无论是逐项相乘还是合并同类项,都需要两重循环。

2)卷积的效率是O(nlogn)。


    事实上,通过归纳法,可以得到多项式系数的卷积公式:


注:上述公式是系数矩阵的卷积表达式。


三、利用matlab计算卷积

1,将上述多项式系数表示为两个矩阵a和b,积的系数矩阵表示为c。matlab求卷积代码如下:

    c = conv(a,b)

2,杨辉三角


注:通过matlab,可以很形象的看出,杨辉三角就是“上下相邻两行”卷积,得出第三行的反复计算过程。

初始值为x=[1 1]; y = [1 1];去除顶点。


四、将信号表示为多项式

    比如,将信号如下表示:



注:本节主要找寻“幂与三角函数”之间的对应关系,为降幂探索一种方法。


五、欧拉公式

    上一节探讨了将信号表示为三角函数形式的多项式的方法,本节将介绍欧拉公式来简化这个多项式。


    欧拉公式的推导和证明,可以自行google。它的主要用处是,将复杂的三角函数表达式,转为简洁的复数指数表达式。

注:将参数取反,代入欧拉公式,可以得到另一个表达式,这个表达式与原始的欧拉公式一起可以转换任意三角函数表达式。


六、利用卷积计算两个信号的乘积

    前面作了那么多铺垫,主要是为了“利用卷积计算两个信号的乘积”。将欧拉公式代入信号多项式,如下:


注:上面用到了两个化简的方法

1)欧拉公式将复杂的三角函数运算变为简单的复数域加减;

2)卷积简化多项式乘法。


七、信号的傅立叶级数展开

    把信号表示为多项式的形式,实际上就是“信号的傅立叶级数展开”,多项式中各项的系数就是傅立叶系数。


    下面之前的两个信号为例,作频谱图,如下:


    我们已经验证了[1 5 6] * [3 2] = [3 17 28 12]。因此,我们可以很容易理解“时域相乘,相当于频域卷积”。


八、时域信号相乘相当于频域卷积

    “时域相乘,相当于频域卷积”,它为简化运算提供了一个全新的途径。为了获得两个信号f(t)和g(t)在时域相乘的结果y(t)=f(t)g(t),我们可以先分析这两个信号的频谱f[n]和g[n],再对这两个信号的频谱做卷积,得到乘积信号的频谱y[n]=f[n]*g[n],然后将频谱分量y[n]乘以对应的e^(jnwt),再相加即得到时域的乘积信号


注意:当我们说频域的时候,我们说的只是频谱,也就是e^(jnwt)前的系数,不包括e^(jnwt)本身。各频谱分量乘以对应的e^(jnwt)再相加才能得到时域的信号。

0 0
原创粉丝点击