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代码相关推荐

  1. 基于duffing振子的微弱信号检测附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

  2. 【图像识别】基于支持向量机算法svm实现脸部动态特征人脸表情识别附matlab代码

    1 简介 人脸表情识别技术涉及情感计算,图像处理,机器视觉模式识别,生物特征识别等研究领域,是一个极富挑战性的交叉课题.该文介绍一种基于lpq特征,利用支持向量机(SVM)进行分类的人脸表情识别技术. ...

  3. 基于AlexNet卷积神经网络的手写体数字倾斜校正系统研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.AlexNet 网络 ✳️ 三.实验验证 ✳️ 3.1 实验数据集 ✳️ 3.2 数据训练 ✳️ 3.3 手写体倾斜数字校正结果 ✳️ 四.参考文献 ✳️ ...

  4. 【智能优化算法-白鲸算法】基于白鲸优化算法求解多目标优化问题附matlab代码

    1 内容介绍 在本文中,一种新的基于群体的元启发式算法灵感来自白鲸的行为鲸鱼,称为白鲸优化(BWO),是为了解决优化问题而提出的.三在 BWO 中建立了探索.开发和鲸落的阶段,对应于成对游泳.猎物和鲸 ...

  5. 【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码

    1 内容介绍 白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于2022年提出,该算法模拟了白鲸游泳,觅食和"鲸鱼坠落" ...

  6. 【元胞自动机】基于元胞自动机实现高速公路收费站交通流问题附matlab代码

    1 简介 近年来,我国高等级公路发展迅速,截止到2012年底,我国高速公路的通车里程已达到97355公里,比2011年增长14.6%.而我国自1984年以来实行"贷款修路.收费还贷" ...

  7. 【优化选址】基于遗传算法求解分布式电源的选址定容问题附matlab代码

    1 内容介绍 随着我国经济持续高速发展,能源.特别是电能的消耗量越来越大:为满足电能需求,今后一个时期,我国电力行业仍需大规模建设.在化石能源逐渐枯竭.环境压力逐年增大的背景下,在现有配电网上引入分布 ...

  8. 【智能优化算法】基于矮猫鼬优化算法求解单目标优化问题附matlab代码

    1 简介 基于矮猫鼬优化算法求解单目标优化问题​ 2 部分代码 %___________________________________________________________________ ...

  9. 【情感识别】基于ELM、SOM分类器实现心率变异性信号情感识别附matlab代码

    1 简介 -Dimensional affect recognition is a challenging topic and current techniques do not yet provid ...

  10. 【优化布局】基于差分进化算法求解电力系统负荷分配中的应用问题matlab代码

    1 简介 差分进化算法在处理连续域.非凸.不确定性和全局优化问题时具有优势,已在包括电力系统最优潮流在内的诸多领域得到广泛应用.电力系统最优潮流是一个复杂的非线性优化问题,要求在满足特定的电力系统运行 ...

最新文章

  1. 数据库--循环语句:loop exit when/ end loop
  2. 【设计模式】两大策略和六大原则
  3. 清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
  4. faster-rcnn系列学习之准备数据
  5. 2017.10.9 放棋子 思考记录
  6. 来电通java版_还在玩JAVA版《我的世界》?教你怎么转换存档玩光追!
  7. oracle的启动与关闭原理-数据路的分阶段启动
  8. 最快理解使用CSS弹性盒子
  9. 读书笔记《Redis入门指南》
  10. java redis哨兵配置_redis哨兵配置主从
  11. python 定时发送微信,利用python在微信中实现一个定时发送消息的功能
  12. 孝感市小学生机器人编程比赛_小学生获机器人大赛一等奖 编程是语文老师教的...
  13. 练习:尼姆游戏(聪明版/傻瓜式•人机对战)
  14. 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍
  15. 如何自学?Android开发学习路线指南,最详资料解析
  16. BackTrack5 学习笔记5 扫描 Nmap
  17. 抗乙型肝炎表面抗原(HBsAg)抗体偶联镉硒(CdSe)量子点|羧基水溶性量子点(PEG)标记EBNA1抗原
  18. 熊过留印---爱心篇
  19. MacW资讯:设置苹果Mac电脑的开机密码
  20. 驭势领读 | 陈楸帆评《未来简史》:未来还属于人类吗?

热门文章

  1. matlab模拟晶粒生长,一个有monte caro 模拟晶粒生长的Matlab源程序
  2. 图书借阅系统软件测试实验报告,C 大作业--图书管理系统-实验报告.doc
  3. Jack Lin tools 3Dmax批渲染插件
  4. 3dmax工具栏不见了怎么显示
  5. Python Package 之 Faker(随机姓名、电话)
  6. MACOS系统安装pip
  7. matlab2021a下载安装
  8. 双网卡服务器实现内外网访问
  9. 查看后台事务代码的方法
  10. go语言两个json对比