🎉欢迎大家来到我的博客!!🎉
此页面是我学习数字信号处理的个人笔记(DSP 绩点 4.0),分享出来不仅方便自己复习,也能够帮助到大家复习和知识检索。
对于潘老师网课部分的课程笔记,可以理解为是以潘老师网课及课件为基础,以南理工考察点为补充的一个笔记(南理工的 DSP 考试会比较难,只学潘老师课程不可能够)。在这个笔记中,不仅更正了不少潘老师课件中的错漏之处,而且补充了很多理论的推导,也扩展了很多知识点,能够帮助大家更好地理解。当然,本人才疏学浅,因此笔记中不免也会有疏漏之处,欢迎大家积极指正!!
建议南理工的友友们在学完潘老师的课程后认真阅读 ppt,这样考试才不容易出问题。
最后希望我的笔记能够对大家预习和复习有帮助,预祝大家取得圆满的成绩!!
P.S. 请大家尽量用电脑来进行查看,会有最好的显示效果。
(潘老师)课程笔记
课程链接: 跳转链接
笔记中的截图部分来自潘老师的课件,部分为个人制作,引用的其他内容均注明了来处,对于课件中存在的错误,部分直接在课件图片中进行了更正,部分在课件图片下方指明,笔记中的课件图片里所有绿色部分的标注是我写的,因此可能存在错漏欢迎指正!!
课程资源
在原课件中,虽然每个课件的 pdf 页数并不多,但很多文件的大小却都有几十 MB,所有课件加起来有几百 MB,为了方便下载和存储,对课件进行了 pdf 的内存优化,内容不变,但是占用的内存更小。
潘老师的网课课件:
南理电光 DSP 期末试卷
DSP 试卷管的特别的严,每张试卷都需要写上姓名和学号,因此能买到的试卷都比较早,近几年的试卷比较少。
预备知识
傅里叶变换的分解

三角函数和差化积公式

Sa 函数的正逆傅里叶变换

时域离散信号和时域离散系统(第一章)
📝 Class Notes
前面很多内容都比较简单,只看 ppt 就已经可以理解了,部分较难的地方会附上说明。
离散信号的表示方法
一共有三种表示方法。



常见的离散信号及特性





正弦信号与正弦序列的对比(为什么数字角频率是以 2π 为周期的呢?)

要注意,模拟角频率的单位是弧度/秒,数字角频率的单位是弧度,因此数字频率不能通过 转换为赫兹。

从图中可以看到,模拟角频率与数字角频率之间可以通过采样周期进行转换,进一步化简数字角频率的公式,可以得到 ,由于公式中频率的量纲相互抵消了,因此数字角频率就是以弧度为单位的,数字角频率本质上是角度,既然是角度,那么只需要 是 2π 的整数倍就可以使正弦信号余弦信号周期往复了(连续的情况下需要 ,t 是连续的),而 n 只能取整数,因此对于离散的数字角频率而言,它的周期就是 2π。


复指数序列的特性

离散系统
时域离散系统的运算

上图介绍了离散系统的简单运算,离散系统比较重要的一个运算就是卷积运算了, 是输出响应, 是输入响应, 是在系统输入单位脉冲函数 时的输出响应,是系统函数。对于线性时不变系统而言,输入响应可以分解成无数个单位脉冲函数与函数相乘后相加的形式,因此在这样的系统下,才有 ,具体的原因可以跳转到【这个页面的相应位置】查看。
线性系统

线性系统的特性可以通过下面这张图来理解:

例题 1:

例题 2:

总结: 证明一个系统是否是一个线性系统都可以采用上述的 “两变换一对比” 的方法进行,即先将 和 的表达式变换出来,然后将它们的和与 进行对比。
这里的线性系统和非线性系统与 『通信电子线路』 这门课中学到的并不一样,在通信电子线路这门课中我们知道,非线性系统最大的特点其实输入信号在输出后产生了新的频率分量;而在线性系统中,输入信号的频率为多少,输出信号的频率就是多少。比如 这个系统,当输入为 时,输入只有一个频率分量 ,可是输出的 却为 ,即输出的频率为 ,因此它是非线性系统。
但数字信号处理中,非线性系统是不满足齐次性和可加性的系统。
常见的线性系统

时不变系统

上面时不变系统和时变系统的定义很像是《数字逻辑电路》这门课中的组合逻辑和时序逻辑的定义。
组合逻辑是特定的输入会产生特定的输出,输出不随时间发生变化→时不变系统;
而时序逻辑是相同的输入会产生不同的输出,输出随时间发生变化→时变系统。
例题 3:

在上面的例题中,虽然这个系统是时不变系统,但聪明的你一定发现了这个系统也是非线性系统,因为它有偏置 b 存在。
例题 4:

上面的系统是时变系统但却是线性系统。
常见的时不变系统

部分时变系统的证明:

时域离散系统(卷积及卷积和)

求序列卷积和的公式:

在计算序列的卷积和的时候,可以看到公式中求和的过程序列 是需要翻转的,这个如何理解呢?潘老师打了个比方,在向系统输入一个信号的时候,如果直接将 输入系统,那么是后输入的信号先进行了转换(如先转换了 ,再转换 , 落后于 ),将序列进行翻转后,就是先输入的信号先进行转换。
序列卷积和的计算有多种方法,如图解法、不进位乘法、列表法等等,一般不会采用图解法进行计算。关于不进位乘法、列表法的计算方法可以参考 👉🏾 👈🏾
例题:

序列卷积的运算法则:
交换律 结合律 

分配律

对于结合律中的框图,可以通过下面的方式来理解:

因为 h(t) 的定义就是在输入单位脉冲函数 时候输出响应的大小。

单位脉冲序列的卷积和特性
因为这个特性还蛮重要的,因此单独提出来写一下。

上图的意思就是说,任何序列(函数)与单位脉冲函数的卷积都是序列(函数)本身,单位脉冲序列进行位移后与序列(函数)卷积相当于直接对序列(函数)进行相等的位移。
因此,如果我们想要对某个函数进行平移操作,我们可以通过将该函数与单位脉冲序列卷积来实现。
例题:
因果性和稳定性
因果性:

因果性指的是系统的输出不发生在输入之前(有因才有果顾名因果),可以通过上图例子来进行理解,上图中,当 n 取 0 时,如果使用红线部分的式子, y(0) = ax(1) + b ,这种情况下系统的输出是在 n = 0 时产生的,而系统的输入是在 n = 1 时发生的,输出明显在输入之前,因此由该式子表示的系统是非因果的。
满足系统因果性的初始值(即 n < 0 时,h(n) = 0)在英文中称为是 intial rest,有时翻译为“初始松弛条件”。
初始松弛条件与系统的因果性之间是充要条件,满足初始松弛条件的系统是因果系统,因果系统肯定满足初始松弛条件。
简单例题测验:

在图中的第三个例题,如果式子是 ,那么系统就不是因果系统,因为如果 ,那么 ,输出在输入之前。
稳定性:



稳定要求的是 n 需要趋近于无穷大才行,如果像上图一样 n → 3,虽然它是可和的,但是它依然不是稳定的。
简单例题:

如果要判断系统是否是稳定的系统,需要从两个方面入手:
① 判断系统是否是线性时不变的,(线性和时不变的判断方法前面已经介绍过了),如果是线性时不变的系统,则通过单位脉冲响应是否绝对可和判断系统的稳定性;
② 若系统并非是稳定系统,则通过判断系统有界的输入是否能够产生有界的输出来判断系统的稳定性。
带有指数的方程的稳定性判断:



常系数差分方程
差分方程的延时:

D 延时是离散系统系统框图的一个重要组成部分,有关系统框图的更多内容可以进入 『信号与系统笔记』进行查看。
差分方程的阶数:

一阶差分方程就相当于有一个延时单元 D,二阶就有两个。
常系数差分方程的求解:
在数字信号处理中,常用的差分方程求解方法有递推法和 z 变换法(后面的部分会介绍)。
例题一:


递推法可以通过上面的例题来理解,上面这个例题可能有点绕,来简单说一下 这个式子,可以通过下面的图像来解释:

例题二:

模拟信号的数字化

在数电中,我们学过,一段模拟信号需要先经过抗混叠滤波器得到采样保持电路,然后再经过 A/D 转换器转换为数字(离散)信号,离散信号在经过种种分析处理后可以通过采样保持电路和 D/A 转换器又恢复出原始信号。
模拟信号 → 离散信号:




传统模型采用的是输入信号与冲激序列相乘得到离散序列,而新模型采用的是数字逻辑电路中的 A/D 转换器来进行离散序列的采样。

上图中最终得出的公式 实际上就是一个卷积公式,因此在时域,对信号进行采样可以通过卷积 。


在上图中, 表示的是信号频率, 表示的是采样频率,当信号频率与采样频率的比值大于 1 且为整数时,信号是有周期的;当信号频率与采样频率的比值是无理数的时候,信号是没有周期的。
奈奎斯特采样定律回顾:

如图所示,对信号在时域进行采样相当于在频域进行频谱搬移,只有当采样的频率是信号频率的两倍的时候,平移后的频谱才不会发生混叠,可以通过低通滤波器还原信号。
离散信号 → 模拟信号:


在将数字(离散)信号转换为模拟连续信号的时候,首先要让信号通过零阶保持器生成柱方图状的波形,然后再经过 D/A 转换器。如果离散信号有很多高频分量,也需要先让离散信号通过一个低通滤波器得到低频有用信号,然后再通过零阶保持器和 D/A 转换器。
因此模拟信号转换为离散信号再转换为模拟信号的过程中需要通过两次低通滤波器。

离散信号的分析(第二章)
📝 Class Notes
对于这部分的知识,首先要树立这样的一个概念,信号时域采样会产生频域信号的周期延拓(周期性搬移),而信号的频域采样会产生时域信号的周期延拓(周期性搬移)。
DTFT 实现了前者,即时域采样,因此时域是离散、非周期的(假设采样前的信号是非周期的),频域是连续、周期的(因为采样前信号频谱就是连续的,采样后只是增加了周期性);DFS 是在 DTFT 的基础上实现了后者,即频域采样,因此频域变为离散、周期的(周期性成立的前提是采样频率是有理数,像 这样的周期就没办法采样得到),而时域信号变为离散、周期的(增加了周期性)。
DFT 是在 DFS 的基础上将时域和频域信号的一个周期(主值序列)取出来研究,因此它的时域和频域都是非周期且离散的。明白了上述这些点,这一章就会比较容易看懂了。
DTFT 的定义
连续信号经过冲激函数采样后, .



上面的红框部分就是离散信号的傅里叶变换的定义。要注意, 表示的是模拟角频率, 表示的是数字角频率。
【补充】IDTFT 的定义

