• 大小: 703B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-11-23
  • 语言: 其他
  • 标签: 可变步长  

资源简介

用可变步长的自然梯度算法解决盲信源分离问题。

资源截图

代码片段和文件信息

function second(MU N K)
% mu - 步长
% N - 总体样本个数
% K - 独立仿真次数

m = 5; % 信号维数
Fs = 1000; % 采样频率
A = rand(m); % 随机混合矩阵A m*m
Nd = 0.000001;
N0 = N/2.0;
while det(A)==0
A = rand(m);
end
% W矩阵初始化
W(::1) = eye(m);
% [-11] 均匀分布噪声
v = 1-2*rand([1N]);
% 产生原始信号
for i=1:N
s(:i) = [sign(cos(2*pi*155*i/Fs));sin(2*pi*800*i/Fs);sin(2*pi*300*i/Fs+6*cos(2*pi*60*i/Fs));sin(2*pi*90*i/Fs);v(i)];
end
% 进行K次独立仿真
for k=1:K
    mu = MU;
% 迭代N次求W
for i=1:N
if i>N0 
mu = mu * exp(-Nd*(i-N0));
end
E(ki) = 0;
x = A * s(:i);
y = W(::i) * x;
W(::i+1) = W(::i) + mu.*(eye(m) - (y.^3)*y‘)*W(::i);
% 串音误差的计算
P = W(::i+1)*A;
for j=1:m
E(ki) = E(ki) + (sum(abs(P(:j)))/max(abs(P(:j)))-1 + sum(abs(P(j:)))/max(abs(P(j:)))-1);
end
end
end
% 求平均值
for i=1:N
EA(i) = sum(E(:i))/K;
end
axis = [1:N];
plot(axisEA);
end


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        960  2010-11-12 02:26  second.m

----------- ---------  ---------- -----  ----

                  960                    1


评论

共有 条评论

相关资源