文章目录

  • 前言
  • 一、次级路径的辨识
  • 二、滤波器阶数的选择
  • 三、多通道算法
    • 3.1、陷波滤波器
    • 3.2、多通道算法
  • 总结

前言

噪声主动控制在实际应用的过程中其实存在很多的问题,比如说次级路径辨识时激励源噪声选择问题,滤波器阶数等诸多问题的选择和优化。


一、次级路径的辨识

在主动降噪开发之一中并未考虑次级次级路径的问题,但在实际中,扬声器到麦克风之间是存在一定的距离,扬声器到我们耳朵之间也存在一定的距离,那么声音在传播的过程中就会存在一定的衰减。
假设,传递路径上的传递函数为h(t),那么在扬声器输出的信号f(t)和mic接收到的信号g(t)就存在以下关系:
g(t) = f(t)*h(t)
两者为卷积的关系,表现在频域上就是相乘。那么问题来了,怎么获得g(t)??,其准确性对后续噪声的控制影响极大。目前存在三种激励方式,分别为白噪声,线性正弦扫频和指数正弦扫频,白噪声自不用说,后两者对应的频谱如下:
实际上,根据人耳朵的声学特性,更符合指数正弦臊扫频,但在实际应用中会根据实际情况(扬声器频响,时间的长短,降噪频带范围等)进行选择,一般来说,白噪声的频谱更为丰富,所需激励时间也较短,得到的响应也含有较为丰富发频谱特性,应用较广。
部分代码如下:

%% 线性扫频
t1 = 1/fs:1/fs:t0;
y2 = chirp(t,0,10,500,'quadratic'); % 自带程序生成的扫频;
beta = (endFre-startFre)/t0;
y1 = A*sin(2*pi*(0.5*beta*t1.^2+startFre*t1));
subplot(131)
plot(t1,y1)
xlabel('时间/s')
ylabel('线性扫频幅值')
subplot(132)
pspectrum(y1,fs,'spectrogram','FrequencyLimits',[10 1000],'TimeResolution',0.2, ...'OverlapPercent',99,'Leakage',0.85)
subplot(133)
pspectrum(y1,fs,'FrequencyLimits',[10 1000])

二、滤波器阶数的选择

根据激励得出的响应,计算出对应的传递函数,这其实有两种方法,第一,分别计算对应的频谱特性,然后再逆傅里叶变化,第二,就是采样LMS算法进行辨识,这是最简单和最方便的,效率最高的一种方法,这两种方法辨识的结果如下:
可见,其前128阶趋势基本一致,相对而言,LMS识别出的冲激响应幅值较大,而反变换则在0处存在一个极大值,这主要是由于信号存在直流分量引起的,需要在实际中进行甄别。
对识别出的传递函数的阶数需要进行优化,优化的前提就是根据实际硬件的承受能力,也就是算力的问题,毕竟阶数越大,延迟就会越大,DSP在计算FIR滤波器时需要的时间就越长,功耗也很大。不同滤波器阶数的比较:

部分代码:

% 初始化参数
en = zeros(itr,1);             % 误差序列,en(k)表示第k次迭代时预期输出与实际输入的误差
W  = zeros(M,itr);             % 每一行代表一个加权参量,每一列代表-次迭代,初始为0% 迭代计算
for k = M:itr                  % 第k次迭代,保证输入延迟后的信号有效,只有iter-M次迭代;x = xn(k:-1:k-M+1);        % 将输入信号延迟,使得滤波器的每个抽头都有输入y = W(:,k-1).' * x;        % 滤波器的输出en(k) = dn(k) - y ;        % 第k次迭代的误差 % 滤波器权值计算的迭代式W(:,k) =0.9* W(:,k-1) - 2*mu*en(k)*x ; % 滤波器系数更新向量,0.9的系数可以防止泄露;
end

三、多通道算法

3.1、陷波滤波器

为什么会提到这滤波器???,主要是因为噪声主动控制,特别是对于发动机噪声主动控制技术,主要应用的是窄带技术,简单来说就是对单个频率进行控制,那么陷波滤波器对应的频响为:

对应的特性在点击这里讲的更清楚。
那么,既然是对单个频率进行处理,我们应该怎么模拟这个信号呢,那肯定是正余弦信号,我们都知道任何信号都是有正余弦信号叠加而成,只要能够叠加出对应的频率就可以。

3.2、多通道算法

解决上述问题之后,已经完成80%,剩下的只剩20%了,现实告诉我们,任何事都存在二八分成,而这个“二”是占比最大的,那当然是最重要的了,多通道算法一般采用下面的框图:
说简单,其实也简单,就是把向量数据转换为矩阵数据而已。那么对于发动机噪声,对应的结果为:
所控制的30Hz,130Hz和195Hz都实现了峰值降低的目的,总声压OA由53.43dB降到52.39dB。

部分代码如下:

clc
clear
close all
opengl software
% load Sn.mat
load DsIdle.mat % 第一个通道;
load PsIdle.mat % 第二个通道; 通道的个数可以根据实际情况(需要降噪的个数进行添加)进行添加。
load IRF_GLOBAL_1.mat
%%
% Signal = Idle(1:end,2);
t = DsIdle(1:40960,1);
Sn1 = IRFGlobal(1:128)'; % 主驾传递函数,存在4个扬声器
Sn2 = IRFGlobal(129:256)';
Sn3 = IRFGlobal(257:384)';
Sn4 = IRFGlobal(385:512)';
Ps1 = IRFGlobal(513:640)'; % 副驾传递函数,存在4个扬声器;
Ps2 = IRFGlobal(641:768)';
Ps3 = IRFGlobal(769:896)';
Ps4 = IRFGlobal(897:1024)';
fs = 40960;
f1 = 32.5; % 目标频率1;
f2 = 130;  % 目标频率2;
f3 = 195;  % 目标频率3;
mu1 = 0.005; % 通过调节这些参数可以优化降噪后的效果;
mu2 = 0.00082; % 分别对应不同的阶次收敛步长;
mu3 = 0.00081;% 可以根据实际情况进行调整;
M = 128; % 滤波器阶数;
% t = 0:1/fs:11;
x1 = sin(2*pi*f1*t);
x2 = sin(2*pi*f2*t);
x3 = sin(2*pi*f3*t);