常见的 DTFT
- 的傅里叶变换;

- 指数序列的傅里叶变换;

DTFT 的性质
- 周期性;

- 线性性质;

- 时移和频移性质;

一个简单的例题


上图采用的是公式法求解 x(n) 的傅里叶变换,也可以采用等比数列的方法来求解,具体过程如下:

- 卷积特性

- 帕斯瓦尔定理;

由于 DTFT 是周期信号,周期为 2π,因此频域只需要取 -π~π 范围内的值即可。
一个简单的例题

离散傅里叶变换(DFT)的性质
复数部分内容的回顾

上图说明了复数的两种表示方法:实部虚部表示法和指数表示法。
指数表示法利用了欧拉公式 这个式子,指数表示的式子本质上是极坐标表示,因此可以通过模和相角的形式在上图画出来。

⭐ 例题(重要)
理解下面的例题有助于后面共轭对称性的理解

上图中, 。
在上图所示的过程中,原式 ,只会使得 ,要将原式中 n 的变化与傅里叶变换式子中 里的 n 的变换分开。由于 DTFT 的固定形式就是 ,后面的 与原式中的 x(n) 是没有关系的,因此原式中 n 取负,只要将 即可。
由于在求和项中 都是由 到 ,因此可以将 -n 视作为 n,于是 。


x[n] 的共轭对称性
复数共轭的表现如下图所示:

指数的共轭就是在相角的前面加上一个负号“-”,因为 、 。

上面的四个关系很重要,在前面的例题中已经有过相关的推导,下面将利用上述四个关系得出共轭对称性(PPT 中这个部分个人觉得特别乱,因此整理了一下):
x[n] 为复序列的时候


简单说一下共轭对称序列和共轭反对称序列的特性:
共轭对称序列具有“实部偶对称,虚部奇对称”的特性,简称“实偶虚奇”;
共轭反对称序列具有“实部奇对称,虚部偶对称”的特性,简称“实奇虚偶”。
原因
共轭对称序列有 。
对于实部而言, ,相当于取偶分量;
对于虚部而言,有 ,相当于取奇分量。
x[n] 为实序列的时候

x[n] 为实序列时的重要结论

周期序列的傅里叶变换
一般使用在函数名上加波浪号的方式来表示周期序列。

主值序列指的是将周期序列中的一个完整子序列取出来组成的序列,主值序列能够反映周期序列的特性,同时也方便在计算机中进行存储。

傅里叶变换的对称性可以通过下图来理解:

例子——利用对称性得出的傅里叶变换对:


上图中,由于 1 是在离散时域中的,所以用无数个单位脉冲函数相加来表示,根据前面傅里叶变换对称性的图示,我们可以得到下面的过程:

对 δ(n) 和 δ(n-n₀) 采用傅里叶的对称性,即可得到上图右边的傅里叶变换对。
【补充】DFT 频谱分析
DFT 分析频谱的框图

DFT 进行频谱分析时应注意的几个问题
频谱混叠(解决方法:采样前使用抗混叠滤波器对信号进行滤波)。

频谱泄漏 | 频谱展宽


栅栏效应

图中的红字部分可能需要看完后面“频率分辨率”部分的内容才能够理解。
频率分辨率

图中计算频率分辨率时 N 指的是有效长度,因为 N 是实际采样的点数,补零的点并非是从原来的频谱上采样得到的,因此不用作计算数据有效长度。
z 变换
z 变换的定义

序列的 z 变换
例题一:

在 δ ↔ 1 的公式中,从左侧到右侧的变换称为是 z 变换,右侧到左侧的过程称为是 z 逆变换。
例题二:

在上图中,最终的结果利用了求和公式得出,求和公式原来为 的形式,分子中 之所以能够忽略,是因为 ,因此它的 n 次方趋近于 0。因此,收敛域的确定实际上是为了让等比数列的公比可以小于 q,最终得到一个绝对可和的表达式,本例中,如果 ,那么分子的值就会随着 n 的增大而增大,最终无法收敛。
这里也得出了 z 变换的稳定的条件,稳定的系统,z 变换后的式子的收敛域应该是包含单位圆的,也就是说, 满足 的条件。
例题三:

在上面的例题中,我们可以看到,最终的表达式形式和例题二的是一致的,但是他们的收敛域不同,因此属于是不同的 z 变换。
因此,z 变换的结果必须要是 “表达式+收敛域” 的形式,这样才能唯一的确定一个 z 变换(在考试中每当要写出 z 变换的结果也一定要注明收敛域)。
例题四:

收敛域
我们
通常收敛域根据序列的不同有以下的特点:
① 有限序列的收敛域是 (0, +∞)(因为有限长序列都是绝对可和的);
② 右边序列(如 u(n))的收敛域是 ;
③ 左边序列(如 u(-n-1))的收敛域是 .


常用序列的 z 变换
需要牢记。

倒数第二个公式的证明:

最后一个公式的证明:

z 域微分的性质比较重要,在后面【补充】部分会有证明。
【补充】z 变换的性质(来源于“信号与系统(郭宝龙)”课程)
线性性质

移位性质(差分,相当于时域微分)

单边 z 变换的记忆方法:

反转性质

尺度性质(z 域微分)


尺度性质证明:

例题 1:

例题 2:
题目:

求解过程:

时域尺度变换
卷积性质

关于 z 变换的更多内容可以进入我的『信号与系统笔记』查看。
z 逆变换

如图所示,z 变换有三种方法(定义法一般不用),接下来针对每种方法对 z 的逆变换进行求解。
观察法
接下来通过几个例题来说明观察法的解题。
例题一:


例题一直接代入公式求解即可,对于 z 变换的公式需要比较熟悉,前面已经介绍过了,忘记的同学可以点击折叠框查看。
z 变换常用公式和性质
常用公式:

常用性质:




将 当作是常数。 





线性性质

移位性质(差分,相当于时域微分)

单边 z 变换的记忆方法:

反转性质

尺度性质(z 域微分)


尺度性质证明:

例题 1:

例题 2:
题目:

求解过程:

时域尺度变换
↔
卷积性质

例题二:
题目在例题一的图片里面。

例题三(因果序列形式):


在对 z 变换后的式子进行裂项的时候,如果怕最后化简的结果里面分子没有 z,进而导致 z 的逆变换无法进行,可以在裂项前先将分子上的一个 z 除到等式的左边,等裂项结束后再将 z 乘到等式右侧。如下图所示:

例题三(反因果序列形式):

图像来源于“信号与系统(郭宝龙)”的课程课件。 
图像来源于“信号与系统(郭宝龙)”的课程。

例题三和例题四的不同在于收敛域是不一样的,要记住,因果序列的收敛域是 ,反因果序列的收敛域是 。
👉🏾收敛域忘记了的友友点这里👈🏾
通常收敛域根据序列的不同有以下的特点:
① 有限序列的收敛域是 (0, +∞)(因为有限长序列都是绝对可和的);
② 右边序列(如 u(n))的收敛域是 ;
③ 左边序列(如 u(-n-1))的收敛域是 .


例题三(环形区域形式):

要根据收敛域来判断序列是因果序列还是反因果序列(或者叫左边序列和右边序列)。
例题四:
图像来源于“信号与系统(郭宝龙)”的课程课件。 

要做例题四,首先需要对 z 变换的移位性质比较熟悉。
z 变换的移位性质



图中最后两步的变换过程利用了公式 。
例题五:


将 当作是常数。图像来源于“信号与系统(郭宝龙)”的课程课件。

是通过 z 域微分性质推导出来的, 公式是通过尺度性质推导出来的。

尺度性质

例题六:



老师在 ppt 上的求解过程:

上面的求解过程看起来可能会有点迷,如果上面的过程没有看懂,可以通过下面的求解过程来理解:

留数法
在分式的分子为 z 的幂次以及分母都是单极点的时候运算比较简单,如果分子是复杂的多项式或是分母有重极点,使用起来就会比较复杂,建议使用后面的部分分式展开法。


留数法的回顾
在复变函数中,留数(Residue)可以看作是函数在某个奇点(或极点)附近的“本地信息”。奇点是指函数在某个点不再解析的地方,例如分母为零的点。留数法的基本思想是,通过分析函数在这些奇点处的行为来求解整个围道上的积分。
根据留数定理,如果一个复变函数 f(z) 在闭合曲线 C 内解析,除了有限个孤立的奇点 外,则沿着闭合曲线的积分可以用这些奇点的留数之和来表示:
这里 表示函数 f(z) 在奇点 处的留数。求留数时产生的 2πi 刚好可以和 z 反变换前面的分式分母中的 2πi 相消。得到下面的式子:
的求解方法如下:
也就是说,要求哪个极点下的留数,就需要先在 的式子前面乘上(z - 该极点),目的是消去分母中该极点的存在。

运用留数法求解 z 反变换的时候,需要先将分子转换为 的形式,便于计算出极点。
例题一


注意在求 的时候,分子处要乘上 。
例题二

由于这个例题中的分子不能直接和 相消一部分,使得在 n = 0 时,分母会多出一个极点,因此需要分两种情况讨论。



在上面的式子中,如果从数学的角度上来说,第一个 x(n) 的式子就已经可以满足要求了,但是从数字信号处理的角度来说,我们习惯将信号序列都变换为从零开始的,因此最好将 。在图中就是将 拆为图中绿色部分的内容合并到括号内。
部分分式展开法
这个部分的内容我觉得潘老师讲的并不是很细,虽然部分分式展开法在信号与系统中已经学习过一次了,但是时间过了这么久也容易忘,更多有关信号与系统的内容可以参考我的 『信号与系统笔记』,在下面我会贴上信号与系统中部分分式展开法的相关内容。
部分分式展开法主要分为三种类型的展开:
① 单实极点的展开;
② 重极点的展开;
③ 共轭极点的展开。
潘老师的 ppt 讲解(内容简略)
部分分式展开法的步骤就是将复杂分式先拆成最简分式相加减的形式,然后再利用 z 反变换的常用公式计算得出 x(n)。
主要利用的公式就是 。

上面有两个注意点:
- 在将复杂分式拆成最简分式相加减形式的时候,需要先在左右两边同除以一个 z,保证最终转换的结果中分子中会有 z 的存在,进而能够进行 z 反变换;
- 左边序列和右边序列在进行 z 反变换的时候,结果是不同的。右边序列最终是 的形式,而左边序列最终是 的形式。

要计算哪个最简分式的系数 ,就需要乘以对应分式的极点 ,再令分式中 z 的值为 得到系数的值。
下面重极点和共轭复数极点的内容可以看我后面贴上的信号与系统中部分分式展开法的内容,会有更详细的介绍,潘老师估计觉得后面两个考的概率不大,就没有介绍的很详细。




