『WaveGene』と『WaveSpectra』の基本的性能

『WG』と『WS』は定評のあるフリーウェアですが、作者も書かれているように、使い方は結構むずかしいのです。『WS』と『WG』を同じサウンドデバイスの入出力で使用 し、アンプの周波数特性や歪率を計測する時は比較的簡単ですが、他の発振器の信号を評価する時はかなり注意が必要です。まず、サウンドデバイスを 通さずにPC内部で『WG』の出力と『WS』の入力を『VAC』で接続し、作者には失礼とは感じつつ、ソフトとしての評価をしてみました。当然と はいえ、『FFT 用に最適化』さえしておけば、『WG』による歪率0%の信号では見事にTHD=0.00000% THD+N=0.00001%を表示します。

『FFT用に最適化』について

この『FFT用に最適化』が鬼門なのです。『FFT用に最適化』とはサンプリング周波数/FFTサンプル数=周波数分解能(Hz)の整数倍の周 波数と被測定周波数が合致している時に正しい測定が可能ということです。例えば、22050Hz 4096サンプルとすると分解能は 5.383301Hzになります。1000Hzを測定周波数とすると分解能×1857=999.679Hzあるいは分解能 ×1858=1000.217Hzが1000Hzに近い数値になりますが、『FFT用に最適化』すると、より1000Hzに近い 1000.217Hzになります。この周波数を基本波として解析するので、この周波数でのみ歪率は真値を表示します。発振器の出力周波数は正しく 周波数分解能の整数倍に調整しなければなりません。ところが、特に、100Hz位の低い周波数の時はレシプロカル式周波数カウンタで計測しないか ぎり、この桁数で知ることができませんし、アナログの発振器ではこの有効桁での周波数安定性は望むべくもありません。ネットでこの『WS』の使用 例を見かけますが、あまり正しそうではありません。私自身も何回となく発振器の歪率をサンプリング周波数やサンプリング数を変化させたり、あるい は同じ設定で日を変えて測定してみましたが、測定するたびに計測値が大きく違っていました。いろんなサイトの紹介でもそうでしょうが、私自身の感 違いはTHDやTHD+Nを測定する場合、良い値を読みがちになることです。が、実は1 ケタ近くばらつきがあるのです。これを実測で確かめてみたのが下図です。

THDの読み
横軸は周波数分解能の整数倍からのずれを表しており、N=0は整数倍の時です。N=0は『FFT用に最適化』した周波数になります。N=0.5は 次の最適化された周波数との中間です。縦軸は『WS』の表示値を示しています。
信号源としては、実線は『WG』で3次高調波(対基本波-80dB)とホワイトノイズ(-80dB)を加えた001%の歪を持つ信号を『VAC』 でループバックさせて『WS』に入力して表示させたものの値で、THDとTHD+Nを表示させています。これらはサウンドデバイスの影響は受けて いません。
同様に、点線は『WG』で3次高調波(対基本波-80dB)を加え、001%の歪を持つ信号を実線のループバックで『WS』に加えて表示させたも ののデータで、THDとTHD+Nを表示させています。これらはサウンドデバイスによる歪率の悪化やノイズの影響も含んでいます。
橙色線(THD)を着目してみると、点線と実線の差はサウンドデバイスの入力と出力の歪に対する性能を示しています。n=-0.5とn=+0.5 の幅は周波数分解能になりますが、THDの読みは-20%~100%であり、分解能の整数倍から一番外れた周波数では1/5の値にもなってしまい ます。
よって、被測定 周波数は限りなく、分解能の整数倍に合わせなければなりません。少なくとも分解能の±20%くらい以内にはしたいところです。 仮に、サンプリング周波数を96000Hz、FFTサンプル数を16384に設定したものとすると、周波数分解能=は 96000/16384=5.859375Hzになり、周波数の設定を分解能の±20%、すなわち1.171875Hz以内にしなければならない ことになります。10kHzを測定しようとすると設定精度は0.171875%が必要です。アナログの発振回路では極めて困難な値です。
よって、むやみ に、FFTサンプル数を増やしてはいけません。

