ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

信号アナライザー

複数の信号とスペクトルの可視化および比較

説明

信号アナライザー アプリは、時間領域、周波数領域、時間-周波数領域における信号の視覚化、前処理、測定、解析、比較用の対話型ツールです。このアプリを使用して以下ができます。

  • MATLAB® ワークスペース内のすべての信号への容易なアクセス

  • アプリを離れることなく、信号の平滑化、フィルター処理、リサンプリング、トレンド除去、複製、抽出、または名前の変更

  • カスタム前処理関数の追加および適用

  • 複数の信号波形、スペクトル、パーシステンス、スペクトログラム、およびスカログラム表現の可視化および比較の同時実行

  • 解析または機械学習や深層学習の各アプリケーションの信号を対話形式でラベル付けします。

信号アナライザーアプリを使用すると、持続時間が異なる多数の信号を同じビュー内で同時に扱うことができます。

詳細は、信号アナライザー アプリの使用を参照してください。

スカログラムの表示を使用するには、Wavelet Toolbox™ のライセンスが必要です。

信号アナライザー アプリを開く

  • MATLAB のツールストリップ: [アプリ] タブの [信号処理と通信] でアプリのアイコンをクリックします。

  • MATLAB コマンド プロンプト: signalAnalyzer と入力します。

すべて展開する

標準のデジタル ミュージック シンセサイザーを実装し、3 音声配置で民謡の演奏に使用します。サンプルレートを 2 kHz に指定します。歌曲を MATLAB® の timetable として保存します。

fs = 2e3;
t = 0:1/fs:0.3-1/fs;

