一个故事告诉你:卷积是什么
引子 读书那会儿,张三老师做不到"把厚书读薄"这一点,讲不出哲学层面的道理,一味背书和翻讲PPT,黑板上做着枯燥的数学证明。 课堂上,张三强打着精神,眼睛里是老师的一笔一划,脸上却是大大的问号。 老师回过头来叹了一口气,"你……啥也不是!"。张三毕业了 张三刚刚应聘到了一个电子产品公司做测试人员,他没有学过"信号与系统"这门课程。一天,他拿到了一个产品,开发人员告诉他,产品有一个输入端,有一个输出端,有限的输入信号只会产生有限的输出。 然后,经理让张三测试当输入sin(t)(t<1秒)信号的时候(有信号发生器),该产品输出什么样的波形。张三照做了,画了一个波形图。 "很好!"经理说。然后经理给了张三一叠A4纸: "这里有几千种信号,都用公式说明了,输入信号的持续时间也是确定的。你分别测试一下我们产品的输出波形是什么吧!"
这下张三懵了,他在心想"上帝,帮帮我吧,我怎么画出这些波形图呢?" 于是上帝出现了: "张三,你只要做一次测试,就能用数学的方法,画出所有输入波形对应的输出波形"。 上帝接着说:"给产品一个脉冲信号,能量是1焦耳,输出的波形图画出来!" 张三照办了,"然后呢?" 上帝又说,"对于某个输入波形,你想象把它微分成无数个小的脉冲,输入给产品,叠加出来的结果就是你的输出波形。你可以想象这些小脉冲排着队进入你的产品,每个产生一个小的输出,你画出时序图的时候,输入信号的波形好像是反过来进入系统的。" 张三领悟了:" 哦,输出的结果就积分出来啦!感谢上帝。这个方法叫什么名字呢?" 上帝说:"叫卷积!"
从此,张三的工作轻松多了。每次经理让他测试一些信号的输出结果,张三都只需要在A4纸上做微积分就是提交任务了!
张三愉快地工作着,直到有一天,平静的生活被打破。 经理拿来了一个小的电子设备,接到示波器上面,对张三说: "看,这个小设备产生的波形根本没法用一个简单的函数来说明,而且,它连续不断的发出信号!不过幸好,这个连续信号是每隔一段时间就重复一次的。张三,你来测试一下,连到我们的设备上,会产生什么输出波形!" 张三摆摆手:"输入信号是无限时长的,难道我要测试无限长的时间才能得到一个稳定的,重复的波形输出吗?" 经理怒了:"反正你给我搞定,否则炒鱿鱼!" 张三心想:"这次输入信号连公式都给出出来,一个很混乱的波形;时间又是无限长的,卷积也不行了,怎么办呢?" 及时地,上帝又出现了:"把混乱的时间域信号映射到另外一个数学域上面,计算完成以后再映射回来。" "宇宙的每一个原子都在旋转和震荡,你可以把时间信号看成若干个震荡叠加的效果,也就是若干个可以确定的,有固定频率特性的东西。" "我给你一个数学函数f,时间域无限的输入信号在f域有限的。时间域波形混乱的输入信号在f域是整齐的容易看清楚的。这样你就可以计算了。" "同时,时间域的卷积在f域是简单的相乘关系,我可以证明给你看看。" "计算完有限的程序以后,取f(-1)反变换回时间域,你就得到了一个输出波形,剩下的就是你的数学计算了!" 张三谢过了上帝,保住了他的工作。后来他知道了,f域的变换有一个名字,叫做傅利叶,什么什么... ...
再后来,公司开发了一种新的电子产品,输出信号是无限时间长度的。这次,张三开始学拉普拉斯了......
后记
不是我们学的不好,是因为教材不好,老师讲的也不好。 很欣赏Google的面试题: 用3句话像老太太讲清楚什么是数据库。
声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
-
超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 //超声波模块程序 //Trig = P2^0 //Echo = P3^2 #include #define uchar unsigned char #define uint unsigned int // void delay(uint z) {...
-
嵌入式系统是当今的热门系统之一,在诸多领域,嵌入式系统都有所应用。为增进大家对嵌入式系统的认识,小编将为大家介绍嵌入式系统是一个什么样的专业,以及学习嵌入式系统该学习哪些内容。如果你对嵌入式系统具有...
-
-
c51单片机编程要点总结 1、头文件:#include (我用的是 STC 89C54RD+) 2、预定义:sbit LED = P1^0// 定义 P1 口的 0 位为 LED 注:“P1^0”这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7 注2...
-
-
一、混合编程 1、模块内接口: 使用如下标志符: #pragma asm 汇编语句 #pragma endasm 注意:如果在c51程序中使用了汇编语言,注意在keil编译器中需要激活Properties中的“Generate Assembler...
-
esp32c2添加finsh实现了ping指令和AT指令解析
-
-
在嵌入式系统的开发中,内存是最程序员非常需要关注的对象,尤其是MCU开发、网络协议解析、硬件寄存器操作等领域,能否对内存进行高效的利用和合理的管理,将直接影响程序的性能和硬件的稳定性。
-
本文将从一个初学者的角度开始聊起,让大家了解 Socket 是什么以及它的原理和内核实现。
-
章节重点在C++面试时,经常被问到如果高效获取线程ID,但不少同学都不知道如何回答。重点是通过__thread关键字。
-