本文转载来自:《信号与系统》太easy了 那是因为看过了这篇奇文


大家都知道《信号与系统》是一门很难的课,很多人虽然学过了,但其实什么也没得到,今天给大家推荐这篇文章,看了之后,相信你会有收获。

第一课 什么是卷积?卷积有什么用?

很多朋友和我一样,工科电子类专业,学了一堆信号方面的课,什么都没学懂,背了公式考了试,然后毕业了。

先说"卷积有什么用"这个问题。(有人抢答,"卷积"是为了学习"信号与系统"这门课的后续章节而存在的。我大吼一声,把他拖出去*毙!)

讲一个故事:

张三刚刚应聘到了一个电子产品公司做测试人员,他没有学过"信号与系统"这门课程。一天,他拿到了一个产品,开发人员告诉他,产品有一个输入端,有一个输出端,有限的输入信号只会产生有限的输出。

然后,经理让张三测试当输入sin(t)(t<1秒)信号的时候(有信号发生器),该产品输出什么样的波形。张三照做了,花了一个波形图。

"很好!"经理说。然后经理给了张三一叠A4纸: "这里有几千种信号,都用公式说明了,输入信号的持续时间也是确定的。你分别测试以下我们产品的输出波形是什么吧!"

这下张三懵了,他在心理想"上帝,帮帮我把,我怎么画出这些波形图呢?"

于是上帝出现了: "张三,你只要做一次测试,就能用数学的方法,画出所有输入波形对应的输出波形"。

上帝接着说:"给产品一个脉冲信号,能量是1焦耳,输出的波形图画出来!"

张三照办了,"然后呢?"

上帝又说,"对于某个输入波形,你想象把它微分成无数个小的脉冲,输入给产品,叠加出来的结果就是你的输出波形。你可以想象这些小脉冲排着队进入你的产品,每个产生一个小的输出,你画出时序图的时候,输入信号的波形好像是反过来进入系统的。"

张三领悟了:" 哦,输出的结果就积分出来啦!感谢上帝。这个方法叫什么名字呢?"

上帝说:"叫卷积!"

从此,张三的工作轻松多了。每次经理让他测试一些信号的输出结果,张三都只需要在A4纸上做微积分就是提交任务了!

张三愉快地工作着,直到有一天,平静的生活被打破。

经理拿来了一个小的电子设备,接到示波器上面,对张三说: "看,这个小设备产生的波形根本没法用一个简单的函数来说明,而且,它连续不断的发出信号!不过幸好,这个连续信号是每隔一段时间就重复一次的。张三,你来测试一下,连到我们的设备上,会产生什么输出波形!"

张三摆摆手:"输入信号是无限时长的,难道我要测试无限长的时间才能得到一个稳定的,重复的波形输出吗?"

经理怒了:"反正你给我搞定,否则炒鱿鱼!"

张三心想:"这次输入信号连公式都没给出来,一个很混乱的波形;时间又是无限长的,卷积也不行了,怎么办呢?"

及时地,上帝又出现了:"把混乱的时间域信号映射到另外一个数学域上面,计算完成以后再映射回来"

"宇宙的每一个原子都在旋转和震荡,你可以把时间信号看成若干个震荡叠加的效果,也就是若干个可以确定的,有固定频率特性的东西。"

"我给你一个数学函数f,时间域无限的输入信号在f域有限的。时间域波形混乱的输入信号在f域是整齐的容易看清楚的。这样你就可以计算了"

"同时,时间域的卷积在f域是简单的相乘关系,我可以证明给你看看"

"计算完有限的程序以后,取f(-1)反变换回时间域,你就得到了一个输出波形,剩下的就是你的数学计算了!"

张三谢过了上帝,保住了他的工作。后来他知道了,f域的变换有一个名字,叫做傅利叶,什么什么... ...

再后来,公司开发了一种新的电子产品,输出信号是无限时间长度的。这次,张三开始学拉普拉斯了......

后记:

不是我们学的不好,是因为教材不好,老师讲的也不好。

很欣赏Google的面试题: 用3句话像老太太讲清楚什么是数据库。这样的命题非常好,因为没有深入的理解一个命题,没有仔细的思考一个东西的设计哲学,我们就会陷入细节的泥沼: 背公式,数学推导,积分,做题;而没有时间来回答"为什么要这样"。做大学老师的做不到"把厚书读薄"这一点,讲不出哲学层面的道理,一味背书和翻讲 ppt,做着枯燥的数学证明,然后责怪"现在的学生一代不如一代",有什么意义吗?  


