安德烈-谢尔科文科(Andrei Shelkovenko)。Vibromera 的开发者和创始人之一。
文章翻译可能存在不准确之处。
- 傅立叶变换和信号频谱
在许多情况下,获取(计算)信号频谱的任务如下。有一个 ADC,它以 Fd 的采样频率将 T 时间内输入的连续信号转换成 N 个数字样本。然后将样本数组输入某个程序(例如 傅立叶范围) 输出 N/2 个数值。
为了检查程序是否正常运行,我们将两个 sin(10*2*pi*x)+0.5*sin(5*2*pi*x) 的和组成一个样本数组,并将其输入程序。程序绘制如下
频谱图上有两个谐波--振幅为 0.5 V 的 5 Hz 和振幅为 1 V 的 10 Hz,一切与原始信号的公式相同。一切正常,频谱图工作正常。
这意味着,如果我们将两个正弦波混合的真实信号输入 ADC 输入端,就会得到由两个谐波组成的类似频谱。
因此,我们的 真正的 测量信号 持续 5 秒,由 ADC 数字化,即表示 由离散 样品,具有 离散非周期性 光谱
从数学角度看,这句话有多少错误?
现在,让我们试着测量 0.5 秒钟的相同信号。
这里有问题!10 赫兹的谐波是正常绘制的,而 5 赫兹的谐波却有一些不清晰的谐波。
网上说,只需在样本末尾加上零,频谱就能正常绘制。
根本不是这样。我得处理理论问题。我们去 维基百科 - 知识的源泉。
2.连续函数及其傅里叶级数表示法
从数学上讲,持续时间为 T 秒的信号就是在区间 {0, T} 上给出的某个函数 f(x)(这里的 X 就是时间)。这样的函数总是可以表示为形式如下的谐函数(正弦或余弦)之和:
k 是三角函数的编号(谐波分量的编号、谐波的编号)
T - 定义函数的区段(信号的持续时间)
Ak- k 次谐波分量的振幅、
θk- 第 k 次谐波分量的初始相位
将函数表示为数列之和 "是什么意思?意思是将傅里叶级数在每一点的谐波分量值相加,就得到函数在该点的值。
更严格地说,数列与函数 f(x) 的均方偏差将趋于零,但尽管存在均方收敛性,函数的傅里叶级数一般来说并不需要逐点收敛到函数 f(x))。)
这个数列也可以写成表格:
其中 即第 k 个复振幅。
或
系数 (1) 和 (3) 之间的关系用以下公式表示:
请注意,所有这三种傅里叶级数表示法都是完全等价的。有时,在处理傅里叶级数时,使用虚参数指数而不是正弦和余弦会更方便,即使用复 数形式的傅里叶变换。但使用公式 (1) 更方便,在公式 (1) 中,傅里叶级数表示为具有相应振幅和相位的余弦之和。无论如何,说实数信号的傅里叶变换结果将是复次谐波振幅是错误的。维基正确地指出:"傅里叶变换(ℱ)是将一个实变函数映射到另一个实变函数的运算"。
一句话
信号频谱分析的数学基础是傅立叶变换。
通过傅立叶变换,可以将定义在区间 {0, T} 上的连续函数 f(x)(信号)表示为同样定义在区间 {0, T} 上的具有确定振幅和相位的三角函数(正弦和/或余弦)的无穷多个(无穷级数)之和。这种级数称为傅立叶级数。
请注意更多要点,要将傅立叶变换正确应用于信号分析,就必须理解这些要点。如果我们考虑整个 X 轴上的傅里叶级数(正弦波之和),就会发现在区间 {0, T} 外,傅里叶级数函数会周期性地重复我们的函数。
例如,在图 7 中,原始函数定义在区间 {-T\2, +T\2}上,而傅里叶级数表示定义在整个 x 轴上的周期性函数。
这是因为正弦波本身是周期函数,所以它们的和也是周期函数。
因此:
我们的原始函数是定义在某个长度为 T 的线段上的连续、非周期性函数。
该函数的频谱是离散的,即表示为谐波成分的无穷级数--傅立叶级数。
事实上,傅里叶级数定义了某种周期性函数,它与我们在区间 {0, T} 上的函数重合,但对我们来说,这种周期性并不重要。
下一个
谐波分量的周期是区间 {0, T} 的倍数,初始函数 f(x) 就是在这个区间上定义的。换句话说,谐波的周期是信号测量持续时间的倍数。例如,傅里叶级数中第一次谐波的周期等于定义函数 f(x) 的区间 T。傅立叶级数中二次谐波的周期等于区间 T/2。以此类推(见图 8)。
因此,谐波成分的频率是 1/T 的倍数。也就是说,谐波分量 Fk 的频率为 Fk= k\T ,其中 k 的取值范围从 0 到 ∞,例如,k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T; k=3 F3=3\T; ....Fk= k\T (频率为零时,为恒定分量)。
假设我们的初始函数是 T=1 秒期间记录的信号。那么,第一次谐波的周期等于信号持续时间 T1=T=1 秒,谐波频率等于 1 赫兹。第二次谐波的周期等于信号持续时间除以 2(T2=T/2=0.5 秒),频率等于 2 赫兹。对于三次谐波,T3=T/3 秒,频率为 3 赫兹。以此类推。
在这种情况下,谐波之间的间隔为 1 赫兹。
因此,持续时间为 1 秒的信号可以分解成谐波成分(获得频谱),频率分辨率为 1 赫兹。
要将分辨率提高 2 倍至 0.5 赫兹,就必须将测量时间延长 2 倍至 2 秒。10 秒钟的信号可分解为谐波成分(频谱),频率分辨率为 0.1 赫兹。没有其他方法可以提高频率分辨率。
有一种方法可以通过在采样阵列中添加零来人为延长信号持续时间。但这并不能提高实际频率分辨率。
3.离散信号和离散傅里叶变换
随着数字技术的发展,测量数据(信号)的存储方式也发生了变化。以前,信号可以记录在磁带录音机上,并以模拟形式存储在磁带上,而现在,信号已经数字化,并以一组数字(计数)的形式存储在计算机内存的文件中。
信号测量和数字化的通常方案如下。
测量传感器 -- 信号归一化器 -- ADC -- 计算机
(图 9 测量通道示意图)
来自测量传感器的信号在 T 时间段内进入 ADC。在 T 时间段内收到的信号读数(采样)被传输到计算机并保存在存储器中。
对信号数字化参数有哪些要求?将输入模拟信号转换为离散代码(数字信号)的设备称为模数转换器 (ADC) (© Wiki)。
ADC 的基本参数之一是最大采样率,即对时间上连续的信号进行采样的频率。采样率以赫兹为单位。((© Wiki))
根据科捷尔尼科夫定理,如果一个连续信号的频谱受限于频率 Fmax,那么它可以完全且唯一地从时间间隔 T = 1/2*Fmax 的离散采样中重建,即频率 Fd ≥ 2*Fmax,其中 Fd - 采样频率;Fmax - 信号频谱的最大频率。换句话说,信号数字化的频率(ADC 的采样频率)必须至少比我们要测量的信号的最大频率高 2 倍。
如果我们采集样本的频率低于科捷尔尼科夫定理的要求,会发生什么情况呢?
在这种情况下,就会出现 "混叠 "效应(又称频闪效应、摩尔纹效应),即数字化后的高频信号变成了实际上并不存在的低频信号。在图 11 中,红色的高频正弦波是真实信号。低频的蓝色正弦波是虚假信号,产生的原因是在采样过程中,高频信号有超过半个周期的时间经过。
为了避免混叠效应,在 ADC 之前放置了一个特殊的抗混叠滤波器(低通滤波器)。它能通过低于 ADC 采样频率一半的频率,并切断较高的频率。
为了通过离散采样计算信号频谱,需要使用离散傅里叶变换(DFT)。请再次注意,离散信号的频谱 "顾名思义 "仅限于小于采样频率 Fd 一半的频率 Fmax。因此,离散信号的频谱可以用以下各项之和来表示 有限 与连续信号傅里叶级数的无限和相反,谐波的频谱可以是无限的。根据科捷尔尼科夫定理,谐波的最大频率必须至少占两个样本,因此谐波数等于离散信号样本数的一半。也就是说,如果样本中有 N 个样本,频谱中的谐波数将为 N/2。
现在来看看离散傅立叶变换(DFT)。
与傅里叶级数比较
我们可以看到,两者不谋而合,只是 FFT 中的时间是离散的,谐波数限制在 N/2,即样本数的一半。
DFT 公式用无量纲整数变量 k、s 表示,其中 k 是信号样本数,s 是频谱成分数。
数值 s 表示每个周期 T(信号测量持续时间)内全谐波振荡的次数。离散傅里叶变换用于数值计算谐波的振幅和相位,即 "在计算机上 "计算谐波的振幅和相位。
如上所述,将非周期性函数(我们的信号)分解为傅里叶级数时,得到的傅里叶级数实际上对应于周期为 T 的周期性函数(图 12)。
从图 12 中可以看出,函数 f(x) 是周期为 T0 的周期函数。然而,由于测量采样长度 T 与函数周期 T0 不等,傅里叶级数得到的函数在 T 点不连续。如果测量样本的持续时间 T 与函数的周期 T0 一致,那么傅里叶变换后得到的频谱将只包含第一次谐波(周期等于样本持续时间的正弦波),因为函数 f(x) 是正弦波。
换句话说,DFT 程序 "不知道 "我们的信号是一个 "正弦波片段",而是试图将一个周期性函数表示为一个序列,而这个序列由于正弦波各个片段的不连续性而具有不连续性。
因此,频谱中会出现谐波,总的来说,谐波应代表函数的形状,包括这种不连续性。
因此,要获得由多个不同周期正弦波相加而成的信号的 "正确 "频谱,必须有一个 整数期 每个正弦波都应出现在信号的测量周期内。实际上,只要信号测量时间足够长,就能满足这一条件。
如果持续时间较短,画面看起来会 "更糟糕":
在实践中,很难理解哪里是 "真正的成分",哪里是成分周期和信号采样持续时间不一致或波形 "跳跃和断裂 "造成的 "伪像"。当然,"真实成分 "和 "伪像 "这两个词是有引号的。频谱图上出现许多谐波并不意味着我们的信号实际上由这些谐波组成。这就好比认为数字 7 由数字 3 和 4 "组成 "一样。数字 7 可以看作是 3 和 4 的和,这是正确的。
因此,我们的信号......或者说甚至不是 "我们的信号",而是通过重复我们的信号(样本)构成的周期函数,可以表示为具有一定振幅和相位的谐波(正弦波)之和。但在许多重要的实践案例中(见上图),我们确实可以将频谱中获得的谐波与具有周期特征并对信号形式有重要影响的实际过程联系起来。
一些成果
1.持续时间为 T 秒的真实测量信号经 ADC 数字化后,由一组离散样本(N 个)表示,其离散非周期频谱由一组谐波(N/2 个)表示。
2.信号由一组有效值表示,其频谱由一组有效值表示。谐波的频率为正。在数学上,使用负频率以复数形式表示频谱更为方便,但这并不意味着 "这样做是对的 "和 "你应该总是这样做"。
3.我们开始测量信号之前发生了什么,之后又会发生什么,这些都是科学未知的。就我们而言,这并不有趣。限时信号的 FFT 可以给出其 "真实 "频谱,即在特定条件下可以计算出其分量的振幅和频率。