FAQ
FAQ検索結果
検索キーワード:
Q全てのスペースを削除
QOROSのピーク検出方法について
定義
ピーク検出方法は以下に従います。
(1) 中心のスペクトラムが各方向の2つのスペクトラムより大きいこと
(2) 中心のスペクトラムに対して1つ飛ばした値が予め指定したスレッショルドより小さいこと


これはデータの中心とその隣の2点を以下のように定義した場合、
Data[Z-2]・Data[Z-1]・Data[Z]・Data[Z+2]・Data[Z+2]
以下の条件を満たした場合をピークと判断します。
Data[Z-2] < Data[Z] - スレッショルド
Data[Z-1] < Data[Z]
Data[Z+1] < Data[Z]
Data[Z+2] < Data[Z] - スレッショルド
シーケンス
これらをシーケンスで表現します。
;***********************************************
;OROSピーク検出
;***********************************************
;Parametas -------------------------------------
_k_PeakThresh=5
;-----------------------------------------------
_k_i=1+2
_k_Peak = Leng(0,0)
While _k_i<=Leng?(Data)-2
_k_test=0
;---------------------------------------------------------
;条件1;中心のスペクトラムが各方向の2つのスペクトラムより大きいこと
;条件2;中心のスペクトラムに対して1つ飛ばした値が予め指定したスレッショルドより小さいこと
;---------------------------------------------------------
If Data[_k_i-2]> Data[_k_i]-_k_PeakThresh
_k_test=1
End
If Data[_k_i-1]> Data[_k_i]
_k_test=1
End
If Data[_k_i+1]> Data[_k_i]
_k_test=1
End
If Data[_k_i+2]> Data[_k_i]-_k_PeakThresh
_k_test=1
End
;--------------------
If _k_test=0
_k_Peak = Join(_k_Peak, _k_i)
End
_k_i=_k_i+1
End
_k_UnSortY = ValueIndex(data, _k_Peak) ;Peakはピークを検出したインデックス番号(周波数に相当)
_k_TempX = Sort(_k_UnSortY,4) ;ピークのみのデータを大きい順に並べ、そのときのインデックスを取得
_k_TempX = _k_TempX+1 ;ソートした結果はX単位ですのでインデックスに変換します。
_k_PeakX = ValueIndex(_k_Peak, _k_TempX) ;
;Result --------------------------------------------------------
PeakX = (_k_PeakX-1)*XDel?(Data)
PeakY = Sort(_k_UnSortY, 2)
;sweep variable-----------------------------------------
Delete _k_*
上記シーケンスの場合、WHILE文を使用して全データにアクセスしているため、実行時間がかかります。
そこで、FAMOSシーケンスの特徴を活かして以下のように変更します。
;***********************************************
;OROSピーク検出
;***********************************************
;Parametas -------------------------------------
_k_PeakThresh = 5
;-----------------------------------------------
_k_P2 = CutIndex(data, 1 , Leng?(data)-2-2)
_k_P1 = CutIndex(data, 1+1, Leng?(data)-2-1)
_k_P0 = CutIndex(data, 1+2, Leng?(data)-2-0)
_k_F1 = CutIndex(data, 1+3, Leng?(data)-2+1)
_k_F2 = CutIndex(data, 1+4, Leng?(data)-2+2)
_k_P2 = XOff(_k_P2,0)
_k_P1 = XOff(_k_P1,0)
_k_P0 = XOff(_k_P0,0)
_k_F1 = XOff(_k_F1,0)
_k_F2 = XOff(_k_F2,0)
_k_ResP2 = (STri(_k_P0-_k_P2-_k_PeakThresh, 0, 0)+1/2
_k_ResP1 = (STri(_k_P0-_k_P1, 0,0)+1)/2
_k_ResF1 = (STri(_k_P0-_k_F1, 0,0)+1)/2
_k_ResF2 = (STri(_k_P0-_k_F2-_k_PeakThresh, 0, 0)+1)/2
_k_Res = _k_ResP2*_k_ResP1*_k_ResF1*_k_ResF2
_k_Res = Join( Leng(0,2), _k_Res)
_k_Res = Join( _k_Res, Leng(0,2))
_k_Res = XDel( _k_Res, XDel?(Data))
_k_Res2 = SearchLevel(_k_Res, 2, 1, 0, 2, 0, 0, 1)
_k_PeakX = _k_Res2.X ;ピークを検出した周波数
;--------------------------------------
_k_UnSortY = Value(data, _k_PeakX) ;検出したY値
_k_TempX = Sort(_k_UnSortY, 4) ;ピークのみのデータを大きい順に並べ、そのときのインデックスを取得
_k_TempX = _k_TempX+1 ;ソートした結果はX単位ですのでインデックスに変換します。
;Result --------------------------------------------------------
PeakX = ValueIndex(_k_PeakX, _k_TempX) ;
PeakY = Sort(_k_UnSortY, 2)
;sweep variable-----------------------------------------
Delete _k_*
Q決定係数を求めたい。
直接求める関数は用意されてないため、下記の様なシーケンスで求めて下さい。 近似波形の係数を求めるために使用しているApproNonLin()関数はimc FAMOS Ver 7.2以降のProfessional版以上が必要です。
例)
LOAD sintest1
_data = sintest1 ; サンプルデータ
_A = ApproNonLin(_data,"A1*sin(A2*PI2*x)-y") ; 近似波形の係数
_approx = _A[1] * sin(_A[2] * PI2 * ramp(0, XDel?(_data), Leng?(_data))) ; 近似波形
_numerator = Sum((_data - _approx)^2) ; ①分子: 残差の二乗和
_denominator = Sum((_data - Mean(_data))^2) ; ②分母: 標本値の平均からの差の二乗和
R2 = 1 - _numerator / _denominator ; 決定係数: ①を②で割ったものを1から引いた値
; カーブウィンドウに表示
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwDisplaySet("title", "")
CwNewChannel("append last axis", _data)
CwNewChannel("append last axis", _approx)
CwNewElement("marker.text")
CwMarkerSet("x.type", 2)
CwMarkerSet("x", 73)
CwMarkerSet("y.type", 2)
CwMarkerSet("y", 80)
CwMarkerSet("font.size", 12)
CwMarkerSet("text", "決定係数=" + TForm(R2, "F1.3"))
Q3Dデータの作り方
以下のデータは、室内の平面座標位置XZで測定した温度などのデータです。データの値をYとします。
このデータをカラーマップで表現させたいのですが、どうすればいいのでしょうか?
| X | |||||
|---|---|---|---|---|---|
| 3 | 5 | 7 | 9 | ||
| Z | 1 | 48 | 50 | 51 | 52 |
| 5 | 49 | 52 | 53 | 54 | |
| 9 | 51 | 53 | 54 | 55 | |