第二课 到底什么是频率 ,什么是系统?

这一篇,我展开的说一下傅立叶变换F。注意,傅立叶变换的名字F可以表示频率的概念(freqence),也可以包括其他任何概念,因为它只是一个概念模型,为了解决计算的问题而构造出来的(例如时域无限长的输入信号,怎么得到输出信号)。我们把傅立叶变换看一个C语言的函数,信号的输出输出问题看为IO 的问题,然后任何难以求解的x->y的问题都可以用x->f(x)->f-1(x)->y来得到。

1. 到底什么是频率?

一个基本的假设: 任何信息都具有频率方面的特性,音频信号的声音高低,光的频谱,电子震荡的周期,等等,我们抽象出一个简谐振动的概念,数学名称就叫做频率。想象在x-y 平面上有一个原子围绕原点做半径为1匀速圆周运动,把x轴想象成时间,那么该圆周运动在y轴上的投影就是一个sin(t)的波形。相信中学生都能理解这个。

那么,不同的频率模型其实就对应了不同的圆周运动速度。圆周运动的速度越快,sin(t)的波形越窄。频率的缩放有两种模式:

(a) 老式的收音机都是用磁带作为音乐介质的,当我们快放的时候,我们会感觉歌唱的声音变得怪怪的,调子很高,那是因为"圆周运动"的速度增倍了,每一个声音分量的sin(t)输出变成了sin(nt)。

(b) 在CD/计算机上面快放或满放感觉歌手快唱或者慢唱,不会出现音调变高的现象:因为快放的时候采用了时域采样的方法,丢弃了一些波形,但是承载了信息的输出波形不会有宽窄的变化;满放时相反,时域信号填充拉长就可以了。

2. F变换得到的结果有负数/复数部分,有什么物理意义吗?

解释: F变换是个数学工具,不具有直接的物理意义,负数/复数的存在只是为了计算的完整性。

3. 信号与系统这们课的基本主旨是什么?

对于通信和电子类的学生来说,很多情况下我们的工作是设计或者OSI七层模型当中的物理层技术,这种技术的复杂性首先在于你必须确立传输介质的电气特性, 通常不同传输介质对于不同频率段的信号有不同的处理能力。以太网线处理基带信号,广域网光线传出高频调制信号,移动通信,2G和3G分别需要有不同的载频特性。那么这些介质(空气,电线,光纤等)对于某种频率的输入是否能够在传输了一定的距离之后得到基本不变的输入呢? 那么我们就要建立介质的频率相应数学模型。同时,知道了介质的频率特性,如何设计在它上面传输的信号才能大到理论上的最大传输速率?----这就是信号与系统这门课带领我们进入的一个世界。

当然,信号与系统的应用不止这些,和相同的信息理论挂钩,它还可以用于信息处理(声音,图像),模式识别,智能控制等领域。如果说,计算机专业的课程是数据表达的逻辑模型,那么信号与系统建立的就是更底层的,代表了某种物理意义的数学模型。数据结构的知识能解决逻辑信息的编码和纠错,而信号的知识能帮我们设计出码流的物理载体(如果接受到的信号波形是混乱的,那我依据什么来判断这个是1还是0? 逻辑上的纠错就失去了意义)。在工业控制领域,计算机的应用前提是各种数模转换,那么各种物理现象产生的连续模拟信号(温度,电阻,大小,压力,速度等) 如何被一个特定设备转换为有意义的数字信号,首先我们就要设计一个可用的数学转换模型。

4. 如何设计系统?

设计物理上的系统函数(连续的或离散的状态),有输入,有输出,而中间的处理过程和具体的物理实现相关,这不是这门课关心的重点(电子电路设计?)。信号与系统归根到底就是为了特定的需求来设计一个系统函数。设计出系统函数的前提是把输入和输出都用函数来表示(例如sin(t))。分析的方法就是把一个复杂的信号分解为若干个简单的信号累加,具体的过程就是一大堆微积分的东西,具体的数学运算不是这门课的中心思想。

那么系统有那些种类呢?

(a) 按功能分类: 调制解调(信号抽样和重构),叠加,滤波,功放,相位调整,信号时钟同步,负反馈锁相环,以及若干子系统组成的一个更为复杂的系统----你可以画出系统流程图,是不是很接近编写程序的逻辑流程图? 确实在符号的空间里它们没有区别。还有就是离散状态的数字信号处理(后续课程)。