信号与系统中的部分分式展开法(详细)
单实极点

要记住,计算 的时候, 的值应该要代入 的(展开前的)分式中,不能代入展开后的分式中进行计算。
部分分式展开的时候,需要提前在等式两侧都除以一个 z,提前除以 z 的目的在于部分分式展开后,保证展开后分式的分子一定会有 z 存在(展开后两边再同乘以 z 即可)。 在上述的展开过程中,每个分式的系数 K 都可以通过公式计算出来,这样不仅速度更快,也更不容易出错。

图中 其实就是单位阶跃函数 ,这两种写法是一样的。
例题一

例题二

上述分式展开式时,系数 K 的计算过程如下图所示:

重极点
重极点相对于单极点会比较复杂,但考试一般也不会考这么难的(说是这么说,但我们信号与系统期末的最后一道题倒也罕见的除了这种类型的题),这部分对 的逆变换需要比较熟悉。

一般只需要记住 r 为 2 和 3 时候逆变换的值即可。

例题

共轭单极点

例题


解差分方程
想要使用 z 变换法求解差分方程,首先要对 z 变换的移位性质比较熟悉。
移位性质(差分,相当于时域微分)

单边 z 变换的记忆方法:

求差分方程的 y(n) 表达式


例题
下面的例题老师是使用留数法进行求解的,但是我个人还是比较推荐使用部分分式展开法,描述这个方法的公式虽然比较复杂,但是其实用个一两次就会比较熟悉了,而且这个方法对大多数题型是通用的。


求系统函数 h(n) 表达式

例题(求 y(n) 和 h(n))



如果对图中为什么零状态响应会等于 有问题,可以参考信号与系统中的推导过程。
推导过程( 的公式/卷积和的公式)
序列的时域分解

卷积和公式的推导
零状态响应计算公式。

由于任何函数都可以表示为 的形式(序列的时域分解),将图中的每个 都看作是一个常数,那么就可以得到零状态响应的表达式。

第二种求 y(n) 的方法——部分分式展开法:

系统函数的两种形式及频率响应函数
系统函数为 H(z) 的形式(z 变换)时,能够很容易看出零极点的值并画出分布;系统函数为 的形式(傅里叶变换)时,能快速看出系统函数的幅值、相位与频率之间的关系,即幅频响应和相频相应。
离散系统进行 z 变换的计算过程比较容易,而进行傅里叶变换的过程却比较复杂,因此为了得到幅频响应和相频响应的关系,常先将离散的时域信号通过 z 变换转换为频域信号,再通过 H(z) → 的过程得到幅频图与相频图。
前面的课程已经学习了 H(z) 的变换,下面的内容就是学习 H(z) → 的变换过程。

要注意一个是 h(n) 的傅里叶变换,一个是 h(n) 的 z 变换,前者通常比较困难,后者转换会相对容易一些。

图中 H(z) → 的过程只需要将 z 替换为 就可以了。
在工程上,由于种种物理条件的限制,系统函数的三种形式 h(n) 、H(z) 和 是可以相互转换的,但在数学的严格推导中,并不是一直成立的。
例题 0

忘记了的同学

最后的化简利用了欧拉公式 ,欧拉公式的正弦余弦形式为:
上图的最终结果好像有些问题,我计算出来是:
为什么要将系统函数从 z 变换的形式 H(z) 转换为傅里叶变换的形式 ?

可以轻松表示成模和相角的形式,这通常有利于我们分析问题,而 z 变换可以帮助我们判断系统的稳定性,他们各有所长。
例题 1

例题 2



由例题 2 可以得出结论,当系统输入的是一个复指数信号的时候,输出的信号与输入的信号只发生了幅值和相位上的变化,也就是说,只要我们知道了系统函数的幅值和系统函数的相位,那么在输入特定频率的信号时,根据画出的幅频响应图和相频响应图(在后面的部分会介绍),我们就可以得到特定频率下的系统函数的幅值和相位,并直接写出输出响应的表达式。因为输出响应与输入响应只有幅值和相位上的变化。具体公式如下图所示:


当系统输入正余弦信号时,本质上与输入复指数信号是一样的,因为正余弦函数都可以通过复指数信号来表示:

例题 3

例题 4

图中这个部分写的其实不是特别的清楚,图中只计算了 的模值,而没有计算它的相角,就直接得出了它的相角为 0,这可能容易让人不理解。
其实,在计算时,直接写成下面的形式会更加明白:
在上面的式子中,是直接将模和相角当成一个整体一起进行计算的,最终得到的结果中,幅值为 ,相角为 0.
课后习题
题目:

求解过程:

个人觉得上面的绿框部分写错了,代入 n = 1,2,3… 后值并不恒为 1,正确的过程应该如下:

系统零极点分布与频率响应图的绘制

系统函数都可以拆分为图中零极点相乘的形式,其中,能够使分子为零的点称为是零点,能够使分母为零的点称为是极点。
零极点图是将系统函数的零点和极点都表示在坐标系中的图,零点在零极点图中使用实心圆点表示,极点在零极点图中用“x”表示。
通过零极点图,我们可以迅速判断一个系统是否是稳定的,一个系统的频率响应具有什么样的特点,在 z 取何值时具有最大值或最小值。

当我们有系统函数 H(z) 的表达式的时候,我们可以将其分子分母化简为图中 的形式,这种形式意味着“求单位圆上的点与 点的距离”。为什么是这样呢?
我们知道,在复平面中, ,当 时, ;当 时,;当 时,;当 时, ;当 时, .换句话说, 相当于是一个模长为 1 的单位圆,因为 .当 与 相乘时,单位圆的半径就从 1 变为了 。于是 的值就是两个单位圆上的点的距离,也就是 1 到 点 的距离。
当 为正实数时,点 就在横轴上,在后面的例题中, 多为正实数,计算起来较为简单(如果 为复数,那么就以实部为横坐标,虚部为纵坐标)。
极点的计算与零点是一样的。当将 z 从 0 ~ 2π 的值都取一遍,计算出 的值后,将 z 替换为 就得到 的值了。

为什么上面一个是积,一个是和呢?以 为例,它可以表示为 ,指数相乘相当于是相加,幅度相乘就是相乘。
示例:

零极点分布中可以得出的性质:

零点位置对系统稳定性没有影响,极点在单位圆内部时系统是稳定的,只要有一个极点在单位圆外,那么系统就是不稳定的。
例题一:




系统函数的幅频响应曲线中,频率的变化就是由输入信号的频率确定的,这也是为什么我们要研究系统的幅频响应曲线,通过幅频响应曲线,为了得到某个结果,我们可以很容易地确定输入信号的的频率应该是多少。
例题二:


网上没有搜到答案,我的答案如下,如有错误欢迎大家指正:

利用极点分布判断系统因果稳定性


判断一个序列是左边序列还是右边序列可以通过收敛域来进行,如果收敛域是 的形式,那么就是右边序列,否则是左边序列。

当系统函数的收敛域包含单位圆的时候,系统是稳定的,否则是不稳定的。因为系统能够稳定的边界条件就是 a 要小于 1。
下面例题 1 中的三个题目都是比较典型的例子:


从上面几个题目的结论中可以看出,一个系统是否稳定与其是否是因果系统没有关系。
因果性的判断,只要收敛域是朝外的就是因果的;稳定性的判断中,只要收敛域包含单位圆即是稳定的,收敛域由极点来确定。
‼️ 书上重要的例题:




课后练习题
题目:

求解过程:

离散傅里叶变换(第三章和第四章)
📝 Class Notes
引入

在计算机尚未普及的时候,由于傅里叶变换计算比较复杂,因此人们常使用 z 变换和拉普拉斯变换来进行运算。
但现今为了将数据在计算机中进行处理,多采用离散傅里叶变换,即将连续的自然信号采样后,对其进行 DFT 和 FFT 变换,FFT 是快速傅里叶变换,是对 DFT 的进一步扩展。而连续的傅里叶变换只具有理论研究的意义。
DFT 指的是时域离散且频域离散的傅里叶变换,离散时域信号经过 DTFT (时域离散傅里叶变换)转换为连续的频域信号后,为了将频域信号存储在计算机内部(计算机只能储存有限个点),需要对频域信号进行采样,此时就需要通过 DFT 来对采样后的信号的频域值进行计算。

傅里叶变换的规律
傅里叶变换一般具有这样的规律:
除去 DFT 以外,时域的离散和周期与频域的离散和周期之间是有着对偶关系的。
时域(或频域)的离散信号 ↔ 频域(或时域)的周期信号;时域(或频域)的非周期信号 ↔ 频域(或时域)的连续信号。
在信号与系统课程中,郭老师说, DFS 是离散傅里叶级数(暂时不需要了解什么是 DFS),它可以看作是 DFT 的周期延拓。换句话说,DFT 可以看作是从 DFS 中取一个周期来进行研究,因为周期信号的一个周期就能够反映信号的特性了,同时这也便于计算机的储存。
DFT 的时域信号和频域信号都是非周期且离散的,但是 DFS 信号的时域和频域信号都是周期且离散的。
在数字信号处理中,DFT 有一个性质是周期性,但它的周期性并不是它本身所具有的,即原来的时域信号变换后得来的,而是人为的给它加上去的,DFT 的周期性使其具有循环移位的性质,在后续的计算以及进一步推导 FFT 中具有重要的意义。
周期延拓
周期延拓表示的是将时域的信号进行周期性的拓展,方便后面进行 DFT。

如果一个信号是周期信号,那么通常将其用 来表示,但这个符号无法反映其周期的大小,因此引入新的符号 来表示周期为 N 的序列。
图中的 表示的是主值序列,也就是说是周期序列的一个周期, 表示的是矩形序列。
下面将对序列的长度 M 与周期延拓过程中使用的周期 N 进行讨论:

当序列长度 M 等于延拓周期 N 的时候:

当序列的长度 M 小于延拓的周期 N 的时候:

当序列的长度 M 大于周期延拓的周期 N 的时候,会发生序列的重叠:


注意此时仍然以周期 N 进行延拓。
依据 M 与 N 的关系,周期延拓的方式也有所不同,具体总结如下:

主值序列:

例题:
题目:

求解过程:




对 x(n) 进行周期延拓,周期延拓后各点的值都可以转换为主值序列的值,周期延拓后的 n 具体对应主值序列中的哪个点可以通过除余的方法来进行判断,除余指的是一个数除以另一个数后取结果中的余数,舍弃整数,如 5 / 3 = 1…2,则 5 % 3 = 2.

DFT 和 IDFT
两个公式的推导过程很容易理解,建议看看,有助于公式记忆及后续理论的理解与应用。
DFT 公式的来源