方法1:3つのデータを作成
以下のように3つのデータを作成します。
| Ch1 | Ch2 | Ch3 |
|---|---|---|
| 48 | 49 | 51 |
| 50 | 52 | 53 |
| 51 | 53 | 54 |
| 52 | 54 | 55 |
これらの3つの波形をまとめて表示させ、カラーマップで表示させます。
方法2:セグメント
(1)Yデータの作成
Yデータを以下のように定義します。
ydata
48
50
51
52
49
52
53
54
51
53
54
55
(2)データ形式の変換
カラーマップで表示するためにはデータの形式を標準波形からセグメント波形に定義しなおします。
関数”SetSegLen”を使ってセグメント波形にします。
SetSegLen( ydata, 4) ;セグメント波形へ
(3)X・Z座標の定義
Xデータ(3・5・7・9)はサンプリングレート2、オフセット3です。
ydata = XDel( ydata, 2) ;Xサンプリング設定
ydata = XOff( ydata, 3) ;Xオフセット設定
Zデータ(1・5・9)はサンプリングレート4、オフセット1です。
SetZDel( zdata, 4) ;Yオフセット設定
SetZoff( zdata, 1) ;Yオフセット設定;
(4)結果の表示
変数”ydata”をカーブウィンドウに表示させます。
カーブウィンドウメニュー<オプション/表示>でダイアログを表示させ、カラーマップを選択してください。

