资源简介
完美分离各种混合音频,并且有输出功能,并且算法在分离性能上比传统算法高效,
代码片段和文件信息
function ICAedS = fastica_3_1(MixedS)
%%%%%%%%%%%%%%%%%%%%%%%%%% 标准化 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MixedS_mean=zeros(31);
for i=1:3
MixedS_mean(i)=mean(MixedS(i:));
end % 计算MixedS的均值
for i=1:3
for j=1:size(MixedS2)
MixedS(ij)=MixedS(ij)-MixedS_mean(i);
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%% 白化 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MixedS_cov=cov(MixedS‘); % cov为求协方差的函数
[ED]=eig(MixedS_cov); % 对信号矩阵的协方差函数进行特征值分解
Q=inv(sqrt(D))*(E)‘; % Q为白化矩阵
MixedS_white=Q*MixedS; % MixedS_white为白化后的信号矩阵
IsI=cov(MixedS_white‘); % IsI应为单位阵
%%%%%%%%%%%%%%%%%%%%%%%% FASTICA算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X=MixedS_white; % 以下算法将对X进行操作
[VariableNumSampleNum]=size(X);
numofIC=VariableNum; % 在此应用中,独立元个数等于变量个数
B=zeros(numofICVariableNum); % 初始化列向量w的寄存矩阵B=[b1 b2 ... bd]
for r=1:numofIC
i=1;maxIterationsNum=100; % 设置最大迭代次数(即对于每个独立分量而言迭代均不超过此次数)
k=0;
b=rand(numofIC1); % 随机设置b初值
b=b/norm(b);
%HHH=b;
% 对b标准化 norm(b):向量元素平方和开根号
while i<=maxIterationsNum+1
if i == maxIterationsNum % 循环结束处理
fprintf(‘\n第%d分量在%d次迭代内并不收敛。‘ rmaxIterationsNum);
break;
end
bOld=b;
a2=1;
t=X‘*b;
g=t.*exp(-a2*t.^2/2);
dg=(1-a2*t.^2).*exp(-a2*t.^2/2);
% b=((1-u)*t‘*g*b+u*X*g)/SampleNum-mean(dg)*b;
% 核心公式,参见理论部分公式2.52
ava=(X*g)/SampleNum;
ave=mean(dg)*b;
b=ava-ave;
b=b-B*B‘*b;
b=b/norm(b);
b0=b;
t2=X‘*b;
dg2=(1-a2*t2.^2).*exp(-a2*t2.^2/2);
ave2=mean(dg2)*bOld;
b=2*ava-ave-ave2;
b=b-B*B‘*b; % 对b正交化
b=b/norm(b);
k=k+1;
% abs(abs(b‘*bOld)-1)<1e-9
if abs(abs(b‘*b0)-1)<1e-9
% jjjj=b; % 如果收敛,则
B(:r)=b; % 保存所得向量b
fprintf(‘\n第%d分量在%d次迭代。‘ rk)
break;
end
i=i+1;
end
% B(:r)=b; % 保存所得向量b
end
%%%%%%%%%%%%%%%%%%%%%%%%%% ICA计算的数据复原并构图 %%%%%%%%%%%%%%%%%%%%%%%%%
ICAedS=B‘*MixedS_white;
end% 计算ICA后的矩阵
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2753 2018-09-14 09:01 f_3_1\fastica_3_1.m
文件 1782 2018-09-14 09:01 f_3_1\f_3_1.m
目录 0 2018-12-26 10:22 f_3_1
----------- --------- ---------- ----- ----
4535 3
- 上一篇:基于蚁群算法的二维路径规划算法56346
- 下一篇:三路抢答器源代码
相关资源
- H3C WA4320固件
- MSP432蓝牙控制小车并进行超声波测距
- MSP432RTC实时时钟OLED显示
- 使用MSP432-ESP8266实现小车红外测距和数
- SI4432IA4432中文手册完整版和中文编程
- Si1000芯片手册
- zw_river4321-1653776-1580538940.zip
- 3357432王老师视频课件.rar
- 4310 4320 刷4300繁体中文编程器固件 直
- MSP432智能循迹小车能自动回到赛道
- SI4432 STM32源码接收和发送程序
- STM32F103 实现SI4432通讯 测试成功
- MSP432 for IAR 说明
- msp432.rar
- bk3432编程手册.pdf
- si4432开发资料,官方完整程序+原理图
- 2.MSP432学习之驱动OLED12864
- Wireshark使用教程174329
- 最全VISIO图标集-附网络拓扑图实例2
- 统计学考研432笔记
- MyPower+S4220-S4320系列交换机配置手册
-
em
bedded.Linux.Systems.with.the.Yocto.Proje - MSP432E4工程.rar
- si4432 stm8l 驱动
- 路由器WDR4320刷机固件和详细刷机过程
- NUCLEO-L432KC实现UART1、UART2双串口数据通
- NUCLEO-L432KC实现TIM2定时器配置STM32L43
- SonicwallGVCSetup_4.9.9.1016_EN_6432.7z
- 台电 x80hdg2n432位系统驱动
- si4432无线测试程序
评论
共有 条评论