IDFT 公式来源

DFT 和 IDFT 的公式如下:

实际上,根据后面会介绍的频域采样定理的知识,DFT 在频域的采样值为 N 时,时域的序列长度不会超过 N,一般就为 N(同时要记住 DFT 变换的时域序列和频域序列都是非周期且离散的)。因此,上述 DFT 的公式应该写为
写成这样的形式有利于推导后续共轭对称性的结论,题目的最终结果最好也用周期延拓的形式来写。
公式中的 k 表示的是频域中的自变量,n 表示的是时域中的自变量。 DFT 是对频域信号的一个周期进行 N 点的采样的过程。
N 表示的是变换区间的长度,由于 DFT 是在频域的一个周期内进行的,因此,N 可以看作是在一个周期内采样的点数,点数不同,计算出来的 X(k) 的结果也不同,因此在进行 DFT 的时候,要说明清楚进行的是多少点的 DFT。
的含义如下图所示:

首先,预先定义了 ,这个符号又称为是旋转因子,将 2π 等分为了 N 份,2π 就是单位圆的一周(也是一个周期),因此每个点之间间隔了角度 。
例题 1

例题 2



的傅里叶变换转换为图中 的形式需要利用到两个公式,一个是 的 z 变换公式,一个是积化和差公式,具体转换过程见折叠框:
具体的推导过程
的 z 变换公式

和差化积公式


我算出来的结果中,指数部分与老师的相差一个负号,不知道为什么,如果发现有哪里错误欢迎在下方评论区指正。
在有了上述 的公式后,实际上也可以直接计算各个点的值,将 ω 的值代入即可求解。如果计算的是 4 点的 DFT ,那么相当于是 2π 被均分为了 4 份,ω 就分别为 0,π/2,π3/2,2π。将这四个值代入 中即可计算出 4 点 DFT 。


DFS 的简单介绍

图中的 表示的就是 x(n) 的 DFS,它是一个离散周期序列(时域和频域都是),而 DFT 可以看作是 DFS 的一个周期,即是 DFS 的主值序列。
DFS 和 DFT 的公式分别如下:

例题:


旋转因子 的特性


从上图中可以发现,旋转因子在单位圆的上半部分和下半部分是共轭对称的。


题目中如何判断何时采用傅里叶级数和傅里叶变换:

也就是说,看给出的时域信号是否是周期信号来判断采用何种傅里叶变换。
DFT 的性质及相关运算
假如序列的长度大于要做的 DFT 的点数,那么直接将序列截断即可。比如对 做 2 点 DFT ,直接将 截断为 {1, 1} 的序列进行计算。
DFT 的线性性质及相关运算

DFT 的线性性质的公式与过去所学的其他变换的线性是一致的,但需要注意的是,DFT 的线性还需要考虑到每个序列的长度,在对两个序列的采用线性性质时,需要取两个序列中长度最大的一个。如果序列长度不够,那么就补零。
例题:


DFT 的循环移位性质及相关运算

例题

第一小题:

第二小题:


第三小题:


时域循环移位性质:



证明过程


上述红框部分求和项的项数可以变为从零开始的原因是 是以 N 为周期的,因此 从 m 到 N-1+m 与 从 0 到 N-1 都是一个周期,求和的值是一样的。
频域的循环移位性质:

这部分课件中写的有问题,修正后的表达如下:

原 ppt 内容

每弄明白第一句是什么意思ᓚᘏᗢ 。
上图的最后一个公式写错了,频域的循环位移相当于是在时域的相移,因此相移的变量应该与时域的自变量相同。
也就是说,如果时域的自变量为 n ,那么相移就 ,x(n) 表明时域自变量就是 n。
DFT 的循环卷积定理及相关运算
在写这部分笔记时,我突然间又开始思考起有关卷积的问题?
卷积这个概念从高数开始第一次提起;在信号与系统中又被定义,用于计算输出响应;图像处理中也需要用到卷积,图像的每个像素都如果要进行增亮、变暗等操作时要通过卷积核从图像上一个个像素扫描处理;如今在数字信号处理中又被提起…
卷积真的是一个很神奇的运算,却抽象到让人不想接触,回顾过去所学的有关卷积的场合,计算响应、图像处理,卷积似乎就是一个给输入信号加上滤镜的盒子。
假如我们有一个信号,通过和系统函数卷积,我们能够得到我们想要的输出信号;假如我们有一张照片,通过卷积,我们能够对照片进行处理。
卷积就是一个信号与另一个信号相互作用的过程(移位相乘再求和),这个就是卷积的关键。而我们需要做的,就是研究这个叠加中的规律,让卷积为我们所用,也就是说,通过设计卷积的信号或者卷积核,我们要实现在未真正得到输出的情况下,输入一个信号就能够得到我们想要的输出。无论是过去的所学的输入响应与系统函数卷积,还是后面的滤波器,所做的事不过都是如此。
卷积的定义很简单,无论怎么变,万变不离其宗,都是
因为它反映了一个信号与另一个信号相互作用的本质,即相乘求和,类似于是加权求和的过程。
过去的时候我就常常在想,既然卷积是一个信号与另一个信号相互作用,为什么卷积操作不能够是下面这种形式呢?
直接将两个信号相乘不好吗,还要让一个信号先反褶,然后再相乘,这不是增加了复杂度吗🤔,但学到后面我才猛然知道,自然界中的所有信号都是因果的。信号进入一个系统中,是先从 t=0 时刻的信号开始进入,然后才是 t>0 的信号,系统中用于叠加的信号也是从 t=0 开始产生的,因此应该让先产生的信号先被处理,这就是反褶的意义所在,它是为了保证输出的因果性。
好了,言归正传,为了要理解循环卷积,我们首先需要区分清楚 什么是线性卷积,什么是循环卷积?
线性卷积和循环卷积其实在公式上是十分相像的,只不过前者的公式写成是无限求和的形式,后者写成是有限求和的形式。
连续信号线性卷积的公式如下:
离散信号线性卷积的公式如下:
循环卷积的公式如下:
线性卷积适合用于处理信号长度为无限的情况,虽然如此,但对于长度有限的信号,它同样可以表现的很好,因为有限长度的信号可以通过补零扩展为无限长度的信号。如果一个有限的离散信号是从序号 0 处(x[0] 处)开始计的,一直持续到 N,此时,线性卷积的公式为
可以看到,这个线性卷积的形式似乎与循环卷积没有什么不同,只不过是 h(n) 的序列不同而已,我们过去所接触到的卷积运算基本上都是线性卷积。
既然线性卷积可以很好的计算输出信号,那为什么还要引入循环卷积呢?
对于一个有限序列,我们可以将其看作是一个周期序列的主值序列。同样地,在 DFT 中,我们可以人为地将有限信号(包括 x(n) 和 h(n))的主值序列扩展为周期为 N 的序列,在信号成为周期序列后,它就成了无限信号。
那么你可能很快就会想到,既然是无限信号,那么直接进行线性卷积不就好了吗?别急。你应该这么想,对于一个周期的无限信号,如果你进行了线性卷积,那么结果就是无穷多项的序列,而我们之所以采用 DFT ,就是因为它的结果是有限项的,这样方便在计算机中进行储存和处理,如果有限的信号给你一整,又变成了无限的,那真的,前面啥都白做了😅 。
而你可能又会想,那么就干脆保持原来的有限项进行线性卷积就好了,这个也先别急。
因此,我们应该想的是,对于周期化后的序列,如何在卷积后依然是有限项。为了做到这一点,就引入了循环卷积。如果我们观察周期序列卷积的结果,会发现周期序列卷积后的序列依然是一个周期序列,那么也就意味着,卷积后的序列仍然可以通过主值序列来进行表示,这个主值序列的选取范围依然是从 0 开始的。
由于是周期序列,将 h(n) 反褶移动的过程,其实就相当于是在 [0, M] 的固定区间范围内序列循环移位的过程。因此,循环卷积的过程在一般情况下就与线性卷积的一致,且最终的结果是一个有限的序列。

对于一个非周期无限信号而言,当然是采用线性卷积,但是对于一个周期信号而言,我们需要做的是进行循环卷积。
现在来解答为什么不使用原来的有限项进行计算。因为 DFT 在计算机中有更加快速的算法 FFT ,能够在短时间内迅速计算出卷积的结果。
那么,循环卷积和线性卷积的结果是否就是一样的呢?
只有在特定的条件下,他们的结果才会是一样的。循环卷积与线性卷积还有一个不同在于,循环卷积是需要提前确定好点数的,比如进行 4 点卷积,或是进行 12 点卷积。
在前面提到过,循环卷积是在一个固定的区间长度 L 中进行的,这也就意味着,进行循环卷积的两个信号都需要被截取为这个固定的区间长度,最终的结果里序列的长度也会是选取的区间的长度。线性卷积的结果序列长度为 M+N-1,因为要计算 M+N-1 次,而循环卷积只需要进行 L 次。
举个例子来理解上面的叙述。比如,x(n) 的长度为 4 ,h(n) 的长度为 5, 如果进行的是 3 点的循环卷积,那么他们就都要被截取为 3 点的序列,且是从零点开始,往右取的 3 个点,最终卷积的计算结果也会是长度为 3 的序列。如果进行的是 6 点的循环卷积,那么他们的原来的长度显然不够,就需要向右补零(补零后的序列再进行周期化,而不是直接通过周期化让序列达到区间的长度),最终的结果也会是长度为 6 的序列。
总之,在进行循环卷积的时候,循环卷积的两个序列长度肯定是一样的,且都为循环卷积的点数。
如果循环卷积的点数 L > 线性卷积序列的长度 M+N-1 的话,线性卷积与循环卷积的结果就是一致的,否则,线性卷积的结果与循环卷积不同。在实际应用中,常常利用循环卷积来计算线性卷积,因为循环卷积在计算机中计算效率更高。
下面贴上课程中的 ppt 作为补充:



如上图所示,循环卷积中 的存在就是为了在循环卷积的结果中取从零开始的主值序列。
循环卷积的计算方法:

还记得前面说的吗,卷积的过程就是两个信号移位相乘再求和的过程(先移位,再相乘,再求和;再移位,再相乘,再求和…),因此可以通过
循环卷积的计算方法就是将第一个信号 原封不动的转置成列的形式,而 也要转置成列的形式写入循环卷积矩阵中,只不过每一列都是前一列循环一位后的值,通过看下面几个例题就明白了。
例题一:




通过上面例题的结果可以看出,循环卷积矩阵的每一列都相当于左边一列向下循环移位了一位,这样比较容易记忆。
考试中的实用解法:
先进行线性卷积,然后再将线性卷积的结果转换为循环卷积,emmm,过程好像与实际应用中相反🤔。

