• 締切済み

振動計測で

振動計測を行うシステムを作ろうとしています。 周波数とスペクトルデータをグラフにし、スペクトルデータのOA(オーバーオール)値を表示します。 仕組みとしては、電圧信号を取り込み(A)→ 窓関数(B)→ FFT(C) → 周波数とスペクトルデータを求める(D) → グラフ、OA値表示(E) といった感じです。 (A)は機器で取った信号を機器に付属しているソフトウェアから取り込むようになっています。生データです。 スペクトルデータの求め方がいまいちよくわかっていないのですが、 FFT演算後のデータをR(実数部)、I(虚数部)、N(FFTした件数)とすると、 リニアスペクトルならば、√(Rの2乗+Iの2乗)、 パワースペクトルならば、Rの2乗+Iの2乗 で正しいんでしょうか? 実際の計算は、市販のソフトウェアで行うのですが、そのソフトの補足説明には、 リニアスペクトルは、√(Rの2乗+Iの2乗)/ N パワースペクトルならば、Rの2乗+Iの2乗 / Nの2乗 と書いてありました。 どちらが正しいんでしょうか? 自分なりに調べたところ、前者の方が正しい気がするんですが、 後者の方もソフトとして売っているくらいなので、間違いでないような気がするんです。 NやNの2乗で割ることの意味がわかっていないので、自分では判断できないんです。 よろしくお願いします。

みんなの回答

noname#65504
noname#65504
回答No.1

投稿されてから、だいぶ経つけど誰も回答していないので、参考までに。 一般的には質問者の考えるようにNで割ったりしないものだと思います。 しかし、建築の地震動のフーリエ解析では、一般的なリニアスペクトルにT/2をかけたものをリニアスペクトルに相当するフーリエ振幅スペクトルとして扱う慣習があります(パワースペクトルは呼び名はあまりないのですが、その平方根のスペクトルの呼び名はいろいろあるようです。単純にフーリエスペクトルという人もいますし)。 これは、地震動のスペクトル解析に関して、初期に書かれた「地震動のスペクトル解析入門(大崎順彦著)」において、一般的な定義と異なることを断った上で、この著書ではT/2をかけたものをそう呼ぶと定義しており、この著書が広く参考にされたため、建築(及び関連のある土木)分野の地震動のスペクトル解析では、一般とは異なる定義で呼ぶようになったからです。 なお、Tは計測時間です。T=サンプリング間隔Δt×データ個数nです。 全著書にはプログラムソースも載っているので、そのソースを利用した場合、一般的な定義のスペクトルと比較するには、T/2=Δt×n/2で割ってやる必要があります(nで割るところまでは同じですが、Δt/2が合わないのでこれと同じではないと思いますが)。 以上の例のように、特殊な定義をしている場合があるので、ソフトのメーカーに問い合わせた方がよいと思います。

real_neo
質問者

お礼

やはりメーカーに問い合わせたほうが良いみたいですね。 ありがとうございました。

