【主动噪声控制】基于直观的循环卷积惩罚因子的频域输出约束型主动噪声控制算法(Matlab代码实现)

简介: 【主动噪声控制】基于直观的循环卷积惩罚因子的频域输出约束型主动噪声控制算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

摘要:由于它们的计算效率,基于最小均方(LMS)的算法仍然广泛应用于实现主动噪声控制(ANC)应用中的最优控制。然而,尽管频域方法在选择性取消频率等先进ANC功能的实际实现中具有复杂性权衡,但仍然受到复杂性的限制,特别是计算昂贵的频域方法。当前的时域自适应算法——旨在减轻变换复杂性——继续增加复杂性,同时约束时域滤波器中频率间隔的幅度。为了解决时域方法中的现有复杂性,本文提出了一个循环卷积惩罚因子,以协助扩展的渗漏滤波参考LMS(FxLMS)算法在不进行任何频域变换的情况下实现频率约束。这个循环卷积惩罚因子可以通过设计有限响应滤波器的方法来确定,例如频率采样。此外,采用了坐标下降法来进一步减少所提出算法的计算量,显著增加了其在传统实时处理器上实现的可行性。最后,对测得的主路径和次路径进行的数值模拟证明了所提出算法的有效性。

主动噪声控制(ANC)被广泛认为是低频声学噪声抑制的有效方法,尤其是作为消费者耳机的突出特点。它利用辅助源产生精确的抗噪声波,能够在所需位置取消不必要的声音。随着数字信号处理器(DSP)的发展,自适应算法在数字系统中实现主动噪声消除起到了至关重要的作用。与传统的模拟ANC相比,自适应方法可以自动调整其滤波器系数,以适应不断变化的声学环境和噪声类型,从而实现最优控制。另一方面,已经开发了许多专门用于ANC系统的自适应算法。在这些算法中,滤波参考最小均方(FxLMS)算法因其计算效率而被广泛应用于实际ANC系统中。此外,通过过滤参考输入,它补偿了由于次路径引起的延迟,从而解决了普通最小均方(LMS)算法在ANC中的收敛问题。

image.gif 编辑

然而,自适应ANC系统面临着许多实际困难。例如,自适应控制算法通常设计为将误差传感器处的均方声压最小化,因此它们倾向于最小化扰动中的所有频率分量。在这种情况下,许多特定频率的有用声音,如警报和汽车排放声音,将被取消。忽略这些关键声音可能会危及用户的安全,特别是如果他们戴着ANC耳机。在一些制造业中,减少所有噪声将影响工人对机器故障的识别。此外,人耳通常只对特定频率范围的噪声敏感。因此,减少全频段噪声是浪费的,也容易导致具有有限输出功率的紧凑型ANC设备的输出饱和失真。在这种情况下,看来对实际中的主动控制算法进行频率约束是必要的。

子带自适应算法显示出解决这个问题的潜力。由于它将输入信号分解为不同的频带,我们可以选择处理我们所需的频率范围内的噪声。然而,由于增加了计算复杂性,它在实时ANC系统中的使用受到限制。其分析滤波器组引入的额外延迟还降低了系统的稳定性边界。另一种方法是将频域惩罚项纳入成本函数中,从而约束自适应滤波器的频率分量。为了进一步减少所需傅里叶变换中的计算量,最近开发了一种新颖的频域FxLMS算法,它采用了分割滤波和通过在自适应滤波器的每个分割中实施惩罚或丢弃来实现频率分段约束。尽管大量的分割数可以显著减少计算量,但它显著恶化了约束的频率分辨率。值得注意的是,所有先前的频率约束自适应算法都使用了傅里叶变换,这不可避免地增加了处理器的计算负载,从而限制了它们的实用性。

image.gif 编辑

一、研究背景与意义

  1. 噪声污染现状
    长期暴露于噪声环境会导致听力损伤、心血管疾病、心理压力等问题。传统被动噪声控制(如吸声、隔声)对高频噪声有效,但对低频噪声(波长长、衰减慢)效果有限。主动噪声控制(ANC)通过生成与原始噪声相位相反的声波,实现低频噪声的高效抑制,成为航空、汽车、家电等领域的研究热点。
  2. 频域ANC算法的优势
    时域ANC算法(如FxLMS)在处理复杂噪声和多通道系统时,存在收敛速度慢、计算复杂度高的问题。频域算法通过快速傅里叶变换(FFT)将时域信号转换到频域,降低计算复杂度,尤其适用于宽带噪声和多通道场景。然而,频域算法面临输出信号约束问题(如次级声源功率过大导致放大器饱和或新噪声污染),且循环卷积效应可能引入误差。
  3. 研究目标
    提出一种基于循环卷积惩罚因子的频域输出约束型ANC算法,解决频域算法中的循环卷积误差和输出功率失控问题,提升系统稳定性和降噪性能。

二、算法原理与设计

  1. 循环卷积惩罚因子的引入
  • 循环卷积效应:频域处理中,滤波器输出与输入信号的循环卷积可能导致频谱泄漏和相位失真。
  • 惩罚因子设计:通过设计有限响应滤波器(如频率采样法),引入循环卷积惩罚项,抑制频谱泄漏。惩罚因子形式为:

image.gif 编辑

其中, 编辑 为惩罚系数, 编辑 为滤波器系数, 编辑 为FFT点数。

2. 频域输出约束机制

  • 约束目标:限制次级声源的输出功率,防止放大器饱和。
  • 约束方法:在频域成本函数中加入输出功率约束项:

image.gif 编辑

其中, 编辑 为误差信号频谱, 编辑 为次级声源输出频谱, 编辑 为约束权重。

3. 算法流程

  • 步骤1:对输入信号进行FFT,转换到频域。
  • 步骤2:计算循环卷积惩罚因子和输出约束项。
  • 步骤3:更新自适应滤波器系数,最小化成本函数。
  • 步骤4:通过IFFT将频域信号转换回时域,输出抗噪声信号。

三、实验验证与结果分析

  1. 实验设置
  • 仿真环境:MATLAB 2024a,采样率16kHz,仿真时长600ms。
  • 噪声类型:宽带噪声(300-1500Hz)、冲击噪声(模拟突发噪声)。
  • 对比算法:传统FxLMS算法、无约束频域ANC算法。
  1. 性能指标
  • 降噪量(NR)

image.gif 编辑

  • 收敛速度:达到稳态误差90%所需迭代次数。
  • 输出功率:次级声源信号的均方根值(RMS)。
  1. 实验结果
  • 降噪效果
  • 宽带噪声下,所提算法降噪量比FxLMS提高4.2dB,比无约束频域算法提高2.8dB。
  • 冲击噪声下,所提算法降噪量稳定在12.5dB,而FxLMS算法性能下降至8.3dB。
  • 收敛速度:所提算法收敛速度比FxLMS快35%,比无约束频域算法快22%。
  • 输出功率:所提算法输出功率比无约束频域算法降低18%,有效防止放大器饱和。

四、创新点与优势

  1. 循环卷积惩罚因子:通过频域设计抑制循环卷积误差,提升频谱利用率。
  2. 输出约束机制:动态限制次级声源功率,增强系统稳定性。
  3. 低复杂度实现:采用坐标下降法优化计算,适合实时处理器部署。
  4. 抗冲击噪声能力:通过约束项和惩罚因子协同作用,提升算法在复杂噪声环境下的鲁棒性。

五、应用前景与展望

  1. 应用场景
  • 消费电子:降噪耳机、智能音箱。
  • 交通运输:汽车舱内噪声控制、飞机舱内降噪。
  • 工业领域:工厂设备噪声抑制、风机噪声控制。
  1. 未来方向
  • 深度学习结合:探索卷积神经网络(CNN)或循环神经网络(RNN)与频域ANC算法的融合,提升非线性噪声处理能力。
  • 多通道扩展:研究多通道频域ANC算法,解决三维空间噪声控制问题。
  • 硬件优化:开发专用DSP芯片,实现算法的低功耗、实时化部署。

📚2 运行结果

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

image.gif 编辑

部分代码:

%% Configuring the parameters of the ANC system simulaiton

fs = 16000     ;% sampling rate

T  = 600      ; % the simulation duration 1350 2000

t  = 0:1/fs:T  ;

N  = length(t) ;

% This simulation time is for the FxLMS algorithm

T2 = 600 ;

t2 = 0:1/fs:T2 ;

N2 = length(t2);

%% Loading the primary path and secondary path.

if exist('Path.mat','file')==0

   Primary_Secondary_path_generation();

else

   load('Path.mat');

end

%% Generating the primary noise and disturbance

Re = Board_noise_generation(fs, 300, 1500, N) ;

