• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2023-07-12
  • 语言: Matlab
  • 标签: LMS  

资源简介

基于自然梯度算法,对盲信号分离进行了仿真。程序中采用了变步长的方法。

资源截图

代码片段和文件信息

clear;
Fs=1e4;     %采用频率
miu=120e-4; %学习步长
M=200;      %独立实验次数
N=4000;     %样本个数

NTD=1000;   %大于该数值时开始变步长

A=rand(55);

for m=1:1:M
    n=1:1:N;
    S=[sign(cos(2*pi*155*n/Fs));
    sin(2*pi*800*n/Fs);
    sin(2*pi*300*n/Fs+6*cos(2*pi*60*n/Fs)); 
    sin(2*pi*90*n/Fs);
    unifrnd(-1114000);];

    X=A*S;
    W=eye(5);
    for n=1:1:N
        y=W*X(:n);
        g=y.^3;
        W=W+miu*(eye(5)-g*y‘)*W;
        
        if n>NTD
            miu=(120e-4)*exp(-0.001*(n-NTD));
        end
        
        PW=abs(W*A);
        a(n)=max(PW(1:));
        sum_r1=(sum(PW(1:))/max(PW(1:)))-1;
        sum_r2=(sum(PW(2:))/max(PW(2:)))-1;
        sum_r3=(sum(PW(3:))/max(PW(3:)))-1;
        sum_r4=(sum(PW(4:))/max(PW(4:)))-1;
        sum_r5=(sum(PW(5:))/max(PW(5:)))-1;

        E1=sum_r1+sum_r2+sum_r3+sum_r4+sum_r5;

        sum_c1=(sum(PW(

评论

共有 条评论