• 大小: 6KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: bispecd  双谱  

资源简介

估计高阶统计量的双谱程序,随机过程可用它的各阶矩来完整描述。与矩一样,可用累积量从时域来描述随机过程的统计特性;亦可用高阶谱(包括功率谱)从频域来描述随机过程的统计特性。由于三阶矩与三阶累积量相同,故三阶谱(也称双谱)定义为三阶矩函数(或称三阶自相关函数)的二重傅里叶变换。已测试过可以运行使用

资源截图

代码片段和文件信息

function [Bspecwaxis] = bispecd (y  nfft wind nsamp overlap)
%BISPECD Bispectrum estimation using the direct (fft-based) approach.
% [Bspecwaxis] = bispecd (y  nfft wind segsamp overlap)
% y    - data vector or time-series数据向量或时间序列
% nfft - fft length [default = power of two > segsamp]
% wind - window specification for frequency-domain smoothing窗口规范
%        if ‘wind‘ is a scalar it specifies the length of the side
%           of the square for the Rao-Gabr optimal window  [default=5]
%        if ‘wind‘ is a vector a 2D window will be calculated via
%           w2(ij) = wind(i) * wind(j) * wind(i+j)
%        if ‘wind‘ is a matrix it specifies the 2-D filter directly
% segsamp - samples per segment [default: such that we have 8 segments]每段的样本
%         - if y is a matrix segsamp is set to the number of rows行数
% overlap - percentage overlap [default = 50] 重叠百分比
%         - if y is a matrix overlap is set to 0.
%
% Bspec   - estimated bispectrum: an nfft x nfft array with origin
%           at the center and axes pointing down and to the right.
% waxis   - vector of frequencies associated with the rows and columns
%           of Bspec;  sampling frequency is assumed to be 1.

%  Copyright (c) 1991-2001 by United Signals & Systems Inc.
%       $Revision: 1.8 $
%  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.

% --------------------- parameter checks -----------------------------

    [ly nrecs] = size(y);
    if (ly == 1) y = y(:);  ly = nrecs; nrecs = 1; end

    if (exist(‘nfft‘) ~= 1)            nfft = 128; end
    if (exist(‘overlap‘) ~= 1)      overlap = 50;  end
    overlap = min(99max(overlap0));
    if (nrecs > 1)                  overlap =  0;  end
    if (exist(‘nsamp‘) ~= 1)          nsamp = 0;   end
    if (nrecs > 1)                    nsamp = ly;  end

    if (nrecs == 1 & nsamp <= 0)
       nsamp = fix(ly/ (8 - 7 * overlap/100));
    end
    if (nfft  < nsamp)   nfft = 2^nextpow2(nsamp); end

    overlap  = fix(nsamp * overlap / 100);             % added 2/14
    nadvance = nsamp - overlap;
    nrecs    = fix ( (ly*nrecs - overlap) / nadvance);


% ------------------- create the 2-D window -------------------------
  if (exist(‘wind‘) ~= 1) wind = 5; end
  [mn] = size(wind);
  window = wind;
  if (max(mn) == 1)     % scalar: wind is size of Rao-Gabr window
     winsize = wind;
     if (winsize < 0) winsize = 5; end        % the window 

评论

共有 条评论