一种面向多通道系统的滤波x仿射投影符号算法(Matlab代码实现)

 ‍个人主页:研学社的博客 

欢迎来到本博客❤️❤️

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

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

本文目录如下:

目录

1 概述

2 运行结果

3 Matlab代码实现

4 参考文献


1 概述

多通道系统的滤波x仿射投影符号算法在稳态估计误差和脉冲噪声和彩色输入收敛率方面保证了ANC性能的增强。

2 运行结果

一种面向多通道系统的滤波x仿射投影符号算法(Matlab代码实现)_第1张图片

部分代码:

% Adaptive filter parameters
clear;
clc;
mu  =0.05;
mu_2=0.01;
mu_3=0.05;

node_n=4;
I=1;            %number of reference mic.s
J=node_n;       %number of loud speakers
K=node_n;       %number of error mic.s
% For the distributed network, J=K

L = 32;                           % Length of adaptive weight vector
M = 4;                             % Projection order for AP and PRA
ARtype = 2;
P=1;
Power_r = 10^(-3);
gamma=1700;

S_type=1;       % Simulation Type: 1=MSD, 2=MSE, 3=EMSE
reset=0;      % Reset Test = 1 else 0;

% Run parameters
iter = 70000;                  % Number of iterations
seed = sum(50*clock);
N =1;
KK= 4;      % For reset

% Paramters
alpha=0.45;
mu_max=1;
mu_Nup=0.6;
mu_Ndown=0.00001;


wo = zeros(L*I*J,1); % Unknown System
for j=1:J    
    w_j=zeros(L*I,1);
    for i=1:I
        w_ji=randn(L,1);
        w_ji=w_ji/norm(w_ji);
        w_j((i-1)*L+1:i*L)=w_ji;
    end
    wo((j-1)*L*I+1:j*L*I)=w_j;
end

wo=wo/norm(wo);

l_hn=8;
hn = zeros(J,l_hn,K);
flag=0;
for k=1:K
    for j=1:J
        seed = k*j;
        randn('state',seed);   
%       hn(j,:,k)=fir1(l_hn-1,0.7+0.05*flag);
        hn(j,:,k)=randn(l_hn,1);
        flag=flag+1;
    end
end


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


MSD_MFXNLMS=zeros(1,iter-L);
MSD_MFXAPA2=zeros(1,iter-L);
MSD_MFXAPSA=zeros(1,iter-L);

h=waitbar(0,'Please wait...');

for k=1:N
    seed = k;
    [xn,rn] = ANC_Generator_Diffusion(iter,L,seed,ARtype,Power_r,I,K);

    S = FIRInit_M(zeros(L*I*J,1),mu,M,P,I,J,K,L);        % Initialization
    S.unknownsys = wo;
    S.secondpath = hn;
    S.Power_r=Power_r;

3 Matlab代码实现

4 参考文献

部分理论来源于网络,如有侵权请联系删除。

你可能感兴趣的:(#,#,matlab,算法,一种面向多通道系统,滤波x仿射投影符号算法)