1. 噪声的本质与分类
各位好,我是老周。做音频处理十几年了,每天打交道最多的不是音乐,而是噪声。今天咱们就聊聊噪声到底是什么,它长什么样,又该怎么分类。
很多人觉得噪声就是「不好听的声音」。嗯,这个说法没错,但做工程不能这么模糊。咱们得从信号处理的角度,把噪声的本质扒开来看。
1.1 什么是噪声?
从数学上讲,噪声就是干扰有用信号的无用成分。说白了,你想要的叫信号,你不想要的都叫噪声。
我习惯把噪声分成两个维度来看:
- 从来源看:环境噪声(空调、风扇、马路)、电路噪声(热噪声、电源纹波)、量化噪声(ADC转换时产生的)
- 从特性看:平稳噪声(统计特性不变)、非平稳噪声(随时间变化)
举个例子,你在录音棚里录人声,空调的嗡嗡声就是噪声。但如果你在录空调的故障音,那空调声就是信号,人声反而成了噪声。所以噪声是相对的,关键看你的目标信号是什么。
核心定义:噪声 = 任何你不想要的、干扰目标信号的能量成分。
1.2 噪声的时域与频域特征
搞噪声抑制,必须学会从两个角度看噪声:时域和频域。这两个视角就像医生的听诊器和CT机,缺一不可。
时域特征
时域就是看波形。我刚开始做这行时,总盯着波形图看半天,其实关键就几点:
- 幅度分布:噪声的瞬时值服从什么分布?高斯分布?均匀分布?
- 相关性:当前时刻的噪声和下一时刻有没有关系?白噪声就没有相关性
- 平稳性:噪声的均值和方差随时间变不变?
举个例子,热噪声的时域波形就像一堆乱草,幅度大致服从高斯分布。而电源50Hz工频干扰,波形就是一条规则的 sinusoidal 曲线,一眼就能认出来。
频域特征
频域才是噪声抑制的主战场。为什么?因为很多噪声在时域里混在一起分不开,但到了频域就原形毕露了。
我记得有一次做车载语音增强,客户说「噪声听起来像风声」。我一看频谱,果然在低频段有个宽峰,这就是风噪的典型特征——能量集中在200Hz以下,而且没有明显的谐波结构。
常见的噪声频域特征:
| 噪声类型 | 频域特征 | 典型例子 |
|---|---|---|
| 白噪声 | 全频段能量均匀 | 热噪声、ADC量化噪声 |
| 粉红噪声 | 能量随频率升高以3dB/oct衰减 | 自然界风声、水流声 |
| 窄带噪声 | 集中在某个或某几个频率 | 电源工频干扰、电机嗡鸣 |
| 冲击噪声 | 时域尖峰,频域宽泛 | 开关噪声、静电放电 |
实战技巧:拿到一段含噪音频,我第一件事就是看频谱图。频谱能告诉你噪声在哪些频率上「作恶」,这样你才能精准地「打击」它。
1.3 加性噪声与乘性噪声
这是噪声分类里最重要的一个概念。为什么重要?因为处理方式完全不同。
加性噪声
加性噪声就是直接加到信号上的噪声。数学表达式很简单:
y(t) = x(t) + n(t)
其中 y(t) 是含噪信号,x(t) 是干净信号,n(t) 是噪声。
加性噪声的特点是:噪声和信号独立。不管信号有没有,噪声都在那里。比如你在房间里录音,空调的嗡嗡声就是加性噪声——你说话它也在,你不说话它还在。
我处理过的大部分噪声都是加性的。这类噪声的抑制方法也最成熟,比如谱减法、维纳滤波、深度学习降噪,都是针对加性噪声设计的。
乘性噪声
乘性噪声就麻烦多了。它的表达式是:
y(t) = x(t) * m(t)
或者更一般的形式:
y(t) = x(t) * (1 + m(t))
乘性噪声的特点是:噪声和信号相乘,信号强的时候噪声也强,信号弱的时候噪声也弱。典型的例子就是信道衰落、麦克风振膜的抖动噪声。
乘性噪声在频域里表现为信号的频谱被「调制」了。你想想看,如果信号是纯净的正弦波,乘性噪声会让它的幅度忽大忽小,听起来就像信号在「呼吸」。
避坑指南:我曾经在一个项目里把乘性噪声当加性噪声处理,结果降噪后信号失真严重。后来才发现,乘性噪声需要先做对数变换,把它变成加性形式再处理。这个坑我踩过,希望大家别重蹈覆辙。
两种噪声的对比
| 对比维度 | 加性噪声 | 乘性噪声 |
|---|---|---|
| 数学形式 | y = x + n | y = x * m |
| 与信号关系 | 独立 | 依赖信号强度 |
| 典型例子 | 环境噪声、电路热噪声 | 信道衰落、振膜抖动 |
| 处理思路 | 直接估计噪声并减去 | 先变换为加性再处理 |
| 常见算法 | 谱减法、维纳滤波 | 同态滤波、对数域处理 |
1.4 噪声分类全景图
说了这么多,咱们用一张图把噪声的分类体系串起来。这是我做培训时必讲的一张图,帮你建立全局视角。
这张图把噪声分成了三个维度。我个人觉得,最实用的分类是按叠加方式——加性 vs 乘性。因为这两个的处理思路天差地别,选错了方法,效果会大打折扣。
1.5 本章小结
好了,咱们把这一章的核心内容捋一捋:
- 噪声的本质:干扰目标信号的无用成分,定义是相对的
- 时域特征:看幅度分布、相关性、平稳性
- 频域特征:看能量分布、谐波结构,这是降噪的主要战场
- 加性噪声:y = x + n,独立于信号,处理相对简单
- 乘性噪声:y = x * m,依赖信号强度,需要先变换再处理