発振器の周波数設定

前述したとおり、被測定周波数は目標周波数に近い値で、限りなく、分解能の整数倍に合わせなければなりません。そのために、
1)『低歪率発信器の製作』で記載したように、周波数分解能の範囲を細かく設定できる、周波数微調(バーニア)回路を発信側で用意します。
2)精度良く周波数を計測するためのレシプロカル式周波数カウンタを持っていないことを前提にして『WS』上で計測する方法を示します。  『WS』上で、基 本波の裾野の拡がりが一番小さくなる、あるいは基本波のレベルが一番大きくなる周波数になるよう設定する方法です。左図は実線 でのループバックで窓関数がHanningの時のスペクトラム波形です。
 
  F1
*1)前述の周波数のずれのグラフでN=1、すなわち周波数分解能の整数倍の時です。













F2


*2)前述の周波数のずれのグラフでN=0.2、すなわち周波数分解能の整数倍から20%ずれている時です。













F3


*3)前述の周波数のずれのグラフでN=0.4、すなわち周波数分解能の整数倍から40%ずれている時です。



これら3つのスペクトラム波形から分かるように、基本波の裾野の拡がりに着目します。測定周波数がピッタリと、周波数分解能の整数倍に合ってい る時は、裾野が拡がっていません。また、見えにくいかもしれませんが、基本波の値が一番大きくなっています。この方法は、窓関数をHanning にすると見えやすくなります。







3) 周波数設定の容易さ、温度ドリフトなどの周波数安定性を考慮して、周 波数分解能は小さくしすぎないことが必要です。


サンプリング周波数とサンプル数の設定

私は下表の設定にしています。

目標周波数 サンプリング周波数
FFTサンプル数
分解能
設定周波数目標
分解能/設定目標周波数
100Hz
11025Hz
16784
0.65687Hz
99.8451Hz
0.65789%
1kHz
22050Hz
4096
5.3833Hz
1001.293Hz
0.53763%
10kHz
96000Hz
2048
46.875Hz
9984.375Hz
0.46948%


サンプリング周波数とFFTサンプル数を設定する上で『WaveSpectra』の機能上の基本について確認します。
1) 『WS』の<Wave>の横軸は(倍率が×1の時)全サンプルが表示されます。横軸のフルスケールはFFTサンプル数/サンプリング周波数(Sec)になります。この FFTサンプル数/サンプリング周波数(Sec)は前述の周波数設定分解能の逆数です。表示波形は拡大倍率の設定が可能です。表示を拡大、すなわ ちフルスケールを短くしてもFFTのサンプル数が変わることはありません。
2) 『WS』の<Spectrum>の横軸はサンプリング周波数の0.5倍がフルスケールになります。FFT解析する周波数レンジになります。波形を拡大表示するために上限周 波数の設定が可能ですが、FFT解析する周波数レンジは設定されたサンプリング周波数の0.5倍になります。
3) 一般にオーディオ帯域の歪率測定では9次までを解析対象としていますので、1kHzの信号を計測する場合、10倍の周波数を測定レンジにすることになります。よって、 22.05kHzのサンプリング周波数を選択します。100Hzの信号ならばその1/10で良いのですが、『WS』やオーディオデバイスで設定で きませんので、一番低い11.025kHzを選ぶことになります。又、10kHzの信号ならば200kHz程度のサンプリング周波数が必要にな り、192kHzを選択します。96kHzのデバイスなら、10kHzの信号に対しては、4次高調波までしかFFT解析の対象とはなりません。


(補足)『WaveSpectra』を使用した周波数特性の測定