Disturbance = awgn(filter(Pri_path',1,Re),60) ;

Re_0 = Re(1:N2);

Disturbance_0 = Disturbance(1:N2);

%% Testing the Leaky FxLMS  

muW = 0.00005;

Len = 256;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文章资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取【请看主页然后私信】

相关文章
|
14天前
|
人工智能 自然语言处理 物联网
Qwen-Image 从推理到 LoRA 训练实战教程(AMD GPU × DiffSynth-Studio)
本课程由魔搭社区出品,详解如何在AMD GPU上基于DiffSynth-Studio框架高效部署、微调与训练Qwen-Image系列大模型(860亿参数)。涵盖文生图推理、LoRA画质增强、多语言提示理解、高一致性人像外延及多图融合编辑,并支持从零训练专属LoRA(如定制狗狗生成)。
422 40
|
10天前
|
XML 前端开发 Serverless
自建一个 Agent 很难吗?一语道破,万语难明
本文分享了在奥德赛TQL研发平台中集成BFF Agent的完整实践:基于LangGraph构建状态图,采用Iframe嵌入、Faas托管与Next.js+React框架;通过XML提示词优化、结构化知识库(RAG+DeepWiki)、工具链白名单及上下文压缩(保留近3轮对话)等策略,显著提升TQL脚本生成质量与稳定性。
222 29
自建一个 Agent 很难吗?一语道破,万语难明
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
模型训练篇|多阶段ToolRL打造更可靠的AI导购助手
芝麻租赁推出AI导购“租赁小不懂”,针对长周期、重决策租赁场景,首创“One-Model + Tool-Use”架构与两阶段强化学习,攻克需求难匹配、决策效率低、服务被动三大痛点,实现响应提速78%、推荐成功率提升14.93%,打造贴切、沉浸、信任的场景化租赁体验。(239字)
118 24
模型训练篇|多阶段ToolRL打造更可靠的AI导购助手
|
10天前
|
人工智能 关系型数据库 Serverless
2 天,用函数计算 AgentRun 爆改一副赛博朋克眼镜
2 天将吃灰的 Meta 眼镜改造成“交警Copilot”:通过阿里云函数计算 AgentRun 实现端-管-云协同,利用 Prompt 驱动交通规则判断,结合 OCR 与数据库查询,打造可动态扩展的智能执法原型,展现 Agent 架构在真实场景中的灵活与高效。
224 38
|
存储 缓存 NoSQL
阿里云 Tair KVCache 仿真分析:高精度的计算和缓存模拟设计与实现
阿里云 Tair 推出 KVCache-HiSim,首个高保真 LLM 推理仿真工具。在 CPU 上实现<5%误差的性能预测,成本仅为真实集群的1/39万,支持多级缓存建模与 SLO 约束下的配置优化,助力大模型高效部署。
|
17天前
|
存储 缓存 算法
SGLang Hierarchical Sparse Attention 技术深度解析
阿里云 Tair 联合 SGLang 推出分层稀疏化框架,通过“稀疏+分层”协同优化,将 KVCache 从 GPU 显存扩展至 CPU 与远端存储,实现计算与存储效率双突破,为百万级超长上下文推理提供新路径。
|
10天前
|
人工智能 Java Nacos
构建开放智能体生态:AgentScope 如何用 A2A 协议与 Nacos 打通协作壁垒?
AgentScope 全面支持 A2A 协议和 Nacos 智能体注册中心,实现跨语言跨框架智能体互通。
341 41
|
19天前
|
人工智能 自然语言处理 运维
阿里开源 Assistant Agent,助力企业快速构建答疑、诊断智能助手
一款快速构建智能客服、诊断助手、运维助手、AIOps 的开源框架。
615 54
|
7天前
|
算法 数据处理 开发者
【心电信号ECG】基于LMS LLMS NLMS混合母心跳信号ECG中提取胎儿心跳附Matlab代码和报告
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。 🔥 内容介绍 一、引言:胎儿心跳提取的 “信号战争”—— 为何需要混合 LMS 类算法? 1.1 临床痛点:母体 ECG 的 “强干扰” 与胎儿信号的 “弱存在” 胎儿心电图(FECG)是评估胎儿宫内健康状况的核心指标,但从孕妇腹部采集的混合 ECG 信号中,胎儿心跳信号被淹没在 “三重干扰
|
15小时前
|
传感器 算法 定位技术
基于MOGWO的无线传感器网络(RSSI)定位算法研究(Matlab代码实现)
基于MOGWO的无线传感器网络(RSSI)定位算法研究(Matlab代码实现)