(b) 按系统类别划分,无状态系统,有限状态机,线性系统等。而物理层的连续系统函数,是一种复杂的线性系统。

5. 最好的教材?

符号系统的核心是集合论,不是微积分,没有集合论构造出来的系统,实现用到的微积分便毫无意义----你甚至不知道运算了半天到底是要做什么。以计算机的观点来学习信号与系统,最好的教材之一就是《Structure and Interpretation of Signals and Systems》, 作者是UC Berkeley的Edward A.Lee and Pravin Varaiya----先定义再实现,符合人类的思维习惯。国内的教材通篇都是数学推导,就是不肯说这些推导是为了什么目的来做的,用来得到什么,建设什么,防止什么;不去从认识论和需求上讨论,通篇都是看不出目的的方法论,本末倒置了。


第三课 抽样定理是干什么的

1. 举个例子,打电话的时候,电话机发出的信号是PAM脉冲调幅,在电话线路上传的不是话音,而是话音通过信道编码转换后的脉冲序列,在收端恢复语音波形。那 么对于连续的说话人语音信号,如何转化成为一些列脉冲才能保证基本不失真,可以传输呢? 很明显,我们想到的就是取样,每隔M毫秒对话音采样一次看看电信号振幅,把振幅转换为脉冲编码,传输出去,在收端按某种规则重新生成语言。

那么,问题来了,每M毫秒采样一次,M多小是足够的? 在收端怎么才能恢复语言波形呢?

对于第一个问题,我们考虑,语音信号是个时间频率信号(所以对应的F变换就表示时间频率)把语音信号分解为若干个不同频率的单音混合体(周期函数的复利叶级数展开,非周期的区间函数,可以看成补齐以后的周期信号展开,效果一样),对于最高频率的信号分量,如果抽样方式能否保证恢复这个分量,那么其他的低频率分量也就能通过抽样的方式使得信息得以保存。如果人的声音高频限制在3000Hz,那么高频分量我们看成sin(3000t),这个sin函数要通过抽样保存信息,可以看为: 对于一个周期,波峰采样一次,波谷采样一次,也就是采样频率是最高频率分量的2倍(奈奎斯特抽样定理),我们就可以通过采样信号无损的表示原始的模拟连续 信号。这两个信号一一对应,互相等价。

对于第二个问题,在收端,怎么从脉冲序列(梳装波形)恢复模拟的连续信号呢? 首先,我们已经肯定了在频率域上面的脉冲序列已经包含了全部信息,但是原始信息只在某一个频率以下存在,怎么做? 我们让输入脉冲信号I通过一个设备X,输出信号为原始的语音O,那么I(*)X=O,这里(*)表示卷积。时域的特性不好分析,那么在频率域 F(I)*F(X)=F(O)相乘关系,这下就很明显了,只要F(X)是一个理想的,低通滤波器就可以了(在F域画出来就是一个方框),它在时间域是一个钟型函数(由于包含时间轴的负数部分,所以实际中不存在),做出这样的一个信号处理设备,我们就可以通过输入的脉冲序列得到几乎理想的原始的语音。在实际应用中,我们的抽样频率通常是奈奎斯特频率再多一点,3k赫兹的语音信号,抽样标准是8k赫兹。

2. 再举一个例子,对于数字图像,抽样定理对应于图片的分辨率----抽样密度越大,图片的分辨率越高,也就越清晰。如果我们的抽样频率不够,信息就会发生混 叠----网上有一幅图片,近视眼戴眼镜看到的是爱因斯坦,摘掉眼睛看到的是梦露----因为不带眼睛,分辨率不够(抽样频率太低),高频分量失真被混入了低频分量,才造成了一个视觉陷阱。在这里,图像的F变化,对应的是空间频率。

话说回来了,直接在信道上传原始语音信号不好吗? 模拟信号没有抗干扰能力,没有纠错能力,抽样得到的信号,有了数字特性,传输性能更佳。

什么信号不能理想抽样? 时域有跳变,频域无穷宽,例如方波信号。如果用有限带宽的抽样信号表示它,相当于复利叶级数取了部分和,而这个部分和在恢复原始信号的时候,在不可导的点上面会有毛刺,也叫吉布斯现象。