ここで、Z軸の値に注目してください。設定した値で表示されていません。これを希望の形式で表示させるためには、
カーブウィンドウメニュー<オプション/3D>でダイアログを表示させ、”データのZ座標を加える”を選択してください。


Q変数をスピーカーで音として再生したい。(Version 6以降では)
注意:
この回答内容はVersion 6以降で利用可能です
Version 5以前のユーザはこちらのFAQを参照して下さい。
再生したい波形が表示されたカーブウィンドウのメニュー"エクストラ/メニューとツールバー/サウンド出力"を選択して下さい。

サウンド出力ツールバーが表示されます。
サウンド出力ツールバーの一番右にあるアイコンをクリックして、サウンド出力をONにしてください。
サウンド出力がONになると、カーブウィンドウの中央部に黒い帯が表示されます。

サウンド出力スタートボタンをクリックすると、再生がスタートします。
再生している部分はカーソルで明示されます。

再生区間を指定することも可能です。

QY軸のスケールを変更するには?
Qプロジェクトの左側に鍵アイコンが表示され、プロジェクトを保存できない
NVGateはユーザ毎にプロジェクトを所有することができます。一方、作成したプロジェクトを保護する目的で、作成者以外はこのプロジェクトを変更保存することができません。今回の場合、プロジェクトを作成したユーザと今回ログインしたユーザ名が異なることが原因です。
【対策1】
NVGateのメニュー"ファイル/プロジェクト/名前を付けて保存"を選択して、プロジェクトを別名保存してください。 この場合、新しく作成したプロジェクトは編集可能となります。
【対策2】
(V7以降) NVGateのホームタブのユーザから、プロジェクトを作成したときにユーザに切り替えてください。

(V6以前) NVGateのメニュー"ユーザ/変更"を選択して、プロジェクトを作成したときにユーザに切り替えてください。
注意プロジェクト、ワークブック、レイアウト、メジャーの左側にアイコンが表示される場合があります。アイコンが存在しない場合には、何も保護されていません。
アイコンには以下があります。
|
アイテムは読み取り専用です。読み取り保護のチェックをはずすことでこの保護を取り除くことができます。 |
|
| アイテムは現在のユーザに属しません。作成したユーザに保護されています。現在のユーザは変更することができません。 | |
|
アイテムは現在のユーザに属しません。しかし、保護されてません。現在のユーザは自由にこのアイテムを利用することができます。 |
Qパワー減算
Qレポートジェネレータにウォーターフォール表示させる場合にZ軸の角度を変えるには?
Q0dBリファレンス値の設定方法
(V7以降) ホームタブ>ユーザ設定>一般を選択してください。ダイアログが表示されます。
(V6以前) メニュー"ユーザ/ユーザ設定"を選択してください。ダイアログが表示されます。
ダイアログにはいくつかのタブがありますので、"物理量"タブを選択してください。 左側の物理量リストから"加速度"を選択してください。

この後、右側にある新規ボタンをクリックしてください。以下のダイアログが表示されます。右側の0dBリファレンスに参照値を設定してください。(会社により異なりますが、加速度なら1E-3を使用しているのではないでしょうか?)

"OK"をクリックしてください。新しい単位が設定されます。この単位を使用すると、dB表示させた場合にリファレンス値を考慮します。