歪率あるいは周波数特性などの測定に測定器の性能、入力の周波数特性やゲインあるいは入力デバイスによる歪率の低下などを知っておかなくてはな りません。歪率測定の方法の項でも書きましたが、ここでも、 『FFT用に最適化』に注意が必要です。ひとつのサウンドデバイスの入出力を使用して周波数特性を測定する時は efu さんのサイトを参考にしてください。
ここでは入力はサウンドデバイス、信号源はPICO SCOPEのファンクションジェネレータ(FG)の機能を使用した周波数特性の測定方法について記述します。
一般的に言って、サウンドデバイスの入出力のアースが共通であり、被測定アンプなどの入出力のアース側が共通であることが必要です。BTL出力の アンプや最近のD級アンプなどでは入力はAGND、出力はPGNDに分けておりますので、測定器側も信号源と入力のアース電位を分離しておかなけ ればなりません。USBケーブルを通じて回路が混触し、PCも含めたハードウェアを壊さない様にするため、入出力を分けて2台のPCを使用する方 法を記述することにしました。
周波数特性を表示させるためには『WS』により、基本波信号の大きさをスイープする周波数でピークホールドします。ここでも『FFT用に最適化』 の概念が必要になります。スイープする信号の中でも、正しい値を示すのは分解能の整数倍に合致した周波数のみです。 ところが、入出力を異なるデバイスにしていますから、同期することはできません。 よって充分にゆっくりしたスイープ速度であり、小さな周波数設定分解能が必要です。『PICO SCOPE』の(FG)の機能にはスイープはもちろん、スイープの周波数設定の細かさやその設定での保持時間を設定できます。実は、このスイープ信号は階段上になっている のです。
私の設定は下記です。
『WS』サンプリング周波数=96kHz  FFTサンプル数=8192 分解能=11.71875Hz 所要計測時間=8.533mS
(分解能=サンプリング周波数/FFTサンプル数 所要計測時間=1/分解能)
『PICO SCOPEの(FG)』周波数=10~50kHz 周波数ステップ=0.1Hz 計測時間=10mS
 (何と、周波数測定を完結するために、(50,000-10)/0.1×0.01=4999秒=83.317分が必要になります。)
計測時間>所要計測時間が必要であり、『FFT用に最適化』した周波数からの最大のずれが0.1/11.7185=0.00853=0.853% であり、ほぼ『FFT用に最適化』された周波数分析が期待できるということです。仮にFFTサンプル数=8192→4096にすると分解 能=23.4375Hz、所要計測時間=4.267mSになり、周波数ステップ=1Hz、計測時間=5mSに設定すると、測定時間は1/10に なります。『FFT用に最適化』した周波数からの最大のずれが は1/23.4375=4.267%になりますので、基本波の大きさは数%の範囲で変動することになるでしょう。測定された波形は横軸をリニアスケールで表示したときには 波うってみえるかもしれません。

アナログ入力 としてのサウンドデバイスの周波数特性

測定器としてサウンドデバイスを使用していますから。その周波数特性も知っておくべきと思測定してみました。信号源は『PICO SCOPE』のファンクションジェネレーター機能です。信号は周波数=10Hz~100kHzの10Hzきざみ、 各きざみ毎に100msホールドのSine波、
これを『WaveSpectra』のピークホールドで表示させました。
サウンドデバイスは3種持っています。Creativeの『Sound Blaster x-Fi Surround 5.1、 これは5.1chの再生用、2番目はやはり
Creativeの『Sound Blaster Premium HDこ れはアナログプレーヤーからPCに落とすため、3晩目はIconの『CUBE MINI』、これはハイレゾ再生用として使っているものです。

SBS5.1


左図は『Sound Blaster x-Fi Surround 5.1
分解能=24bit、
サンプリング周波数=96kHz、FFTサンプル 数=4096

サンプリング周波数からみて、予想以上に良い周波数特性を示しています。










HD

左図は『Sound Blaster Premium HD
分解能=24bit、
サンプリング周波数=96kHz、FFTサンプル 数=4096

サンプリング周波数からみて、予想以上に良い周波数特性を示しています。










CUBE


左図は『CUBE MINI
分解能=24bit、
サンプリング周波数=192kHz、FFTサンプル 数=4096

ハイレゾ用でサンプリング周波数192kHzの割には、ちょっと期待外れです。多分デジタル変換する以前のアナログ入力部にFilterが入っ ているのでしょう。入力デバイスの差かもしれません。















ページのトップへ戻る