如果线性卷积后序列的长度比循环卷积要求的序列长度长:

如果线性卷积后序列的长度比循环卷积要求的序列长度短:

如果考试中提供的序列并不是从零开始的:

【补充】DFT 的帕斯瓦尔定理
对于 DFT 而言,设有一个长度为 N 的离散信号 x[n] ,其离散傅里叶变换为 X[k] 。帕斯瓦尔定理可以表示为:
其中:
- x[n] 是时域信号的第 n 个采样值。
- X[k] 是对应的离散傅里叶系数,表示信号在频域中的第 k 个分量。
复共轭的 DFT 和 DFT 的共轭对称性
DFT 和 IDFT 的公式回顾



复共轭 DFT 的规律

DFT 共轭对称性质的推导(比较容易理解,建议看看)

例题:

DFT 的共轭对称性

实序列性质共轭对称性质的推导:

例题:

频率采样定理

只有频域采样点数大于序列的长度时候,才可以将序列从频率域中恢复出来。
关于时域采样和频域采样,整体的过程其实是这样的:
首先时域和频域信号都是连续的非周期信号,当对时域进行采样(时域离散化)时,频域会周期化,也就是频域会进行周期延拓,当对频域进行采样(频域离散化)的时候,时域会发生周期延拓。
在进行时域采样时,为了避免频域的周期延拓产生重叠,于是有了奈奎斯特采样定律的约束,当时域采样周期为 时,频域的延拓周期为 ,要保证频域的延拓周期大于采样前信号在频域的最大值 ,如果是频域是单边谱(只有正半轴部分),那么 ,如果是双边谱,那么 ;
不明白为什么时域采样频域会发生延拓的请看这 👇🏾

有关周期信号傅里叶变换的更多内容参见 『 信号与系统相关内容 』。
在进行频域采样时,为了避免时域的周期延拓产生重叠,需要确保频域的采样点数 ,因为时域信号是以频域采样点数 N 为周期进行延拓的,这就是频域的采样定理。

频域采样定理的推导(感兴趣的可以看看)


例题一:

上面这一题中,X(k) 是 x(n) 经过傅里叶变换及 8 点的频率采样后得到的一个频域信号,由于 x(n) 是长度为 9 的序列,如果进行 8 点的频率采样,那么相当于是对时域信号 x(n) 进行以 8 为周期的周期延拓,现在要求 X(k) 的 8 点 IDFT 的序列,意思就是求周期延拓后的 x(n) 的 8 点主值序列。
此时问题就转换为了前面求周期延拓序列了。
FFT 算法
之前学习了那么多 DFT 其实都是在为 FFT 这尊大佛做铺垫,FFT 这个天才的算法大大地加速了离散傅里叶变换的计算速度,同时也使得卷积的计算效率大大提高,如前面提到过的图像处理、输入响应的求解等等,因为线性卷积是可以通过循环卷积计算出来的,而循环卷积是可以通过 DFT 算出来的。
时域抽取的基 2 FFT 算法
之所以称为是基 2 是因为做 FFT 变换的序列中元素的个数都是 ,以 2 为底,如果序列长度不满足要求可以通过补零实现。
要弄清楚 FFT 算法的原理,首先需要知道旋转因子的三个性质:
旋转因子的三个性质:
来源于陈后金老师的课件

FFT 的公式是基于上面的三个性质进行的, 要理解上面三个公式,只需要将 代入即可。
FFT 的几个特点:
在进一步介绍 FFT 的推导以及最终的流图之前,我们先需要知道 FFT 内部的一些特点。
这些特点在初学 FFT 时可能无法看懂,但是,当你在后面 FFT 的推导过程、计算过程中有不明白的点或是学完 FFT 再回来看时,会有更深的理解。
- 我们最初的离散序列 x[n] 都是时域的, 因此在 FFT 中,第一级都是先计算 DFT,即将时域的 x[n] 转换为频域的中间值序列(之所以是中间值是因为它不是最终的结果),后面的几级都是频域间的相互转换;
- FFT 运算每一级做的都是奇偶序列间的 2 点 DFT。在 FFT 中,是通过不断的取奇偶序列进行 2 点 DFT 来实现 4 点以及 8 点或更多点数的 DFT 运算的。
- 序列中的奇和偶是相对于位置而言的,而非看 x[n] 中 n 是奇的还是偶的。
FFT 的推导过程:
来源于陈后金老师的课件 
来源于陈后金老师的课件 
来源于陈后金老师的课件 

来源于陈后金老师的课件 


来源于陈后金老师的课件 
来源于陈后金老师的课件 



输入顺序、输出倒序 
输入倒序、输出顺序
首先,需要假定输入的序列长度 ,对于输入序列不是这个长度的序列,可以通过补 0 使序列的长度满足条件。
第一步是将 DFT 拆解为奇序列的 DFT 和偶序列的 DFT 。下面的过程看起来很复杂,其实很好懂,耐心看完就能理解。


图中 相当于是 。通过上面的方式,就将长度为 N 的 DFT 拆分为了两半。前半部分和后半部分只有奇序列系数的符号是不一样的(一个为正一个为负)。
可以通过矩阵或是蝶形图的方式来表达上面两个公式(这样显得更简洁):

矩阵主要是在能够清晰的看出公式中所蕴含的对称性,这种对称性在后面的 FFT 流图中也能看出来,是 FFT 美的一种体现。
图中的矩阵 可以理解为蝶形图中输入的两项交叉相加减的过程,矩阵与蝶形图的对应关系可以通过下图来理解:

需要注意的是,上面的式子中无论是输入还是输出都是频域的值,并没有体现时域向频域转换的过程,因此还需要加入时域序列转换为频域序列的表示,如下图所示:


上图是左图公式的推导过程,实际上就是普通的 2 点 DFT 运算。
从矩阵形式中,我们又见到了和前面矩阵形式中相同的部分 ,这其实就是 FFT 中对称性的一种体现。在后续的时域信号转换为频域信号的过程中,都是利用了上面的公式进行转换,虽然转换的过程中输入不一定是 x[0] 和 x[1] ,但实际上是一样的,要学会灵活变通。
有了上面的两组公式后,我们就可以进行 FFT 流图的绘制了,首先尝试进行简单的 4 点 FFT 的绘制。
下面绘制 FFT 流图的过程,都是按照从右往左逆推的顺序进行的,这有利于我们更清晰的了解 FFT 的架构。
下面进行 4 点 FFT 变换流图的绘制,第一步,绘制输出的 2 点 DFT 变换:

从图中可以看出,最终的结果都是通过偶序列的 DFT 、 和奇序列的 DFT 、 来表示的,这符合上图中左上角黑色的公式。
但要想要得到绿色部分的偶序列的值和橙色部分的奇序列的值就需要先通过前一步的 点的 DFT 变换,这一步的 DFT 变换其实与最后这一步的变换是相同的,要将 看作是最后结果中的 ,将 看作是最后结果中的 ,将他们都拆分为 2 点的 DFT 以得到结果。
由于在这里进行的是 4 点的 FFT 变换(N = 4),因此这里的 点 DFT 恰好就是 2 点的 DFT ,这一级其实是 FFT 变换的第一级(m=1),是将 x[n] 时域序列转换为频域序列的一级。内部的具体变换过程如下图橙线部分所示:

之所以是 x[0] 与 x[2] 进行 2 点 DFT,x[1] 与 x[3] 进行 2 点 DFT ,是因为需要先将时域序列中的偶数项和奇数项分开排列。
对哪两个输入做 2 点的 DFT 变换,那么这两个输入就分别替换下面的 x[0] 与 x[1]。

下面进行 8 点 FFT 流图的绘制:
首先也是绘制输出的 2 点 DFT:

然后对图中红框部分的 4 点 DFT 进行扩展:

上图的过程其实就是将 看作是最后结果中的 , 看作是最后结果中的 ,对奇序列值 与偶序列值 [0] 做 2 点 DFT 变换即可计算他们的值,其中奇序列值 与偶序列值 [0] 是我们假设存在的一组奇偶变量,将 看作是最后结果中的 ,其他的点也是一样。这样, ~ 以及 ~ 的值就可以通过这些中间量计算出来了。
那么这些中间量怎么求呢,他们的求解需要利用前一级的 2 点 DFT 来求,在这里前一级已经是时域分量了,因此这一级进行的是时域的 DFT 变换。
在上图中,一定不要忘记轴线上的权重值 ,这个值的选取与需要进行的 DFT 的点数有关。
在上图中最具疑惑点的地方就是这些时域输入位置了,刚开始我也没弄清,在进行了大量的搜索后,我明白了。不能被 x[n] 括号中的 n 给迷惑了。对于这些位置的排列,我们需要先将时域序列中的偶数项和奇数项先分开,看偶数项中和奇数项内部是否各自能够凑成一对(即偶数项是否刚好是两个,奇数项也刚好是两个),如果偶数项中刚好能够凑成一对,那么就是这两个进行 2 点 DFT ,如果他们不能凑成一对,就需要对它们进行位置标号,然后根据位置的奇偶再进行拆分,看是否能凑一对。如下图所示:

于是最终就是 x[0] 与 x[4] 一起进行 2 点 DFT 转换为 和 ,其他同理。
这就是上面 FFT 中输入序号那样的原因。当然,未来在进行排序的时候,并不需要像上图一样复杂的推一遍,而是有更加快速的方法,这里我介绍两种方法:
① 倒序算法;
这个方法是先将所有的输入标上位置标号(比如 x[0] 标号是 0,x[1] 标号是 1),然后将这些位置标号用二进制写出来。将二进制数中的最高有效位作为最低位,而最低有效位作为最高位,每次都在最高位加 1 ,进位进在次高来得到下一个数的序号。
比如我们要进行 8 点的 FFT,那么第一个序号为 000(这个不管几点的 FFT 都是默认的),第二个序号为 100,第三个序号为 010(最高位加 1 后次高位进 1),第四个序号为 110…
② 对称法;
本质上与倒序算法是一样的,这种方法需要先找到二进制数的中心轴,奇数个二进制数的中心轴为最中间的数,偶数个则为两边二进制数相同的点,然后(以 8 点 FFT 为例)按照 000、001、010、011、100… 的顺序从大到小写出二进制数,最后以中心轴为对称轴翻转,如下图所示:

上面介绍的均是输入倒序、输出顺序的 FFT ,当然也可以输入顺序、输出倒序,不过就是将输入的顺序调一调而已。最终转换出来的 FFT 图与前面的类似(这里以 4 点 FFT 为例):