总结

由于这是一个综合多学科问题,噪声主动控制技术在实际的应用中不仅存在上述问题,最主要还有硬件性能的问题,包括扬声器频响,DSP芯片算力问题,AD、DA 转换问题。

主动降噪开发之四——多通道算法实现相关推荐

  1. 主动降噪(ANC)算法开发参考书目

    本人也是初级水平,仅供参考和交流 需要部分基础知识 现控(基本操作) 最少需要看的地方:一章,二章,三章 信号系统-奥本海姆(基本操作) 最少需要看的地方:(都需要基本了解,看的头大的话不需要特别深入 ...

  2. matlab 高斯迭代代码_主动降噪与双麦降噪原理与实现前篇——LMS算法的matlab实现...

    LMS算法作为主动降噪与双麦降噪的基础算法,还是非常重要的,这里不多说原理了,后面我慢慢更这一部分. 直接上代码,建议感兴趣的朋友先看看原理再看代码: clear

  3. 基于LMS及FxLMS算法的ANC主动降噪仿真分析

    ANC主动降噪原理 仿真模型 仿真结果 权重收敛过程  模型获取:置顶文章底部获取方式

  4. 技术系列课|“主动降噪”到底有多厉害?

    "大音希声,大象无形".当世界底色从泼墨山水变成钢筋混凝土,我们的生活也被各种各样的噪音充斥. 平稳噪音,例如白噪.空调/风扇噪音.飞机噪音等:以及非平稳噪音,例如人声噪音,车辆噪 ...

  5. matlab降噪报告,基于matlab主动降噪实验.docx

    基于matlab主动降噪实验 SHANGHAI JIAO TONG UNIVERSITY 实验三 主动降噪实验 指导老师:王旭永 小组成员:吴淑标 5110209352 汤剑宏 5110209355 ...

  6. ANC主动降噪,FFT方案与FxLMS方案比较

    ANC主动降噪,FFT方案与FxLMS方案比较 ANC方案比较 ANC原理 编程环境 FFT降噪原理 FFT降噪缺陷 FxLMS原理 ANC方案比较 先说我的结论,FFT方案相对简单易懂,适合初学降噪 ...

  7. 转载_Feedforward ANC 主动降噪原理

    概述 ANC指Active Noise Control,主动降噪.基本原理是降噪系统产生与外界噪音相等的反向声波,将噪音中和.图1是feedforward式主动降噪耳机的示意图.ANC芯片放置在耳机内 ...

  8. 看电影适合什么蓝牙耳机?四款主动降噪高品质蓝牙耳机测评

    有时候周末总是希望蜗居在家里,选择收藏已久特别想看的电影,戴上耳机,点上炸鸡喝点快乐水,剩下的时间和电影相伴:遇到想追的电视剧可以随时随地的带上耳机,无论身处多么嘈杂的环境也要坚持刷完:今天带来的四款 ...

  9. 设计一款主动降噪(ANC)耳机

    在我最新的文章(主动降噪发展趋势.概念及技术难题)中,阐述了现有的各种主动降噪拓扑结构,并对原始设计商和合约制造商在生产过程中遇到的困难进行了分析.开发过程的另一个难题是主动降噪回路本身.本文将叙述以 ...

最新文章

  1. sprintf、strcpy、strncpy及 memcpy 函数,请问这些函数功能有什么区别?配实例详解!
  2. Python Set Literals
  3. 2.5 matlab稀疏矩阵
  4. 借助联合体union的特性实现检测当前计算机环境采用的是大端模式还是小端模式
  5. 011 吃药call功能分析和代码编写
  6. 【数据结构】B树的理解
  7. 时间轴ui设计_我应该在UI设计上花更多时间吗?
  8. 关于移动端滚动穿透问题的解决
  9. webpack----loader
  10. 夜深,你的手机为谁而开
  11. Fortran入门教程(八)——子例程及函数
  12. 关于几种图片格式的压缩
  13. matlab直流电机pid调速仿真,直流电机双闭环PID调速系统仿真设计
  14. 腾讯云微搭x腾讯文档,企业协同研发更便捷
  15. 7-2 古风排版 C语言
  16. python 冒号分隔_以冒号分隔的分析
  17. mysql数据库快捷键_MySQL数据库(YOG软件)快捷键大全
  18. dockerexec 的使用-it操作
  19. java基础入门-ZipOutputStream打包下载
  20. Xcode11没有iOS14的真机包,Xcode12没有iOS8的真机包,用到的时候网上都要积分收费,免费的不好找,因此只有自己保存一份使用到的时候才不慌

热门文章

  1. 计算机专业看重CPU还是显卡,电脑大神告诉你处理器和显卡哪个重要
  2. 构建属于自己的 jre Docker 镜像
  3. P4549【模板】裴蜀定理
  4. Hive 多维度聚合分析查询
  5. 《花千骨》为何被批“脑残”还能创造收视神话?
  6. PHP扫二维码直接跳地址
  7. webstorm 打不开问题
  8. 蒲公英 · JELLY技术周刊 Vol.12 尤雨溪新作 Vite, 你会支持么?
  9. 第三方分享QQ QQZONE
  10. echarts 绘制省份地图 [ 把不同省份的市合并在一起 ]