跪求盲信号分离 各种算法的matlab代码啊。。。求大神帮帮我~

跪求盲信号分离 各种算法的matlab代码啊。。。求大神帮帮我~,第1张

硬件加速的图形通道

JavaFX 图形渲染基于 Prism。如果使用了支持 Prism 的显卡或 GPU,JavaFX 可以很快的进行平滑渲染。如果系统不支持 Prism,那么默认值将会变为 Java 2D。

高性能的媒体引擎

媒体通道支持 Web 多媒体内容的播放,基于 GStreamer 媒体框架,提供了稳定的、低延迟的媒体播放框架。

自包含的应用程序部署模式

自包含的应用程序,可以包含所有的应用程序资源、Java 运行时以及 JavaFX 运行时。应用程序发布后,可以在 *** 作系统本地安装,获得 *** 作系统一致的安装和加载体验。

Matlab和C语言可不一样的,你要将m文件转换为c文件,且可以在VC中编译,那么需要做的工作就多了去了。

Matlab中有很多封装好的函数,并且其语法与C语言还是有很大不同的。

FastICA算法的基本步骤:

1 对观测数据进行中心化,使它的均值为0;

2 对数据进行白化,。

3 选择需要估计的分量的个数,设迭代次数

4 选择一个初始权矢量(随机的)。

5 令,非线性函数的选取见前文。

6 。

7 令。

8 假如不收敛的话,返回第5步。

9.令,如果,返回第4步。

二.MATLAB源程序及说明:

%下程序为ICA的调用函数,输入为观察的信号,输出为解混后的信号

function Z=ICA(X)

%-----------去均值---------

[M,T] = size(X); %获取输入矩阵的行/列数,行数为观测数据的数目,列数为采样点数

average= mean(X')'; %均值

for i=1:M

X(i,:)=X(i,:)-average(i)ones(1,T);

end

%---------白化/球化------

Cx = cov(X',1); %计算协方差矩阵Cx

[eigvector,eigvalue] = eig(Cx); %计算Cx的特征值和特征向量

W=eigvalue^(-1/2)eigvector'; %白化矩阵

Z=WX; %正交矩阵

%----------迭代-------

Maxcount=10000; %最大迭代次数

Critical=000001; %判断是否收敛

m=M; %需要估计的分量的个数

W=rand(m);

for n=1:m

WP=W(:,n); %初始权矢量(任意)

% Y=WP'Z;

% G=Y^3;%G为非线性函数,可取y^3等

% GG=3Y^2; %G的导数

count=0;

LastWP=zeros(m,1);

W(:,n)=W(:,n)/norm(W(:,n));

while abs(WP-LastWP)&abs(WP+LastWP)>Critical

count=count+1; %迭代次数

LastWP=WP; %上次迭代的值

% WP=1/TZ((LastWP'Z)^3)'-3LastWP;

for i=1:m

WP(i)=mean(Z(i,:)(tanh((LastWP)'Z)))-(mean(1-(tanh((LastWP))'Z)^2))LastWP(i);

end

WPP=zeros(m,1);

for j=1:n-1

WPP=WPP+(WP'W(:,j))W(:,j);

end

WP=WP-WPP;

WP=WP/(norm(WP));

if count==Maxcount

fprintf('未找到相应的信号);

return;

end

end

W(:,n)=WP;

end

Z=W'Z;

%以下为主程序,主要为原始信号的产生,观察信号和解混信号的作图

clear all;clc;

N=200;n=1:N;%N为采样点数

s1=2sin(002pin);%正弦信号

t=1:N;s2=2square(100t,50);%方波信号

a=linspace(1,-1,25);s3=2[a,a,a,a,a,a,a,a];%锯齿信号

s4=rand(1,N);%随机噪声

S=[s1;s2;s3;s4];%信号组成4N

A=rand(4,4);

X=AS;%观察信号

%源信号波形图

figure(1);subplot(4,1,1);plot(s1);axis([0 N -5,5]);title('源信号');

subplot(4,1,2);plot(s2);axis([0 N -5,5]);

subplot(4,1,3);plot(s3);axis([0 N -5,5]);

subplot(4,1,4);plot(s4);xlabel('Time/ms');

%观察信号(混合信号)波形图

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,:));

Z=ICA(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');

以上就是关于跪求盲信号分离 各种算法的matlab代码啊。。。求大神帮帮我~全部的内容,包括:跪求盲信号分离 各种算法的matlab代码啊。。。求大神帮帮我~、MATLAB转换成C语言问题、独立成分分析 matlab 程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9717464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存