icon
password
博客链接
Hide-in-Sharings
type
date
Pin
Hide-in-Web
网址
status
slug
summary
tags
category
bottom
Hide-in-Config
comment
(陈后金老师)课程笔记
预备知识
三角函数和差化积公式:

等比序列的求和公式:
q 为公比, 为首项。
离散信号的时域分析
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- 离散信号
- 序列类型
- 正弦信号的周期性
- 离散信号性质
- 不进位乘法 表格法
- 相关性运算
- 滑动平均序列
🔗 Relevant Information
📝 Class Notes
在离散信号的时域分析中,我们常常需要将复杂的信号分解为简单的基本信号,然后进行研究。因此研究基本信号的时域特性就显得非常的重要了。
离散信号与数字信号
产生:
① 对连续信号进行抽样;
② 信号本身就是离散的;
③ 由计算机产生的序列。
离散信号与数字信号:
离散信号指的是时间上(自变量)为离散的信号;
数字信号指的是幅度上(函数值)量化的离散信号。
基本信号的介绍
单位脉冲序列:

单位阶跃序列:

矩形序列:

指数序列:

正弦类序列
统称 虚指数信号、正弦信号和余弦信号 为 正弦类信号。

正弦类信号的周期性

由于虚指数信号的周期是 2π,因此只需要 就可以构成周期序列的条件。
从正余弦信号的角度来看,原来的信号为 ,经过 t = KT 的采样后,信号就会变成 ,也就是说,只要 k 前面的系数是 2π 的整数倍,即 ,那么信号就会是一个周期序列。
离散信号的基本性质
位移性质

抽取性质

离散信号的抽取性质其实类似于连续信号的缩放性质,但是前者会损失信号,造成失真。
内插性质

卷积性质

卷积的计算方法
序列 ,序列 ,求它们的卷积。
① 不进位乘法

② 表格法

相关运算


例题:
题目:

求解过程:



系统的分类
线性系统和非线性系统

时变和非时变系统

例题:
题目:

求解过程:



因果系统与非因果系统

稳定系统与非稳定系统

LTI 系统
LTI 系统的全称是 Linear Time Invariant System,即线性时不变系统。
对于线性时不变系统而言,其输入输出关系可以用于一个线性常系数(确定)的差分方程表示。


由于输出 y[k] = x[k] * h[k],由于离散信号卷积结果的序列起始点不会超过两个序列的起始点之和,当 h[k] = 0, k < 0 的时候,系统的输出 y[k] 不会早于 x[k] ,因此 h[k] = 0, k < 0 是离散 LTI 系统是因果系统的充分必要条件。
滑动平均系统
滑动平均系统的定义和介绍:
在数字信号处理(DSP)中,滑动平均系统(Moving Average System)是一种用于信号平滑和噪声抑制的滤波器。它通过计算输入信号在一个固定长度的窗口内的平均值来生成输出信号。
滑动平均系统的定义可以描述如下:
给定输入信号 ( x[n] ),滑动平均滤波器的输出 ( y[n] ) 是在长度为 N 的窗口内的输入信号的平均值。其数学表达式为:
其中:
- y[n] 是输出信号。
- x[n] 是输入信号。
- N 是滑动窗口的长度。
- k 是窗口内的索引。
这个公式表示对于每一个输出点 y[n],我们取输入信号 x 在当前时刻 n 及其前 N-1 个时刻的值,计算这些值的平均数。
滑动平均系统的描述:
滑动平均系统有多种描述方式,每种方式可能适用于不同的应用场景或强调不同的特性。
- 窗口长度描述:
- N 点滑动平均:这种方式直接描述了滑动窗口的总长度 N 。它简单直接,但不区分窗口左右的长度。例如,一个5点滑动平均滤波器可以表示为一个长度为5的窗口:
- 对称窗口描述:
- M + 1 + M 滑动平均:这种方式强调对称性,表示左右窗口长度均为 M 的对称滑动平均滤波器。例如,一个3 + 1 + 3点的对称滑动平均滤波器:
- 非对称窗口描述:
- 滑动平均:这种方式明确区分左侧和右侧窗口的长度。例如,一个2 + 1 + 3点的非对称滑动平均滤波器:
- 加权滑动平均:
- 在一些应用中,滑动平均可以使用不同的权重。这种方式称为加权滑动平均滤波器。权重可以根据应用需求进行设计,例如对最近的值赋予更高的权重。其公式为:
其中 w[k] 是权重函数。
- 累积移动平均(Cumulative Moving Average, CMA):
- 累积移动平均是一种特殊的滑动平均,计算从第一个数据点到当前数据点的所有值的平均。
其公式为:
- 指数移动平均(Exponential Moving Average, EMA):
- 指数移动平均赋予最近的值更大的权重,衰减较旧的值。
其公式为:
其中 是平滑因子。
注意: 的描述方式和 的描述方式都可以用于表示序列的长度,但前者可以进一步的表示左右序列的长度,后者在上下文明确时也可以用于表示左右序列的长度。
例题:
题目:

求解过程:


序列卷积和在工程上的应用

离散信号的频域分析
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- 傅里叶变换的五种形式
- 离散 ↔ 周期
- DFS IDFS 及它们的性质
- DFS → DTFT
- 频域抽样定理
- 频率响应
- 理想的数字滤波器(引入)
后面课程会详细介绍
🔗 Relevant Information
📝 Class Notes
在有了信号的时域分析后,为什么要还要引入信号的频域分析呢? 信号的频域分析可以让我们从另一个角度来观察信号,发现一些在时域系统中无法察觉到的现象。比如,在一段声音中混入了噪声的时候,将原声音和加入噪声后的声音的时域信号结合起来看,我们无法看出其中的差异;对于男生和女生的说话声音,我们可以听出其中的不同,可是观察它们声音的时域波形却无法得出什么实质性的结论。而在频域中,这些现象都可以很容易的被观察到。
傅里叶变换的五种变换形式

离散和周期之间的对偶关系
从五种变换形式的表格中也可以看出,除去 DFT 以外,时域的离散和周期与频域的离散和周期之间是有着对偶关系的。
时域(或频域)的离散信号 ↔ 频域(或时域)的周期信号,时域(或频域)的非周期信号 ↔ 频域(或时域)的连续信号
离散信号的 DFS 表示

图中所示即为 DFS 正逆变换的公式,由于是从 DTFT 中对频率进行采样得到的,因此会有 N 的出现,可以将 N 理解为 DFS 的周期,而 m 的范围是从 0 ~ (N - 1),表示的是将 DFS 信号的一个周期取出来,虽然图中写的是 DFS 的公式,其实这也就是 DFT 的公式。
DFS 的公式具有下面的这两个特点:

通常令 ,于是图中的公式就可以转换成
例题:
题目:

求解过程:
第一种解法:

第二种解法:

DFS 的性质
线性性质

移位性质



对称性质





周期卷积性质


例题:
题目:

求解过程:


离散信号的 DTFT 表示


DTFT 的性质
线性性质

对称性质

例题:
题目:

求解过程:

移位性质

卷积特性

帕斯瓦尔定理

微积分特性
若 x[n] = ng[n] ,则 。
例题:

频域抽样定理
DTFT 和 DFS 的公式回顾:

信号时域抽样的频域表示:

信号频域抽样的时域表示:

例题:
题目:

求解过程:



例题总结:

离散系统的频率响应
虚指数信号:


正余弦信号:

部分推导:

理想的数字滤波器
理想数字滤波器的分类

理想低通滤波器

由上图中理想低通滤波器产生的图像可以得知,在 k < 0 的时候, 的值并不为 0,因此它是一个非因果系统,在物理上是不可实现的。
其他理想滤波器
理想的高通滤波器可以看作是 1 与理想低通滤波器作差实现;
理想带通滤波器可以看作是两个理想低通滤波器作差实现;
理想带阻滤波器可以看作是 1 与理想带通滤波器作差实现。
上述的三种滤波器的频率响应都是非因果的,因此在物理上均无法实现。
实际低通滤波器实现方法

虽然理想的低通滤波器是无法实现的,但是只要让图中阻带的高度接近于 0,通带的上下波动很小,过渡带的长度尽量小,就可以模拟出低通数字滤波器的效果。
❓ My Doubts
✔️ Question 1
My Question is:

图中最后的结果是怎么化简为 两个正弦函数比的形式的?
My Answer:
首先,需要对积化合差公式比较熟悉:

其次,需要利用欧拉公式进行化简,过程如下:

离散信号的 Z 变换
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- z 变换收敛域(ROC)
- z 变换性质
- 部分分式展开法
- z 变换的复频域
- 系统函数
- FIR 与 IIR 系统
- 全通滤波器
- 最小相位系统
🔗 Relevant Information
📝 Class Notes
z 变换收敛域的定义

不同序列的收敛域
有限长序列

那么为什么需要小于正无穷呢?因为 N₁ 有可能是小于 0 的,当 N₁ 小于 0 的时候,X(z) 序列会包含 z 的正幂次项,因此需要保证收敛域小于正无穷。
右边序列(因果序列)

