このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
rpmfreqmap
次数分析のための周波数-RPM マップ
構文
説明
は、前の構文の入力引数に加えて map
= rpmfreqmap(___,Name,Value
)Name,Value
のペアを使用してオプションを指定します。
出力引数なしの rpmfreqmap(___)
は、周波数マップを、回転速度および時間の関数として対話型 Figure 上にプロットします。このプロットは "キャンベル線図" としても知られています。
例
4 つの次数をもつチャープの周波数-RPM マップ
600 Hz で 5 秒間サンプリングされたシミュレーション信号を作成します。テスト中のシステムは、観察期間中に回転速度を 1 秒あたり 10 回転から 40 回転に上昇させます。
タコメーターの読み取り値を生成します。
fs = 600; t1 = 5; t = 0:1/fs:t1; f0 = 10; f1 = 40; rpm = 60*linspace(f0,f1,length(t));
信号は、1、0.5、4 および 6 の次数をもつ、調和的に関連した 4 つのチャープで構成されています。次数 4 のチャープの振幅は他のチャープの振幅の 2 倍です。チャープを生成するために、台形則を使用して位相を回転速度の積分で表します。
o1 = 1; o2 = 0.5; o3 = 4; o4 = 6; ph = 2*pi*cumtrapz(rpm/60)/fs; x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);
信号の周波数-RPM マップを可視化します。
rpmfreqmap(x,fs,rpm)
ヘリコプターの振動データの周波数-RPM マップ
ヘリコプターのコクピットに設置された加速度計から取得したシミュレーション データを解析します。
ヘリコプターのデータを読み込みます。振動測定値 vib
は、500 Hz のレートで 10 秒間サンプリングされています。データの調査から、データには線形トレンドがあることがわかります。トレンドを除去して、トレンドによる周波数推定の質の低下を防ぎます。
load('helidata.mat')
vib = detrend(vib);
非線形 RPM プロファイルをプロットします。ローターは、最大回転速度である 1 分あたり 27,600 回転に達するまで回転数を上昇させ、その後降下させます。
plot(t,rpm) xlabel('Time (s)') ylabel('RPM')
周波数-RPM マップを計算します。2.5 Hz の分解能帯域幅を指定します。
[map,freq,rpmOut,time] = rpmfreqmap(vib,fs,rpm,2.5);
マップを可視化します。
imagesc(time,freq,map) ax = gca; ax.YDir = 'normal'; xlabel('Time (s)') ylabel('Frequency (Hz)')
より細かい分解能帯域幅を使用して計算を繰り返します。rpmfreqmap
の組み込み機能を使用してマップをプロットします。周波数分解能を向上させると、時間分解能が低下します。
rpmfreqmap(vib,fs,rpm,1.5);
周波数-RPM マップのウォーターフォール プロット
2 つの線形チャープと 1 つの 2 次チャープ (すべて 600 Hz で 15 秒間サンプリング) で構成される信号を生成します。テスト期間中、信号を発生させるシステムは回転速度を 1 秒あたり 10 回転から 40 回転に上昇させます。
タコメーターの読み取り値を生成します。
fs = 600; t1 = 15; t = 0:1/fs:t1; f0 = 10; f1 = 40; rpm = 60*linspace(f0,f1,length(t));
線形チャープの次数は 1 および 2.5 です。次数 1 の成分の振幅は他の成分の振幅の半分です。2 次チャープは次数 6 から始まり、測定の最後にこの次数に戻ります。振幅は 0.8 です。この情報を使用して信号を作成します。
o1 = 1; o2 = 2.5; o6 = 6; x = 0.5*chirp(t,o1*f0,t1,o1*f1)+chirp(t,o2*f0,t1,o2*f1) + ... 0.8*chirp(t,o6*f0,t1,o6*f1,'quadratic');
信号の周波数-RPM マップを計算します。各測定セルのピーク振幅を使用します。6 Hz の分解能を指定します。フラット トップ ウィンドウを使用して、データにウィンドウを適用します。
[map,fr,rp] = rpmfreqmap(x,fs,rpm,6, ... 'Amplitude','peak','Window','flattopwin');
周波数-RPM マップをウォーターフォール プロットとして描画します。
[FR,RP] = meshgrid(fr,rp); waterfall(FR,RP,map') view(-6,60) xlabel('Frequency (Hz)') ylabel('RPM') zlabel('Amplitude')
対話型の周波数-RPM マップ
出力引数なしで rpmfreqmap
を呼び出して、対話型の周波数-RPM マップをプロットします。
ヘリコプターのコクピットに設置された加速度計から取得したシミュレーション振動データを含むファイルを読み込みます。データは 500 Hz のレートで 10 秒間サンプリングされています。データの線形トレンドを除去します。rpmfreqmap
を呼び出して、周波数-RPM マップの対話型プロットを生成します。2 Hz の周波数分解能を指定します。
load helidata.mat
rpmfreqmap(detrend(vib),fs,rpm,2)
Figure 内で十字カーソルを移動して、5 秒後の周波数 25 Hz の位置の RPM および RMS 振幅を特定します。
ツール バーの [X 軸ズーム] ボタン をクリックし、2 ~ 4 秒の時間領域を拡大します。下部のプロットにパナーが表示されます。
ツール バーの [ウォーターフォール プロット] ボタン をクリックし、周波数-RPM マップをウォーターフォール プロットとして表示します。可視性を向上させるため、[左に回転] ボタン を 3 回使用してプロットを時計回りに回転させます。4 ~ 6 秒の区間にパナーを移動します。
入力引数
x
— 入力信号
ベクトル
入力信号。行ベクトルまたは列ベクトルとして指定します。
例: cos(pi/4*(0:159))+randn(1,160)
は、ホワイト ガウス ノイズに含まれる正弦波を指定します。
fs
— サンプル レート
正のスカラー
サンプル レート。正のスカラーとして Hz 単位で指定します。
res
— 分解能帯域幅
fs
/128 (既定値) | 正のスカラー
周波数-RPM マップの分解能帯域幅。正のスカラーで指定します。res
が指定されていない場合、rpmfreqmap
では 128 で除算したサンプル レートが設定されます。信号長が十分ではない場合、関数は信号全体の長さを使用して単一の周波数推定を計算します。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: 'Scale','dB','Window','hann'
は、周波数マップの推定がデシベル単位でスケーリングされ、ハン ウィンドウを使用して決定されるように指定します。
Amplitude
— 周波数-RPM マップの振幅
'rms'
(既定値) | 'peak'
| 'power'
周波数-RPM マップの振幅。'Amplitude'
および 'rms'
、'peak'
、'power'
のいずれかで構成されるコンマ区切りのペアとして指定します。
'rms'
— 各推定周波数の平方根平均二乗振幅を返します。'peak'
— 各推定周波数のピーク振幅を返します。'power'
— 各推定周波数のパワー レベルを返します。
OverlapPercent
— 隣り合ったセグメント間のオーバーラップ率
50 (既定値) | 0 から 100 までのスカラー値
隣り合ったセグメント間のオーバーラップ率。'OverlapPercent'
と、0 から 100 までのスカラー値で構成されるコンマ区切りのペアとして指定します。値 0 は隣り合ったセグメントがオーバーラップしないことを意味します。値 100 は隣り合ったセグメントが 1 サンプル分シフトされることを意味します。オーバーラップ率が大きくなると、滑らかなマップが生成されますが、計算時間が長くなります。詳細については、rpmordermap
を参照してください。
データ型: double
| single
Scale
— 周波数-RPM マップのスケーリング
'linear'
(既定値) | 'dB'
周波数-RPM マップのスケーリング。'Scale'
と 'linear'
または 'dB'
のいずれかで構成されるコンマ区切りのペアとして指定します。
'linear'
— 線形にスケーリングされたマップを返します。'dB'
— 値をデシベル単位で表した対数マップを返します。
Window
— 解析ウィンドウ
'hann'
(既定値) | 'chebwin'
| 'flattopwin'
| 'hamming'
| 'kaiser'
| 'rectwin'
解析ウィンドウ。'Window'
と次の値のいずれかで構成されるコンマ区切りペアとして指定します。
'hann'
はハン ウィンドウを指定します。詳細については、hann
を参照してください。'chebwin'
はチェビシェフ ウィンドウを指定します。cell 配列を使用して、サイドローブの減衰をデシベル単位で指定します。サイドローブの減衰量は 45 dB より大きくなければなりません。指定されていない場合、既定値の 100 dB が使用されます。詳細については、chebwin
を参照してください。'flattopwin'
はフラット トップ ウィンドウを指定します。詳細については、flattopwin
を参照してください。'hamming'
はハミング ウィンドウを指定します。詳細については、hamming
を参照してください。'kaiser'
はカイザー ウィンドウを指定します。cell 配列を使用して、形状パラメーター β を指定します。形状パラメーターは正のスカラーでなければなりません。指定されていない場合、既定値の 0.5 が使用されます。詳細については、kaiser
を参照してください。'rectwin'
は箱型ウィンドウを指定します。詳細については、rectwin
を参照してください。
例: 'Window','chebwin'
は、サイドローブの減衰量が 100 dB であるチェビシェフ ウィンドウを指定します。
例: 'Window',{'chebwin',60}
は、サイドローブの減衰量が 60 dB であるチェビシェフ ウィンドウを指定します。
例: 'Window','kaiser'
は、0.5 の形状パラメーターをもつカイザー ウィンドウを指定します。
例: 'Window',{'kaiser',1}
は、1 の形状パラメーターをもつカイザー ウィンドウを指定します。
データ型: char
| string
| cell
出力引数
map
— 周波数-RPM マップ
行列
周波数-RPM マップ。行列として返されます。
freq
— 周波数
ベクトル
ベクトルとして返される周波数。
rpm
— 回転速度
ベクトル
回転速度。ベクトルとして返されます。
time
— 時点
ベクトル
時点。ベクトルとして返されます。
res
— 分解能帯域幅
スカラー
分解能帯域幅。スカラー値として返されます。
参照
[1] Brandt, Anders. Noise and Vibration Analysis: Signal Analysis and Experimental Procedures. Chichester, UK: John Wiley & Sons, 2011.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
この関数は、GPU 配列を完全にサポートします。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2015b で導入R2023b: gpuArray
オブジェクトの使用
関数 rpmfreqmap
は gpuArray
オブジェクトをサポートしています。この機能を使用するには、Parallel Computing Toolbox™ が必要です。
参考
orderspectrum
| ordertrack
| orderwaveform
| rpmordermap
| rpmtrack
| spectrogram
| tachorpm
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)