資源簡介
復信號分離代碼,分離成功率非常高,可用于工程,僅供參考,希望提供幫助
代碼片段和文件信息
function?[y]?=?fastICA_Complex_lly_jw(xds)
M?=?size(x1);?%?Number?of?antenna?返回矩陣行數
if?(exist(‘ds‘‘var‘)~=1)||isempty(ds)
ds?=?M;?%?Number?of?Sources
end
SigLen?=?size(x2);???%?Signal?length?返回x矩陣列數
%?%?centering
%?x?=?x-repmat(mean(x2)1SigLen);
%?whitening
Rx?=?x*x‘./SigLen;
[uxdx]?=?eig(Rx);%求Rx的特征值,并構成特征對角矩陣
%?White_x?=?ux*inv(sqrt(dx))*ux‘*x;
if?~isempty(find(inv(sqrt(dx))==Inf?1))%sqrt?平方根?inv?求逆矩陣?find?返回第一個非零元素1的索引值
y=x;
return;
end
WF?=?inv(sqrt(dx))*ux‘;??
White_x?=?WF*x;
%?sig?=?[];
%?for?ii?=?1:M
%?????sig?=?[sig;real(White_x(ii:));imag(White_x(ii:))];
%?end
sig?=?reshape([shiftdim(real(White_x)-1);shiftdim(imag(White_x)-1)]...
2*MSigLen);%shiftdim(A1)使A的維號左移1位
%?initialize?the?diagonal?filters
%?for?ii=1:2*M
%?????W(iiii)?=?1;
%?end
W?=?eye(2*ds2*M);%返回對角線矩陣
NumIter?=?200;
convergence?=?zeros(1NumIter);%0矩陣
count?=?1;
%?while?abs(convergence-0)>1e-4
while?count<=NumIter
Wk?=?W;
y?=?Wk*sig;
W?=?((y.^3)*sig‘)./SigLen?-?diag(sum(3*(y.
- 上一篇:數電課設籃球計分器mutisim文件廣工
- 下一篇:圖像的高通濾波程序代碼
評論
共有 條評論