至于收敛域是否需要小于 ∞ 需要看 N₁ 的正负:

左边序列(反因果序列)

至于是否要求收敛域要大于 0,则需要判断 N₂ 的正负:

双边序列

z 变换的性质
线性性质:

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

单边 z 变换的记忆方法:

反转性质:

尺度性质(z 域微分):


尺度性质证明:

例题 1:

例题 2:
题目:

求解过程:

卷积性质:

双边 z 变换的计算方法

z 变换的复频域分析
离散 LTI 系统的系统函数定义:


系统函数的表示形式:


FIR 系统与 IIR 系统
FIR → Finite Impulse Response;IIR → Infinite Impulse Response.


系统的稳定性判断

全通滤波器和最小相位系统
为什么要讨论全通滤波器和最小相位系统呢?
- 可以利用全通滤波器进行相位均衡;
- 可以利用最小相位系统进行幅度均衡;
- 可以利用这两个系统表示任意因果系统。
一阶全通滤波器
一阶全通滤波器(幅度响应):

一阶全通滤波器(相位响应):


一阶相位响应的图像:

一阶全通滤波器的零极点:

m 阶全通滤波器

因此 m 阶实系数全通系统的幅度响应仍然是 1,相位响应是各阶全通系统的和,由于每一阶全通滤波器的相位响应都是小于 0 且单调递减的,因此 m 阶实系数全通滤波器的相位响应是非正且单调递减的。
最小相位系统

因果系统的分解 → 全通滤波器+最小相位系统


例题:
题目:

求解过程:

分解方法的总结:
- 首先,将原系统函数中位于单位圆内的零极点项提取出来;
- 其次,为原系统函数中位于单位圆外的零极点项的分子(分母)配出一个共轭倒数的分母(分子)。
全通滤波器和最小相位系统的应用
它们通常应用于幅度均衡和相位均衡。
什么是幅度均衡和相位均衡?
幅度均衡和相位均衡是信号处理和通信系统中的两个重要概念,主要用于描述和调整信号的特性。
幅度均衡
幅度均衡(Amplitude Equalization)是指通过调整信号的幅度响应,使得系统在整个频率范围内对所有频率成分的增益保持一致。也就是说,系统对不同频率的信号不应有选择性地增强或衰减。
- 应用场景:用于补偿信道或系统对不同频率成分的非均匀增益,从而保证信号的原始幅度关系在传输后不变。
- 实现方法:可以通过设计特定的滤波器来实现,这些滤波器会对某些频率成分进行放大或衰减,以达到均衡效果。
- 效果:均衡后的信号在整个频率范围内具有一致的幅度响应,避免失真和信号质量下降。
相位均衡
相位均衡(Phase Equalization)是指通过调整信号的相位响应,使得系统在整个频率范围内对所有频率成分的相移保持一致或达到所需的相位特性。通常目标是消除或补偿由于系统非线性相位响应引起的相位失真。
- 应用场景:用于补偿信道或系统的相位失真,以保证信号在传输后不产生不必要的相移,尤其在要求保留信号波形的情况下(如音频信号)。
- 实现方法:可以通过全通滤波器(All-Pass Filters)来实现,这些滤波器对信号的幅度不做改变,只对相位进行调整。
- 效果:均衡后的信号在整个频率范围内具有一致的相位响应,避免波形失真和相位扭曲。
相位均衡器
问题描述:

解决思路:

可以利用全通滤波器改变原系统的相位响应,作为相位均衡器。
幅度均衡



为什么这里不使用全通滤波器进行均衡呢?
原因就是全通滤波器肯定会有一个零点在单位圆之外,它的逆函数有位于单位圆外的极点,不符合要求。
❓ My Doubts
❓ Question 1
My Question is:

为什么全通滤波器的幅度响应的模为 1?

为什么全通滤波器的相位响应的模为 1?
如何通过公式推导出来的。
My Answer:
对于幅度响应,目前的想法是将所有 的项都看作是 1 后取模。
连续时域信号的抽样与重建
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- 数字抽样
- 时域抽样过程
- 带限信号的抽样
- 窄带高频信号的抽样
- 非带限信号的抽样
- 信号的重建
- 抽样与重建的关系
🔗 Relevant Information
📝 Class Notes
为什么要进行数字抽样?

数字信号的主要特点:
- 易于存储
- 易于处理
- 易于传输(抗干扰能力强)
信号的抽样
上图的前半部分是抽样的一般过程,一般工程上的信号都是比较复杂的,需要先经过抗混叠滤波器滤除信号的高频成分,对低频成分进行采样保持,然后经过 ADC 进行量化。
时域抽样过程


