你找是其它信号的接地。仿真设计(尤其是供电系统的仿真)接地,在:simpowersystem——elements——ground也可以收索:ground只希望对你有帮助~~
function[你out]sigexpand(d,m)
nlength(d)
outzeros(m,n)
太out(1,:)d
outreshape(out,1,m*n)
可以使用matlab对离散时间信号信号并且乘法运算,除了相加,小位移,交叉相乘包括自由变化等。(theuseformatlabforcomputingdiscretesignals,includingtheadd,shift,multiplybecausetransform.)
您好,这样的:
一、fastica算法的都差不多步骤:
1.对观测到数据接受中心化,使它的均值为0;
2.对数据进行白化,。
3.你选不需要肯定的分量的个数,设迭代次数
4.你选择一个精灵权矢量(随机的)。
5.令,非线性函数的选定见前文。
6.。
7.令。
8.若果不收敛的话,前往第5步。
9.令,要是,赶往第5步。
二.matlab源程序及说明:
%下程序为ica的调用函数,输入为观察的信号,控制输出为解混后的信号
functionzica(x)
%-----------去均值---------
[m,t]size(x)%获取键入矩阵的行/列数,行数为观测数据的数目,列数为样本采集点数
cumulativemean(x)%均值
whilei1:m
x(i,:)x(i,:)-cumulative(i)*ones(1,t)
end
%---------白化/球化------
cxcov(x,1)%换算协方差矩阵cx
[eigvector,eigvalue]eig(cx)%可以计算cx的特征值和特征向量
weigvalue^(-1/2)*eigvector%白化矩阵
zw*x%正交矩阵
%----------迭代-------
maxcount10000%的最迭代次数
critical0.00001%判断是否需要收敛
mm%需要估记的分量的个数wrand(m)
whilen1:m
wpw(:,n)%精灵召唤权矢量(不可以)
%ywp*z
%gy.^3%g为非线性函数,不可行y^3等
%haha3*y.^2%g的导数
count0
lastwpzeros(m,1)
w(:,n)w(:,n)/norm(w(:,n))
whileabs(wp-lastwp)ampabs(wplastwp)gtcritical
countcount1%迭代次数
lastwpwp%前段时间迭代的值
%wp1/t*z*((lastwp*z).^3)-3*lastwp
fori1:m
wp(i)means(z(i,:).*(tanh((lastwp)*z)))-(means(1-(tanh((lastwp))*z).^2)).*lastwp(i)
end
wppzeros(m,1)
forj1:n-1
wppwpp(wp*w(:,j))*w(:,j)
end
wpwp-wpp
wpwp/(norm(wp))
ifcountmaxcount
printf(未不能找到相应的信号)
return
end
end
w(:,n)wpendzw*z
%以下为主程序,主要注意为遗留下来信号的产生,仔细的观察信号和解混信号的作图
clearallclc
n200n1:n%n为样本采集点数
s12*sin(0.02*pi*n)%正弦函数信号
t1:ns22*square(100*t,50)%方波信号
alinspace(1,-1,25)s32*[a,a,a,a,a,a,a,a]%锯齿信号
s4rand(1,n)%洗技能噪声
s[s1s2s3s4]%信号分成4*n
arand(4,4)
xa*s%仔细的观察信号
%源信号波形图
figure(1)subplot(4,1,1)plot(s1)axis([0n-5,5])title(源信号)
subplot(4,1,2)plot(s2)axis([0n-5,5])
subplot(4,1,3)plot(s3)axis([0n-5,5])
subplot(4,1,4)plot(s4)xlabel(time/xd)
%仔细的观察信号(混合信号)波形图
figure(2)subplot(4,1,1)plot(x(1,:))title(仔细的观察信号(混合信号))
subplot(4,1,2)plot(x(2,:))
subplot(4,1,3)plot(x(3,:))subplot(4,1,4)plot(x(4,:))
zica(x)
figure(3)subplot(4,1,1)plot(z(1,:))title(解混后的信号)
subplot(4,1,2)plot(z(2,:))
subplot(4,1,3)plot(z(3,:))
subplot(4,1,4)plot(z(4,:))xlabel(time/ms)