3. 为什么傅立叶想出了这么一个级数来? 这个源于西方哲学和科学的基本思想: 正交分析方法。例如研究一个立体形状,我们使用x,y,z三个互相正交的轴: 任何一个轴在其他轴上面的投影都是0。这样的话,一个物体的3视图就可以完全表达它的形状。同理,信号怎么分解和分析呢? 用互相正交的三角函数分量的无限和:这就是傅立叶的贡献。


第四课 傅立叶变换的复数、小波

说的广义一点,"复数"是一个"概念",不是一种客观存在。

什么是"概念"? 一张纸有几个面? 两个,这里"面"是一个概念,一个主观对客观存在的认知,就像"大"和"小"的概念一样,只对人的意识有意义,对客观存在本身没有意义(康德: 纯粹理性的批判)。把纸条的两边转一下相连接,变成"莫比乌斯圈",这个纸条就只剩下一个"面"了。概念是对客观世界的加工,反映到意识中的东西。

数的概念是这样被推广的: 什么数x使得x^2=-1? 实数轴显然不行,(-1)*(-1)=1。那么如果存在一个抽象空间,它既包括真实世界的实数,也能包括想象出来的x^2=-1,那么我们称这个想象空间 为"复数域"。那么实数的运算法则就是复数域的一个特例。为什么1*(-1)=-1? +-符号在复数域里面代表方向,-1就是"向后,转!"这样的命令,一个1在圆周运动180度以后变成了-1,这里,直线的数轴和圆周旋转,在复数的空间里面被统一了。

因此,(-1)*(-1)=1可以解释为"向后转"+"向后转"=回到原地。那么复数域如何表示x^2=-1呢? 很简单,"向左转","向左转"两次相当于"向后转"。由于单轴的实数域(直线)不包含这样的元素,所以复数域必须由两个正交的数轴表示--平面。很明 显,我们可以得到复数域乘法的一个特性,就是结果的绝对值为两个复数绝对值相乘,旋转的角度=两个复数的旋转角度相加。高中时代我们就学习了迪莫弗定理。 为什么有这样的乘法性质? 不是因为复数域恰好具有这样的乘法性质(性质决定认识),而是发明复数域的人就是根据这样的需求去弄出了这么一个复数域(认识决定性质),是一种主观唯心主义的研究方法。为了构造x^2=-1,我们必须考虑把乘法看为两个元素构成的集合: 乘积和角度旋转。

因为三角函数可以看为圆周运动的一种投影,所以,在复数域,三角函数和乘法运算(指数)被统一了。我们从实数域的傅立叶级数展开入手,立刻可以得到形式更简单的,复数域的,和实数域一一对应的傅立叶复数级数。因为复数域形式简单,所以研究起来方便----虽然自然界不存在复数,但是由于和实数域的级数一一 对应,我们做个反映射就能得到有物理意义的结果。

那么傅立叶变换,那个令人难以理解的转换公式是什么含义呢? 我们可以看一下它和复数域傅立叶级数的关系。什么是微积分,就是先微分,再积分,傅立叶级数已经作了无限微分了,对应无数个离散的频率分量冲击信号的和。 傅立叶变换要解决非周期信号的分析问题,想象这个非周期信号也是一个周期信号: 只是周期为无穷大,各频率分量无穷小而已(否则积分的结果就是无穷)。那么我们看到傅立叶级数,每个分量常数的求解过程,积分的区间就是从T变成了正负无穷大。而由于每个频率分量的常数无穷小,那么让每个分量都去除以f,就得到有值的数----所以周期函数的傅立叶变换对应一堆脉冲函数。同理,各个频率分量之间无限的接近,因为f很小,级数中的f,2f,3f之间几乎是挨着的,最后挨到了一起,和卷积一样,这个复数频率空间的级数求和最终可以变成一个积分式:傅立叶级数变成了傅立叶变换。注意有个概念的变化:离散的频率,每个频率都有一个"权"值,而连续的F域,每个频率的加权值都是无穷小(面积=0), 只有一个频率范围内的"频谱"才对应一定的能量积分。频率点变成了频谱的线。

因此傅立叶变换求出来的是一个通常是一个连续函数,是复数频率域上面的可以画出图像的东西? 那个根号2Pi又是什么? 它只是为了保证正变换反变换回来以后,信号不变。我们可以让正变换除以2,让反变换除以Pi,怎么都行。

