nons.m

来自「这是盲信号的代码 都已经通过编译了 做这方面的同仁可以参考一下 我觉得蛮惯用的」· M 代码 · 共 43 行

M
43
字号
function [y,PI]=nons(x)
%基于自然梯度的非平稳信号盲分离
%copyright 2005.7.6
%上海交通大学学报2005.4
%code author:lucky zhang
%s(1,:)=wavread('man.wav');
%s(2,:)=wavread('women.wav');
%A=[1 0.7;0.6 1];
%x=A*s;
A=[1 0.7;0.6 1];
v=baihua(x);
x=v;
clear v;
eta=0.001;

[dim,sample]=size(x);
W=eye(dim);
y=W*x;
for i=1:sample
    dw=zeros(dim);
    if i<4
        for q=0:i-1
            Y=y(:,i)*y(:,i-q)';
            d=diag(diag(Y));
            D=inv(d)*W*(d-Y);
            dw=dw+D;
        end
    else
        for q=0:3
            Y=y(:,i)*y(:,i-q)';
            d=diag(diag(Y));
            D=inv(d)*W*(d-Y);
            dw=dw+D;
        end
    end
    W=W+eta*dw;
    W=W/norm(W);
    G=W*A;
    PI(i)=xnzb(G);
    y(:,i)=W*x(:,i);
end

⌨️ 快捷键说明

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