信号时域的离散化会导致频域的周期化。
冲激串信号转换为序列(DTFT)

带限信号的抽样
什么是带限信号 → 。

窄带高频信号的抽样


非带限信号的抽样
工程信号多为非带限信号,通常需要经过低通抗混叠滤波器进行滤波,过程如下:

由于抗混叠滤波器也会摈弃一些频率成分,与混叠后的信号一样会有些失真,因此引入混叠误差和截断误差来比较他们的大小。

一般来说,截断误差会比混叠误差来得小。
信号的重建
上图的后半部分表示的就是信号的重建,需要先经过 DAC 将信号转换成阶梯的形式,然后经过重建滤波器将信号转换成连续信号。

从频域的视角看,重建滤波器相当于就是低通滤波器,将中间红框部分的信号提取出来。


从时域的视角看,重建滤波器相当于是将时域的冲激信号与 Sa 函数,也就是采样函数进行卷积,相当于把 Sa 函数左右平移,最终得到下图所示的形式:

重建信号所需要采用的周期:

连续信号离散处理的整个过程


如上图所示,抽样的过程和重建的过程其实是互为逆过程的。
❓ My Doubts
❓ Question 1
My Question is:
未知最高频率的信号如何进行抽样?

ppt 中只有这张图,没有理解
My Answer:
离散傅里叶变换 DFT
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- DFT 性质
- 循环卷积
- 线性卷积
- 重叠相加法
- 重叠保留法
- 混叠 泄漏
- 栅栏现象
🔗 Relevant Information
📝 Class Notes
这一部分重点介绍 DFT 的算法。
DFT 算法的回顾


上面的左图和右图是相互对照的关系,时域中连续非周期信号的频谱是连续非周期信号,离散周期信号的频谱是离散周期信号。在实际应用中,由于连续非周期信号、连续周期信号、离散非周期信号的参数总是未知的,而离散周期信号的参数基本都是已知的,因此常常需要转换为离散周期信号进行处理,这个转换的过程称为 DFS ,而计算机显然无法保存无穷多的数据,因此需要对数据进行取舍,而对于周期信号而言,只需要取出其中的一个周期即可,因此,使用 DFS 信号的一个周期进行分析和处理的方法就称为有限长序列分析,也就是 DFT 的过程。

DFT 两个例题
例 1:


例 2:

上面的例子说明,在序列 x[k] 后面补零,会使得频域的离散值更多,也就是说,增加 DFT 的抽样点可以获取到频域更多的细节。一个序列的 DFT 本质上就是该序列的频谱在一个周期内等间隔抽样的样本值。DTFT 的频谱是连续的周期函数,而 DFT 则是在该函数上进行抽样。
DFT 的性质
线性性质

循环位移性质
循环位移性质其实本质上还是 DFT 的位移性质,之所以是循环的,是因为 DFT 时域和频域都是周期的,如果只看一个周期的信号,可以将它当作是右边移出的数从左边重新进入。

图像表示:

时域循环位移 → 频域相移:

频域循环位移 → 时域相移:

对称性质




循环卷积定理

循环卷积定理:

示例:

对于矩阵是如何写出来的,可以看下图的过程:

循环卷积与线性卷积的关系:

注意: DFT 的循环卷积比起单纯的线性卷积运算速度更快。在 的时候,线性卷积和圆周卷积的结果是相同的,而圆周卷积满足 DFT 的卷积定理,因此可以据此计算出线性卷积。

帕斯瓦尔定理
对于 DFT 而言,设有一个长度为 N 的离散信号 x[n] ,其离散傅里叶变换为 X[k] 。帕斯瓦尔定理可以表示为:
其中:
- x[n] 是时域信号的第 n 个采样值。
- X[k] 是对应的离散傅里叶系数,表示信号在频域中的第 k 个分量。
线性卷积的计算
主要介绍长序列卷积的计算。
重叠相加法
重叠相加法 (Overlap-Add Method)
重叠相加法是通过将长序列分块并进行循环卷积,然后将这些块重叠相加来获得最终的线性卷积结果。
- 分块: 将输入序列 x[n] 分成长度为 L 的块。假设 x[n] 长度为 N,则分成多个块,每块长度为 L ,并且设 h[n] 的长度为 M 。
- 循环卷积: 对每个块 (其中 i 表示第 i 块)与滤波器 h[n] 进行循环卷积。由于 和 h[n] 的长度不同,需要将 h[n] 和 补零,使它们的长度达到 L + M - 1 。
- 重叠相加: 将每次循环卷积的结果进行重叠相加,得到最终的线性卷积结果。

具体步骤如下:
- 将 x[n] 分成 ,每块长度为 L 。
- 计算每个块的循环卷积: 其中 是第 i 块的卷积结果,长度为 L + M - 1 。
- 将各块的卷积结果进行重叠相加,形成最终输出:

重叠保留法
重叠保留法 (Overlap-Save Method)
重叠保留法通过在输入序列上使用滑动窗口进行卷积,并丢弃卷积结果中的重叠部分来实现线性卷积。
- 分块: 将输入序列 x[n] 分成长度为 L 的块,并且每块之间有 M-1 个样本重叠。假设 x[n] 的长度为 N , h[n] 的长度为 M ,则每块的长度为 L = M + N - 1 。
- 循环卷积: 对每个块 与滤波器 h[n] 进行循环卷积。由于每块 包含 L 个样本,且 h[n] 的长度为 M ,因此需要补零,使它们的长度达到 L 。
- 重叠保留: 对于每次循环卷积的结果,丢弃前 M-1 个样本,仅保留后面的 个样本,将这些保留的样本连接起来,形成最终的卷积结果。

具体步骤如下:
- 将 x[n] 分成 ,每块长度为 L ,并且每块之间有 M-1 个样本重叠。
- 计算每个块的循环卷积: 其中 是第 i 块的卷积结果,长度为 L 。
- 对每个卷积结果 ,丢弃前 M-1 个样本,保留后面的 L - M + 1 个样本。
- 将保留的部分连接起来,形成最终输出 y[n] 。

个人对重叠相加法和重叠保留法原理的理解
首先必须明确的一点是,在采用线性卷积通过图解法进行计算的时候,k 点的卷积值不仅与 h[k] 有关,还与 k 点之前的 h[k] 值有关。之后我们采用图解法(线性卷积)的方式来进行理解。

当采用重叠相加法进行计算的时候,由于将长序列进行了分块操作,那么也就是说,块与块之间是没有什么关系的。在进行 的线性卷积计算的时候,若 h[k] 与 的计算过程进行到了末尾(如下图所示),那么我们可以发现

分块前应该与 h[k] 产生交集的部分由于分块的操作变成了 0,也就意味着 5 点处的卷积值比分块前小。而对于 而言,在 h[k] 刚刚接触到 的时候,也是一样的,分块前应该与 有交集的左侧部分由于分块的存在没有算在卷积值中,造成了卷积值的减小,但是另一个有趣的发现是, 所缺失的交集在 中刚好得到了弥补,也就是说,他们的卷积值加起来正好是分块前的值,因此可以使用重叠相加法计算。

对于重叠保留法,它的意思是在分块的时候把重叠的部分给算上,为什么要这样做呢?因为通过前面的重叠相加法我们知道,如果将两个块毫无交集的切开,那么卷积值就会缺失,那不如就换一种方式,让分块的部分叠加起来,先保证卷积值是完整的,再去除多余的部分,叠加的部分就是 h[k] 的长度减去 1(至于 为什么是 h[k]-1 可以自己画图观察),这样,卷积值就不在会有缺失。

连续非周期信号频谱的 DFT 分析
由连续非周期信号转换为离散周期信号的过程:


抽样是对时域的离散,因此在时域有一个采样频率 ,这个频率需要大于信号最高频率的两倍,DFT 是对频域的离散,因此在频域有一个抽样点总数 N ,它作为频域的周期值。
每个抽样点的频率计算:

例题:
题目:

求解过程:

混叠和泄漏
对于一个时间有限且频带有限的理想信号,不存在泄漏和混叠现象。但在现实中,这两者常常无法同时满足,对于时间有限 频带无限的信号,会有混叠现象的出现,对于时间无限 频带有限的信号,会有泄漏现象发生。

混叠现象:

对于频带无限的信号,在时域抽样的过程中,频谱相互之间会发生混叠,因此在抽样之前要进行抗混叠处理。
泄漏现象和窗口函数:

对于时间无限的信号,在时域抽样之后要进行加窗处理,因为时域无限长的序列无法进行储存,由于加窗截短就会产生泄漏现象。
窗函数本质上就是滑动平均序列,相当于是时域的滤波器,只不过它是离散的。


窗函数的进一步讨论:

信号采集时间的解释:由于矩形窗函数点的数量为 N,且矩形窗函数点与点之间的间隔与抽样函数的采样周期必须相同,因此总的采集时间就等于点的数量乘以间隔时间,即 NT。
由于矩形窗函数频谱中的旁瓣会使得频谱变得更加复杂,因此也会有一些窗函数在加窗后对频谱进行加权,使得主瓣更加突出,而旁瓣被削减。下面以无限长的余弦信号为例,介绍各种加权窗函数:



