⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsc_1n.m

📁 广义旁瓣抵消器(GSC)是麦克风阵列语音增强中被广泛采用的一种自适应波束形成算法
💻 M
字号:
clear all;
K=7;%自适应fir阶数
[s1,fs,bits]=wavread( 'E:/microphone/sources/source2.wav'); %输入无扰信号源
s1=s1';
L=length(s1);%L为信号源长度
u=0.005; %步长因子
de=1;
s2=wavread( 'E:/microphone/sources/source4.wav'); %输入干扰(语音)信号
s2=s2';

%无扰信号加各路时延噪声得到各麦克风经时延对齐后的信号
x1=s1+s2;
x2=s1+[zeros(1,de),s2(1:L-de)];
x3=s1+[zeros(1,2*de),s2(1:L-2*de)];

x=[x1;x2;x3];
A=zeros(2,2*K+1); 
B=[1 -1 0;0 1 -1];%堵塞矩阵
X=B*x;
ad=zeros(2,L);
ys=zeros(1,L);   %初始化ys为0
y=0.2*ones(1,L);

yc=(x(1,:)+x(2,:)+x(3,:))/3;

for n=2*K+2:L-100
    for m=-K:K
        A(:,m+K+1)=A(:,m+K+1)+u*y(n-1)*X(:,n-m);
    end
    for m=-K:K
        ys(n)=ys(n)+A(:,m+K+1)'*X(:,n-m);
    end
    y(n)=yc(n)-ys(n);
end

ps1=10*log10(sum(abs(s1).^2)/L);
nout=y-s1;
pnout=10*log10(sum(abs(nout).^2)/L);
snr=ps1-pnout;

j=1:L;
subplot(4,1,1)
plot(s1);
% title('original signal');
% subplot(5,1,2)
% plot(j,s2(1:L));
% title('inference signal');
% subplot(5,1,3)
% plot(j,x1);
% title('signal with noise');
subplot(4,1,2)
plot(y);
axis([1,L,-1,1]);
% title('processed signal');
% subplot(5,1,5)
% plot(j,ys);
% title('estimated noise');
% 
% wavwrite(y,fs,bits,'processed signal.wav');
% wavwrite(yc,fs,bits,'delay-add signal.wav');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -