首页/文章/ 详情

【如何成为电声高手】28. 数字音频信号处理

1年前浏览7720
采用简要理论说明+Matlab示例。最基础和最常用的音频信号处理都有设计到。内容较多,需要自己多花时间学习。
Matlab代码采用实时脚本,都做了中文注释。
数字信号

信号是信息的物理载体,信息是信号的具体内容

Ø数字音频信号处理(Digital Audio Signal Processing,简称DASP)是一种应用于音频信号的数字信号处理技术。
Ø
Ø它涉及将模拟音频信号转换为数字信号,然后使用各种算法和技术对数字信号进行处理,以实现诸如滤波、压缩、混响、均衡等音频处理目的。
Ø
Ø数字音频信号处理广泛应用于音响系统、音乐制作、广播、通信和消费电子产品等领域。通过对音频信号进行精确的数字处理,可以实现高质量的音频再现、传输和存储。
简介了一本书《数字音频技术》

Ø连续时间信号:连续时间信号是在时间轴上连续变化的信号,也称为模拟信号。它们可以表示为连续时间函数,例如x(t),其中 t 是连续的时间变量。连续时间信号可以用于表示诸如声音、光、温度等物理现象。由于连续时间信号在时间上是连续的,它们通常包含无限多个时间点的信息,因此需要用连续的数学表达式来描述。

Ø

Ø离散时间信号:离散时间信号是在时间轴上离散变化的信号。它们可以表示为离散时间函数,例如x[n],其中 n 是离散的时间索引。离散时间信号通常是通过对连续时间信号进行等间隔采样得到的。与连续时间信号不同,离散时间信号只包含有限个时间点的信息,因此可以用离散的数学表达式来描述。

Ø

Ø数字信号:数字信号是一种特殊的离散时间信号,它不仅在时间上是离散的,而且在幅度上也是离散的。数字信号可以表示为一系列离散的数值,例如整数或浮点数。将离散时间信号转换为数字信号的过程称为量化。数字信号可以方便地在数字电子设备(如计算机、DSP等)上进行处理和存储。

模拟-数字转换(ADC)

模拟-数字转换(ADC):将模拟音频信号转换为数字信号的过程。连续的模拟信号被采样和量化,转换为离散时间、离散值的数字信号。

数字-模拟转换(DAC)

数字-模拟转换(DAC):将数字音频信号转换回模拟信号的过程。在这一步,数字信号被重构为连续的模拟信号,以便在扬声器等设备上进行播放。


采样定理

奈奎斯特采样定理:要想采样后能够无失真的还原出原信号,则采样频率必须大于两倍信号谱的最高频率。

空间“采样定理”

时频分析和傅立叶变换

傅立叶变换是一种在数学、物理学和工程中广泛应用的方法,用于将复杂的信号分解为简单的正弦和余弦波。

滤波Filter

滤波是一种常用的数字音频信号处理技术,用于改变音频信号的频谱特性。例如,低通滤波器可以消除高频噪声,而高通滤波器可以消除低频干扰。

均衡EQ

均衡是调整音频信号中各个频率成分的相对强度的过程。它可以用于改善音频信号的音质,例如提高或降低某个频率范围的响度。

混响、压缩、音高等

Ø混响和空间处理用于模拟音频信号在真实环境中的传播特性,以实现更自然和真实的听感。这包括人工混响、立体声处理、环绕声处理等。

Ø

Ø压缩和扩展是用于调整音频信号动态范围的技术。压缩可以减小信号中较大幅度的部分,而扩展可以增大较小幅度的部分。

Ø

Ø音高和时间处理技术用于改变音频信号的音高和/或速度,例如音高移位、时间拉伸/压缩等。

动态压缩DRC

Ø压缩比(CompressionRatio):压缩比是一种衡量压缩器强度的参数,表示输入信号超过阈值时的增益衰减程度。例如,如果压缩比为 4:1,那么当输入信号超过阈值 4 dB时,输出信号仅增加 1 dB。压缩比越高,压缩效果越明显。

Ø阈值(Threshold):阈值是以分贝(dB)表示的振幅水平。当输入信号的振幅高于阈值时,压缩器开始工作并降低信号的增益。阈值越低,越大的信号范围会受到压缩。

Ø攻击时间(AttackTime):攻击时间是指当输入信号突然超过阈值时,压缩器需要多长时间才能降低增益至设定的压缩比。攻击时间通常以毫秒(ms)表示。较短的攻击时间可以更快地抑制突然的峰值,但可能导致信号失真;较长的攻击时间可以保留瞬态信号,但不适合快速变化的音频内容。

Ø释放时间(ReleaseTime):释放时间是指当输入信号重新降到阈值以下时,压缩器需要多长时间才能恢复正常的增益。释放时间通常以毫秒(ms)表示。较短的释放时间可能导致音频泵浦现象(pumping),这是由于压缩器快速切换增益引起的不自然的音量波动;较长的释放时间可以避免泵浦,但可能导致信号的持续压缩。

这些参数共同决定了压缩器的工作方式和压缩效果,需要根据具体的音频内容和应用场景进行调整。在设置这些参数时,通常需要权衡信号的动态范围和音质

自动增益控制AGC

ØAGC 是一种用于调整音频信号振幅的技术,它的目的是在一定范围内自动维持音频信号的响度恒定。

Ø

ØAGC 根据输入信号的平均响度来调整增益,使得输出信号具有较为一致的响度水平。

Ø

ØAGC 系统在许多应用中都非常有用,例如无线通信、广播、音频会议和语音识别。通过应用AGC,可以在各种情况下获得更好的音频质量和可听性。

Ø

Ø需要注意的是,AGC 与动态范围压缩(DRC)在某种程度上是相似的,因为它们都涉及到调整音频信号的增益。然而,AGC 通常更关注于维持恒定的响度水平,而 DRC 更关注于减小音频信号的动态范围。

编码和解码

编码和解码是将音频信号转换为一种更便于存储和传输的格式的过程。

音频编解码器(AudioCodec) 是一种专门用于处理音频数据的编解码器。音频编解码器对音频信号进行压缩和解压缩,以实现节省存储空间和传输带宽的目的。

在选择音频编解码器时,需要根据音质要求、存储空间限制和兼容性等因素进行权衡。

有损音频编解码器通常适用于需要节省存储空间和传输带宽的场景,而无损音频编解码器则适用于对音质要求较高的场景。

1.有损音频编解码器:

ØMP3(MPEG-1 Audio Layer 3):MP3 是一种非常流行的有损音频压缩格式,它可以实现高达 10:1 的压缩比,同时保持相对较高的音质。MP3 使用了基于人类听觉系统的心理声学模型,通过去除音频信号中不易被人耳察觉的成分来实现压缩。

ØAAC(Advanced Audio Coding):AAC 是一种在 MP3 基础上改进的有损音频压缩格式,它被广泛应用于数字广播和在线音乐服务。相比MP3,AAC 在相同的比特率下提供了更好的音质和更高的压缩效率。

2.无损音频编解码器:

ØFLAC(Free Lossless Audio Codec):FLAC 是一种广泛使用的无损音频压缩格式。FLAC 可以在不损失音质的情况下,将音频数据压缩到原始大小的 50%-60%。FLAC 是开源的,因此不受专利限制。

ØWAV(Waveform Audio File Format):WAV 是一种原始的、未压缩的音频格式,它可以存储无损音频数据。WAV 格式的音频文件通常具有较大的文件大小,但提供了最高的音质。WAV 格式广泛应用于专业音乐制作和音频编辑领域。

前端语音信号处理

针对不同的干扰因素,采用不同的信号处理算法。

智能音箱关键词唤醒

回声消除AEC

消除设备自身产生的回声干扰。最早应用于语音通话。语音交互中的唤醒也需要用到。

回声来源:

Ø

Ø麦克风直接采集到扬声器播放的声音

Ø

Ø空间反射造成的回声被麦克风采集

Ø

Ø扬声器、麦克风等设备性能的非线性

ü时延估计

ü线性回声消除

ü双讲检测

ü残余回声抑制

使用自适应滤波器进行声学回声消除(AEC)


这个AEC的案例参考了Matlab官方案例,做了一些删减调整和优化,并进行注释。

也分析了其初始消除效果不够理想的原因和改善建议。


% 在声学回声消除(AEC)算法的初始阶段,消除效果可能不够理想,主要原因是自适应滤波器需要一定的时间来收敛。

% 以下是一些建议,可以帮助改善 AEC 算法在初始阶段的性能:

% 1. **初始化滤波器权重**:如果对房间脉冲响应有一定的了解,可以用这些信息来初始化滤波器权重。

% 这将使滤波器更接近于最优解,从而缩短收敛时间。

% 2. **双谈检测(DTD)**:在双方同时说话的情况下,AEC 算法可能无法很好地收敛。

% 为了解决这个问题,可以实施双谈检测(DTD)算法,例如通过计算近端和远端信号的能量比来确定是否暂停滤波器的更新。

% 在双谈情况下暂停更新可以防止滤波器发散。

% 3. **变步长**:使用变步长算法可以在初始阶段提高收敛速度。

% 在算法开始时,可以使用较大的步长,随着算法的收敛,逐渐减小步长。

% 这样可以在保持稳定性的同时加快收敛速度。

% 4. **子带滤波**:将信号分解成多个子带,并在每个子带上进行 AEC 处理。

% 这样可以减小滤波器长度,从而提高收敛速度。

% 此外,子带处理还可以针对每个子带独立调整步长,进一步优化性能。

% 5. **先验知识和约束**:在滤波器更新过程中引入先验知识或约束条件有助于加快收敛速度。

% 例如,通过正则化技术(如 L1 或 L2 正则化)约束滤波器权重,可以提高稳定性和收敛性能。

% 6. **预处理**:对输入信号进行预处理,例如降噪、均衡化或增强,可以提高 AEC 的性能。

% 通过预处理,可以减小输入信号中的噪声和其他干扰成分,从而提高滤波器的收敛速度。

% 根据应用需求和具体场景,尝试上述建议中的一种或多种方法,可以改善 AEC 算法在初始阶段的性能。



盲源分离BSS

盲源分离(BlindSource Separation,简称 BSS)是一种在不知道混合过程和源信号的情况下,从多个混合信号中恢复源信号的技术。

盲源分离的一个常见应用是鸡尾酒会问题,即在一个嘈杂的环境中分离出每个人的语音。

主要步骤:

Ø混合过程:假设我们有 n 个独立的源信号(例如,n 个人在同时说话),这些信号通过某种方式混合在一起(例如,通过空气传播到麦克风),产生了m 个混合信号(例如,m 个麦克风的录音)。

Ø盲源分离:我们的任务是从这 m 个混合信号中恢复出原来的 n 个源信号。为了做到这一点,我们需要找到一个逆混合过程,可以将混合信号转换回源信号。这就是盲源分离的主要目标。

盲源分离的关键挑战是,我们通常不知道混合过程是什么,也不知道源信号是什么。因此,我们必须依赖于源信号的某些统计特性(例如,假设源信号是统计上独立的)来推断出逆混合过程。

常用的盲源分离方法有很多,例如独立成分分析(Independent Component Analysis,简称 ICA)、主成分分析(Principal Component Analysis,简称 PCA)和稀疏编码(Sparse Coding)等。

噪声抑制NS

噪声抑制技术用于消除背景噪音,改善语音信号的信噪比和可懂度,让人和机器听得更清楚。

噪声抑制的核心是对噪声的估计(noise estimation / noise tracking)

频域、时域、概率统计、深度学习


关于麦克风阵列信号处理请参考麦克风阵列章节



来源:声学号角
非线性电子消费电子通信声学理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-11
最近编辑:1年前
声学号角
辜磊,专注数码声学产品仿真设计...
获赞 69粉丝 268文章 280课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