更多的加权窗函数可以见下表:

窗口宽度的选择:




如上图所示,通过 确实可以获得一个合适的样本点数,但是即便 N 小于前面所计算的值,仍然可以将两个频率的谱线区分出来。

如上图所示,即便 N 满足了 的条件,仍然无法将两个谱线区分出来,因为旁瓣的幅度与 150 Hz 谱线的幅度近似,因此考虑采用加权窗函数消除旁瓣的影响。

因此,我们需要根据实际情况选择我们所需要的窗函数:

栅栏现象
栅栏现象指的是当我们对一个离散信号进行傅里叶变换时,频谱分析的结果受到采样频率的限制,导致我们只能看到有限个离散频点上的频谱信息,类似于我们通过一个栅栏看风景,只能看到栅栏的间隙,而不能看到完整的景象。只要信号进行 DFT 变换,就一定会出现栅栏现象。
栅栏现象可以通过序列补零的操作来解决:


DFT 过程的参数选取


DFT 的例题
题目:

求解过程:


FFT 算法
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- FFT 算法
- 基 2 时间抽取
- 基 2 频率抽取
- 其他基抽取法
- 混合基抽取
🔗 Relevant Information
📝 Class Notes
FFT 算法的全称是 Fast Fourier Transform .
FFT 算法概述
为什么要引入 FFT 算法

从图中可以得知,由于 DFT 算法在计算的时候总共需要计算 次,当 N 的数值很大的时候,计算量就会很大,效率很低,因此数学家在 20 世纪中叶开发了 FFT 的算法,使计算机能够更快的计算 DFT 的值。
FFT 算法的实现基础


FFT 算法——基 2 时间抽取法
FFT 算法的理解
第一次通过 ppt 理解:
FFT 算法就是不断的将原序列拆分成奇项和偶项最后合并来计算的。最开始的时候先将时域序列两两分组,利用他们计算出中间值,由于旋转因子的对称性,最后的中间值相加后总会与 DFT 的计算式子结果一致。将中间值两两分组,再计算出下一组中间值,直到得到最终结果。
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 算法——其他基抽取法
这部分还是看上面的 pdf 吧
FFT 算法——混合基算法
在利用 FFT 算法计算的时候,序列的长度往往不是 或是 ,可以通过序列补零来解决。但是,有些时候,补零的个数太多,影响计算的速度,因此可以采用混合基的方式来提高效率。

更多内容看下面的课件:
FFT 算法的应用

计算 2 个 N 点实序列的 FFT

例题:


计算 2N 点实序列的 FFT
相比于直接计算 2N 点的 FFT,利用 N 点复序列 FFT 来计算效率更高。


例题:



计算 N 点复序列的 IFFT


例题:

IIR 数字滤波器
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- 数字滤波器的介绍
- BW 型模拟滤波器
- 切比雪夫滤波器
- Ⅰ型
- Ⅱ 型
- 椭圆形滤波器
- 三种滤波器的比较
- 低通 → 其他三种滤波器
- 模拟滤波器 → 数字滤波器
- 脉冲响应不变法
- 双线性变换法
🔗 Relevant Information
📝 Class Notes
数字滤波器的介绍
在陈后金的课程中, 表示的是数字滤波器频率, 表示的是模拟滤波器的频率。

分类:

IIR 系统的定义:

实际数字滤波器(通带截止频率、阻带截止频率、通带波动、阻带波动):

IIR 滤波器设计步骤:

BW 型模拟滤波器
BW 型模拟滤波器的介绍:
衰减函数: .



BW 型模拟滤波器的设计步骤:





切比雪夫滤波器和椭圆型滤波器
切比雪夫滤波器分为 Ⅰ 型和 Ⅱ 型,前者在通带有波动但是阻带没有,后者在阻带有波动而通带没有。
切比雪夫 Ⅰ 型滤波器:


设计步骤



切比雪夫 Ⅱ 型滤波器:


设计步骤:


(*)椭圆型滤波器:

设计类型


三种滤波器的比较:
- 在相同设计指标下, BW型滤波器的阶数最高,椭圆滤波器的阶数最低。

- 在滤波器的实现过程中, BW型滤波器最容易实现, 而椭圆滤波器不易实现(因为其系统函数H(s)的极点离 jω 轴最近)。

- 在相同设计指标下, BW型滤波器的裕量最多, 椭圆滤波器的裕量最少。

模拟高通、带通、带阻滤波器的设计
通过前面滤波器的介绍,我们知道,可以先设计 原型低通滤波器,然后再将原型低通滤波器转换成高通、带通、带阻滤波器。
低通 → 高通


低通 → 带通



低通 → 带阻



总结表格

模拟滤波器 → 数字滤波器
有两种方法,① 脉冲响应不变法;② 双线性变换法。在由模拟滤波器转换为数字滤波器的时候,只考虑频率的变化,而不考虑阻带和通带衰减值的变化。
脉冲响应不变法
原理:




优缺点:


因此只能用于设计低通和带通滤波器,不能用于设计高通和带阻滤波器。
例题:
题目:

求解过程:




双线性变换法
可以看作是脉冲响应不变法的一个改进,用于避免混叠现象的出现。它在脉冲响应不变法之前加入了一个非线性的映射,使原来的信号成为带限信号,信号范围在 与 之间。
原理:

图中为什么 arctan 括号中的 ω 也要变成 呢?其实这跟数学中的极限有些关系,当 ω → 0 的时候, , 。


优缺点:

设计步骤及例题:

例题 1(低通):
题目:

求解过程:


例题 2(带阻):
题目:

求解过程:





❓ My Doubts
✔️ Question 1
My Question is:
BW 型模拟滤波器、切比雪夫滤波器、椭圆形滤波器的原理都没有弄懂。
My Answer:
它们的设计都是基于一个模板函数来进行的,而模板函数的由来并不需要掌握,根据模板函数,我们可以通过通带衰减频率、阻带衰减频率、通带截止频率和阻带截止频率来求解模板函数中的未知参数(两个或三个)。
✔️ Question 2
My Question is:
低通 → 带通滤波器的设计中,为什么会有 ,这个公式是如何得来的。

My Answer:
这个公式的由来并不重要,记住公式就行。
✔️ Question 3
My Question is:

图中 ω₀ → 0 的过程是通过什么公式来完成的?
为什么能得出幅频响应不对称的结论?

为什么要取两者中的较小值,取两者中的较大者有什么问题呢?
My Answer:
图中 ω₀ → 0 的过程是通过什么公式来完成的?
就是通过 来计算的,因此是映射关系。
为什么能得出幅频响应不对称的结论?
因为是映射关系,不是简单的平移关系,不能保证 左右两侧的映射是一样的。
为什么要取两者中的较小值,取两者中的较大者有什么问题呢?
取较大者会造成阻带的衰减不满足条件。
FIR 数字滤波器
这一章节的内容没有太懂,很多地方直接贴了 ppt .78 - 82 例题部分跳过了,没有看,等到滤波器学通透了再看。
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- FIR
- 线性相位系统
- 4 个类型的线性相位系统
- 零点分布
- 矩形窗函数
🔗 Relevant Information
📝 Class Notes
Finite Impulse Response,有限冲激响应滤波器
FIR 的引入


FIR 滤波器指标:

数字滤波器的设计:

线性相位系统的判断


上图中的对称性可以通过下图的例子来理解:

线性相位系统的时域特性及频域特性
时域特性:

频域特性:
Ⅰ 型线性相位系统:

为什么是提取 呢?
因为第一项与最后一项 e 的幂数相加除以 2 就是它,第二项与倒数第二项也是如此。


Ⅱ 型线性相位系统:



Ⅲ 型线性相位系统:



Ⅳ 型线性相位系统:



这里需要注意的是, 虽然是以 2π 为周期的,但是 却不一定是,要将两者区分清楚。
频域特性总结:


线性相位系统的零点分布
FIR 滤波器的对称性:

为零点,则其倒数也为零点:

为复零点,则其共轭也为零点:

零点分布的 4 种情况

之所以能够展开成 z 域因式的形式是因为 ,最终肯定会化简为 的形式。



利用窗函数设计 FIR 滤波器
设计原理和方法
设计原理:


设计方法:

使用矩形窗函数进行设计


吉伯斯现象(吉布斯现象):





其他窗函数
阻带衰减值: 汉宁窗 < 海明窗 < 布莱克曼窗。
过渡带宽度: 汉宁窗 < 海明窗 < 布莱克曼窗。
说明阻带衰减值越大,过渡带宽度越大,阻带的衰减是以牺牲过渡带宽度来获得的。
凯瑟窗是参数可调的窗函数。
利用频率取样法设计 FIR 滤波器
设计原理



设计方法

改进方法

优化设计
优化设计的概念

两个误差准则
最大最小误差准则:

积分加权平方误差准则:

优化设计的基本原理

利用误差准则设计
利用积分加权平方误差准则设计:




