資源簡介
基于FastICA算法的語音信號分離,以及對分離結(jié)果的評價
代碼片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%??初始化??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc;clear?all;close?all;
n=440964;fs=40000;d=8;
%%%%%%%%%%%%%%??讀入原始聲音,混合,并輸出混合聲音??%%%%%%%%%%%%%%%%%%
%?讀入混合前的原始聲音并顯示
I1=wavread?(‘man.wav‘[1n])‘;?????????
I2=wavread?(‘dragen.wav‘[1n])‘;
I3=wavread?(‘music.wav‘[1n])‘;
I4=wavread(‘Eglish.wav‘[1n])‘;
I5=wavread(‘yu.wav‘[1n])‘;
I6=wavread(‘L.wav‘[1n])‘;
figure
subplot(321)plot(I1)title(‘輸入聲音1‘)
subplot(322)plot(I2)title(‘輸入聲音2‘)
subplot(323)plot(I3)title(‘輸入聲音3‘)
subplot(324)plot(I4)title(‘輸入聲音4‘)
subplot(325)plot(I5)title(‘輸入聲音5‘)
subplot(326)plot(I6)title(‘輸入聲音6‘)
hold?on
%?將其組成矩陣
S=[I1*2;I2;I3;I4*2;I5;I6];??????????????????????????%?聲音個數(shù)即為變量數(shù),圖片的像素數(shù)即為采樣數(shù)
??????????????????????????????????????%?因此S_all是一個變量個數(shù)*采樣個數(shù)的矩陣
Sweight=rand(size(S1));???????????????%?取一隨機(jī)矩陣,作為信號混合的權(quán)矩陣
MixedS=Sweight*S;??????????????????????%?得到三個圖像的混合信號矩陣
%?將混合矩陣重新排列并輸出
figure
subplot(321)plot(MixedS(1:))title(‘混合聲音1‘)
subplot(322)plot(MixedS(2:))title(‘混合聲音2‘)
subplot(323)plot(MixedS(3:))title(‘混合聲音3‘)
subplot(324)plot(MixedS(4:))title(‘混合聲音4‘)
subplot(325)plot(MixedS(5:))title(‘混合聲音5‘)
subplot(326)plot(MixedS(6:))title(‘混合聲音6‘)
hold?on
wavwrite(MixedS(2:)fs‘M.wav‘);
MixedS_bak=MixedS;?????????????????????????%?將混合后的數(shù)據(jù)備份,以便在恢復(fù)時直接調(diào)用
%%%%%%%%%%%%%%%%%%%%%%%%%%??標(biāo)準(zhǔn)化??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MixedS_mean=zeros(51);
for?i=1:6
????MixedS_mean(i)=mean(MixedS(i:));
end????????????????????????????????????????%?計算MixedS的均值
for?i=1:6
????for?j=1:size(MixedS2)
????????MixedS(ij)=MixedS(ij)-MixedS_mean(i);
????end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%??白化??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MixedS_cov=cov(MixedS‘);????????????????????%?cov為求協(xié)方差的函數(shù)
[ED]=eig(MixedS_cov);??????????????????????%?對矩陣的協(xié)方差函數(shù)進(jìn)行特征值分解
Q=inv(sqrt(D))*(E)‘;????????????????????????%?Q為白化矩陣
MixedS_white=Q*MixedS;??????????????????????%?MixedS_white為白化后的圖片矩陣
IsI=cov(MixedS_white‘);?????????????????????%?IsI應(yīng)為單位陣????????????
%%%%%%%%%%%%%%%%%%%%%%%% FASTICA算法??%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t0=cputime;
X=MixedS_white;????????????????????????????%?以下算法將對X進(jìn)行操作
[VariableNumSampleNum]=size(X);
numofIC=VariableNum;???????????????????????%?在此應(yīng)用中,獨立元個數(shù)等于變量個數(shù)
B=zeros(numofICVariableNum);??????????????%?初始化列向量w的寄存矩陣B=[b1??b2??...???bd]
for?r=1:numofIC
????i=1;maxIterationsNum=50;???????????????%?設(shè)置最大迭代次數(shù)(即對于每個獨立分量而言迭代均不超過此次數(shù))
????IterationsNum=0;
????b=rand(numofIC1)-.5;??????????????????%?隨機(jī)設(shè)置b初值
????b=b/norm(b);???????????????????????????%?對b標(biāo)準(zhǔn)化?norm(b):向量元素平方和開根號
????while?i<=maxIterationsNum+1
????????if?i?==?maxIterationsNum???????????%?循環(huán)結(jié)束處理
????????????fprintf(‘\n第%d分量在%d次迭代內(nèi)并不收斂?!?rmaxIterationsNum);
????????????break;
????????end
????????bOld=b;??????????????????????????
????????a2=1;
????????u=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‘*
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-06-06?23:08??Fast?ICA\
?????文件??????881972??2006-05-28?15:32??Fast?ICA\dragen.wav
?????文件??????441240??2013-05-02?18:45??Fast?ICA\e.wav
?????文件??????882456??2013-05-02?18:45??Fast?ICA\Eglish.wav
?????文件?????1764844??2013-05-23?11:11??Fast?ICA\gu.wav
?????文件???????17422??2013-04-29?15:56??Fast?ICA\hs_err_pid3272.log
?????文件??????881972??2013-06-06?21:45??Fast?ICA\K.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K1.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K2.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K3.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K4.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K5.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\K6.wav
?????文件??????882444??2013-03-15?23:08??Fast?ICA\L.wav
?????文件??????881972??2013-11-10?13:50??Fast?ICA\M.wav
?????文件??????881972??2006-05-28?15:31??Fast?ICA\man.wav
?????文件??????881972??2006-05-28?15:32??Fast?ICA\music.wav
?????文件??????882436??2013-05-23?10:59??Fast?ICA\qin.wav
?????文件????????5649??2013-06-06?22:57??Fast?ICA\soundOK.m
?????文件??????881972??2013-06-03?16:23??Fast?ICA\V.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V1.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V11.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V2.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V3.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V4.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V5.wav
?????文件??????881972??2013-11-10?13:51??Fast?ICA\V6.wav
?????文件??????882436??2013-05-23?11:02??Fast?ICA\wang.wav
?????文件??????882456??2013-05-02?18:45??Fast?ICA\yu.wav
評論
共有 條評論