可以看到,输入顺序、输出倒序的 FFT 是先进行 4 点的伪 DFT(之所以是伪 DFT 是因为输入的两个权重都是 ,如果是 4 点 FFT 应该一个是 一个是 ) ,然后再进行 2 点的 DFT,要注意的是权重的位置需要变化。
频域抽取的基 2 FFT 算法
频域抽取的基 2 与时域抽取的 FFT 本质上是一样的,只是推导的过程不同而已,最终也可以用相似的蝶形图来表示。
在介绍时域抽取的 FFT 算法时,我们是先将时域序列拆分为奇序列和偶序列,然后推导出时域奇偶序列的 DFT 与频域 X[k] 之间的关系;
频域抽取的 FFT 算法与时域类似,与时域不同的是频域抽取的 FFT 会先将频域序列拆分为奇项和偶项,然后推导出频域的奇项、偶项与时域序列之间的关系。
它们其实是非常类似的,下面对频域的 FFT 算法进行推导,推导的过程中仍会用到时域中旋转因子的三个性质:

首先将频域的序列进行拆分,目的是为了将频域的 X[m] 值通过频域的奇偶项 X[2m] 和 X[2m+1] 来进行表示,下面公式的推导其实不难,但很容易把人劝退,其实只要耐下心来一步一步看很容易就理解了。

在图中绿色箭头所示的变换过程中,右侧的旋转因子经历了 的过程。

经过上面的推导后,我们成功实现了我们的目的——将频域的序列拆分为奇项和偶项的形式,并通过时域序列表示出来。
为什么说 和 就是时域序列呢?不是因为它们的序列是用小写的字母 x 来表示的,而是因为 这样的形式与时域序列做 DFT 变换()的形式是一样的,因此可以将 和 都看作是时域序列,即便它们只是中间量,并非实际存在。
当我们要求频域偶序列的值,比如 , 的时候,我们需要先求出 的值;当要求频域奇序列的值,比如 和 的时候,我们需要先求出 的值。如果我们将 m = 0 时频域的值(即 和 )归为一组,那么由 和 得到 和 的过程与时域 FFT 中的 2 点 DFT 的过程类似。
这种类似的关系可以通过矩阵来快速的理解,在时域抽取的基 2 FFT 中,每个 2 点 DFT 的矩阵表示为:

而在频域抽取的基 2 FFT 中,每个 2 点的 DFT 矩阵表示为:

是不是很像,不过要注意含 W 的矩阵位置不同,这也是为什么在频域抽取的基 2 FFT 中是要先交叉加减再乘以 W,而在时域中要先乘以 W 再交叉加减。这也是将公式化为矩阵形式的好处。
4 点的 FFT 过程如下图所示:


输出端 和 的两个权重是 。蝶形图的具体推导过程不用记忆,但是最终的蝶形图的规律是需要记住的,我们只用知道根据上面的公式,可以推出上面这副美丽的蝶形图就可以了。
输入顺序、输出倒序的频域抽取 FFT 与时域抽取的 FFT 形式上一样,但权重 的位置以及权重的指数 m 不同,需要注意,可以对比着记忆。
时域抽取的基 2 FFT 输入倒序、输出顺序的蝶形图是由公式直接推导出来的,输入倒序、输出顺序的蝶形图是它的变式;
同样地,频域抽取的基 2 FFT 输入顺序、输出倒序的蝶形图是由公式直接推导出来的,输入倒序、输出顺序的蝶形图是它的变式。
可以依据上面的两个特点来记忆权重 ,只要记住了由公式直接推导出来的蝶形图的形式,它的变式也就容易记忆了。
无论是频域抽取还是时域抽取,输入如果是顺序的,那么从左往右点数就是由高到低的;输入如果是倒序的,那么点数就是由低往高的。
FFT 蝶形图分析
假设 表示第 m 级的蝶距, 表示第 m 级的蝶形组数, 表示蝶形结构的 W 因子,则在 m 不同时,蝶距和蝶形组数的数量如下:

表示的是每一级蝶形运算的数量,如图所示,在 N 确定时,每一级蝶形运算的数量是固定的,为 。
FFT 的高效性和运算量分析

如上图所示,如果计算机直接使用 DFT 进行求解,随着输入点数的增加,计算复杂度就会呈指数级增长,而如果使用 FFT ,wow,这样对比起来是不是 FFT 的计算复杂度大大降低了。
DFT 运算量分析

我们先看 DFT 的计算量 。在左图中,进行的是 4 点 DFT 的运算,可以看到加法的计算次数为 4*3 = 12 次,乘法的计算次数为 4*4 = 16 次,总共需要 28 次运算。
类似地,如果序列的长度为 N,则它的 DFT 复数乘法 和 复数加法 计算量如下:

由于每个复数加法包含两次实数加法,每个复数乘法包含四次实数乘法和两次实数加法(实部的加法和虚部的加法),因此 DFT 实数加法 和 实数乘法 的计算量为:

FFT 运算量分析
FFT 每一级的蝶形数量都是 个,一共有 级(比如 8 点 FFT 就是 级),因此 N 点 FFT 的蝶形总数为 个,由于每个蝶形包含 2 次复数加法和 1 次复数乘法,因此 FFT 的复数加法运算量为:
FFT 复数乘法的运算量为:
如果需要求实数加法个数和实数乘法个数,和 DFT 一样,每个复数加法包含 2 次实数加法,每个复数乘法包含 2 次实数加法和 4 次实数乘法。
因此, FFT 的实数加法的运算量为:
FFT 实数乘法的运算量为:
系统框图和信号流图(第五章)
📝 Class Notes
这一部分的内容之前有学过信号与系统的同学应该会比较熟悉,但我想应该有些人是没有学过的,因此在这一部分会介绍一下梅森公式。老师在视频中所讲的方法与梅森公式其实本质上是一样的,但梅森公式毕竟是一个总结性的规律,具有普适性,而且只是看起来很复杂,其实并不难,因此鼓起勇气学好梅森公式是必要的。
系统框图的介绍
实际生活中的系统都是通过一个模块一个模块构建起来的,因此使用系统框图来描述系统更加直观,我们可以将系统函数通过系统框图的方式表示出来,进而搭建出实际的电路。


上面两幅图都是对系统框图中一些常用符号的描述,左侧是数字信号处理中的框图样式,右侧是信号与系统中的框图样式,本质上是一样的。
具体如何根据系统函数画出系统框图在后面会介绍。
信号流图
在 z 域中,由于系统框图中各个部件的作用之间不是相乘就是相加,即要么乘上一个系数 a,乘上延时 , 或是更高阶的项, 要么将不同的线通过加法器求和。
因此,为了简便地描述框图的结构,引入信号流图。

信号流图与框图相比,作出的变化有两点:
- 将所有的相乘都通过线上加箭头的形式表示,系数就写在箭头上方;
- 将所有相加的项都汇集到到一个点,即将需要相加的线都交为一点。
比如一个系统函数的系统框图为下面的形式:

如果将其转换为信号流图,则可以得出下面的形式:

可以看到,所有的加法器在信号流图中都变成了一个点,所有的延时器和乘法器都变成了线上的系数。
【补充】梅森公式
梅森公式是以信号流图为基础进行运算的,但是当你对梅森公式熟悉后,其实并不一定要将系统框图都转换为信号流图进行表示,很多时候看一眼就能够看出来。
由于梅森公式是一个经验性的公式,因此会有很多符号上的表示,需要先对梅森公式中涉及到的符号有所了解,下面通过这张信号流图对概念进行解释:

结点:
上图中的每个红点都表示一个节点,如 , 。
回路 L:
梅森公式使用符号 L 来表示回路,即 Loop;回路符号 L 加下标表示不同的回路,如 , , 等等,分别表示第一个回路,第 p 个回路,第 m 个回路,具体哪个回路是回路 1 是我们自己确定的,总之每个回路都会有一个名称。回路是闭合的,一圈一圈的。
但是,需要非常注意的是,回路中的每条线箭头方向要是首尾相接的,即从一个点出发,沿着箭头方向走最终能够回到起点才能算是一个回路。 比如,我们可以定义 回路为 ;但是我们无法定义 为 回路,因为它们的箭头方向冲突了。
前向通路:
通路与回路不同,是非闭合的,从信号输入的起点(F(z))出发一直到信号输出的终点 Y(z) 为止。比如 就是一条通路。
两两不接触回路:
顾名思义,就是两个回路间没有重合的部分,不仅是线不能重合,点也是不能重合的。
举个例子,如果上图中 回路的箭头方向没有冲突,那么回路 和回路 就可以称为两两不接触回路,即便它们在 处相交。
增益():
表示的就是线上的权值,可以与前面的术语结合表示总的增益,比如回路增益,表示的就是回路中每条线上的权值相乘, 回路的增益为 ;两两不接触回路的增益就是 ;前向通路增益也是同理。
在表示增益的时候,回路增益可以直接使用回路的名称来作为该回路增益的符号,比如回路 1 的增益为 ;
前向通路的增益使用符号 表示, 则是第 i 条前向通路的增益。
特征行列式():
这个是所有概念中看起来最复杂的一个,很多人觉得梅森公式难就是因为觉得这个公式复杂,但只要细看其实很好理解。虽然叫做行列式,但我并没有看出它和线性代数中的行列式有什么关系,可能是因为推导的时候有涉及,不过这也只是一个名称而已,叫什么不重要,能用就行。
特征行列式使用符号 来表示,你不需要了解它是如何来的,只需要记住它的公式即可:
其中, 表示的就是所有回路的增益之和;
表示的就是所有两两不接触回路的增益乘积之和,这个要怎么理解呢?假设我们有三个互补相交的回路 , 和 ,那么就是 ,其实就是排列组合问题(三个中任取两个);
也是同理,是所有三三不接触回路的增益乘积之和,所谓三三不接触回路,就是取三个回路,三个回路间都不会相互接触(指的是没有线的重合),不过这个一般在题目中不会出现。
因此掌握前面两个就行,也就是说,记住公式
即可。
剩余特征行列式():
剩余特征行列式其实就是给特征行列式加上了一个条件而已,与特征行列式的计算公式本质上一致。
使用符号 表示,增加的条件是消除第 i 个前向通路,它的值为消除第 i 个前向通路后,信号流图中剩余部分的特征行列式。
以 这条前向同路为例,令它为前向通路 1,则 表示的就是消去前向通路 1 后剩余部分的特征行列式,由于去除前向通路 1 后,信号六途中没有回路存在,因此 。千万不要忘记了特征行列式中 “1” 的存在。
理解完上面几个概念后就可以介绍梅森公式了,梅森公式很简洁,写为
下面以一道例题来熟悉梅森公式的应用:

可以看到,图中共有 3 个回路,其中回路 1 与回路 2 和 回路 3 都是两两不接触回路。
得到回路增益后,就可以利用回路增益计算出特征行列式以及系统函数了:

