精通信号处理设计小Tips(2):数学的作用
本文作者maxfiner,毕业于西安电子科技大学,拥有信号与信息处理专业硕士学位。maxfiner曾供职于华为通信技术公司 无线通信部门,拥有多年的工程项目研发经验,同时兼备算法理论研究,仿真验证,以及对应的硬件设计实现能力;具备通信物理层开发设计各个方面的实战经 验...
精通信号处理设计小TIps(2):数学的作用
对于工科专业的工程师来说,数学到底是否有用?有多大用?都干什么用?相信是很多人曾经考虑和关心的问题。结合电子工程方向,对此稍作讨论,跟大伙交流。
对于电子工程方向,一般在大学会先后学习这么几门数学课程:微积分,线性代数,概率论,复变函数,随机过程,矩阵论,数值分析等。但对于大多数人来说,参加工作后,大家都会感慨,大部分内容基本都忘光了。为什么呢?原因很简单,因为再也没有用到。对于很多具体的工程领域,这些课程的大部分的确不大用得着。就我个人工作经历来说,工作后,主要从事通信物理层的应用和实现。微积分很少直接应用,除了高等数学老师,还有谁会去关注柯西中值定理呢?复变函数更是多年未曾打过一次交道。这么些课程中,相对来说,用的较多的是两样,一个是傅里叶变换,一个是线性代数。最最频繁使用的,是高中学到的一些知识,比如复数,三角函数,初等函数等等。
就像从初中一年级就开始花费大量时间学习英语,至今仍是聋哑英语一样,大学的那么多课程,费了好些时间和力气学习,却没有怎么用得上,想想真是令人惋惜。现在回想起来,如果上大学只为了最终的一张文凭的话,我宁可不上。在现实中,一个单片机实用电路的设计经验,或者熟练的编写一段软件代码,远比泰勒定理的证明更来得实在。
照如此说,似乎大学的数学也没有啥用。这个结论先不必急于落下。先谈谈我在工作实践中中碰到的具体数学应用吧。频谱分析需要用到傅里叶变换,这算是大学数学诸多领域中应用最广泛的一个。采样定理的证明和更好的理解,也要用到傅里叶变换。数字上下变频会涉及到三角函数中的积化和差。电路阻抗分析中会用到复数的运算。FPGA实现中会涉及到一些逻辑运算。FIR滤波处理从实现上看就是一个乘累加运算,背后是对各种频谱分量的不同处理。应用广泛的相关累计运算也是乘累加运算。符号同步、频偏估计、信道补偿等处理会涉及到复数形式的乘累加运算。
从以上的典型应用来看,相当多的数字信号处理应用都离不开乘累加运算,比如相关、卷积、滤波等等,傅里叶变换的具体实现——离散傅里叶变换,其实现方式也是乘累加。这也是数字信号处理的魅力,一个简单的乘累加运算,解决了各种各样,各种形式的问题。一个成累加运算之所以能够发挥如此巨大的威力,其原理和本质都是基于线性时不变系统的前提。所以说,线性运算和与之紧密相连的线性系统,是我们必须好好理解的一个内容。
不得不提的是傅里叶变换,对于电子工程和从事通信信号处理的工程师来说,这算是大学数学在工程实践中最重要的一个应用吧。比如信号的时移和频移,信号的上下变频处理,实信号的共轭对称特性,复信号和实信号频谱的差异,模拟信号的数字采样,信号的带通采样,频谱的混叠和抗混叠,频谱的镜像,上采样中的内插处理,下采样中的抽取处理,等等等等,都可以从傅里叶变换的角度进行解释和分析。对连续和离散傅里叶变换的全方位理解,有助于我们更深刻的解释和分析具体应用中的各种问题。
当应用MATLAB来做一些信号处理算法的仿真时,我才真正体会到线性代数的应用价值和巨大威力。由于信号处理都是用离散的样点来处理的,因此信号处理算法和实现都可以用矢量和矩阵的方式来表达和分析。比如最简单的乘累加运算,可以看做是两个矢量的相乘。信号处理的最基本和最频繁的运算,诸如相关,卷积,滤波,傅里叶变换,所有的这些都可以用简洁的矢量和矩阵形式表达出来。
线性代数大概研究几个大方向:解方程,特征值分析,奇异值分析,稳定性分析。在具体工程应用最多的是基本的矢量运算和解方程。对矢量运算的理解非常有助于灵活运用MATLAB,因为MATLAB就是以矢量为处理对象的,矢量操作远比for循环高效的多得多。
当初学习特征值的时候,始终不明白这个特征值到底有什么用,工作多年来也没有看到它到底有什么用。但是,当我因工作需要去了解LMS自适应算法的原理时,我第一次强烈的感受到特征值的价值所在。稍微熟悉LMS算法的人都知道,LMS的每一步迭代,都涉及到一个步进常数,而这个常数该取多大,跟信号相关矩
- 基于视觉的ADAS解决方案,近在咫尺!(05-07)
- 基于ADSP-TS101S的多芯片数字信号处理系统的实现方案(02-11)
- 精通信号处理设计小Tips(5):三个应用广泛的数学概念(11-20)
- 精通信号处理设计小Tips(6):卷积是怎么得到的?(11-24)
- 精通信号处理设计小Tips(3):必须掌握的三大基石(11-09)
- 精通信号处理设计小Tips(7):应用极其广泛的相关(12-01)