信号アナライザーのヒントと制限
よくある質問と信号アナライザー アプリの現在の制限です。
解析する信号の選択
"512 行 24 列の行列をディスプレイにドラッグしましたが、アプリは 24 信号のうち 10 信号のみをプロットしました。他の信号はどのようにプロットすればよいですか。"
既定では、信号アナライザーはマルチチャネル信号の列すべてをインポートしますが、プロットするのは最初の 10 列のみです。10 列目より先の信号列をプロットするには、対象をディスプレイにドラッグします。あるいは、信号テーブルで、プロットする信号名の横にあるチェック ボックスを選択します。
"データは構造体内に保存されています。どうすれば信号アナライザーで解析できますか。"
信号アナライザーで構造体を調べるには、timetable に変換します。変換する最も簡単な方法は、構造体をテーブルに変換し、そのテーブルを timetable に変換します。2 番目のステップには、duration 配列への時間変数の変換が含まれます。次の例は、フィールドが 3 つある構造体を作成します。1 つには時間値が含まれ、信号アナライザーによって読み取り可能な timetable に構造体を変換します。
str.st = (0:999)'/1000; str.s1 = randn(1000,1); str.s2 = sin(2*pi*20*str.st); T = struct2table(str); T.st = seconds(T.st); TT = table2timetable(T,'RowTimes','st');
構造体に時間情報がない場合、その他の MATLAB® 関数を使用できます。次の関数は入力として構造体を取得し、そこから信号の値の配列を抽出して、信号アナライザーを呼び出して信号をプロットします。
function structSig(x) names = fieldnames(x); for i = 1:length(names) signalAnalyzer(getfield(x,names{i})) end end
"信号テーブルの行が灰色に強調表示されている場合は何を意味しますか。またチェック ボックスは何を意味しますか。"
信号テーブルでは、2 つの異なる信号選択方法があります。それぞれの方法は、一連の別々の処理へのアクセスです。
信号テーブルで [名前]、[INFO]、[時間]、または [開始時間] 列をクリックして信号を選択すると、[アナライザー] タブの操作すべてを実行できます。時間情報を変更して、信号を平滑化、フィルター、または複製することができます。信号をプロットせずに信号に対して前処理操作を実行できます。
信号名の左側にあるチェック ボックスをオンにすると、現在選択されているディスプレイに信号がプロットされ、[表示] タブの操作すべてを実行することができます。周波数領域または時間-周波数領域で信号を表示したり、カーソルを使用して信号を測定することができます。
"
datetime
配列として保存した時間値を含む timetable を使用しています。どうすれば解析できますか。"datetime
配列として保存された時間値を含む timetable を解析するには、他のすべてから最初の要素を減算することによってその配列を相対的なduration
配列を変換します。次の例では、datetime
行時間を含む timetable を作成し、信号アナライザーによって読み取り可能な timetable に変換します。tt = timetable(datetime(2016,11,9,2,30,1:10)',randn(10,1)); dt = tt.Time-tt.Time(1); tn = timetable(dt,tt.Var1);
"timetable がありますが、一部の変数のみがインポートされました。どうすればインポートできますか。"
信号アナライザーには、表示および処理できる変数のみ一覧表示されます。timetable の一部の変数がインポートされない場合は、おそらく複素数であるか、NaN があります。アプリにそれらをインポートできるようにするには、最初に MATLAB で修正しなければなりません。timetable を修正するには、欠損または重複する時間および非等間隔の時間をもつ timetable の整理のヒントを使用できます。
"MATLAB ワークスペースの変数を変更しました。信号アナライザー ディスプレイに変更がないのはなぜですか。"
MATLAB ワークスペース内の信号を変更すると、ワークスペース ブラウザーは自動的に更新を行います。アプリにその変更を認識させるには、信号テーブルやディスプレイに再度ドラッグして、信号を再インポートします。
信号の前処理
"等間隔サンプルでない信号にローパス フィルターをどのように適用すればいいですか。"
信号アナライザーのフィルター処理機能は等間隔サンプル信号のみをサポートします。信号アナライザーのリサンプリング機能を使用することによって等間隔グリッドに信号をリサンプリングできます。これは、[アナライザー] タブの [前処理] ギャラリーで見つけることができます。代わりに、関数 Signal Processing Toolbox™
resample
を使用することもできます。"前処理操作にどのパラメーターが使用されたかを知るにはどうすればよいですか。"
選択した設定すべてを含む、実行した前処理ステップの概要をすべて参照するには、[アナライザー] タブの [関数の生成] をクリックします。
信号の調査
"信号のスカログラムを表示したいのですが、等間隔サンプル信号を作成する必要があるという警告が表示されます。どのように信号をリサンプリングしたらよいですか。"
信号アナライザーのリサンプリング機能を使用することによって等間隔グリッドに信号をリサンプリングできます。これは、[アナライザー] タブの [前処理] ギャラリーで見つけることができます。代わりに、関数 Signal Processing Toolbox
resample
を使用することもできます。"スカログラムのナイキスト範囲外のズームアウトができないのはなぜですか。"
実信号が適切にサンプリングされていれば、その信号の周波数情報はすべてナイキスト範囲内に含まれます。
"どうすれば 10 個の異なる信号のスペクトログラムを比較できますか。"
信号アナライザーの時間-周波数ビューでは、ディスプレイごとに 1 つの信号のみをサポートしています。10 個の異なる信号のスペクトログラムを比較するには、10 個のディスプレイを開き、それぞれのディスプレイに各信号をドラッグします。パーシステンス スペクトルとスカログラムに同じ手順を使用できます。
解析の共有または再利用
"作成したスクリプトにそれが使用する変数が存在せず、実行されません。なぜですか。"
信号アナライザーの信号を抽出、複製、または名前変更して、変更した信号をエクスポートしないで MATLAB スクリプトを生成した場合、そのスクリプトは、変数が MATLAB ワークスペースに存在しないため、エラーをスローします。生成したスクリプトで使用される信号を必ずエクスポートしてください。
"どうすれば信号アナライザー スペクトル、MATLAB のパーシステンス スペクトル、スペクトログラム、またはスカログラムを再現できますか。"
[表示] タブの [スペクトル] または [スペクトログラム] をクリックして、スペクトル、パーシステンス スペクトル、スペクトログラム、またはプロットした信号のスカログラムを計算して表示します。信号に最適な設定をしている場合、[スクリプトの生成] をクリックして、
[スペクトル スクリプト]
、[パーシステンス スペクトル スクリプト]
、[スペクトログラム スクリプト]
、または[スカログラム スクリプト]
を選択し、MATLAB で使用できるスクリプトを生成します。"どうすれば信号アナライザーが生成した MATLAB スクリプトと関数を使用して計算を自動化できますか。"
信号アナライザーは、信号で実行された前処理の手順の組み合わせを再現する MATLAB 関数を生成できます。アプリは、関心領域を抽出するため、または信号のスペクトル、スペクトログラム、パーシステンス スペクトル、またはスカログラムを計算するために MATLAB スクリプトを生成することもできます。スクリプトと関数を結合して、解析を自動化できます。例については、振動信号の包絡線スペクトルの計算を参照してください。
トラブルシューティング
"信号アナライザーを開始できません。"
信号アナライザーは、MATLAB が OpenGL® のソフトウェアの実装を使用している場合、開始に失敗する場合があります。問題を解決するには、グラフィック ハードウェア ドライバーを更新するか、
opengl
を使用して、OpenGL のハードウェアが高速化された実装に切り替えます。詳細については、低水準グラフィックス問題の解決を参照してください。信号アナライザーを開始しようとすると、WebGL™ の JavaScript® サポートが失敗する可能性があります。問題を解決するには、グラフィック ハードウェア ドライバーを更新します。
信号アナライザーはネットワーク エラーが原因で開始に失敗する可能性があります。組織のプロキシ設定を確認して、可能であれば、アプリ起動プロセスに干渉しているプロキシを無効にします。
"信号アナライザーを開始しようとすると、「ファイル
temp_signalAnalyzer_datarepository.mat
を書き込めない」という内容のエラーが表示されます。"同一のコンピューターで実行している MATLAB の複数のインスタンスから信号アナライザーを起動することはできません。