関連するQ&A

  • 振動計測結果をグラフにする

    電圧信号を取り込んで、加速度や速度を周波数領域のグラフにしたいのですが、専用のFFTアナライザで測定したグラフと結果が異なってしまいます。 計算式を直そうにもどこを直したら良いかわからないので、教えてもらえないでしょうか? 行っている計算は以下のとおりです。 Y軸はリニアスペクトルとします。 1.取り込んだ電圧信号を加速度の物理量に変換する。   1G=0.375Vとしています。例)0.2V=0.075G 2.1で求めた値をFFT演算する。 3.FFT演算で得られる実数部と虚数部からスペクトルを求める。   リニアスペクトル = {√(実数部の2乗)+(虚数部の2乗)} / 2 4.3で求めたスペクトルを実行値(RMS)に変換(1/√2)する。

  • 振動計測で速度、変位を求めたい

    振動計測のプログラムを作っています。 理論がよくわかっていないので、わからないことだらけです。 今回教えてもらいたいのは、速度と変位の求め方です。 計測した加速度を積分して求めるのはわかったのですが、そこから先が分かりません。 1.積分対象は、次のうちのどれになりますか? ・加速度の実測値 ・加速度の実測値をFFTして得られたスペクトル 2.積分とは、2×円周率×周波数で割ることみたいなのですが、 ここで言う周波数とは、サンプリング周波数のことでしょうか? それともグラフ化したときのX軸となる周波数(f(1),f(2),...f(n))のことでしょうか? 3.積分した後に、FFTしてスペクトルを求める必要はあるでしょうか? よろしくお願いします。

  • スペクトルをグラフに表示したい

    スペクトルデータをグラフに表示するプログラムを作ることになりました。 言語はVBです。 データは機械から電圧信号を取り込みます。 と言っても、実際は機械に付属しているソフトのAPIで取り込むのですが。 APIは、例えば1Vの電圧が機械に向かって流れたら、1Vが返ってくるような仕様になっています。 グラフはリアルタイムに表示する必要があります。 X軸が周波数、Y軸がスペクトルです。 スペクトルを求めるにはFFTをする必要があるので、取り込んだ電圧をそのままグラフに表示し続けるような単純な仕組みにはならないと思いますが、実際どう作ったらよいかわかりません。 私がイメージしている仕組みは以下のとおりなのですが、正しいでしょうか? (1) 電圧信号をフレームサイズ(FFTする件数)分取り込む。 (2) (1)のデータをFFTする (3) (2)の結果からスペクトルデータを求める (4) (3)のデータをグラフに表示する。 グラフの点数(座標の数)は、フレームサイズの1/2。 X軸の座標は周波数分解能ごとにプロット。 (1)~(4)を繰り返す。 (1)~(4)の処理にも少なからず時間がかかるのですが、はたしてリアルタイム表示は可能なんでしょうか? ちなみに、プログラムにはフレームサイズ(FFTする件数)と周波数レンジを設定できる機能も実装します。

  • パワースペクトルのデシベル表示について

    信号のパワースペクトルをFFTによって求め、それのデシベル値を横軸を周波数としてグラフで表示するとき、その上限が 0 dBになっているのを、様々な文献やサイトでよく見かけます。 パワースペクトルの値は 1 以上になることもありますので、そのデシベル値も 0 dB以上になると思うのですが、上記のような上限が 0 dBとして表示されている場合は、正規化などがされたパワースペクトルのデシベル値が表示されているのでしょうか? また、ある標本化関数のフーリエ変換を求め、その周波数特性の理論値をグラフとして表示するとき、周波数 0 のときで理論値が明らかに 1 ではないにも関わらず、そのデシベル表示が 0 dBから始まっているのを、様々な文献で見かけるのですが、それも正規化などがされた理論値が表示されているのでしょうか? 初歩的な質問かもしれませんが、よろしくお願いします。

  • パワースペクトルの0dBの値について

    matlabを用いて時系列データのパワースペクトルを計算、対数表示でグラフにプロットしています。 matlabのfft関数のヘルプに記載されていた例を参考に、以下のような自作の関数を組んで計算しているのですが、2つ質問があります。 1. この場合、パワースペクトルの0dBは、時系列の値ではいくつになるのでしょうか? 0dB = 1でしょうか? 2. 関数の中において、power_fftをN_fft(高速フーリエ変換時のデータ長さ)で割っている事の理由がわからなかったのですが、なぜ行っているのでしょうか? ------------------------------------------------ 以下、自作のパワースペクトル表示関数を示します function Power_db(Data_xx) fs = 1000; % サンプリング周波数 [Hz] N_fft = 2^12; % 4096個 xx_fft = fft(Data_xx,N_fft); power_xx = xx_fft.* conj(xx_fft) / N_fft; frequency = fs*(0:2047)/N_fft; % (0:2047)で500Hzまで plot(frequency,20*log10(power_xx(1:2048))) xlabel('Frequency [Hz]'); ylabel('Power Spectrum [dB]'); grid on; --------------------------------------------------------- 以上です。 何か足らない情報などがありましたらお申し付けください。 よろしくお願い致します。

  • フーリエ変換の最大周波数

    5kHzでAD変換した信号があり、解析したい成分は0~1kHzに含まれています。 上記の前提で、256点で128点オーバーラップしながらFFT処理を行った場合、FFTを行うデータ数をN、サンプリング間隔Δt(1/5kHz=0.0002sec)とした時、 分解能 Δf=1/N*Δt=19.53 最大周波数 Fmax=(N/2NΔt)-(1-Δf)=2480.47 という計算式をインターネット上で見つけました。つまり0~2480Hzまで20Hzごとのパワースペクトル時間変化が128点データが並ぶということになると思うのですが・・・・ 一方、最大周波数はFFTデータ数の半分だという記載も見つけました。すると、最大周波数は半分も128Hzだと思うのですが、どちらが正しいのでしょうか?

  • スペクトルのグラフ

    FFTをしてスペクトルを求めてグラフにしたいと思います。 理論が良く分かっておらず、私が考えたことが正しいのかどうか自信がないので、教えてください。 (1) X軸を周波数とするグラフの座標の数は、スペクトルのライン数になる。 スペクトルのライン数 = FFTの件数 ÷ 2.56 これが正しいと、X軸の最大値が周波数レンジになるはずですが…。

  • FFTについて

    FFTについて 得られたデータをハニング窓を用いて、FFTを行ったところ どのデータに関しても 周波数が0付近で他の周波数に比べて非常に大きいパワースペクトルが得られます。 これは窓関数による影響でしょうか? FFtについていくつか参考書を読みましたが、正直まったくつかめず、 よくわからないままツールを振りまわしていますので 得られたデータが本当に正しい結果であるのか信じきれません・・・。 よろしければFFTを初学者が学ぶコツ、オススメの参考書等ありましたら教えて頂きたいのです。 よろしくお願い致します。

  • FFTを使って信号から特定の周波数を抜き去る方法

    FFTを用いてある時系列データから特定の周波数の成分を抜き去ろうと思っていますが、 うまくいかないのでお伺いします。 調べてみると、スペクトルを出すとき、例えば同じ振幅で周波数の異なるの正弦波を 10個入れても全て同じ振幅にならず、振幅の大きさにばらつきが出ていて周波数成 分の成分の推定がうまくいっていないようです。FFTの2乗のデータを小さな周波数区 間で積分してスペクトル密度にしても、先ほどの10個の正弦波の振幅がそろわない のと、周波数推定が悪くなりうまく、引き去れなくなっています。 よくある状況だと思いますが、どういう工夫が必要なのでしょうか。 ちなみに、FFTのルーチンはnumerical recipeとFFTWの二つで試しました。

  • ホワイトノイズとブルーノイズの違いについて

    あるデータをFFTによって周波数解析して、 縦軸にパワースペクトル密度×周波数、横軸に周波数としてプロットしたところ、 高周波部分に周波数の1乗の傾きが得られました。 この部分をホワイトノイズ(白色雑音)だと説明したところ、 ブルーノイズ(青色雑音)だと指摘を受けました。 どちらが正しいのでしょうか。