FPGA 版 FM 音源 (17) -- YMF262 測定 (9)

今回は、主にアタックの「波形」について述べます。
まず、AR = 13、Rof = 0 の設定での (リニア) 出力値のグラフを下に示します。

AR = 13 なので、水平方向のステップ幅は 1 サンプルとなり、波形編集ソフトでの表示では各サンプリング・ポイントがなめらかに接続される形の表示となるので、gnuplot の「steps」スタイルを使って階段状のグラフとして表示させています。
出力は 13 ビット分解能ですから、アタック先頭の -96 dB 程度の部分は 1 LSB 以下になってしまいます。
そのため、アタックの開始位置は波形だけ見ていても判別できないので、アタック終了のピーク値の部分をインデクス「0」として、開始方向へはマイナスとしてインデクスを割り振っています。
これより AR の値が小さくなる、つまり、アタック・レートが遅くなる方向では、水平方向のステップ幅が 2、4、8、... 、4096 と拡大されていくだけで、波形としての「刻み」は、これ以上細かくはなりません。
AR の値が大きくなる、つまり、アタック・レートが速くなる方向では、この波形を「間引いた」形の、もっと粗い波形になっていきます。
縦軸を「lb」値にしてプロットしたものを次に示します。

ディケイ/リリースの逆方向の変化ではないので、直線にはなっていません。
また、13 ビット分解能に対応して、lb 値も 13 で頭打ちになっています。
下の図は、さらに、縦軸をログ・スケールにしてプロットしたものです。

前半部分は直線的に見えます。
「lb」値は対数値であり、そのまた対数をプロットしたものが「直線」的ということは、以前述べたように、「ゴンペルツ曲線」に近いものとなっていることが分かります。
アタック・カーブの前半のデータを使って、直線を当てはめたのが次のグラフです。

ここからは、ゴンペルツ曲線との近似の度合いを見るために、測定データのプロットも、ポイント間を直線で結ぶ、普通の表示形式にしています。
前半部分は、ほぼ直線の上に乗っています。
縦軸の lb 値の表示をリニア・スケールに戻したのが下の図です。

測定データでは lb 値が 13 で頭打ちになっているアタック開始部も、ゴンペルツ曲線で外挿した値では、サンプル・インデクス -35 で lb 値が 16 程度から始まっていることが分かります。
さらに、lb 値をリニア値に戻したものを次に示します。

ここでは、アタックのピーク値を 1.0 とする、正規化された振幅で示してあります。
青色の線がゴンペルツ曲線で、赤色の線が実際のアタックのカーブです。
赤色の線は、途中まではゴンペルツ曲線に近い値ですが、アタック後半では、少し持ち上げられるるような形でピークに達しています。
ゴンペルツ曲線のピークは、「極限値」としてのピークであり、引数の値を無限大に持っていく極限として、ピーク値の 1 に、いくらでも近づくというもので、有限の時間では、ピーク値に「到達」はしません。
実際には、振幅方向のステップの最大の値を超えれば実際にはピークに到達と見なせますが、それでも「ロングテール」すぎます。
ちなみに、上のゴンペルツ曲線では、サンプル・インデクス「9」で「ピーク到達」と見なせます。
次回は、アタック・カーブを計算対象の「数値」として扱います。