Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

パーシステンス スペクトルを使用した干渉の検出

広帯域信号に組み込まれた狭帯域の干渉信号を可視化します。

1 kHz で 500 秒間サンプリングされたチャープを生成します。チャープの周波数は、測定中に 180 Hz から 220 Hz に増加します。

fs = 1000;
t = (0:1/fs:500)';
x = chirp(t,180,t(end),220) + 0.15*randn(size(t));

この信号には 210 Hz の正弦波も含まれます。正弦波の振幅は 0.05 で、正弦波は信号の全持続時間の 1/6 の時間のみ存在します。

idx = floor(length(x)/6);
x(1:idx) = x(1:idx) + 0.05*cos(2*pi*t(1:idx)*210);

信号を MATLAB® の timetable として保存します。

S = timetable(seconds(t),x);

信号アナライザーを開いて、ワークスペース ブラウザーからディスプレイに timetable をドラッグします。[時間-周波数] ボタンをクリックして、スペクトログラム表示を追加します。[スペクトログラム] タブの [時間分解能][指定] を選択して、1 秒の時間分解能を入力します。[周波数範囲] を 100 Hz ~ 290 Hz に設定します。両方の信号成分が表示されます。

[表示] タブに戻ります。[時間] ボタンをクリックして時間表示を削除し、[スペクトル] ボタンをクリックしてパワー スペクトル表示を追加します。周波数範囲は引き続き 100 Hz ~ 290 Hz にします。弱い正弦波はチャープによって不明瞭になります。

[スペクトル] ボタンの下にある矢印をクリックして Spectrum 表示を Persistence Spectrum 表示に変更します。[パーシステンス スペクトル] タブの [時間分解能][指定] を選択して、1 秒の時間分解能を入力します。隣接するセグメント間に 0 のオーバーラップを指定します。[パワーの範囲] に -50 dB と 0 dB、[密度の範囲] に 0.1 と 4 を設定します。今度は、両方の信号成分が明瞭に表示されます。

[表示] タブの [共有] の下で [スクリプトの生成] をクリックして、Persistence Spectrum Script を選択します。スクリプトが MATLAB エディターで開きます。

% Compute persistence spectrum

% Generated by MATLAB(R) 9.7 and Signal Processing Toolbox 8.2.
% Generated on: 26-Dec-2018 16:07:45

% Parameters
timeLimits = seconds([0 500]); % seconds
frequencyLimits = [100 290]; % Hz
timeResolution = 1; % seconds
overlapPercent = 0;

%%
% Index into signal time region of interest
S_x_ROI = S(:,'x');
S_x_ROI = S_x_ROI(timerange(timeLimits(1),timeLimits(2),'closed'),1);

% Compute spectral estimate
% Run the function call below without output arguments to plot the results
[P,F,PWR] = pspectrum(S_x_ROI, ...
    'persistence', ...
    'FrequencyLimits',frequencyLimits, ...
    'TimeResolution',timeResolution, ...
    'OverlapPercent',overlapPercent);

参考

アプリ

関数

関連する例

詳細