【补充】系统函数 → 信号流图
现在我们已经掌握了通过信号流图计算梅森公式得到系统函数,那么反过来,如何通过系统函数快速的画出信号流图呢?
构造信号流图时,需要根据公式 进行,且遵守以下两个原则:
- 信号流图中没有单回路存在(即不存在两两不接触回路),这是为了保证系统中的特征行列式 为 的形式,便于我们画图;
- 前向通路与所有回路都接触,这样就保证了剩余特征行列式 始终为 1。(因为前向通路取走以后,就不会再有回路存在了)
构造的步骤如下:
- 将系统函数分式的分母化为特征行列式的形式,即化为 的形式;
- 依据系统函数画图(画图时注意将分子中每个相加的项都看作是一条前向通路增益,分母中的减数 中的每一项看作是一个回路)。
以下面的例题来进行理解:
图片来源于信号与系统郭宝龙的课件。 
图片来源于信号与系统郭宝龙的课件。
下面的这道例题是对拉普拉斯变换后的系统函数进行流图的转换,其实与 z 变换是一样的,将下面系统函数中的 s 都看作是 z 就行。

可以看到,题目中给出的系统函数中分母并不满足 的形式,因此需要先对其进行转换。

系统的模拟
学会了梅森公式后,我们可以很容易地将信号流图 → 系统函数,或是将系统函数 → 信号流图。
在将系统函数转换为信号流图的时候,依据拆分形式的不同,可以分为两种类型——级联型和并联型。(其中级联型可以理解为电路系统中的串联)
通过下面的例题可以很好的理解这一点:


滤波器设计(第六章)
这个部分主要介绍巴特沃夫滤波器(考点),其他滤波器感兴趣的可以自己看相关书籍。
滤波器的类型主要有低通滤波器、高通滤波器、带通滤波器和带阻滤波器。而后面三种滤波器的设计都可以通过低通滤波器来实现,因此只要将原型低通滤波器设计出来,想要实现其他形式的滤波器是可行的。
模拟低通滤波器的几个参数

通带截止频率()和阻带截止频率()是指最大增益下降了一定分贝数时所对应的频率(具体下降多少算是达到了截止频率需要根据实际问题来判断),达到通带截止频率时下降的增益分贝数称为是通带衰减(,通过图中的公式进行计算),达到阻带截止频率时下降的增益分贝数称为是阻带衰减(,通过图中的公式进行计算),这两个衰减一般在题目中会提前给出。
频率小于通带截止频率的部分曲线称为是通带,频率高于阻带截止频率的部分曲线称为是阻带,频率位于通带截止频率与阻带截止频率之间的部分曲线称为是过渡带。
在通带截止频率和阻带截止频率之间还存在一个 3 dB 截止频率 ,指的是最大增益下降 3 dB 时所对应的频率。3 dB 又称为是半功率点,指的是功率衰减为原来的一半时增益的变化量(),3 dB 截止频率的值与通带截止频率一般不相同,但可以利用通带截止频率计算 3 dB 截止频率。
下面介绍常用的模拟低通滤波器——巴特沃兹滤波器的设计方法。
巴特沃兹滤波器的函数模型如下:

从公式中我们可以看到,只要有滤波器的截止频率 和 滤波器的阶数 n 两个参数,就能够设计出巴特沃兹滤波器。
如果要将增益 通过分贝来表示,需要通过这个公式转换 。
滤波器的阶数可以通过通带截止频率、通带衰减及阻带截止频率、阻带衰减这四个参量计算出来,听起来很复杂,但其实很容易掌握,只需要记住四个公式就行。
第一个公式:
第二个公式:
第三个公式:
上面是潘老师在网课中介绍的公式,但这个公式和我教材中的公式并不一致,我教材中的公式为:
大家可以看看自己教材中的定义,也许不同的教材中定义不一样,也许是老师写错了?
3 dB 截止频率 的计算公式:
上述公式的来源
上面的公式很容易能够推导出来,可以通过下面的例题来推导。
下面的例题需要利用到下面几个公式:



至于为什么要用 来替代 s ,我猜可能是因为表中的公式是在 的基础上得到的,因此需要在查表后做变量替换。
滤波器的阶数 N 与滤波器过滤特性的关系如下:

从图中可以看出,滤波器的阶数 N 越高,滤波器的滤波性能就越好,因为它越来越接近于理想滤波器,理想滤波器可以理解为是一个矩形脉冲函数。
低通滤波器的设计步骤
第一步,根据题目中提供的通带和阻带的相关参量计算滤波器的阶数 N;
第二步,根据计算出的阶数 N 查找表格中滤波器极点,写出滤波器系统函数的分母多项式,将其作为 的分母( 的分子为 1);
查找表
阶数为 N 时的所有极点在 z 变换域中的位置:

阶数为 N 时滤波器系统函数的分母多项式:

第三步,计算 3 dB 截止频率 ;
第四步,变量替换,令分母多项式中的 代入 得到 即为所求的滤波器的传输函数。
(第四步是离散频域→连续频域的转换,由于是模拟滤波器,因此需要使用拉普拉斯域来表示系统函数,s 在拉普拉斯域中的地位相当于 z 在 z 变换域中的地位,如果不清楚什么是拉普拉斯域,可以简单理解为是表示连续信号的频域变换,而 z 变换域是表示离散信号的频域变换。)
例题求解:





第一步,计算滤波器的阶数 N:

第二步,写出系统函数 :

第三步,求出 3 dB 截止频率 :

第四步,求出滤波器的传输函数 :

数字滤波器
引入


对于正弦信号而言,幅度随时间的变化可以通过点在单位圆上循环往复的运动来表示。如果是模拟角频率控制的信号,点在单位圆上的运动是连续的,产生的波形曲线就是连续的;如果是数字角频率控制的信号,点在单位圆上的运动是跳跃的,产生的波形曲线就是离散的。

那么,模拟角频率与数字角频率之间是什么关系呢?
对于模拟信号,我们有
当我们对模拟信号进行采样时,假设采样周期为 (即每隔 的时间间隔采样一个点),则相当于上述信号中连续的时间 t 变为了离散的 ,n 表示第几个采样的点:
由于 n 是自变量,相当于余弦函数中 是角频率,我们称这个角频率为数字角频率,于是我们就得到了数字角频率与模拟角频率之间的关系:
从上面的公式中,我们就能够看出,数字角频率是归一化频率。根据奈奎斯特采样频率,我们得知, ,这就意味着 的取值不会超过 π ,即被采样信号的最高频率是 π 。
数字低通滤波器和数字高通滤波器的图像如下图所示:


很多人可能会疑惑,为什么低通数字滤波器在高频段也有幅值,因为原信号在进行采样后,其频谱的最高频率不会超过 π,可以将 π~2π 范围的频谱看作是 -π~0 范围内的。

数字滤波器的分类

IIR 滤波器的全称是 Infinite Impulse Response 。 它的特点是分母中至少有一个 z 的系数 a 是不为 0 的。之所以称为是无限长脉冲响应数字滤波器是因为 后,它的长度是无限的,即 h[n] 有无穷多项。有无穷多项的原因是系统输入一个信号后,系统会产生反馈(前一个时刻的输出值),反馈值会继续作为输入输送到系统中,从而得到无穷多个输出。
FIR 滤波器的全称是 Finite Impulse Response 。它的特点是分母中所有 z 的系数 a 都为 0,也就是说只有分子项存在,这种形式的 在时域中是由有限项组成的。若系统中没有反馈支路,输入停止后输出也将停止,这种滤波器便称为是 FIR 滤波器。
IIR 滤波器和 FIR 滤波器设计方法
IIR 滤波器的设计
- 首先设计模拟滤波器 (借助模拟滤波器设计方法,如巴特沃兹滤波器设计方法);
- 其次将 系统函数转换为 ,转换的过程中可以采用脉冲响应不变法和双线性变换法。
和 都是用于描述系统函数的频响特性的,但区别如下:
- 前者用于连续系统,后者用于离散系统;
- 前者为拉普拉斯变换后的结果,后者为 z 变换后的结果。
脉冲响应不变法
在工程数学中我们学过如何将一个平面内的直线映射到另一个平面内的单位圆,就是令 中的 即可实现转换。
因此,对于一个含有多极点的系统函数 ,我们需要先将其拆分为多个单极点相加的形式,然后再将其中的 s 转换为 z,具体的步骤如下:

例题一



例题二
题目

解答

脉冲响应不变法的局限性
脉冲响应不变法:
1、由于脉冲响应不变法要求严格带限,故不能用于设计高通滤波器和带阻滤波器。
2、连续系统的系统函数 必须是能够部分分式分解,才能采用脉冲响应不变法转换成离散系统的系统函数 H(z)。
双线性变换法
由于脉冲响应不变法要求输入信号必须是严格的带限信号,即频谱的最大值必须小于 ,因此当信号并不满足这个条件时,会发生频谱混叠的现象,如下图所示:

如果要解决脉冲响应不变发带来的频谱混叠失真,需要增加阻带衰减指标。
为了应对这个问题,我们可以先将输入信号的频率控制在 (-π, π) 这个范围内,然后再进行变换,这样就可以避免频谱混叠问题的发生。 具体的操作步骤如下:

例题一


上面的 的公式好像有问题?之前介绍的时候 ,现在 变为了 .

例题二

例题三
例题三是我们测验中的一道题目。
题目:
某模拟低通滤波器的系统函数为 ,用脉冲响应不变法将其设计成数字低通滤波器(假设 T = 1),则数字低通滤波器的系统函数 _____;3 dB 截止频率 _______;模拟滤波器的截止频率 ______。
解答:
由于没有标准答案公布,答案未经验证,若有错漏,望指正🙏

高通滤波器的设计
采用双线性变换法,不采用脉冲响应不变法。
想要设计高通滤波器,可以先通过高通滤波器的指标设计出一个低通滤波器,再将低通滤波器转换为高通滤波器。
高通滤波器设计所需要的指标与低通滤波器的相同,均为通带截止频率、阻带截止频率、通带衰减和阻带衰减。具体的设计步骤如下:

下面的例题可以帮助我们很好的理解高通滤波器的设计:



通过上面的步骤,我们就完成了模拟低通滤波器到模拟高通滤波器的转换,但如果要将模拟高通滤波器转换为数字高通滤波器,则还需要进行 s → z 的转换步骤,具体公式如下:

在这里需要注意,公式中的 s → z 的变换公式并不是 ,而是在 前面乘上了一个频率压缩系数,这是因为前面在模拟低通滤波器转换为模拟高通滤波器的时候,由于是模拟量之间的转换,并没有进行预畸变处理,因此可以把这个压缩系数理解为一种修正,避免模拟高通滤波器转换为数字高通滤波器后出现预畸变。
当然,如果一开始就明确了要设计一个数字高通滤波器,那么可以先将模拟的低通滤波器转换数字低通滤波器(注意在这个过程中就需要进行预畸变的处理了),然后再将数字低通滤波器转换为数字高通滤波器,可以通过下面的例题来理解:



带通滤波器的设计
这一部分 ppt 将的听清楚的,就是记住几个公式就行。

在这里,如果要满足通带和阻带的几何中心频率会相等,那么 和 应该要小于 1, 和 应该要大于 1 。

设计步骤:

例题:





IIR 滤波器的结构框图
如果之前梅森公式掌握的比较好的友友,这一部分会比较简单,如果忘记了之前学过的梅森公式,可以会到前面 “第五章” 进行复习。
我们知道 IIR 滤波器的系统函数公式如下:
利用第五章介绍的 “系统函数 → 信号流图” 的两个原则和两个步骤,我们可以画出下面的图像:
两个原则和两个步骤
构造信号流图时,需要根据公式 进行,且遵守以下两个原则:
- 信号流图中没有单回路存在(即不存在两两不接触回路),这是为了保证系统中的特征行列式 为 的形式,便于我们画图;
- 前向通路与所有回路都接触,这样就保证了剩余特征行列式 始终为 1。(因为前向通路取走以后,就不会再有回路存在了)
构造的步骤如下:
- 将系统函数分式的分母化为特征行列式的形式,即化为 的形式;
- 依据系统函数画图(画图时注意将分子中每个相加的项都看作是一条前向通路增益,分母中的减数 中的每一项看作是一个回路)。

从图中,我们可以看到左半部分中间的箭头方向与右半部分中间的箭头方向是相反的,这是因为左半部分需要构成前向通路,右半部分需要构成闭合回路。
左半部分的任一条支路都可以作为是一条前向通路,而右半部分的每一个回路都与左半部分的任一条前向通路是重叠的,因此当去掉某一条前向通路(比如第 i 条)时,右半部分的剩余特征行列式为 1,于是 ,这样,当左半部分每一条支路以图中级联的形式连接起来时就能形成 H(z) 的分子。
从前面的 H(z) 公式中可以看到,为了通过系统函数画出信号流图,分母需要做上面公式中的变换,由 “” 转换为“”,这就是为什么图中使用负系数的原因。
上图的结构称为 IIR 滤波器的直接 Ⅰ 型结构。
当我们将图中的延时器合并后,就可以得到 IIR 滤波器的直接 Ⅱ 型结构:

例题一

例题二


例题三



FIR 滤波器的设计
FIR 滤波器的定义及性质



例题一

例题二




FIR 滤波器的频响定义及分类
频响定义:


如上图所示,由于 和 之间有着对应关系,因此后面在描述 FIR 滤波器的频响特性时均采用系统函数来进行。

FIR 分类:
关于 FIR 滤波器分类这点,弹幕区众说纷纭,有的说分为两类,有的说三类,也有的说四类。这只是不同的教材有不同的定义而已。
在老师的教材中,FIR 滤波器分为两类。分类方式如下:

但在我们学校的教材中,FIR 滤波器是分为四类的,其实就是根据 N 的奇偶将上面的两类分类细化了一下。
名称 | 对称性 | N 的奇偶 |
第一类 FIR 滤波器 | h[n] 偶对称 | N 为奇数 |
第二类 FIR 滤波器 | h[n] 偶对称 | N 为偶数 |
第三类 FIR 滤波器 | h[n] 奇对称 | N 为奇数 |
第四类 FIR 滤波器 | h[n] 奇对称 | N 为偶数 |
所以 FIR 具体是如何分类的,需要根据你们自己的教材来确定。
例题一

例题二

例题三


窗函数设计法实现 FIR 滤波器
使用窗函数设计法时需要记忆的几个公式:

例题



对于第三小问,当输入的信号是复指数信号的时候,输出信号相对于输入信号只有幅度和相位上发生了变化且输出幅度是输入信号的幅度与系统函数的幅度相乘,输出相位是输入信号的相位与系统函数的相位相加。『这个结论忘记了的友友可以 【Ctrl+F】 搜索 “系统函数的两种形式及频率响应函数”』
从输出的结果中我们可以看到,y(n) 的所有相位相对于输入信号 x(n) 都延迟了一个单位,延迟的大小与 τ 的大小是相同的,这就是为什么称 τ 为群时延的原因。
前面是已知时域中 h(n) 的值求幅频响应,在这种情况下,得到的幅频特性曲线的通带可能并不平坦,为了设计出通带范围内有较一致增益的滤波器(即 ),就需要介绍下面的情形(已知频域的值反推出时域序列):

Sa 函数的正逆傅里叶变换

图中的 Sa 函数在信号与系统中就已经接触过很多次了,在时域为矩形窗函数的时候,它的频谱函数就是 Sa 函数,在频域为矩形窗函数的时候,它的时域就是 Sa 函数。
Sa 函数的表达式为:
因此,对于未发生平移的 Sa 函数有 。
当 Sa 函数发生了群时延后,公式就变为了 ,也就得到了图中的式子。

由于 FIR 滤波器是有限脉冲响应滤波器,因此需要对时域的波形进行截断,这里使用理想的 函数进行截断,根据卷积定理,时域相乘相当于是频域的卷积,因此相当于是 卷积上了一个 Sa 函数,而 Sa 函数的频带是很宽的,因此会给 加上不理想的边沿特性,展宽其频域,增加通带、阻带的波纹。
除了低通滤波器之外,还有高通滤波器、带通滤波器和带阻滤波器,它们都可以通过低通滤波器来设计,公式如下:

由于这些滤波器都是通过低通滤波器设计出来的,因此都不可避免地会出现不理想的边沿特性。
为了应对上述低通滤波器的问题,学者们便研究出了各种各样的窗函数,如 汉宁窗,Blackman 窗等,它们的参数都是固定的,具体表达式如下:




南理工的友友们上面的 5 个窗函数时域和频域的公式都是需要背下来的,考试是默认我们都知道的,22 年 和 24 年都考了矩形窗的频域公式。
在设计窗函数时,最重要的两个参数就是阻带最小衰减 和过渡带宽度 ,不同的窗函数也会有固定不同的值,具体如下表所示。

加窗后的频响函数会不可避免的出现吉布斯现象(即矩形窗通带会固定出现最大波动误差,这个误差与窗函数长度无关)。
例题



关于 FIR 滤波器一个重要的结论

【补充】数字信号系统实现(滤波器结构框图及量化噪声)(第七章)
这个部分的内容潘老师并没有介绍,但我们学校的课程中有涉及,并且在考试中也会考到,请大家根据自己的需要阅读。
这个部分仅归纳一些个人认为考试会考到的知识点,详细地内容和推导参见南理工第七章 pdf。
量化噪声产生的原因
在计算机系统中,二进制数主要通过定点数和浮点数两种方式储存。
定点数运算结果可能会产生“溢出”,而浮点数的动态范围很大,一般不会出现“溢出”的现象。
在定点数做乘法运算时,其结果是原字长的两倍,因此需要对结果进行截尾处理或是舍入处理(课件中浮点数并没有讨论其误差的影响)。
截尾处理会产生截尾误差,舍入处理会产生舍入误差。
截尾误差和舍入误差
当使用 位字长(括号中的 “1” 表示小数点前面的符号位,如 1.0101…)的数字器件储存原字长为 位数的乘法运算结果时,会有两种截取方法。
第一种是直接将第 位之后的位截断,第二种是将 位加 1 ,然后将结果截取到第 b 位实现的。
课件中对截尾误差和舍入误差的大小做了讨论,最后得出结论,两种误差的均值不同,但是方差相同,均为 ,其中 ,称为是量化宽度。
课件中使用量化噪声(误差方差 )表示量化噪声功率,很明显,字长越长(b 越大),方差越小(量化噪声越小),信噪比()就越大。
还有一条比较重要的结论:字长增加,信噪比也会增加,字长每增加 1 位,信噪比就提高约 6 dB。
系统量化对零极点位置的影响
这个部分比较重要的一个概念:极点位置灵敏度—— 是指每个极点位置对各系数偏差的敏感程度。
结论:高阶直接型结构滤波器极点数目多而密集,低阶直接型滤波器极点数目少而稀疏, 因此高阶直接型滤波器的极点位置灵敏度要比低阶的高得多。
也就是说,系统函数的极点靠得越近,系统对量化的灵敏度越高。
数字滤波器的运算量化效应
这个部分主要是考察量化噪声模型图的绘制和噪声功率的计算。量化噪声模型图是在前面介绍的滤波器结构框图基础上加入量化噪声。
滤波器实现过程中,有乘系数、 相加和延迟运算。
- 延迟是延后一个采样周期取出,不造成字长变化;
- 乘系数运算会出现字长超长,所以需要作舍入或截尾处理;
- 相加运算,对于定点制来讲, 可能产生溢出。
我们主要需要注意第二点,也就是在绘制滤波器的量化噪声模型图时,对于出现乘法运算的部分,需要考虑到误差的存在。
这里所说的乘法运算是除信号流图中延时器相乘、乘 1 以外的乘法运算。
IIR 滤波器直接 Ⅰ 型量化噪声模型图如下:

上述的每个误差 的噪声功率都是 。也就是说,总的噪声功率的计算公式为: ,其中括号里的 “1” 表示的是图中的 。
所以,如果题目中要求我们求输入噪声功率,就是运用 的公式来求的。
课件中还讨论了直接型、级联型和并联型三种滤波器结构的误差大小,最后得出结论:直接型结构的输出误差最大, 级联型次之, 并联型最小。
FIR 滤波器量化误差噪声模型图如下:

FIR 滤波器的量化误差模型图与 IIR 滤波器的本质上是一样的,在非延时及非“1” 的乘法运算处加入噪声的考量即可。
那么,如何求解系统的输出噪声功率呢?


需要结合帕斯瓦尔定理来求。
我们知道,帕斯瓦尔定理的表述如下:
其中,等式左侧是时域的能量,等式右侧是频域的能量。
将噪声方差与时域或频域能量相乘,即可得到输出噪声功率。输出噪声功率的公式如下图所示:

对 IIR 滤波器而言,

对 FIR 滤波器而言,

滤波器结构框图
直接型:

级联型:

线性相位型:

快速卷积型:

频率采样型:

在最初学数字信号处理时,是学习的陈后金老师的网课,但当时并没有怎么学懂,因此笔记做的也并不是很好,潘老师课程的笔记做的会相对详细一点。
- 作者:df
- 链接:https://blog.xiaoyuezhou.top/learning/note-3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章



