bss.m
来自「盲信号分离(BSS)是指在对彼此独立的源信号混合过程及各源信号本身均未知的情况下」· M 代码 · 共 63 行
M
63 行
%盲信号分离clc;clear;%EASI参数u=6e-3;%RLS参数beta=0.99;%源信号生成,数据长度4000n=0:0.0001:0.4;S=zeros(5,4001);S(1,:)=hardlims(cos(2*pi*155*n));S(2,:)=sin(2*pi*800*n);S(3,:)=sin(2*pi*300*n+6*cos(2*pi*60*n));S(4,:)=sin(2*pi*90*n);S(5,:)=rand(1,length(n))*2-1;A=rand(5,5);X=A*S;[W_EASI ECT_EASI]=EASI(X,A,u);%EASI[W_RLS ECT_RLS]=RLS(X,A,beta,0);%普通梯度RLS[W_NRLS ECT_NRLS]=RLS(X,A,beta,1);%自然梯度RLS%画ECT曲线figure;plot(1:4001,ECT_EASI,'r',1:4001,ECT_RLS,'g',1:4001,ECT_NRLS,'b');legend('EASI(LMS)','普通梯度RLS','自然梯度RLS');ylabel('ECT');%恢复信号Y_EASI=W_EASI*X;Y_RLS=W_RLS*X;Y_NRLS=W_NRLS*X;%分离效果对比figure;Range=1:200;for ind=1:5 subplot(4,5,ind); plot(n(Range),S(ind,Range)); ylim([-2,2]); title(strcat('source',num2str(ind)));endfor ind=1:5 subplot(4,5,ind+5); plot(n(Range),Y_EASI(ind,Range)); ylim([-2,2]); title(strcat('EASI',num2str(ind)));endfor ind=1:5 subplot(4,5,ind+10); plot(n(Range),Y_RLS(ind,Range)); ylim([-2,2]); title(strcat('RLS',num2str(ind)));endfor ind=1:5 subplot(4,5,ind+15); plot(n(Range),Y_NRLS(ind,Range)); ylim([-2,2]); title(strcat('RLS_N',num2str(ind)));end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?