FPGA 版 FM 音源 (10) -- YMF262 測定 (2)
前回の WS = 7 のエクスポネンシャル波形についての補足です。
「岩波数学公式」*1 第 II 巻、§47、pp. 246 に、この波形のフーリエ展開の公式を見つけました。
下の式で定義される、区間 を 周期で繰り返す周期関数、
は、次の式のようなフーリエ級数で表されます。
「定数 は正とする」と注釈が付いていますが、形式的に負の値でも成り立つとして、前回の結果に当てはめると、 をサンプル・インデクスとして、
となります。
が基本波、 が 2 倍高調波、... となっていきますが、実測値を FFT して求めたスペクトラムと、上の理論式の結果を合わせてプロットすると下の図のようになります。
横軸は「倍音」の次数で、「1」が基本波です。
赤い線が実測値から計算したもの、青い線がフーリエ展開の理論式から求めたものです。
倍音の次数が高い部分で差が大きくなっているのは、実際の波形ではサンプリングによるエイリアスが重なっているのと、サンプリング位相、および出力分解能が 13 ビットに制限されている影響だと思われます。
それ以外の部分では、実測値と理論値が良く一致しています。
3 倍波および 4 倍波の付近でレベルが最大となり、それより低い成分と高い成分ではレベルが下がっています。
高い方は、-20 dB/dec (-6 dB/oct) のスロープでレベルが下がっていきます。
「WaveSpectra」で、「録音入力」として S/PDIF 入力を選び、リアルタイムでスペクトラムを観測した結果を下に示します。
WaveSpectra では、周波数軸をログ・スケールにすると表示可能な周波数の下限は 20 Hz になるので、
48 [kHz] / 1024 = 46.875 [Hz]
を基本波の周波数に選んでいます。
128 Kポイントの FFT を実行しているので、FFT ウインドウの中に 128 周期分の波形が入り、低い周波数域では「線スペクトラム」として表示されています。
FFT ウインドウの中に、ぴったり整数周期の波形が入るので、「矩形窓」、つまり、「窓関数なし」を選んでいます。
当然ですが、前の「オフライン版」の FFT 計算の結果と同様なスペクトラムの形となっています。