Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - 日本語


cspect

相関法により2つの離散時間信号の間で推定する 両側相互スペクトル

呼び出し手順

sm = cspect(nlags, npoints, wtype, x)
sm = cspect(nlags, npoints, wtype, x, y)
sm = cspect(nlags, npoints, wtype, nx)
sm = cspect(nlags, npoints, wtype, nx, ny)
[sm, cwp] = cspect(.., wpar)

引数

x

ベクトル, 最初の信号のデータ.

y

ベクトル, 二番目の信号のデータ. yを 省略した場合,xに等しいと仮定されます(自己相関). 指定された場合,xと同じ数の要素を有している必要が あります.

nx

スカラー : x信号の点の数. この場合, 信号xのセグメントはgetxという名前のユーザ定義の関数 により読み込まれます (下記参照).

ny

スカラー : y信号の点の数. この場合, yのセグメントが gety という名前のユーザ定義関数により読み込まれます (下記参照). 指定された場合,nynxに 等しくする必要があります.

nlags

相関遅延の数 (正の整数)

npoints

変換する点の数 (正の整数)

wtype

ウインドウ型

  • 're': 矩形

  • 'tr': 三角形

  • 'hm': ハミング

  • 'hn' : ハニング

  • 'kr': カイザー,この場合,wpar 引数を指定する必要があります

  • 'ch': チェビシェフ, この場合, wpar 引数を指定する必要があります

wpar

カイザーおよびチェビシェフ ウインドウに関するオプションパラメータ:

  • 'kr': wpar は厳密に正の数である必要があります

  • 'ch': wpar は要素数2のベクトル [main_lobe_width,side_lobe_height]である必要があります. ただし, 0<main_lobe_width<.5, および side_lobe_height>0

sm

正規化された周波数の間隔[0,1]において パワースペクトルを推定します. 大きさnpointsの行配列です. 自己相関関数の場合は実数, 相互相関関数の場合は複素数の配列です.

cwp

チェビシェフウインドウの場合は,チェビシェフウインドウのパラメータ の未指定のもの. 指定されていないチェビシェフウインドウのパラメータ

説明

2つの信号x および yの 信号の相互スペクトル,そうでない場合は xを計算します. スペクトル密度は相関法により得られます.

S_xy(ω) = (∑{n=0…N-1} x(n) exp(-iωn)) . (∑{n=0…N-1} y

相関法は自己/相互相関関数の修正された推定値の フーリエ変換としてスペクトル推定を計算します. この自己/相互相関修正推定は, データの場合はオーバーラップしたサブ区間から 反復的に計算する自己相関関数の推定値と, この後,結果を得るためのこれらの推定値の平均化 からなります.

ウインドウの点数は 2*nlags-1です.

バッチ処理の場合, xy のデータは, ユーザ定義関数getxおよびgety によりセグメント毎に読み込むことができます. これらの関数は以下の呼び出し手順を有します:

xk=getx(ns,offset) および yk=gety(ns,offset) ただし, ns はセグメントの大きさ, offset は信号全体の最初のセグメント要素の 添字です.

警告

5.0.2までのバージョンのScilabでは,返り値は 現在の値の絶対値でした.

参考文献

Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing, Upper Saddle River, NJ: Prentice-Hall, 1999

rand('normal');
rand('seed',0);
x = rand(1:1024-33+1);

// eqfirでローパスフィルタを作成m
[nf, bedge, des, wate] = (33, [0 .1;.125 .5], [1 0], [1 1]);
h = eqfir(nf, bedge, des, wate);

// 有色のデータを得るために白色のデータをフィルタ処理
h1 = [h 0*ones(1:max(size(x))-1)];
x1 = [x 0*ones(1:max(size(h))-1)];
hf = fft(h1,-1);
xf = fft(x1,-1);
yf = hf .* xf;
y = real(fft(yf,1));
sm = cspect(100, 200, 'tr', y);
smsize = max(size(sm));
fr = (1:smsize)/smsize;

plot(fr, log(sm))

参照

  • pspect — Welchの平均ペリオドグラム法による 2つの離散時間信号の間の両面相互スペクトル推定.
  • mese — スペクトル推定の最大エントロピ
  • corr — 相関 , 共分散
Report an issue
<< cepstrum Spectral estimation czt >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:43:10 CEST 2023