利用最大最小误差准则设计:






FIR 滤波器和 IIR 滤波器的比较



IIR 滤波器的基本结构
直接型结构


直接 Ⅰ 型结构:

直接 Ⅱ 型结构:
需要进行两步操作,第一步,交换 与 的顺序:

第二步, 与 共用延时器:

转置直接 Ⅱ 型结构:

根据转置定理,在信号流图中若改变所有支路的传输方向,并交换输入和输出的位置,则系统函数不变。
级联型结构

基于直接 Ⅱ 型的级联型结构:

基于转置直接 Ⅱ 型的级联型结构:

并联型结构

基于直接 Ⅱ 型的并联型结构:

基于转置直接 Ⅱ 型的并联型结构:

直接型结构的特点

级联型结构的特点

并联型结构的特点

直接型结构和其他结构的规律


根据系统函数画信号流图的原理参见 ⤴️这里⤴️
结构框图

线性相位 FIR 滤波器的直接型结构:




级联型:

有限字长效应
由于计算机存储一个量的内存是有限的,如 32位,16位等,存储单元是有限的,因此会有有限字长效应,而且有量化误差产生。
输入量化误差的介绍

理论上,任意十进制数x (-1<x<1)都可用无限位二进制数表示,实际中,只能用 (b+1)位有限位近似表示x,此过程称为量化。当利用有限位二进制数近似表示需无限位二进制表示的数时,将会产生误差,此误差称为量化误差。

数值量化方式:



滤波器的系数量化误差
FIR 滤波器:


IIR 滤波器:



❓ My Doubts
❓ Question 1
My Question is:
FIR 滤波器部分的两种方法都没有搞清楚,将所有视频看完后需要单独再看相关的内容
- 所谓的时域逼近和频域逼近就没太搞清楚。
- 和 之间的关系是怎么样的?
My Answer:
多速率信号处理
💡 Key Words
这里的关键词只是帮助大家看完右侧的笔记后回忆内容,不是跳转链接!!
- 多速率处理的原因
- 抽取滤波器
- 内插滤波器
- Ⅰ 型多相分解
- Ⅱ 型多相分解
🔗 Relevant Information
📝 Class Notes
为什么要进行多速率处理?
信号的抽样:

信号的重建:

16 kHz → 16 kHz:

32 kHz → 16 kHz:

8 kHz → 16 kHz:

多速率信号处理可以完成信号抽样速率的转换,原来的系统需要选取特定的频率 进行转换,否则就会发生最终的信号失真的问题(如音频信号播放速度发生变化),而多速率系统可以先将信号通过 进行采样,然后再经过 多速率转换后得到相应的信号。


多速率处理的基本单元
抽取和内插的时域、频域分析
M 倍的抽取(下采样):

L 倍内插(上采样):

M 倍抽取的频域分析:

M 倍抽取不混叠的条件:

L 倍内插的频域分析:


抽取和内插的等效连接




抽取滤波器

抽取滤波器存在的意义就是在信号不满足上述不混叠的条件时,成功将信号恢复。
为了让信号不发生混叠,需要将信号通过低通滤波器成功滤出来,而低通滤波器是难以实现的,因此,我们只能通过设计低通滤波器让阻带尽量逼近 。

抽取滤波器的时域表示:

问题复现:

通过抽取滤波器后下采样恢复信号:

内插滤波器

内插滤波器指的就是用于滤除内插后信号中镜像分量的低通滤波器。

内插滤波器的设计效果如上图所示,仅保留符合条件的分量。
内插滤波器的时域表示:

问题分析:

这是之前声音变快的一个样例。
问题解决:

在信号经过上采样后,它会被输入到内插滤波器中,内插滤波器不仅会将多余的信号滤除,同时也会将插入的点根据周围点的值变化,最终形成图中所示的效果。
数字滤波器的Ⅰ 型多相分解

多相分解的矩阵表示:

多相分解举例:

多相分解的系统框图:

多相分解的图像解释:

例题:

数字滤波器的 Ⅱ 型多相分解
Ⅱ 型多项分解的引入:


Ⅱ 型多项分解的系统框图:

多相分解的实际应用(为什么要进行多相分解?)
在多速率处理部分,我们得知:

多项分解实现抽取滤波器:

上述的过程是先将 M 放入所有的支路中,然后在经过顺序交换消除 中 z 的幂次,简化计算过程。
多项分解实现内插滤波器:

两通道滤波器
基本概念:


Y(z) 的表达式:

无混叠滤波器组:



π/2 镜像滤波器组(QMF 滤波器组):



Matlab 的应用
Relevant Information