l = [0 130.81 146.83 164.81 174.61 196.00 220 246.94];
m = [0 261.63 293.66 329.63 349.23 392.00 440 493.88];
h = [0 523.25 587.33 659.25 698.46 783.99 880 987.77];
note = @(f,g) [1 1 1]*sin(2*pi*[l(g) m(g) h(f)]'.*t);

mel = [3 2 1 2 3 3 3 0 2 2 2 0 3 5 5 0 3 2 1 2 3 3 3 3 2 2 3 2 1]+1;
acc = [3 0 5 0 3 0 3 3 2 0 2 2 3 0 5 5 3 0 5 0 3 3 3 0 2 2 3 0 1]+1;

song = [];
for kj = 1:length(mel)
    song = [song note(mel(kj),acc(kj)) zeros(1,0.01*fs)];
end
song = song'/(max(abs(song))+0.1);

% To hear, type sound(song,fs)

tune = timetable(seconds((0:length(song)-1)'/fs),song);

信号アナライザーを開いて、ワークスペース ブラウザーから信号テーブルに timetable をドラッグします。[グリッドの表示] ▼ をクリックして、2 行 2 列のグリッドの表示を作成します。上の 2 つと左下の表示を選択し、[スペクトル] ボタンをクリックしてスペクトル表示を追加します。右下の表示を選択し、[時間-周波数] をクリックしてスペクトログラムの表示を追加し、[時間] をクリックして時間の表示を削除します。4 つすべての表示に歌曲をドラッグします。右下の表示を選択し、[スペクトログラム] タブで、0.31 秒 (310 ms) の時間分解能、0% の隣接するセグメント間のオーバーラップを指定します。[パワーの範囲]-50 dB と -10 dB に設定します。

[アナライザー] タブで、[複製] を 3 回クリックして歌曲のコピーを 3 つ作成します。信号テーブルの [名前] 列をダブルクリックして、コピーの名前を highmediumlow に変更します。コピーを上の 2 つと左下の表示に移動します。

フィルターを使用して複製信号を前処理します。

  1. high 信号を、信号テーブルで名前をクリックして選択します。[アナライザー] タブの [ハイパス] をクリックします。表示された [ハイパス] タブで 450 Hz の通過帯域周波数を入力し、急峻さを 0.95 に増やします。[ハイパス] をクリックします。

  2. medium 信号を、信号テーブルで名前をクリックして選択します。[アナライザー] タブの [前処理] ▼ をクリックして、[バンドパス] を選択します。表示された [バンドパス] タブで、低域および高域通過帯域周波数としてそれぞれ 230 Hz と 450 Hz を入力します。急峻さを 0.95 に増やします。[バンドパス] をクリックします。

  3. low 信号を、信号テーブルで名前をクリックして選択します。[アナライザー] タブの [ローパス] をクリックします。表示された [ローパス] タブで、230 Hz の通過帯域周波数を入力し、急峻さを 0.95 に増やします。[ローパス] をクリックします。

フィルター処理された信号が含まれる 3 つの表示のそれぞれで次を行います。

  1. 元の信号の名前の隣にあるチェック ボックスをオフにして元の信号を削除します。

  2. [表示] タブの [時間-周波数] をクリックしてスペクトログラムの表示を追加し、[時間] をクリックして時間の表示を削除します。

  3. [スペクトログラム] タブで、0.31 秒の時間分解能を指定し、隣接するセグメント間のオーバーラップとして 0% を指定します。[パワーの範囲]-50 dB と -10 dB に設定します。

フィルター処理された 3 つの信号を、信号テーブルの [名前] 列をクリックして選択します。[アナライザー] タブで [エクスポート] をクリックして信号を music.mat という MAT ファイルに保存します。MATLAB で、ファイルをワークスペースに読み込みます。3 つの信号のスペクトルをプロットします。

load music

pspectrum(low)
hold on
pspectrum(medium)
pspectrum(high)
hold off

% To hear the different voices, type 
% sound(low.Var1,fs), pause(5), sound(medium.Var1,fs), pause(5), sound(high.Var1,fs)

4 kHz でサンプリングされた太平洋のシロナガスクジラのオーディオ データを含むファイルを読み込みます。ファイルは、コーネル大学の生物音響学研究プログラムが管理する動物発声ライブラリのものです。データの時間スケールは、音の高さを上げ鳴き声を聞き取りやすくするために係数 10 で圧縮されています。信号を MATLAB® の timetable に変換します。

whaleFile = fullfile(matlabroot,'examples','matlab','bluewhale.au');
[w,fs] = audioread(whaleFile);

whale = timetable(seconds((0:length(w)-1)'/fs),w);

% To hear, type soundsc(w,fs)

"信号アナライザー" を開いて timetable をディスプレイにドラッグします。ノイズの中で 4 つの特徴が目立っています。最初は "ふるえ声"、他の 3 つは "うめき声" として知られています。

[表示] タブで [スペクトル] をクリックしてスペクトル表示を開き、[パナー] をクリックしてパナーをアクティブにします。パナーを使用して、約 2 秒の幅をもつズーム ウィンドウを作成します。ふるえ声の中央に配置されるように、ズーム ウィンドウをドラッグします。スペクトルによって、900 Hz のあたりに目立ったピークが示されます。

3 つのうめき声を抽出し、そのスペクトルを比較します。

  1. パナーのズーム ウィンドウを最初のうめき声の中央に置きます。スペクトルで 8 つのピークが明瞭に定義されました。これらのピークは、170 Hz の倍数に非常に近い位置にあります。[信号の抽出] ▼ をクリックし、Between Time Limits を選択します。

  2. [パナー] をクリックしてパナーを非表示にします。スペース キーを押して信号全体を表示します。[X 軸方向にズーム イン] をクリックし、時間表示において 2 番目のうめき声が中心の 2 秒間を拡大します。ここでも、170 Hz の倍数の位置にスペクトルのピークがあります。[信号の抽出] ▼ をクリックし、Between Time Limits を選択します。

  3. スペース キーを押して信号全体を表示します。[データ カーソル] ▼ をクリックし、Two を選択します。時間領域のカーソルを 3 番目のうめき声を含む 2 秒間の位置に置きます。ここでも、170 Hz の倍数の位置にピークがあります。[信号の抽出] ▼ をクリックし、Between Time Cursors を選択します。

元の信号をディスプレイから削除するために、信号テーブルで元の信号の名前の隣にあるチェック ボックスをオフにします。抽出した 3 つの関心領域を表示します。それぞれのスペクトルは、お互いのほぼ頂点の位置にあります。周波数領域のカーソルを最初と 3 番目のスペクトル ピークの位置に移動します。カーソル ラベルのアスタリスクは、内挿された信号値を示しています。

オオクビワコウモリ ("Eptesicus fuscus") の発する反響定位パルスを 7 マイクロ秒間隔のサンプリングで測定したデータを含むファイルを読み込みます。信号と時間情報を使用して MATLAB® timetable を作成します。

load batsignal

t = (0:length(batsignal)-1)*DT;
sg = timetable(seconds(t)',batsignal);

信号アナライザーを開いて、ワークスペース ブラウザーから信号テーブルに timetable をドラッグします。[グリッドの表示] ▼ をクリックして、2 つのディスプレイを並べて作成します。各ディスプレイを選択し、[時間-周波数] ボタンをクリックしてスペクトログラム表示を追加します。

両方のディスプレイに timetable をドラッグします。

[スペクトログラム] タブを選択します。右側のディスプレイの [再割り当て] をオンにします。各ディスプレイについて以下を行います。

  • 時間分解能を 280 マイクロ秒に設定し、隣接するセグメント間のオーバーラップとして 85% を指定します。

  • [漏れ] スライダーを使用して、RBW が約 4.5 kHz になるまで漏れを増やします。

  • パワーの範囲を -45 dB と -20 dB に設定します。

再割り当てされたスペクトログラムでは、3 つの時間-周波数リッジが明瞭に表示されます。リッジを追跡するために、右側のディスプレイを選択します。[表示] タブの [スクリプトの生成] をクリックして、Spectrogram Script を選択します。スクリプトがエディターで開きます。

% Compute spectrogram

% Generated by MATLAB(R) 9.7 and Signal Processing Toolbox 8.2.
% Generated on: 26-Dec-2018 17:21:44

% Parameters
timeLimits = seconds([0 0.002793]); % seconds
frequencyLimits = [0 71428.57]; % Hz
leakage = 0.9;
timeResolution = 0.00028; % seconds
overlapPercent = 85;
reassignFlag = true;

%%
% Index into signal time region of interest
sg_batsignal_ROI = sg(:,'batsignal');
sg_batsignal_ROI = sg_batsignal_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,T] = pspectrum(sg_batsignal_ROI, ...
    'spectrogram', ...
    'FrequencyLimits',frequencyLimits, ...
    'Leakage',leakage, ...
    'TimeResolution',timeResolution, ...
    'OverlapPercent',overlapPercent, ...
    'Reassign',reassignFlag);

スクリプトを実行します。再割り当てされたスペクトログラムをプロットします。

mesh(seconds(T),F,P)
xlabel('Time')
ylabel('Frequency')
axis tight
view(2)
colormap pink

リッジの追跡に関数 tfridge を使用します。

[fridge,~,lridge] = tfridge(P,F,0.01,'NumRidges',3,'NumFrequencyBins',10);

hold on
plot3(seconds(T),fridge,P(lridge),':','linewidth',3)
hold off

この例では、イリノイ大学の Curtis Condon 氏、Ken White 氏、Al Feng 氏にコウモリのデータの提供および使用許可をいただきました。ご協力に謝意を申し上げます。

データが指定した飽和点より大きい場合、センサーはクリップした読み取り値を返します。読み取り値を再構成するために、飽和区間に隣接する点から多項式をあてはめることができます。再構成を実行する関数を記述し、信号アナライザーに組み込みます。

1 kHz で 14 秒間サンプリングされた 3 チャネルの信号を生成します。信号には、さまざまなサイズと形状の複数のピークがあります。信号を読み取るセンサーは、0.1 V で飽和します。

fs = 1000;
t = 0:1/fs:14-1/fs;

sig = [chirp(t-1,0.1,17,2,'quadratic',1).*sin(2*pi*t/5);
    chirp(t-2,2,2,2.1,'quadratic',100).*exp(-(t-6.5).^2/20).*sin(2*pi*t*2);
    0.85*besselj(0,5*(sin(2*pi*(t+1.5).^2/20).^2)).*sin(2*pi*t/9)]';

sigsat = sig;
stv = 0.1;
sigsat(sigsat >= stv) = stv;

信号アナライザーを開いて、元の信号と飽和した信号を信号テーブルにドラッグします。元のチャネルと飽和したチャネルをそれぞれのディスプレイにドラッグします。

多項式を使用する関数を記述して、信号のピークを再構成します。

  • 最初の入力引数 x は、入力信号です。この引数はベクトルでなければならず、単一チャネルとして取り扱われます。

  • 2 番目の入力引数 tIn は、時間値のベクトルです。ベクトルは信号と同じ長さでなければなりません。入力信号に時間情報がない場合、関数はこの引数を空の配列として読み取ります。

  • 追加の入力引数を指定するには、varargin を使用します。追加の入力引数がない場合は、varargin を省略できます。追加の引数は、[前処理] タブに順序付きのコンマ区切りリストとして入力します。

  • 最初の出力引数 y は、前処理済みの信号です。

  • 2 番目の出力引数 tOut は、出力時間値のベクトルです。入力信号に時間情報がない場合、tOut は空の配列として返されます。

  • アルゴリズムを実装するために、MATLAB® 関数または Signal Processing Toolbox™ 関数を使用できます。

function [y,tOut] = declip(x,tIn,varargin)
% Declip saturated signal by fitting a polynomial

    % Initialize the output signal

    y = x;

    % For signals with no time information, use sample numbers as abscissas
    
    if isempty(tIn)
        tOut = [];
        t = (1:length(x))';
    else
        t = tIn;
        tOut = t;
    end
    
    % Specify the degree of the polynomial as an optional input argument
    % and provide a default value of 4
    
    if nargin<3
        ndx = 4;
    else
        ndx = varargin{1};
    end

    % To implement your algorithm, you can use any MATLAB or Signal
    % Processing Toolbox function
    
    % Find the intervals where the signal is saturated and generate an 
    % array containing the interval endpoints
    idx = find(x==max(x)); 
    fir = [true;diff(idx)~=1];
    ide = [idx(fir) idx(fir([2:end 1]))];
    % For each interval, fit a polynomial of degree ndx over the ndx+1 points
    % before the interval and the ndx+1 points after the interval
    for k = 1:size(ide,1)
        bef = ide(k,1); aft = ide(k,2);
        intv = [bef-1+(-ndx:0) aft+1+(0:ndx)];
        [pp,~,mu] = polyfit(t(intv),x(intv),ndx);
        y(bef:aft) = polyval(pp,t(bef:aft),[],mu);
    end

end

関数をカスタム前処理関数として信号アナライザーに追加します。[アナライザー] タブの [前処理] ▼ をクリックして、[カスタム関数の追加] を選択します。関数名と説明を入力します。表示されるエディター ウィンドウに関数のテキストを貼り付けます。ファイルを保存します。関数が前処理ギャラリーに表示されます。

作成した関数が、飽和した領域を再構成することを確認します。

  1. 信号テーブルで、飽和した信号の最初のチャネルを選択します。

  2. [アナライザー] タブの [前処理] ▼ をクリックして、[declip] を選択します。

  3. 表示された [前処理] タブで、[前処理] をクリックします。

信号に時間情報がある場合に前処理関数が機能することを確認します。

  1. 信号テーブルの sigsigsat を選択します。個々のチャネルは選択しないでください。

  2. [アナライザー] タブで [時間値] をクリックし、Sample Rate and Start Time を選択して、サンプルレートとして fs を指定します。

  3. 上部パネルの信号は、再構成された領域を含み、時間情報を持ちます。

オプションの入力を指定した場合に関数が機能することを確認します。

  1. 信号テーブルで、飽和した信号の 2 番目と 3 番目のチャネルを選択します。

  2. [前処理] タブで、[引数] フィールドに 8 を入力して、[前処理] をクリックします。前処理関数は次数 8 の多項式を使用して飽和した領域を再構成します。

信号アナライザーを使用して、ベアリング振動信号の包絡線スペクトルを計算して欠陥を調査します。MATLAB® スクリプトと関数を生成して、解析を自動化します。

ベアリング振動データの生成

図に示す大きさをもつベアリングは、1 秒あたり f0=25 回駆動されます。加速度計はベアリングの振動を 10 kHz でサンプリングします。

例の最後の関数 bearingdata を使用して、2 つの欠陥ベアリングから振動信号を生成します。信号の 1 つ xBPFO で、ベアリングの外輪に欠陥があります。その他の信号 xBPFI では、ベアリングの内輪に欠陥があります。ベアリングのモデリングと欠陥の診断の詳細については、回転機の振動解析envspectrumを参照してください。

[t,xBPFO,xBPFI,bpfi] = bearingdata;

信号アナライザーを使用した包絡線スペクトルの計算

信号アナライザーを開いて BPFO 信号をディスプレイにドラッグします。信号テーブルでそれを選択し、[アナライザー] タブで [時間値] ボタンをクリックすることで、信号に時間情報を追加します。Sample Rate and Start Time オプションを選択して、10 kHz のサンプルレートを入力します。

[表示] タブで、[スペクトル] をクリックしてスペクトル ビューを開きます。振動信号のスペクトルは、3 kHz の影響を及ぼす周波数によって変調された BPFO 高調波を示します。スペクトルの下端では、駆動周波数とその次数により、その他の特徴が不明確になります。

信号を選択し、[アナライザー] タブで、[複製] をクリックしてコピーを生成します。新しい信号に名前 envspec を指定して、ディスプレイにドラッグします。ヒルベルト変換を使用して、信号の包絡線スペクトルを計算します。

  1. 信号の DC 値を削除します。[アナライザー] タブの [前処理] ▼ をクリックして、[トレンド除去] を選択します。表示される [トレンド除去] タブで、Constant を方法として選択します。[トレンド除去] をクリックします。

  2. トレンド除去された信号をバンドパス フィルター処理します。[アナライザー] タブの [前処理] ▼ をクリックして、[バンドパス] を選択します。表示された [バンドパス] タブで、低域および高域通過帯域周波数としてそれぞれ 2250 Hz と 3750 Hz を入力します。[バンドパス] をクリックします。

  3. フィルター処理された信号の包絡線を計算します。[アナライザー] タブの [前処理] ▼ をクリックして、[包絡線] を選択します。表示される [包絡線] タブで、Hilbert を方法として選択します。[包絡線] をクリックします。

  4. [トレンド除去] を使用して包絡線の DC 値を削除します。

包絡線スペクトルがディスプレイのスペクトル ビューに表示されます。包絡線スペクトルによって BPFO 高調波が明瞭に表示されます。

積分された解析スクリプトを作成するためのステップ

包絡線スペクトルの計算を多数の異なるベアリングに対して繰り返さなければならない場合、単調で時間がかかる作業になります。信号アナライザーは、計算を自動化できる MATLAB® スクリプトと関数を生成できます。

演習として、BPFI 信号に対する前の解析を繰り返します。信号アナライザーは、次のような自動化に役立つ 2 つのコンポーネントを生成します。

  1. トレンド除去、フィルター処理、包絡線を計算することによって信号を前処理する関数

  2. 包絡線スペクトルを計算するスクリプト

積分された解析スクリプトを作成するには、変更されていない前処理関数とプロット スクリプトの両方を単一ファイルに入れます (または、個別のファイルに関数を保存できます)。

  • 単一の MATLAB® スクリプトにスクリプトと関数を保存する場合、関数が最後に表示されなければならないことに注意してください。

  • 各関数の最後にキーワード end を追加しなければなりません。

1.前処理関数の作成

最初に、前処理ステップを再現する関数を作成します。envspec 信号を選択します。[アナライザー] タブの [関数の生成] をクリックします。既定で preprocess と呼ばれる関数がエディターに表示されます。積分された解析スクリプトの最後に生成された関数を保存します。関数は、時間情報を指定する 2 番目の引数を予測します。関数を使用して BPFI 信号を前処理します。

envspec = preprocess(xBPFI,t);

2.スペクトル スクリプトの作成

アプリで、名前の隣にあるチェック ボックスをオフにして、ディスプレイから未処理の信号を削除します。[表示] タブの [スクリプトの生成] ▼ をクリックして、Spectrum Script を選択します。スクリプトがエディターで開きます。積分された解析スクリプトに生成したコードを含めます。解析スクリプトを実行すると、生成したスペクトル スクリプトは、前処理した BPFI 信号の包絡線スペクトルを計算します。

% Compute power spectrum

% Generated by MATLAB(R) 9.6 and Signal Processing Toolbox 8.2.
% Generated on: 12-Nov-2018 15:13:34

% Parameters
timeLimits = [0 0.9999]; % seconds
frequencyLimits = [0 5000]; % Hz

%%
% Index into signal time region of interest
envspec_ROI = envspec(:);
sampleRate = 10000; % Hz
startTime = 0; % seconds
minIdx = ceil(max((timeLimits(1)-startTime)*sampleRate,0))+1;
maxIdx = floor(min((timeLimits(2)-startTime)*sampleRate,length(envspec_ROI)-1))+1;
envspec_ROI = envspec_ROI(minIdx:maxIdx);

% Compute spectral estimate
% Run the function call below without output arguments to plot the results
[Penvspec_ROI, Fenvspec_ROI] = pspectrum(envspec_ROI,sampleRate, ...
    'FrequencyLimits',frequencyLimits);

3.包絡線スペクトルのプロット

包絡線スペクトルをプロットします。ピークの位置と最初の 10 個の BPFI の高調波の周波数を比較します。出力引数のない pspectrum コマンドを使用して包絡線スペクトルをプロットすることもできます。

plot(Fenvspec_ROI,(Penvspec_ROI))
hold on
[X,Y] = meshgrid((1:10)*bpfi,ylim);
plot(X,Y,':k')
hold off
xlim([0 10*bpfi])

関数コード

単一の前処理関数

アプリによって生成された信号前処理関数は、トレンド除去、バンドパス フィルター処理、および包絡線計算を組み合わせます。

function y = preprocess(x,tx)
%  Preprocess input x
%    This function expects an input vector x and a vector of time values
%    tx. tx is a numeric vector in units of seconds.

% Generated by MATLAB(R) 9.6 and Signal Processing Toolbox 8.2.
% Generated on: 12-Nov-2018 15:09:44

y = detrend(x,'constant');
Fs = 1/mean(diff(tx)); % Average sample rate
y = bandpass(y,[2250 3750],Fs,'Steepness',0.85,'StopbandAttenuation',60);
[y,~] = envelope(y);
y = detrend(y,'constant');
end

関数を生成するベアリング データ

ベアリングのピッチの直径は、p=12 cm で、ベアリングの接触角は θ=0 です。各 n=8 回転要素の直径は d=2 cm です。内輪が 1 秒あたり f0=25 回駆動される間、外輪は静止状態を保ちます。加速度計はベアリングの振動を 10 kHz でサンプリングします。

function [t,xBPFO,xBPFI,bpfi] = bearingdata

p = 0.12;
d = 0.02;
n = 8;
th = 0;
f0 = 25;
fs = 10000;

正常なベアリングの場合、振動信号は、ホワイト ガウス ノイズに組み込まれている、駆動周波数の複数の次数の重ね合わせです。

t = 0:1/fs:1-1/fs;
z = [1 0.5 0.2 0.1 0.05]*sin(2*pi*f0*[1 2 3 4 5]'.*t);

xHealthy = z + randn(size(z))/10;

外輪に欠陥があると、時間の経過と共にベアリングの摩耗を引き起す 5 ミリ秒の一連の影響の原因となります。影響は、ベアリングの外輪転動体通過周波数 (BPFO: Ball Pass Frequency Outer race) で発生します。

BPFO=12nf0[1-dpcosθ]

影響を指数関数的に減衰する 3 kHz の正弦波の周期列としてモデル化します。BPFO 振動信号を生成するために正常な信号に影響を追加します。

bpfo = n*f0/2*(1-d/p*cos(th));

tmp = 0:1/fs:5e-3-1/fs;
xmp = sin(2*pi*3000*tmp).*exp(-1000*tmp);

xBPFO = xHealthy + pulstran(t,0:1/bpfo:1,xmp,fs)/4;

代わりに、内輪に欠陥がある場合、影響が次の周波数で発生します。

BPFI=12nf0[1+dpcosθ]

正常な信号に影響を追加して BPFI 振動信号を生成します。

bpfi = n*f0/2*(1+d/p*cos(th));

xBPFI = xHealthy + pulstran(t,0:1/bpfi:1,xmp,fs)/4;

end

関連する例

プログラムによる使用

すべて展開する

signalAnalyzer信号アナライザーアプリを開きます。

signalAnalyzer(sig)信号アナライザーアプリを開き、信号 sig をインポートしてプロットします。‎アプリが既に開いている場合は、現在のディスプレイで sig がプロットされます。sig が既にプロットされたが、変更されている場合、関数呼び出しでプロットが更新されます。

sig はワークスペースの変数または MATLAB の式です。sig は以下になります。

  • 各列に独立した信号を含むベクトルまたは行列。

  • 時間値が持続時間として指定された timetable

  • timeseries オブジェクト。

詳細は、信号アナライザーでサポートされるデータ型を参照してください。

既定では、アプリは信号をサンプル インデックスの関数としてプロットします。時間情報を指定した場合、または信号が固有の時間情報をもつ場合、アプリは信号を時間の関数としてプロットします。

signalAnalyzer(sig1,...,sigN) は、N 個の信号ベクトルまたは行列をインポートし、現在のディスプレイでプロットします。アプリは、同じ関数呼び出しによる、固有の時間情報をもつ信号と固有の時間情報をもたない信号のインポートはサポートしません。

signalAnalyzer(___,'SampleRate',fs) は、サンプルレート fs を Hz 単位の正のスカラーとして指定します。アプリはこのサンプルレートを使用し、開始時間をゼロとして 1 つ以上の信号を時間に対してプロットします。固有の時間情報をもたない信号のサンプルレートを指定できます。

signalAnalyzer(___,'SampleTime',ts) は、サンプル時間 ts を秒単位の正のスカラーとして指定します。アプリはこのサンプル時間を使用し、開始時間をゼロとして 1 つ以上の信号を時間に対してプロットします。固有の時間情報をもたない信号のサンプル時間を指定できます。

signalAnalyzer(___,'StartTime',st) は、信号の開始時間 st を秒単位のスカラーとして指定します。サンプルレートまたはサンプル時間を指定しない場合、アプリはサンプルレートを 1 Hz と仮定します。固有の時間情報をもたない信号の開始時間を指定できます。

signalAnalyzer(___,'TimeValues',tv) は、時間値がデータ点に対応するベクトル tv を指定します。tv は秒単位の値をもつ実数の数値ベクトルとして指定できます。tv は配列 duration としても指定できます。tv の値は一意で、NaN にすることはできませんが、その間隔は均一である必要はありません。すべての入力信号は tv と同じ長さでなければなりません。固有の時間情報をもたない信号に、時間値のベクトルを指定できます。

フィルター処理とスカログラム表示は一様にサンプリングされていない信号はサポートしていません。

R2016a で導入