周期スイープを用いた周波数特性の測定について
WaveGene(以下WG)、および姉妹ソフトWaveSpectra(以下WS)を組み合わせて周波数特性を測定する方法を示します。
WG+WSで周波数特性を測定する方法には次のような方法があります。
(1)WGのユーザー波形で周期スイープを用いる方法。
(2)直接WGのスイープ信号を用いる方法。(WSのピークホールド機能を用いる方法)
普通は、簡単に短時間(多くて数秒)で正確な周波数特性が得られるので、以下に示す(1)の方法をお勧めします。
この方法は、サウンドデバイス自体のループ接続時の特性、サウンドデバイスに接続したアンプ等の外部回路、あるいはアンプ/マイク経由でスピーカーの簡易測定等、ほとんどの場合に用いることができます。(リアルタイムに直接応答が得られる場合)
(1)が使えない場合、たとえば録音機の録音/再生特性など、リアルタイムに応答が帰らない場合には、(2)の一般的なスイープ信号+WSのピークホールド機能による方法を用いることになります。
(2)の場合の注意点などは、WS側の説明 "WaveSpectraを用いた周波数特性の測定について" を参照してください。
1. WGによる周期スイープの発生
- WGのユーザー波形として読み込む 周期スイープ
あるいは 周期ノイズ 信号を別途ダウンロードしてください。
http://www.ne.jp/asahi/fa/efu/soft/wg/wg.html の UserWaveSample1.ZIP
ダウンロード後、解凍して WG.EXE と同じフォルダへ入れておいてください。
各信号のファイル名の数字は1周期の長さ(サンプル数)を表します。(2048
-- 131072)
- Wave1 の 波形 コンボボックスで ユーザー波形 を選択し、適当な
周期スイープ あるいは 周期ノイズ 信号を登録します。
登録の仕方は、ユーザー波形の使い方 を参照してください。
※ 周期スイープ と 周期ノイズ 両方とも同じように使えますが、周期スイープの方がS/Nが良いのと、周期ノイズでは極僅かに(+-0.01dB程度)フラット性が乱れるので、普通は周期スイープを用いるのが良いでしょう。
例として、4096サンプルの周期スイープ FLATSWEEP_004096.WAV
を登録します。

- 測定に使用する再生デバイス、サンプリング周波数等のフォーマットを適宜設定します。
※ 周期スイープ信号の1周期の時間は、サンプル数/サンプリング周波数
となります。
例の場合、サンプリング周波数 48000Hz とすると、4096サンプルなので、0.085秒
となります。
- 振幅 コンボボックスで出力レベルを設定します。(0〜-3dB程度、
下の注意参照)
- サウンドデバイスへ出力 ボタンで連続的に発生できることを確認しておきます。
(Waveファイルへ出力 ボタンで指定時間だけのWaveファイルを作成できることは、これまでと同じです)
2. WS側の設定
- WS (V1.40) の設定ダイアログで以下のように設定します。
a. "再生/録音" タブ で、録音デバイスおよび録音フォーマットをWG側と一致させる。

録音フォーマットをWG側と同じ 48000Hz 16bit
Stereo に設定します。
※ 録音デバイス、ドライバの設定は、ここでは
MME、Wave Mapper になっていますが、WG側で実際に設定したものと同じデバイス、ドライバを指定します。
b. "FFT" タブ で、サンプルデータ数
を、WGで登録した周期スイープの長さ(サンプル数)と一致させる。
例の場合は 4096 と設定します。
c. 同、窓関数 を必ず "なし(矩形)"
にする。

3. 周波数特性の測定
- 上の設定ができたら、WG、WS 双方を動作させます。(順序は特に指定無し)
(それぞれ、"サウンドデバイスへ出力"
ボタン、"サウンドデバイスから入力/録音"
ボタン を押す)
周期スイープの1周期毎に周波数特性のグラフが描かれます。
1周期のサンプル数が長い場合は、1周期が終わるまでは正確なグラフにはならないので、暫く待って下さい。
※ まずは、サウンドデバイスの入出力を接続(ループバック)して、サウンドデバイス自体の周波数特性を測定してみてください。
入出力の接続は、コードで接続するか、あるいはそれぞれのデバイスのミキサーで指定します。
安定に動作するか確認した後、被測定デバイス(アンプ、スピーカー等)を経由して測定することをお勧めします。

- WS の "Spectrum" タブ の、縦軸
"レンジ"、"シフト" を変更することにより、より見やすいグラフにすることができます。
"レンジ" を +-1dB 等に、"シフト"
を Norm1k 等にすれば、一般的な 0dB を基準としたグラフを描くことができます。


"シフト" の Norm100、Norm1k、Norm10k
は、それぞれ 100Hz、1kHz、10kHz のスペクトルを常に
0dB に固定するオプションです。
フィルタやイコライザ等の周波数特性のグラフの場合に使用すると便利でしょう。
4. 注意点、その他
- WG、WS 双方で用いるサウンドデバイスは、必ず同時録音再生可能な同一のデバイスを用います。
双方で違うデバイスは使用できません。
また録音/再生のクロックが同期している必要があります。
(サウンドデバイスの中には、録音/再生でクロックの同期が取れないものがあるそうですが、そういうものは使用できません)
また、内部サンプリングレートコンバーター等が入っている場合も周波数特性の表示が不安定に揺れたりして使用できないことがあるようです。
サポートはされていると仕様では書かれていても、実際には96kHz以上の高サンプリングレートでは不安定でダメの場合もありました。
どちらもWSの周波数特性の表示グラフが安定して表示されていたら使用可能だと判断して良いでしょう。
- 入出力レベルは、できるだけ最大値(0dB)に近い方が良いですが、サウンドデバイスによっては、0dB
での入出力ができない(歪む)ものも存在するので、その場合は数dB程度低くしてみてください。
(まずは上のようにループバックで確認してください)
- 周期スイープの長さは、そのままFFT長となるので、長いほど周波数分解能は上がります。
(周波数分解能 = サンプリング周波数 / FFTサンプルデータ数)
但し、その長さの時間内で測定対象の周波数特性が変化しないように選びます。
また通常の測定ではあまり関係ない場合がほとんどだと思いますが、測定対象のインパルス応答の時間が長い場合、それより長い時間に設定します。
(例えば、インパルス応答の時間が1秒なら、48000s/sの場合は65536サンプル必要)
- WG、WSの両方を安定して動作させる必要から、できるだけCPUに対する負荷を下げておくことをお勧めします。
WSの設定ダイアログ、"Wave" タブ、および
"Spectrum" タブの "描画方法"
を適切に設定してCPU負荷を下がる描画方法にしておいてください。
詳しくは、WS のヘルプ を参照してください。
- 何らかの原因でWGとWSとの同時動作が出来ない時は、一旦WGのWaveファイル作成機能で周期スイープを測定に必要な長さのWaveファイルに出力しておいて、2個目のWSを立ち上げてそれで再生してみて下さい。
(この時、2個目のWSも1個目と同様の設定をしておくと、周期スイープ自身の特性を観察することができます)
- 周波数特性は同様の周期的なパルスを直接加えても得られますが、S/Nが低くなります。
周期スイープによる測定中に、WGの 波形 コンボボックスで "ユーザー波形"
から "パルス" に変更すると、インパルスを直接入力した場合とのS/Nの改善度が確認できます。
ただし、"パルス" の周期は、前もって
周波数/周期 コンボボックスで 周期スイープ と同じにしておく必要があります。