8分钟带你彻底弄懂《信号与系统》相关推荐

  1. 8分钟带你彻底弄懂《线性代数》

    本文转载自:数学对于编程来说重要吗?编程大佬眼里的线性代数 线性代数是什么? 在大学数学学科中,线性代数是最为抽象的一门课,从初等数学到线性代数的思维跨度比微积分和概率统计要大得多.很多人学过以后一直 ...

  2. 3分钟带你彻底弄懂数码管的段选与位选

    数码管是给我们展示数据或者信息的电子器件,它是最原始以及成本比较低.以下是数码管的实物图: 1.1 数码管的段选与位选 以下是数码管的每一段所对应的位置: 从图可以看出来,数码管共有 a.b.c.d. ...

  3. 10分钟带你彻底搞懂微内核架构

    文章目录 十分钟搞懂系列 什么是微内核架构? 如何实现微内核架构? 总结 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.net/belon ...

  4. 10分钟带你彻底搞懂服务限流和服务降级

    文章目录 十分钟搞懂系列 服务限流 计数器法 滑动窗口法 漏桶算法 令牌桶算法 服务降级 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.n ...

  5. 10分钟带你彻底搞懂负载均衡

    文章目录 十分钟搞懂系列 负载均衡是如何保证软件系统的生产部署的? 负载均衡分发策略 请求由谁来分发? 服务器端负载均衡器 客户端负载均衡 请求分发到哪去? 静态负载均衡算法 动态负载均衡算法 十分钟 ...

  6. 8分钟带你深入浅出搞懂Nginx

    8分钟带你深入浅出搞懂Nginx Nginx是一款轻量级的Web服务器.反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用. 架构图 上图基本上说明了当下流行的技术架构 ...

  7. 下班前几分钟,我彻底弄懂了 undefined 和 null 的区别

    目录 前言 一.基本概念 1.undefined 2.null 二.简单区别 三.表现形式 1.typeof 2.== 与 === 3.Object.prototype.toString.call 4 ...

  8. 泛型类有什么作用_3 分钟带你彻底搞懂 Java 泛型背后的秘密

    优质文章,及时送达 作者 | 的一幕 来源 | www.jianshu.com/p/dd34211f2565 这一节主要讲的内容是java中泛型的应用,通过该篇让大家更好地理解泛型,以及面试中经常说的 ...

  9. 原码一位乘法器设计_十分钟带你彻底搞懂原码、反码、补码

    点击上方"程序员大白",选择"星标"公众号 重磅干货,第一时间送达 编辑 | 程序员大白公众号来源丨https://www.cnblogs.com/zhangz ...

最新文章

  1. .NET2.0抓取网页全部链接【月儿原创】
  2. 3dmax全局材质灯光细分插件_3Dmax渲染Vray渲染提速优化技巧
  3. vi测试仪维修成功率高吗?_电工电路板检测维修无图电路板的技巧
  4. 数字图像处理图像反转的实现_反转8位数字| 8085微处理器
  5. 用python画渐变的圆_Python成像库(PIL)绘图 – 带渐变的圆角矩形
  6. python入门:输出1-100之内的所有奇数和偶数
  7. 小数点后最多几位_一个“90后”女生的月账单,花得最多的果然是这个
  8. 软件工程结对作业01
  9. C++交换两个数组的前n个字节
  10. SK海力士与电装四巨头论半导体供给
  11. Matlab函数之lower函数与upper函数
  12. 在xilinx SDK中查询API函数的方法
  13. 怎么把知网下载的caj格式论文转成wrod格式呢
  14. 灵活使用 console 让 js 调试更简单
  15. 扎克伯格清华座谈全程秀中文
  16. 无人机开源项目_8个开源无人机项目
  17. 如何用Python进行屏幕录制?
  18. winform程序中e.Cancel有什么意义
  19. 《图解HTTP》思维导图
  20. 短视频搬运要如何做,需要哪些软件,可以去重上热门?

热门文章

  1. Excel 根据序号分组
  2. R语言使用cph函数和rcs函数构建限制性立方样条cox回归模型
  3. hdu2859Phalanx
  4. 使用HttpURLConnection 越过ssl证书访问htts协议接口
  5. python爬取高匿代理IP(再也不用担心会进小黑屋了)
  6. iOS开发之利用苹果系统自带地图进行地图开发
  7. 用HTML写一个简易的登录界面
  8. 卢卡斯定理 Lucas
  9. vue实现下拉二级联动_select下拉菜单实现二级联动效果
  10. AD入门学习—元件库(原理图库)的创建