在好例子网,分享、交流、成长!
您当前所在位置:首页MATLAB 开发实例MATLAB语言基础 → 盲源分离【文档+程序】

盲源分离【文档+程序】

MATLAB语言基础

下载此实例
  • 开发语言:MATLAB
  • 实例大小:1.59M
  • 下载次数:33
  • 浏览次数:266
  • 发布时间:2020-12-09
  • 实例类别:MATLAB语言基础
  • 发 布 人:karvenli
  • 文件格式:.rar
  • 所需积分:10
 相关标签: 程序 文档

实例介绍

【实例简介】参考哈尔滨工程大学2009-柴子娟博士论文《复杂电磁环境下雷达信号的分选识别技术研究》进行的相关仿真,包含两个仿真,一是已知多通道数先验下的盲源分离,二是EMD重构多通道条件下的盲源分离,信号样式为四类脉冲体制雷达信号和高斯白噪声信号

【实例截图】

【源码目录】

盲源分离

├── 盲源分离-仿真测试.pdf
└── 混合调制识别及信号分离程序
    ├── ICA.m
    ├── ICAfs.m
    ├── ICAtest.m
    ├── informaxICA.m
    └── lw-cjf
        ├── lw_cjf_modtest1.m
        ├── lw_cjf_modtest12.m
        ├── lw_cjf_modtest2.m
        ├── lw_cjf_modtest22.m
        └── lw_cjf_modtest3.m

2 directories, 10 files



【核心代码】

function [Z,W] = ICAfs(X,num)

%function:基于负熵固定点算法的逐步剥离步骤
%parameter:X为输入混合信号矩阵,每行包含N个采样点,行数应该大于等于num且秩为num-正定
%正定或超定时:num为源个数,M〉=num--若考虑分离出噪声,则秩为num 1.需提前进行源估计
%实际情况下欠定如何处理?
%reference:2009D-复杂电磁环境下雷达信号的分选识别技术研究-柴娟芳-哈工程
%y^3优化函数更实用于test 1-------牛顿迭代法终止条件

%1-去均值
[M,T] = size(X);      %获取输入矩阵的行列数,行数为观测数据的数目,列数为采样点数
average = mean(X')';  %均值
for i=1:M
    X(i,:) = X(i,:)-average(i)*ones(1,T);
end
 
%1-白化/球化
Cx = cov(X',1);  %计算协方差矩阵Cx
[eigvector,eigvalue] = eig(Cx);   %计算Cx的特征值和特征向量
W = eigvalue^(-1/2)*eigvector';   %白化矩阵
% W=(eigvector*(eigvalue^(-1/2)))';
Z = W*X;    %正交矩阵
 
%2-独立分量数num,p=1,逐个源分离
p = 1;

%迭代-俩个终止条件
Maxcount = 10000;  %最大迭代次数
Critical = 0.00001;  %判断是否收敛
m = num;
W = rand(m);%初始化分离矩阵
for n=1:m
    WP = W(:,n);  %初始权矢量(任意)
    %Y=WP'*Z;
    %G=Y.^3;%G为非线性函数,可取y^3/tanh(ay)&1<a<2、ye(-y^2/2)
    %GG=3*Y.^2;   %G的导数
    count = 0;
    LastWP = zeros(m,1);%初始残差为0-牛顿迭代法终止条件
    W(:,n) = W(:,n)/norm(W(:,n));%欧式距离-按列归一化
    while abs(WP-LastWP)&abs(WP LastWP)>Critical
        count = count 1;  %迭代次数
        LastWP = WP;      %上次迭代的值
        %WP=1/T*Z*((LastWP'*Z).^3)'-3*LastWP;
        for i=1:m
%              WP(i)=mean(Z(i,:).*(tanh((LastWP)'*Z)))-(mean(1-(tanh((LastWP))'*Z).^2)).*LastWP(i);%tanh(ay)-why LastWP(i)未入均值计算
               WP(i)=mean(Z(i,:).*(((LastWP)'*Z)).^3)-mean(3*((((LastWP))'*Z).^2)).*LastWP(i);%y^3-函数选择决定算法-峭度或者定点迭代
%              WP(i)=mean(Z(i,:).*(((LastWP)'*Z)).^3)-mean(3*((((LastWP))'*Z).^2).*LastWP(i));%y^3
        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;
%     Z = W'*Z W'*average*ones(1,T);%加上均值-误差较大
end

标签: 程序 文档

实例下载地址

盲源分离【文档+程序】

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警