QFFTの解析レンジを10Hzより小さくすると解析されない?
解析は行われています。
解析レンジを小さくすると、計算に必要なデータを収集するために時間がかかります。
例えば、解析レンジを10Hz、ライン数を401に設定した場合、一回分のFFT演算を行うために以下の時間分のデータを収集する必要があります。
(401-1) / 10 = 40 [sec]スタートボタンを押してから40秒間も待たなければならないために解析されないと思われたのでしょう。
これはFFTアナライザの宿命です。
ここで、仕方がないとあきらめる必要はありません。
OR3シリーズでは現在のアナライザの状態を監視することができます。
確認方法は以下の通りです。
- アナライザステータスを表示する。
(V7以上の場合)ホームタブ内のステータスにチェックを入れ、"アナライザーステータスビューワ"を表示させます。
メニュー"表示"を選択して、アナライザステータスが選択されていることを確認してください。
(V6以前)
- アナライザ設定ブラウザの"FFT1"の上で右クリックして、"状態の表示"を選択してください。

アナライザステータスにFFT1の状態が表示されます。
- スタートボタンを押し、アナライザステータスの"FFT1 cur.blk"に注目してください。

このようにデータを収集している様子を監視することができます。
コントロールパネルを使った他の確認方法もあります。
- コントロールパネルの上で右クリックして、"コントロールパネルのカスタマイズ"を選択してください。

- 左側のリストから"FFT1/トリガ/FFT cur.blk"を右のリストに追加させてください。OKボタンでダイアログを閉じます。

- コントロールパネルに新たにバーが追加されます。数値だけなくステータスバーで状態を確認できます。

Q時系列ファイル(Signal)の一部を数値で指定したい
QOR36/38でレコード時にスタートボタンを押してから1秒くらい遅れる
可能です。
スタートボタンを押したタイミングと計測のスタートタイミングがずれるのは、レコードの計測準備が間に挟まるためです。(後述する”参考”をご参照ください。)
下記の方法で計測を行う事で、この”準備”を予め行うことが出来ます。
(V7以降) メジャータブ>コントロール>アームボタンをクリックしてください。

(V6以前) スタートボタンの左側にある"アーム"ボタンをクリックしてください。

この後、スタートボタン(実行ボタン)をクリックすると、すぐに測定を開始します。
これはアナライザ設定ブラウザのレコーダ/トリガ/レコーダ=アーム("Recorder/Trigger/Recorder = Arm")に相当します。

また、マニュアルトリガを使う方法もあります。
参考
レコードをスタートさせる際に、アナライザは全ての現在の設定をバックアップします。これはレコード中に何らかのトラブルが発生した際にとても役に立ちます。実際に測定の設定がハードドライブに書き込まれていれば、時間信号を回復することができます。これは回復モードでも時間信号の完全性を管理できるというOROSレコーダの大きな特徴の一つです。
そのまま"スタート"ボタンをクリックすると、最初にレコーダは"アーム"状態になり、それから時間信号のレコードを開始します。この結果、"スタート"ボタンを押してから約1秒の遅れが生じます。
この現象を防ぐためには、"ASB/Recorder/Trigger/Recorder = Arm"を手動でアームにする方法が最も簡単です。この操作を行えば、"スタート"ボタンを押した後の遅れはありません。
なお、他にもレコーダの開始をマニュアルトリガで行う事で、実行タイミングのラグを回避することが出来ます。
アナライザ設定ブラウザでトリガ/スタート=マニュアル(Trigger/Start = Manual)と設定してください。"スタート"ボタンを押すと、測定がアーム状態になります。それからマニュアルトリガのボタンを押すと、直後にレコーダがスタートします。

※この実行タイミングのラグはレコーダでのみ発生します。FFTや1/Nオクターブプラグインではアーム状態はありません。
QNVGateオートレンジの使用方法(ハンマリング)
オートレンジ設定方法
1. 入力プロパティ
アナライザ設定ブラウザのフロントエンド/入力の上でマウスを右クリックして入力プロパティを開いてください。下図の入力プロパティウインドウが表示されます。

2. 入力プロパティのオートレンジ可能をOnにする
ディフォルトではオートレンジ可能の項目はOnになっています。

3. オートレンジプロパティを開く
アナライザ設定ブラウザのフロントエンド/オートレンジの上でマウスを右クリックしてオートレンジプロパティを開いてください。下図のオートレンジプロパティウインドウが表示されます。

