主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

FFTを使用したパワースペクトル密度推定

この例では,fftを使用して,ピリオドグラムと等価なノンパラメトリックパワースペクトル密度(PSD)推定を求める方法を示します。例においては,偶数長の入力,正規化周波数およびヘルツ,片側および両側PSD推定に対し,fftの出力を適切にスケーリングする方法が示されます。

サンプルレートを使用した偶数長の入力

fft周期图の両方を使用して1 kHzでサンプリングされた偶数長の信号についてピリオドグラムを求めます。結果を比較します。

100赫兹正弦波から成り,N(0,1)加法性ノイズをもつ信号を作成します。サンプリング周波数は1 kHzです。1000年信号長はサンプルです。結果に再現性をもたせるために,乱数発生器の既定の設定を使用します。

rng默认的Fs = 1000;t = 0:1 / Fs: 1 - 1 / f;X = cos(2*pi*100*t) + randn(size(t));

fftを使用してピリオドグラムを求めます。信号は実数値で,偶数長です。信号が実数値なので,正または負の周波数に対するパワー推定だけを必要とします。合計したパワーを保存するために,両セット(正および負の周波数)に現れているすべての周波数に係数2を乗算します。周波数0 (DC)およびナイキスト周波数は,2回は現れません。結果をプロットします。

N =长度(x);xdft = fft (x);xdft = xdft (1: N / 2 + 1);psdx = (1/(Fs*N)) * abs(xdft).^2;psdx (2: end-1) = 2 * psdx (2: end-1);频率= 0:Fs /长度(x): Fs / 2;情节(频率、10 * log10 (psdx))网格标题(“使用FFT周期图”)包含(的频率(赫兹)) ylabel (“功率/频率(dB / Hz)”

周期图を使用してピリオドグラムを計算してプロットします。2つの結果が同じであることを示します。

周期图(x, rectwin(长度(x)),长度(x), Fs)

mxerr = max (psdx周期图(x, rectwin(长度(x)),长度(x), Fs))
mxerr = 3.4694 e-18

正規化された周波数を使用した入力

正規化周波数を使用した入力について,fftを使用してピリオドグラムを作成します。正弦波から成り,N(0,1)加法性ノイズをもつ信号を作成します。この正弦波は π / 4 ラジアン/サンプルの角周波数を持ちます。結果に再現性をもたせるために,乱数発生器の既定の設定を使用します。

rng默认的n = 0:999;X = cos(pi/4*n) + randn(size(n));

fftを使用してピリオドグラムを求めます。信号は実数値で,偶数長です。信号が実数値なので,正または負の周波数に対するパワー推定だけを必要とします。合計したパワーを保存するために,両セット(正および負の周波数)に現れているすべての周波数に係数2を乗算します。周波数0 (DC)およびナイキスト周波数は,2回は現れません。結果をプロットします。

N =长度(x);xdft = fft (x);xdft = xdft (1: N / 2 + 1);psdx = (1/(2*pi*N)) * abs(xdft).^2;psdx (2: end-1) = 2 * psdx (2: end-1);频率= 0:(2 *π)/ N:π;情节(频率/π,10 * log10 (psdx))网格标题(“使用FFT周期图”)包含('归一化频率(\乘以\ rad/sample)') ylabel (的功率/频率(dB / rad /样本)

周期图を使用してピリオドグラムを計算してプロットします。2つの結果が同じであることを示します。

周期图(x, rectwin(长度(x)),长度(x))

mxerr = max (psdx周期图(x, rectwin(长度(x)),长度(x)))
mxerr = 1.4211 e-14

正規化された周波数を使用した複素数値の入力

正規化周波数をもつ複素数値の入力について,fftを使用してピリオドグラムを作成します。信号は,複素数値のN(0,1)ノイズを伴う π / 4 ラジアン/サンプルの角周波数を持つ複素指数です。再現性のある結果を得るために,乱数発生器を既定の状態に設定します。

rng默认的n = 0:999;x = exp (1 j *π/ 4 * n) + 1 j] [1 * randn 2长度(n)) /√(2);

fftを使用してピリオドグラムを求めます。入力が複素数値であるため, 0 , 2 π ラジアン/サンプルでピリオドグラムを求めます。結果をプロットします。

N =长度(x);xdft = fft (x);psdx = (1/(2*pi*N)) * abs(xdft).^2;频率= 0:(2 *π)/ N: 2 *π-(2 *π)/ N;情节(频率/π,10 * log10 (psdx))网格标题(“使用FFT周期图”)包含('归一化频率(\乘以\ rad/sample)') ylabel (的功率/频率(dB / rad /样本)

周期图を使用してピリオドグラムを求めてプロットします。PSD推定を比較します。

周期图(x, rectwin(长度(x)),长度(x),双侧的

mxerr = max (psdx周期图(x, rectwin(长度(x)),长度(x),双侧的))
mxerr = 2.8422 e-14

参考

アプリ

関数