- 博客(151)
- 资源 (11)
- 收藏
- 关注
原创 一文读懂语音是如何产生的:基频、共振峰与声道模型
语音信号是一种高度不平稳信号,其功率谱会随着时间变化而不断变化。然而当仔细观察时,可以看到在足够短的时间内(10~30ms)内,其频谱特征相当平稳。其中有些片段是周期性的,例如“her”有些是非周期或者类似噪声,例如“wifi”中的“fi”本文中将对于语音的产生过程,以及不同的语音类型:周期信号、类噪信号以及静音具有的不同特征,时长,谱特征进行介绍。这样对于理解语音信号的特性和特征有很大帮助,这也是后面针对于语音处理的地基。📌 作者:山河君,未经允许禁止转载分类维度清音/浊音元音/辅音。
2026-06-12 10:55:09
953
8
原创 TD-PSOLA 语音变调算法详解与 C++ 实现
PSOLA算法摘要 PSOLA(基音同步重叠相加)是一种经典的语音处理算法,主要用于语音变调、变声和时长调整。其核心原理是通过分析语音中的基频周期,将语音信号切分为基音同步的小段,然后重新排列这些片段并重叠相加来实现音高变换。算法流程包括基频检测、周期标记、窗口截取和重叠相加四个关键步骤。PSOLA的优点在于直接操作波形,保留了语音的自然特性,特别适合变声器、语音合成等应用场景。
2026-06-12 10:52:54
1036
3
原创 从 ACF 到 YIN:基频检测算法原理与实现
基频检测是语音处理中的核心技术,广泛应用于变声、语音合成、音乐分析等领域。本文从周期本质出发,系统分析了基频检测算法:首先介绍自相关(ACF)原理及其高频误检、倍频错误等问题;然后提出改进方案NACF(归一化自相关)和YIN算法,通过波形分析、代码实现和实际测试对比不同方法的优劣。文章还探讨了清音/浊音区别、基频与音高的关系,以及常见基频检测算法的应用场景,为理解语音信号处理提供了实用指导。
2026-05-15 09:30:09
3637
7
原创 一文搞懂矩阵的幂、转置、逆、伴随与分块矩阵
本文从线性代数中最基础但又最核心的几个概念出发,包括:矩阵的幂、转置、可逆矩阵、伴随矩阵以及分块矩阵。这些内容不仅是后续学习(如行列式、特征值分解、线性空间)的基础,在工程实践中(如信号处理、计算机图形学)也被频繁使用。相比单纯记忆公式,更重要的是理解它们之间的结构关系与运算本质。📌 作者:山河君,未经允许禁止转载设 AAA 为 nnn 阶方阵,kkk 个 AAA 连乘称为矩阵的 kkk 次幂:Ak=A⋅A⋯AA^k = A \cdot A \cdots AAk=A⋅A⋯A由定义可以直接得到:Ak
2026-05-15 09:29:04
4008
3
原创 从后验到先验:语音信噪比估计与DD算法详解
本文介绍了语音增强中的关键信噪比指标——后验信噪比和先验信噪比。后验信噪比基于当前帧直接计算,实时性强但波动较大;先验信噪比则通过Decision-Directed算法结合历史信息进行递推和平滑,获得更稳定的估计结果。文章详细推导了两者的数学定义和物理意义,分析了DD算法的核心思想与实现策略,并对比了不同噪声估计方法的优缺点。这些信噪比指标构成了Wiener滤波与MMSE类语音增强算法的基础,广泛应用于语音降噪、回声消除等系统中。
2026-04-13 09:26:27
7701
9
原创 一文搞懂矩阵乘法本质:投影、线性组合与复合变换
矩阵乘法的本质在于线性变换的复合。其"行×列"规则并非人为规定,而是源于线性方程组和向量运算的自然延伸。从数表角度看,矩阵乘法对应行向量与列向量的点积;从函数角度看,它表示线性变换的复合运算;从几何角度看,则体现为向量的线性组合。这种运算具有结合律和分配律,但不满足交换律。通过实际案例(如计算车间产值)可以看出,矩阵乘法能够高效地处理线性关系问题,其核心思想是将多个线性运算整合为单一的变换表示。
2026-04-13 09:25:46
8491
5
原创 一文搞懂矩阵:本质、作用与基本运算(超通俗)
本文系统介绍了矩阵的概念、特性和应用。矩阵本质是结构化数表,其核心价值在于计算能力,能够表示线性变换和关系映射。文章详细讲解了特殊矩阵(零矩阵、三角矩阵、对角矩阵、单位矩阵等)及其性质,并阐述了矩阵与行列式的区别。矩阵运算包括加法、数乘等线性运算,遵循交换律、结合律等规则。最后指出矩阵乘法的"行×列"规则源于向量线性组合的本质,是理解线性代数的关键。矩阵不仅是数据表达工具,更是空间变换的强大运算系统。
2026-03-30 13:51:45
10721
7
原创 行列式计算方法4种核心技巧总结(线性代数第二篇)
本文系统介绍了行列式计算的四大核心方法及其适用场景。化三角法适用于普通数值矩阵,通过行变换转化为三角矩阵计算;拉普拉斯展开适合含较多零元素的行列式,可按行/列展开降阶;爪形行列式针对特殊结构矩阵,有专用计算公式;Vandermonde行列式适用于幂次结构,利用"后减前全排列"口诀快速求解。文章强调解题关键在于先选择方法而非直接计算,并提供了方法选择流程图:优先考虑化三角,其次看零元素决定是否展开,最后检查特殊结构。每种方法都配有典型例题和分步解析,帮助读者掌握不同场景下的最优解法策略。
2026-03-30 09:49:22
9464
4
原创 一句话讲透维纳滤波:从公式推导到语音降噪完整实现(附MATLAB代码)
本文深入解析了维纳滤波在语音降噪中的原理与实现。首先从数学角度推导维纳滤波公式,通过最小均方误差准则得到频域滤波器表达式$H(\omega)=S_{xx}/(S_{xx}+S_{vv})$,并解释其物理意义是按信噪比加权处理。接着介绍了平方根维纳滤波器和参变维纳滤波器两种改进形式,分别具有无偏估计和灵活调节的特性。最后给出了MATLAB实现代码,通过帧处理、噪声估计和频域滤波等步骤完成降噪,实验结果显示维纳滤波能有效抑制噪声能量,相比过减法能更好地保留语音特征。文章从理论推导到工程实践全面阐述了维纳滤波的核
2026-03-20 09:29:04
10272
9
原创 一文彻底搞懂行列式:从方程组到几何意义
行列式本质是从解线性方程组问题中自然产生的数学工具。文章从二元方程组出发,揭示分母表达式a₁₁a₂₂-a₁₂a₂₁的结构共性,从而引出二阶行列式定义。通过几何视角,行列式可理解为向量构成的平行四边形有向面积。三阶行列式扩展为6项排列组合,n阶推广为所有排列乘积的加权和。关键性质如行列互换变号、两行相同为零等都可从面积角度直观理解。拉普拉斯展开提供降维计算方法。行列式核心价值在于判断矩阵可逆性及求解线性方程组。理解其几何意义和结构化特性是掌握行列式的关键。
2026-03-20 09:27:39
12305
2
原创 为什么TDOA 总是跳?一次实验讲清楚声源定位不稳定的真正原因
在实际工程中,很多人在实现 麦克风阵列声源定位(DOA) 时都会遇到一个问题:角度输出不稳定,甚至出现明显跳动。之间不断变化。一开始很多人会认为是 GCC 算法实现问题,但实际上问题往往来自多个方面:麦克风阵列几何结构TDOA 延迟量化误差语音信号非平稳性噪声和混响在上一篇文章四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA中,详细介绍了基于四麦实现的TDOA的原理和代码。阵列几何约束TDOA 量化误差算法与环境影响。
2026-03-10 09:33:18
11005
9
原创 GCC-PHAT、SCOT、Roth、ML到底差在哪?麦克风阵列TDOA算法全面解析
本文深入解析了GCC系列算法在声源定位中的原理与应用。首先阐述了传统互相关方法在时延估计中的局限性,包括噪声抬高基底和混响制造虚假峰值的问题。随后介绍了频域广义互相关(GCC)方法,重点分析了PHAT、ML、Roth和SCOT四种加权策略:PHAT通过谱白化消除噪声影响,ML基于信混比抑制混响频率,Roth针对单通道噪声进行归一化,SCOT则处理双通道自噪声。文章还揭示了GCC与TDOA的转换关系,说明互相关峰值如何转化为声源方向。这些算法广泛应用于智能音箱、视频会议等语音定位系统,为工程师提供了理论基础和
2026-03-10 09:30:00
11123
2
原创 webrtc之AGC1下——自动增益源码流程与策略分析
本文详细介绍了WebRTC中AGC1(自动增益控制)的实现策略与核心流程。主要内容包括: AGC1的三个处理阶段: 预处理阶段:多通道增益聚合与削波检测 处理阶段:VAD检测、响度直方图更新、数字/模拟增益决策 应用阶段:数字增益的实际应用 关键策略分析: 最大增益策略:采用多通道中的最小推荐增益确保安全 削波处理:当失真超过阈值时自动降低增益 响度直方图:通过长期统计确定主流响度区间 实现细节: 使用VAD进行语音活动检测 通过直方图统计历史响度分布 数字/模拟增益的分工与协同 该AGC系统通过精细的统计
2026-02-26 16:06:33
12826
7
原创 webrtc之AGC1上——整体架构与设计逻辑
本文详细介绍了WebRTC中AGC1模块的设计思路、参数配置及工作流程。AGC1提供三种工作模式(自适应模拟/数字和固定数字增益),通过目标电平、压缩增益等参数调节音频信号。文章对比了AGC1与AGC2的差异,指出AGC1适用于老旧项目但存在噪声放大等问题。重点解析了AGC1的参数配置,包括增益模式选择、目标电平设置和压缩增益调整等核心参数,为开发者提供了详细的配置指导。
2026-02-26 16:03:04
12825
6
原创 四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
本文详细介绍了基于TDOA的4麦克风平面声源定位系统实现方案。系统采用GCC-PHAT算法计算时延差,通过最小二乘法求解方向向量,最终得到声源方位角。文章涵盖了阵列设计、算法流程、数学模型推导及核心代码实现,重点解析了GCC-PHAT时延估计、方向向量求解等关键环节,并提供了平滑滤波等优化策略。该方案可实现准确的二维声源定位,适用于语音增强、智能交互等应用场景。
2026-02-25 11:55:52
14012
6
原创 声源定位——TDOA多麦克声源定位全解析
本文详细介绍了基于TDOA(到达时间差)的声源定位技术原理与工程实现。首先阐述了TDOA的基本概念,通过信号到达不同麦克风的时间差计算声源方向,推导出核心公式θ=arccos(c·Δt/d)。文章重点分析了物理约束条件,包括声源远场假设、几何约束和信号采样限制,并提出了亚采样插值和频域补零两种提高精度的方法。针对不同麦克风阵列配置,分别讨论了3麦克风系统的解析解方法和4麦克风以上的最小二乘优化方案,后者能有效提高抗噪性能。最后强调了归一化处理的重要性,为工程应用中的声源定位系统提供了完整的理论框架和实现思路
2026-02-25 11:53:27
14787
2
原创 声源定位——使用ODAS图形化显示语音位置
ODAS是一个开源的嵌入式音频处理系统,专注于实时声源定位、跟踪、分离和语音增强。它采用GCC-PHAT和SRP-PHAT算法进行声源定位,结合多模型卡尔曼滤波实现声源跟踪,并提供延时求和波束形成与MVDR/GSC两种波束形成方式,以及Zelinski和Cohen两种后滤波算法进行语音增强。ODAS支持ROS2扩展,并配有数据可视化工具odas_web。该系统适用于机器人、语音交互、安防监控等场景,具有高性能、低延迟的特点,可在树莓派等嵌入式设备上运行。编译安装过程包括下载源码、配置环境及依赖项,最终生成可
2025-11-18 09:48:13
11854
1
原创 语音增强之谱减法——多带谱减详解与实例
多带谱减法是一种改进的语音增强技术,针对传统谱减法在色噪声环境中的局限性进行优化。该方法将频谱划分为多个子带,对每个子带独立进行噪声估计和谱减操作,从而在不同频段实现差异化的噪声抑制。核心原理包括频带划分、信噪比自适应调节、音乐噪声处理等关键步骤。算法采用灵活的频带划分方式(线性/对数/Mel),结合平滑因子和频带减法因子,在低频抑噪与高频保真之间取得平衡。MATLAB实现过程涵盖预处理、子带处理和后处理三个阶段,有效解决了传统方法在非平稳噪声环境中的性能下降问题。
2025-11-18 09:45:54
11162
1
原创 语音增强之谱减法——基本原理与过减技术详解
本文介绍了语音增强中的经典谱减法。谱减法通过从带噪语音谱中减去噪声谱估计来提升语音清晰度,其核心思想基于加性噪声假设。文章详细分析了幅度谱减法和功率谱减法的数学模型,并探讨了相位谱重建对语音质量的影响。针对谱减法中可能产生的音乐噪声问题,重点阐述了过减技术(Berouti法)的原理,通过调节过减因子α和谱下限参数β来平衡噪声抑制与语音失真。最后给出了MATLAB实现示例,直观展示了谱减法的实际降噪效果。该方法以其简单高效的特点,成为语音增强领域的经典算法之一。
2025-10-23 09:57:08
11274
2
原创 语音信号处理三十二——时频分析之STFT和OLA
文章摘要: 本文介绍了短时傅里叶变换(STFT)的原理与工程实现。STFT通过滑动窗口对信号分段进行傅里叶变换,解决了传统FT无法分析非平稳信号频率随时间变化的局限。文章对比了时域、频域和时频分析的特点,详细阐述了STFT的数学定义和实现步骤,包括分帧、加窗、FFT计算等关键环节。重点讨论了工程实现中的窗函数选择和重叠率设定对时频分辨率的影响,并给出了不同应用场景下的参数建议。最后通过MATLAB代码演示了STFT处理非平稳信号的实际效果,直观展示了其时频分析能力。文章还提到后续将介绍iSTFT的重构方法(
2025-10-23 09:54:21
10608
2
原创 webrtc之语音活动下——VAD人声判定原理以及源码详解
本文介绍了基于高斯混合模型(GMM)的语音活动检测(VAD)技术。文章首先讲解了单高斯分布和混合高斯模型的数学原理,并通过考试成绩的实例进行说明。接着详细解析了WebRTC中VAD模块的高斯模型参数来源与使用方法,包括噪声和语音特征的离线训练过程及参数存储方式。文章还通过Matlab绘制了6个子带的噪声高斯分布图像,展示了G0和G1两个高斯分量的加权混合效果。最后简要提及了VAD的人声/噪声决策机制和在线更新策略,以及用于平滑检测结果的hangover机制。全文结合数学公式、代码和可视化图表,深入浅出地阐述
2025-09-15 11:27:21
13563
2
原创 语音信号处理三十一——常用的时域/频域平滑滤波
文章摘要: 本文介绍了语音信号处理中常用的平滑滤波方法,主要包括时域和频域技术。重点分析了移动平均、指数加权、双时间常数和中值滤波等时域方法,详细阐述了它们的数学原理、应用场景及优缺点。文章通过Matlab代码示例展示了移动平均和指数加权滤波的实际效果,包括信号平滑处理前后对比及局部细节分析。不同平滑方法在延迟、复杂度和效果上各有特点,工程师需根据具体应用需求(如VAD、AGC、噪声抑制等)选择合适的方法。文末总结了各方法的适用场景和参数调整注意事项,为音频信号处理提供了实用参考。
2025-09-15 11:24:01
10679
1
原创 webrtc之语音活动上——VAD能量检测原理以及源码详解
本文介绍了WebRTC中语音活动检测(VAD)的核心实现。VAD通过能量统计和GMM模型区分语音与非语音片段,主要包含创建初始化、模式控制和人声判断三大功能模块。其中重点解析了能量统计算法,包括频带划分原理和实现细节,通过全通滤波器将语音信号划分为6个非等宽频带,并采用定点运算进行能量特征提取。文章还分析了降采样处理的必要性及具体实现策略,为后续基于高斯模型的人声判定奠定基础。
2025-09-04 11:05:28
12007
1
原创 webrtc之高通滤波——HighPassFilter源码及原理分析
文章摘要 WebRTC中的高通滤波器(HPF)用于抑制100Hz以下低频噪声(如电源嗡声、桌面震动等),采用二阶IIR滤波器实现。其核心通过CascadedBiQuadFilter处理,支持全频带或子带独立滤波,根据采样率(16k/32k/48k)选择Butterworth参数。开启条件包括手动配置或AEC模块自动触发,创建时需指定采样率和通道数。算法通过差分方程实现低复杂度实时滤波,默认对多子带信号分通道处理,16k单通道数据仅需单次滤波。滤波器串联方式由参数决定,兼顾性能与效果优化。
2025-09-04 11:00:02
10701
2
原创 webrtc之子带分割下——SplittingFilter源码分析
本文介绍了WebRTC中SplittingFilter模块的实现原理与流程。该模块主要使用滤波器组进行子带分割,为后续回声消除处理做准备。文章首先分析了SplittingFilter的创建时机,通过AudioBuffer根据采样率判断频带划分需求。核心流程包括频带分割(划分为2或3个子带)与合并,详细展示了TwoBandsAnalysis等关键函数的实现。算法层面采用QMF正交镜像滤波器、多项分解和全通QMF滤波器等技术,通过三个一阶全通滤波器实现all pass qmf结构。该模块将输入信号按不同频段分割
2025-07-14 10:55:29
10724
4
原创 webrtc之子带分割上——All-pass QMF滤波器
本文介绍了All-pass QMF滤波器的原理与设计方法。文章首先回顾了传统QMF滤波器的镜像对称结构,然后重点阐述了基于全通滤波器的All-pass QMF设计:通过一阶IIR全通滤波器构建互补分析滤波器组,利用相位对称性实现近似正交分解。理论推导表明,低通和高通滤波器的幅频响应分别呈现cos和sin特性。与传统QMF相比,All-pass QMF具有计算复杂度低的优势,但存在相位非线性问题。文章还通过Matlab仿真验证了一阶全通滤波器的特性,为后续工程实现提供理论基础。该方法适用于资源受限的语音处理场
2025-07-14 10:42:13
10648
2
原创 语音信号处理三十——高效多相抽取器(Polyphase+Noble)
本文介绍了高效多相抽取器的设计方法,通过结合Polyphase多项分解和Noble恒等式,可以显著降低多速率系统中的计算复杂度。Polyphase分解将FIR滤波器拆分为多个子滤波器,而Noble恒等式允许将滤波操作移至抽取/插值环节前后,避免冗余计算。这种组合方案在保持系统功能的同时,能减少约M倍的计算量(M为抽取因子)。文章以QMF滤波器组为例,展示了该方法在频带分割中的高效实现,为信号处理中的多速率系统优化提供了重要技术路径。
2025-06-11 13:45:57
10513
2
原创 语音信号处理二十九——QMF滤波器设计原理与实现
摘要:本文深入介绍了正交镜像滤波器(QMF)的设计原理与应用,重点阐述了其在子带分解与重构中的关键技术。QMF通过镜像对称的低通和高通滤波器组实现信号频带分割,并通过下采样和上采样实现高效处理。文章详细推导了滤波器镜像对称关系的数学原理,分析了频率移位和时间反转对频谱的影响,并解释了采样过程中可能产生的混叠问题。QMF滤波器设计需满足功率守恒条件,确保信号完美重构。本文为数字信号处理中的多速率滤波系统提供了理论基础和实现方法。(149字)
2025-06-11 09:46:24
10358
2
原创 从零基础深入学习的语音信号处理系统
本系列博客围绕展开,涵盖从基础信号理论到频域分析、滤波器设计、FFT 实现等多个方面,适合初学者系统学习与工程开发参考。本系统整理汇总了语音信号处理中的关键模块内容,共分为七大部分。版本声明:山河君,未经博主允许,禁止转载。
2025-04-18 15:06:11
10568
1
原创 语音信号处理二十八——采样率转换
做过音视频相关工作的同学都知道,采样率转换在不论是音频还是视频编码或者处理中,都经常用到。而采样我们都知道,是单位时间内对于信号等间隔进行量化编码的过程。我们将单采样率系统称为单速率系统,多采样率系统称为多采样率系统,例如手机、wifi既有语音信号也有图像信号。这也是为什么要进行采样率转换的原因。本篇文章中是针对于音频采样率转换原理做一个深入介绍。版本声明:山河君,未经博主允许,禁止转载。
2025-04-18 14:59:26
10796
1
原创 语音信号处理二十七——FIR滤波器设计(窗函数法)
在之前的文章中,已经介绍了如何实现一个数字IIR滤波器,本篇文章将会介绍如何实现一个FIR滤波器,包括它的设计过程、设计方法,其中将会详细介绍设计方法中的窗函数法。并且在文章的最后,将会真实的实现一个高通的FIR滤波器。本篇文章将会大量引用之前文章的知识,包括DTFT的逆变换、DTFT的性质、相频响应的特点、Z变换的有理函数、频谱加窗的影响、IIR滤波器设计指标等等。不过不用担心,本篇文章会将这些知识进行整理并且会在对应处附上之前文章的链接,以方便读者阅读。版本声明:山河君,未经博主允许,禁止转载。
2025-04-10 10:01:02
11582
1
原创 语音信号处理二十六——双线性不变法实现低通滤波器
在上一篇文章中,给出了使用冲激响应不变法设计IIR滤波器的方法,使用冲激响应不变法设计滤波器优点在于系统的冲激响应逼近于原始系统的频率响应,所以可以保持线性相位,但是可能会出现混叠的现象,所以适用于低通滤波器。本篇文章将会使用另外一种方法——双线性不变法来设计一个IIR滤波器,设计的流程是一样的,可以参考上一篇的文章。在文章开始,会先介绍双线性不变法的基本原理:这种滤波器可以适用于多种选频滤波器,但是由于对比原系统是一种非线性相位,即有可能出现失真的现象。
2025-04-10 09:58:52
10677
1
原创 语音信号处理二十五——脉冲响应不变法实现低通滤波器
上一篇文章中,我们介绍了滤波器的设计流程,并且提到了从模拟滤波器传递函数到数字滤波器传递函数的两种转变方法:脉冲响应不变法、双线性转换法。本篇文章将使用脉冲响应不变法设计出一个低通滤波器。在文章的开始,将会对于脉冲响应不变法原理、频域、幅频响应做一个深入解析。然后根据给定的指标,通过巴特沃斯滤波器得到数字滤波器的传递函数,并且在计算机中进行低通滤波的验证。|版本声明:山河君,未经博主允许,禁止转载保持模拟系统的冲激响应不变,而离散化后的数字滤波器具有与原模拟滤波器相同的冲激响应。即ha[t]h_a[t]ha
2025-03-31 10:01:54
13026
1
原创 语音信号处理二十四——IIR滤波器设计方法
本章内容会先介绍滤波器的指标。设计一个IIR滤波器需要考虑到它的通带、阻带和过渡带,以及它的应用场景。随后再介绍设计IIR滤波器的方法和流程。其中在设计数字滤波器时,需要考虑它的通带截止频率和阻带截止频率。而数字滤波器的设计方法时是依靠逼近模拟滤波器的方式实现,所以本文中会介绍三种常见的模拟滤波器,通过这三种模拟滤波器可以设计出在计算机中应用的数字滤波器。版本声明:山河君,未经博主允许,禁止转载本文中给出了滤波器设计时的指标,并且根据逼近模拟滤波器的方法设计数字滤波器的过程。
2025-03-31 10:00:01
10428
1
原创 语音信号处理二十三——频谱泄露、加窗以及栅栏效应
前面已经介绍过如何在数字系统中如何进行傅里叶变换,总的来说是对于一个离散无限长的序列进行截断的DTFT再进行频域采样获得DFT,或者是对于DFS取其中一个周期,然后再进行时间抽取或者频率抽取方式最终得到了FFT。本章内容是对于无限长非周期序列进行DFT的过程中,如何进行截断,以及时域截断带来的频谱泄露是如何产生的,同时对于DTFT频域采样会有什么影响,并且如何解决频谱泄露做一个深入介绍。版本声明:山河君,未经博主允许,禁止转载我们知道在数字系统中,处理的是有限时长信号,而不能处理无限时长信号。
2025-03-24 10:09:59
12473
1
原创 语音信号处理二十二——FFT(DIF-FFT以及实现代码)
上一篇文章中,我们介绍了FFT——快速傅里叶变换的一种实现方式:DIT-FFT按照时间抽取减少运算实现。本篇文章中将会介绍另外一种实现方式:DIF-FFT按照频率抽取的方式进行实现。并且值得注意的是,DIF-FFT的应用场景多数在于硬件上,对于两种计算方式实际上复杂度是一样的。本文中将会对于DIF-FFT的算法推导,以及两种算法的区别做个深入解释。并且同样会使用C++进行实现。版本声明:山河君,未经博主允许,禁止转载对比项DIT-FFT(时间抽取)DIF-FFT(频率抽取)计算顺序。
2025-03-24 10:09:16
12481
1
原创 语音信号处理二十一——FFT(DIT-FFT以及实现代码)
上一篇文章中,对于DFT进行了介绍,而FFT是基于DFT的一种快速算法,也是在计算机中使用的算法。而实现FFT会有两种方式,一种叫做DIT-FFT,是基于时间抽取进行实现的。另一种叫做DIF-FFT,是基于频率抽取进行实现的。本篇文章将主要介绍DIT-FFT,对它的实现思想做一个深入的解释。并且,在最后将使用C++的方式进行实现。|版本声明:山河君,未经博主允许,禁止转载在上一篇音频进阶学习二十——DFT离散傅里叶变换文章中对于DFT我们知道它的表达式是:X[k]=∑n=0N−1ej(−2πknN)x[n
2025-03-18 13:45:33
14625
1
原创 语音信号处理二十——DFT离散傅里叶变换
在之前的文章中,我们介绍了对于系统频域上的分析,主要集中在傅里叶变换和Z变换后对于频率响应的分析,包括幅频响应,相位响应和群延迟,并介绍了LTI系统中的幅频响应相同系统、全通系统、最小相位系统等系统。在接下来的文章中,将会真正的学习在计算机中如何实现傅里叶变换,以及通过傅里叶变换实现之前所介绍的系统。本篇文章将会介绍新的傅里叶变换——DFT,即离散傅里叶变换的分析和解释,这是一种可以通过数字系统实现的傅里叶变换。然后对于DFT的性质将会做一个归纳。版本声明:山河君,未经博主允许,禁止转载很明显,
2025-03-18 13:44:55
14215
1
原创 语音数字信号处理——GCC-PHAT计算回声时延
从结果上来看其实会偶尔存在误差,这是由于fft的精度问题,在实际使用中受到环境噪声影响可能误差会更大。其实这种方法最好结合频带分割,对于低频、中频、高频给予不同的权重,而这种权重可以根据能量分布来进行计算。本文中将不过多展示了。
2025-03-10 11:34:28
12086
1
原创 语音信号处理十九——逆系统(简单进行回声消除)
在上一篇音频进阶学习十八——幅频响应相同系统、全通系统、最小相位系统文章中,我们在最小相位系统中提到了逆系统:一个稳定因果的LTI系统,同时会有一个稳定因果的逆系统。本文中将会介绍逆系统的含义,通过对于零极点的分析,来对比逆系统和原系统的关联。最后,将会使用逆系统来对于给定的近端信号和参考信号来进行回声消除。版本声明:山河君,未经博主允许,禁止转载如果一个系统的输入是xnx[n]xn,经过系统HzH(z)Hz后系统的输出是yny[n]yn,那么将yny[n]yn通过系统。
2025-03-10 11:34:01
12324
1
四麦克风声源定位实战:基于 GCC-PHAT + 最小二乘法实现 DOA
2026-02-25
linux arm和x86-64音频alsa采集和渲染
2024-08-09
vs2019补丁.zip
2020-05-11
C/C++ DevTools Support (DWARF)
2021-05-18
AlterMarkdownTool.zip
2020-04-08
mysql_QT.rar
2020-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