【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码
1 内容介绍
高阶统计量被广泛地应用在雷达、通信,生物医学、故障诊断中。传统的信号检测方法在低信噪比高动态下的检测性能很差。而双谱对高斯白噪声是不敏感的、高动态和低信噪比都是不敏感的。使用高阶统计量用于检测高动态和低信噪比的微弱信号,在此条件下高阶统计量方法得到了的优良性能。在不同的动态和信噪比条件下的实验结果都显示了优良性能。
2 仿真代码
function y_cum = cum2est (y, maxlag, nsamp, overlap, flag)
%CUM2EST Covariance function.
% Should be involed via "CUMEST" for proper parameter checks.
% y_cum = cum2est (y, maxlag, samp_seg, overlap, flag)
% y: input data vector (column)
% maxlag: maximum lag to be computed
% samp_seg: samples per segment (<=0 means no segmentation)
% overlap: percentage overlap of segments
% flag: 'biased', biased estimates are computed
% 'unbiased', unbiased estimates are computed.
% y_cum: estimated covariance,
% C2(m) -maxlag <= m <= maxlag
% all parameters must be specified!
% Copyright (c) 1991-2001 by United Signals & Systems, Inc.
% $Revision: 1.5 $
% A. Swami January 20, 1993
% RESTRICTED RIGHTS LEGEND
% Use, duplication, or disclosure by the Government is subject to
% restrictions as set forth in subparagraph (c) (1) (ii) of the
% Rights in Technical Data and Computer Software clause of DFARS
% 252.227-7013.
% Manufacturer: United Signals & Systems, Inc., P.O. Box 2374,
% Culver City, California 90231.
%
% This material may be reproduced by or for the U.S. Government pursuant
% to the copyright license under the clause at DFARS 252.227-7013.
% C2(m) := E conj(x(n)) x(n+k)
% ---------- parameter checks are done by CUMEST ----------------
[n1,n2] = size(y); N = n1*n2;
overlap = fix(overlap/100 * nsamp);
nrecord = fix( (N - overlap)/(nsamp - overlap) );
nadvance = nsamp - overlap;
y_cum = zeros(maxlag+1,1);
ind = 1:nsamp;
for i=1:nrecord
x = y(ind); x = x(:) - mean(x); % make sure we have a colvec
for k = 0:maxlag
y_cum(k+1) = y_cum(k+1) + x([1:nsamp-k])' * x([k+1:nsamp]);
end
ind = ind + nadvance;
end
if (flag(1:1) == 'b' | flag(1:1) == 'B')
y_cum = y_cum / (nsamp*nrecord);
else
y_cum = y_cum ./ (nrecord * (nsamp-[0:maxlag]' ));
end
if maxlag > 0,
y_cum = [conj(y_cum(maxlag+1:-1:2)); y_cum];
end
return
function y_cum = cum4est (y, maxlag, nsamp, overlap, flag, k1, k2)
%CUM4EST Fourth-order cumulants.
% Should be invoked via CUMEST for proper parameter checks
% y_cum = cum4est (y, maxlag, samp_seg, overlap, flag, k1, k2)
% Computes sample estimates of fourth-order cumulants
% via the overlapped segment method.
%
% y_cum = cum4est (y, maxlag, samp_seg, overlap, flag, k1, k2)
% y: input data vector (column)
% maxlag: maximum lag
% samp_seg: samples per segment
% overlap: percentage overlap of segments
% flag : 'biased', biased estimates are computed
% : 'unbiased', unbiased estimates are computed.
% k1,k2 : the fixed lags in C3(m,k1) or C4(m,k1,k2); see below
% y_cum : estimated fourth-order cumulant slice
% C4(m,k1,k2) -maxlag <= m <= maxlag
% Note: all parameters must be specified
% Copyright (c) 1991-2001 by United Signals & Systems, Inc.
% $Revision: 1.4 $
% A. Swami January 20, 1993
% Modified, Januar 20, 1994 to handle complex case properly:
% c4(t1,t2,t3) := cum( x^*(t), x(t+t1), x(t+t2), x^*(t+t3) )
% RESTRICTED RIGHTS LEGEND
% Use, duplication, or disclosure by the Government is subject to
% restrictions as set forth in subparagraph (c) (1) (ii) of the
% Rights in Technical Data and Computer Software clause of DFARS
% 252.227-7013.
% Manufacturer: United Signals & Systems, Inc., P.O. Box 2374,
% Culver City, California 90231.
%
% This material may be reproduced by or for the U.S. Government pursuant
% to the copyright license under the clause at DFARS 252.227-7013.
% c4(t1,t2,t3) := cum( x^*(t), x(t+t1), x(t+t2), x^*(t+t3) )
% cum(w,x,y,z) := E(wxyz) - E(wx)E(yz) - E(wy)E(xz) - E(wz)E(xy)
% and, w,x,y,z are assumed to be zero-mean.
% ---- Parameter checks are done in CUMEST ----------------------
[n1,n2] = size(y);
N = n1 * n2;
overlap0 = overlap;
overlap = fix(overlap/100 * nsamp);
nrecord = fix( (N - overlap)/(nsamp - overlap) );
nadvance = nsamp - overlap;
% ------ scale factors for unbiased estimates --------------------
nlags = 2 * maxlag + 1;
zlag = 1 + maxlag;
tmp = zeros(nlags,1);
if (flag(1:1) == 'b' || flag(1:1) == 'B')
scale = ones(nlags,1) / nsamp;
else
ind = [-maxlag:maxlag]';
kmin = min(0,min(k1,k2));
kmax = max(0,max(k1,k2));
scale = nsamp - max(ind,kmax) + min(ind,kmin);
scale = ones(nlags,1) ./ scale;
end
mlag = maxlag + max(abs([k1,k2]));
mlag = max( mlag, abs(k1-k2) );
mlag1 = mlag + 1;
nlag = maxlag;
m2k2 = zeros(2*maxlag+1,1);
if (any(any(imag(y) ~= 0))) complex_flag = 1;
else complex_flag = 0;
end
% ----------- estimate second- and fourth-order moments; combine ------
y_cum = zeros(2*maxlag+1,1);
R_yy = zeros(2*mlag+1,1);
ind = 1:nsamp;
for i=1:nrecord
tmp = y_cum * 0 ;
x = y(ind); x = x(:) - mean(x); z = x * 0; cx = conj(x);
% create the "IV" matrix: offset for second lag
if (k1 >= 0)
z(1:nsamp-k1) = x(1:nsamp-k1,:) .* cx(k1+1: nsamp,:);
else
z(-k1+1:nsamp) = x(-k1+1:nsamp) .* cx(1:nsamp+k1);
end
% create the "IV" matrix: offset for third lag
if (k2 >= 0)
z(1:nsamp-k2) = z(1:nsamp-k2) .* x(k2+1: nsamp);
z(nsamp-k2+1:nsamp) = zeros(k2,1);
else
z(-k2+1:nsamp) = z(-k2+1:nsamp) .* x(1:nsamp+k2);
z(1:-k2) = zeros(-k2,1);
end
tmp(zlag) = tmp(zlag) + z' * x;
for k = 1:maxlag
tmp(zlag-k) = tmp(zlag-k) + z([k+1:nsamp])' * x([1:nsamp-k]);
tmp(zlag+k) = tmp(zlag+k) + z([1:nsamp-k])' * x([k+1:nsamp]);
end
y_cum = y_cum + tmp .* scale ;
R_yy = cum2est(x,mlag,nsamp,overlap0,flag);
if (complex_flag) % We need E x(t)x(t+tau) stuff also:
M_yy = cum2x(conj(x),x,mlag,nsamp,overlap0,flag);
else
M_yy = R_yy;
end
y_cum = y_cum ...
- R_yy(mlag1+k1) * R_yy(mlag1-k2-nlag:mlag1-k2+nlag) ...
- R_yy(k1-k2+mlag1) * R_yy(mlag1-nlag:mlag1+nlag) ...
- M_yy(mlag1+k2)' * M_yy(mlag1-k1-nlag:mlag1-k1+nlag) ;
ind = ind + nadvance;
end
y_cum = y_cum / nrecord;
return
3 运行结果
4 参考文献
[1]翟逸群, 黄建国, 张群飞,等. 基于高阶统计量的高动态微弱信号检测[C]// 第七届全国信号和智能信息处理与应用学术会议会刊. 2013.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码相关推荐
- 基于duffing振子的微弱信号检测附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【图像识别】基于支持向量机算法svm实现脸部动态特征人脸表情识别附matlab代码
1 简介 人脸表情识别技术涉及情感计算,图像处理,机器视觉模式识别,生物特征识别等研究领域,是一个极富挑战性的交叉课题.该文介绍一种基于lpq特征,利用支持向量机(SVM)进行分类的人脸表情识别技术. ...
- 基于AlexNet卷积神经网络的手写体数字倾斜校正系统研究-附Matlab代码
⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.AlexNet 网络 ✳️ 三.实验验证 ✳️ 3.1 实验数据集 ✳️ 3.2 数据训练 ✳️ 3.3 手写体倾斜数字校正结果 ✳️ 四.参考文献 ✳️ ...
- 【智能优化算法-白鲸算法】基于白鲸优化算法求解多目标优化问题附matlab代码
1 内容介绍 在本文中,一种新的基于群体的元启发式算法灵感来自白鲸的行为鲸鱼,称为白鲸优化(BWO),是为了解决优化问题而提出的.三在 BWO 中建立了探索.开发和鲸落的阶段,对应于成对游泳.猎物和鲸 ...
- 【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码
1 内容介绍 白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于2022年提出,该算法模拟了白鲸游泳,觅食和"鲸鱼坠落" ...
- 【元胞自动机】基于元胞自动机实现高速公路收费站交通流问题附matlab代码
1 简介 近年来,我国高等级公路发展迅速,截止到2012年底,我国高速公路的通车里程已达到97355公里,比2011年增长14.6%.而我国自1984年以来实行"贷款修路.收费还贷" ...
- 【优化选址】基于遗传算法求解分布式电源的选址定容问题附matlab代码
1 内容介绍 随着我国经济持续高速发展,能源.特别是电能的消耗量越来越大:为满足电能需求,今后一个时期,我国电力行业仍需大规模建设.在化石能源逐渐枯竭.环境压力逐年增大的背景下,在现有配电网上引入分布 ...
- 【智能优化算法】基于矮猫鼬优化算法求解单目标优化问题附matlab代码
1 简介 基于矮猫鼬优化算法求解单目标优化问题 2 部分代码 %___________________________________________________________________ ...
- 【情感识别】基于ELM、SOM分类器实现心率变异性信号情感识别附matlab代码
1 简介 -Dimensional affect recognition is a challenging topic and current techniques do not yet provid ...
- 【优化布局】基于差分进化算法求解电力系统负荷分配中的应用问题matlab代码
1 简介 差分进化算法在处理连续域.非凸.不确定性和全局优化问题时具有优势,已在包括电力系统最优潮流在内的诸多领域得到广泛应用.电力系统最优潮流是一个复杂的非线性优化问题,要求在满足特定的电力系统运行 ...
最新文章
- 数据库--循环语句:loop exit when/ end loop
- 【设计模式】两大策略和六大原则
- 清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
- faster-rcnn系列学习之准备数据
- 2017.10.9 放棋子 思考记录
- 来电通java版_还在玩JAVA版《我的世界》?教你怎么转换存档玩光追!
- oracle的启动与关闭原理-数据路的分阶段启动
- 最快理解使用CSS弹性盒子
- 读书笔记《Redis入门指南》
- java redis哨兵配置_redis哨兵配置主从
- python 定时发送微信,利用python在微信中实现一个定时发送消息的功能
- 孝感市小学生机器人编程比赛_小学生获机器人大赛一等奖 编程是语文老师教的...
- 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
- 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍
- 如何自学?Android开发学习路线指南,最详资料解析
- BackTrack5 学习笔记5 扫描 Nmap
- 抗乙型肝炎表面抗原(HBsAg)抗体偶联镉硒(CdSe)量子点|羧基水溶性量子点(PEG)标记EBNA1抗原
- 熊过留印---爱心篇
- MacW资讯:设置苹果Mac电脑的开机密码
- 驭势领读 | 陈楸帆评《未来简史》:未来还属于人类吗?