17、信号处理基础:傅里叶变换的直观理解、滤波器的概念(低通/高通/带通)、采样定理

好,咱们今天聊点硬核的——信号处理。别被名字吓到,其实这东西特别接地气。你手机里放音乐、摄像头拍照片、甚至心电图机测心跳,背后全是这些原理在跑。

我个人习惯,讲技术之前先搭框架。先看一张图,把今天要聊的三个核心概念串起来:

信号处理基础 傅里叶变换 时域 ↔ 频域 滤波器 低通/高通/带通 采样定理 奈奎斯特频率 把信号拆开看 按需提取成分 数字化前提

一、傅里叶变换:换个角度看世界

先问个问题:你面前有一杯混合果汁,你能一眼看出里面加了哪几种水果吗?不能吧。但如果你用滤网把果肉分离出来,就能知道——哦,有橙子、有芒果、有草莓。

傅里叶变换干的就是这个事。它把一个复杂的信号(比如一段音乐、一个心跳波形),拆解成不同频率的简单正弦波。时域里看着乱糟糟的东西,到了频域里就清清楚楚。

核心公式(理解即可,不用背):

F(ω) = ∫ f(t) · e^(-jωt) dt

说白了,就是把信号 f(t) 和不同频率的正弦波做内积。匹配上了,那个频率的系数就大。

我在项目中遇到过一件事。有次做音频降噪,时域波形看着就是一团乱麻,根本不知道噪声在哪。后来把信号做了一次FFT(快速傅里叶变换),好家伙——50Hz的工频干扰、3kHz的刺耳啸叫,一目了然。直接滤掉对应频段,干净了。

我的小技巧:刚开始学的时候,别纠结公式推导。去下载一个音频频谱分析软件,对着说话、拍手、吹口哨,看频谱怎么变。玩半小时,比看书一星期都管用。

二、滤波器:信号界的门卫

滤波器,说白了就是让某些频率通过,把另一些频率拦住。你想想看,收音机调台、手机拒接骚扰电话,本质都是滤波——只留下你想要的。

常见的三种滤波器:

类型 作用 生活类比
低通滤波器 让低频通过,衰减高频 毛玻璃——细节(高频)模糊了,轮廓(低频)还在
高通滤波器 让高频通过,衰减低频 高通滤镜——只保留边缘和纹理
带通滤波器 只让某个频段通过 收音机选台——只收一个频率

嗯,这里要注意:滤波器不是一刀切的。实际工程里,从通带到阻带有个过渡区,叫「滚降」。滚降越陡,滤波器性能越好,但相位失真也越大。这是个trade-off,我吃过亏。

我曾经踩过的坑:做心电信号处理时,为了滤掉工频干扰,我设计了一个很陡的50Hz陷波器。结果滤波后的QRS波群变形了,医生直接说没法诊断。后来才知道,陡峭的滤波器会引入振铃效应,把有用的波形给扭曲了。所以,滤波器的设计要兼顾幅度响应和相位响应,不能只看幅频特性。

举个代码例子,用Python实现一个简单的低通滤波器:

import numpy as np
from scipy import signal

# 设计一个4阶巴特沃斯低通滤波器
# 截止频率 100Hz,采样率 1000Hz
b, a = signal.butter(4, 100, btype='low', fs=1000)

# 应用到信号上
filtered_signal = signal.filtfilt(b, a, original_signal)
# 注意:filtfilt是零相位滤波,不会引入延迟

三、采样定理:数字世界的入场券

为什么要有采样定理?因为计算机只能处理离散的数字,而现实世界的信号是连续的。把连续信号变成离散点,这个过程叫采样。

奈奎斯特-香农采样定理说:采样频率必须大于信号最高频率的两倍,才能无失真地重建原始信号。

公式: fs > 2 · fmax

其中 fs 是采样频率,fmax 是信号中的最高频率成分。

为什么会这样?你想想看,如果采样点太少,两个点之间连出来的波形,跟原始信号完全不是一回事。这就是「混叠」——高频信号伪装成了低频信号,一旦混进来,神仙也分不开。

我记得刚入行时,有个同事采集振动信号,采样率设了100Hz。结果机器有个80Hz的振动分量,采样后变成了20Hz。他分析了好几天,以为是轴承坏了,差点让产线停机。后来我一问采样率,就知道问题出在哪了。

实战建议:

  • 采样率一般取信号最高频率的5~10倍,留足余量
  • 采样前一定要加抗混叠滤波器(低通),把高于 fs/2 的成分滤掉
  • 如果信号频率未知,先用高采样率扫一遍,看看频谱分布

最后说一句,这三个概念是信号处理的基石。傅里叶变换让你看清信号的成分,滤波器让你按需提取,采样定理保证你数字化后不丢信息。三者环环相扣,缺一不可。

好了,今天就到这。下次你听音乐、看照片、测心跳的时候,可以想想——背后这些数学原理,其实一直在默默工作。


交易系统化学习资料 微信Strategy888888