4. オートレンジプロパティの設定
(1) オートレンジのピーク検出ONの項目に、ハンマを接続したチャンネルを選択してください
(例えばハンマをCH1に接続した場合には、CH1を設定する)
下図のように設定します。

(2) マージンを設定。(オートレンジで検出したレンジよりこのマージン分だけ大きなレンジ設定になります)
(3) ピークスロープを設定(ハンマの極性を設定します)
(4) ピーク数を設定(ピーク検出するための回数を指定します)
(5) エッジ検出(一般的にはノーマルを設定してください)
オートレンジの使用方法
オートレンジプロパティウインドウのオートレンジの実行ボタンを押します。
(V6以前) あるいは、このウインドウを閉じてNVGateのメインウインドウの左下に表示されたA(オートボタン)を押します。A(オートボタン)の下に"オートレ ンジ0"が表示されます。ハンマを1回たたくと数字が"1"にかわります。3回たたくとオートレンジ動作が終了します。
オートレンジが終了すると、オートレンジをオンにしたチャンネルすべてが適正なレンジに自動設定されます。
QOR36・38でデータをエクスポートする方法
OR36・38はデフォルトで時系列データをPCではなく、アナライザ本体のハードディスクに保存します。 (*設定を変更すれば、データをPC上に保存することも可能です。)
PC上にはデータが存在しないので、エクスポートコマンドが有効になりません。
データをエクスポートしたい場合には、先に、アナライザ本体のハードディスクからPCへデータを”ダウンロード”してください。
これによりエクスポートコマンドが有効になります。
関連Q複数のモビディスクを接続できますか?
Q1 マイクロホンで計測できる最小の音圧レベル(SPL)はどれくらいですか。
音響マイクロホンアセンブリのノイズフロアは、構成するマイクロホンとプリアンプのノイズの和となります(加速度計や圧力計の(ブロードバンド)分解能仕様のようなもの)。 計測可能な最小の音圧レベル(SPL)は、「カートリッジ熱ノイズ」と定義されるマイクロホンのノイズフロアより高くなります。
計測可能な最小の信号については、プリアンプの電気ノイズの他、ケーブル、電源、ソフトウェア、フィルター、データ収録装置と設定、背景雑音等、試験構成に含まれるコンポーネントからのノイズも考慮する必要があります。 本項目では、マイクロホンとプリアンプのアセンブリに焦点を置いています。ノイズフロアは、マイクロホンとプリアンプの合計となります。下図に示す通り、低周波数ではプリアンプのノイズが高く、高周波数ではマイクロホンのノイズが高くなっています。

ノイズフロアは、1/3(またはその他の)オクターブバンドでdBまたはdBAで示すことができます。ダイアフラム(振動板)が大きいほど、また感度が高いほど、マイクロホンのカートリッジ熱ノイズのノイズフロアを低くすることができます。一般的な1/2インチ自由音場型マイクロホンのノイズフロア仕様は、15-20 dBAです。dBAの意味については、第1項(訳者注:別項目のようです)を参照して下さい。1インチマイクロホンのノイズフロアは約10-15 dBAであり、1/4インチマイクロホンのノイズフロアは約30-60 dBAです。定格線形(またはZ特性)ノイズフロアはより高くなります。 新型378A04は特別なマイクロホンであり、定格ノイズフロアは6.5 dBA (標準値5.5 dBa)です。PCBの378A04型マイクロホンとPCBのプリアンプを組み合わせてノイズフロアを実際に計測したデータを下図に示します。

ノイズフロアは周波数に依存します。基本的には、ノイズフロアはマイクロホンやプリアンプの使用可能な周波数レンジにおける全周波数のカーブの下にあるエリアを意味しますが、特定の周波数や1/3オクターブバンドを見ると、ノイズフロアは上図のようにずっと低いことがあります。100 Hz 1/3オクターブバンドを見ると、A特性ノイズフロアは約 -24 dBAです。これは負数であり、ヒトの可聴域を大幅に下回っており、同じ100 Hzバンドでの線形スケールによる値は約 -5 dBです。
また、環境や測定能力を踏まえて、使用目的に最適なマイクロホンを選ぶことが重要です。ユーザーが無響室(または防音室か防音環境)をお持ちでなければ、背景雑音はマイクロホンやプリアンプのノイズフロアよりも大きい可能性が高く、378A04を使ってもより安価な378B02を使っても測定結果は変わらないでしょう。逆に、ユーザーが非常に低いノイズの計測を目指していて、本来のローノイズ試験に必要な設備をすべてお持ちの場合には、新型378A04 がPCBのプリポラライズド型マイクロホンの中で最も優れたローノイズ性能を発揮します。
Qサイクロイド波形を作りたい。
Q波形の切り出しを絶対時間で行いたい。
直接求める関数は用意されていないため、下記の様なシーケンスで求めて下さい。 TxSplit()関数はimc FAMOS Ver 7.2以降が必要です。
例)
Data = Car_Speed ; 切り出し元データ
T1 = "2018/09/14 09:03:00" ; 切り出し開始絶対時間。書式「年/月/日 時:分:秒」
T2 = "2018/09/14 15:33:30" ; 切り出し終了絶対時間。書式「年/月/日 時:分:秒」
; 切り出し時間のテキストを数値に変換
_T1spl = TxSplit(T1, "/; ;:") ; 要素毎に分解
_T1num = TimeJoin(TtoSv(_T1spl[3],"f"), TtoSv(_T1spl[2],"f"), TtoSv(_T1spl[1],"f"), TtoSv(_T1spl[4],"f"), TtoSv(_T1spl[5],"f"),
TtoSv(_T1spl[6],"f"))
_T2spl = TxSplit(T2, "/; ;:")
_T2num = TimeJoin(TtoSv(_T2spl[3],"f"), TtoSv(_T2spl[2],"f"), TtoSv(_T2spl[1],"f"), TtoSv(_T2spl[4],"f"), TtoSvpl[5],"f"),
TtoSv(_T2spl[6],"f"))
; 切り出し元データの絶対時間
_dataT1 = TimeAdd(Time?(Data), XOff?(Data))
_dataT2 = TimeAdd(_dataT1, XDel?(Data) * (Leng?(Data) - 1))
if _T1num < _dataT1 or _dataT2 < _T2num
BoxMessage("エラー", "切り出し時間が波形に含まれていません", "!1")
ExitSequence 1
end
; 絶対時間で指定した範囲を切り出し
CutData = Cut(Data, TimeDiff(_T1num, Time?(Data)), TimeDiff(_T2num, Time?(Data)))
; カーブウィンドウで表示
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0,0,640,480)
CwDisplaySet("title", "")
CwNewChannel("append last axis", CutData)
CwNewChannel("append last axis", Data)
CwSelectByIndex("x-axis", 1)
CwAxisSet("scale", 4)
del _*
Q尖度を求めたい。
直接求める関数は用意されてないため、下記の様なシーケンスで求めて下さい。
例)
_data = Random(10000, 2, 0, 0, 0) ; 正規分布に従ったサンプルデータ
_Hist = Histo(_data, 0, 0) ; 分布の形状の目視確認用
_StDev = StDev(_data) ; 標準偏差σ
_Mean = Mean(_data) ; 平均
_N = Leng?(_data) ; データ点数
Kurtosis = Sum((_data - _Mean)^4) / _StDev^4 / _N
{Kurtosis-3} = Kurtosis - 3 ; 正規分布が尖度0とする定義
; Excel KURT()相当
;
https://support.office.com/ja-jp/article/kurt-%E9%96%A2%E6%95%B0-bc3a265c-5da4-4dcb-b7fd-c237789095ab
; より
_v1 = _N*(_N+1) / ((_N-1)*(_N-2)*(_N-3))
_v2 = Sum((_data - _Mean)^4) / _StDev^4
_v3 = 3*(_N-1)^2 / ((_N-2)*(_N-3))
ExcelKurt = _v1 * _v2 - _v3







