広告 CD音質関連 オーディオ一般 ピュア音源による音質評価

音質評価用 ノコギリ波PCM音源の作成

スポンサーリンク

 

今まで、LPレコードからハイレゾ化した実際の音源とCD等との比較評価をしてきましたが、もう少し詳細な評価を行うため純粋なノコギリ波音源を作成することにしてみました。 ノコギリ波を選んだ理由は、ストリングスに近い倍音成分があるためです。

 

 

スポンサーリンク

 

 

エイリアシングノイズを含んだノコギリ波

Audacityソフトに付属しているジェネレータのトーンからノコギリ波を作成してファイル化することが出来ますが、下図の様に盛大にエイリアスノイズが発生してしまいます。 2.5khzノコギリ波の周波数成分は、赤矢印で示されている「2.5khz、5.0khz、7.5khz、10.0khz、12.5khz、15.0khz、17.5khz、20.0khz」です。 それ以外の周波数成分(スペクトル)は、エイリアシングノイズです。

Audacityで生成されるノコギリ波は図形的な波形のため、ナイキスト周波数(サンプリング周波数の1/2)を超えてしまう周波数成分があります。 このため、Audacityのノコギリ波音源をファイル化するとエイリアシング(折り返し)ノイズが盛大に出現してしまいます。 このエイリアシングノイズを避けるためには、ナイキスト周波数以下の正弦波を組合せてノコギリ波を合成すれば、エイリアシングノイズは発生しません。 これを簡単に作成してくれるのがWindowsソフトのWaveGeneです。 WaveGeneを使用するに当たり、ノコギリ波のフーリエ級数について調べ、WaveGeneを使用してエイリアシングノイズの無いノコギリ波を作成することにしました。

 

ノコギリ波のフーリエ級数

ウィキペディアのノコギリ波の記述によれば
のこぎり波は正弦波を合成することで近似することができる。のこぎり波に収束するフーリエ級数を以下に示す。

blank
デジタルシンセサイザーの場合、この級数の k について、ナイキスト周波数(サンプリング周波数の半分)未満の倍音までを考慮すればよい。この合成は高速フーリエ変換を使って計算するのが効率的である。波形をデジタル的にではなく帯域制限のない形で y = x - floor(x) のように生成した場合、それには無限の倍音が含まれており、デジタイズの際にエイリアシング歪みが発生する。

 

Grapherで波形確認

実際に、ノコギリ波が描画されるか、MacBookに付属しているGrapherで確認してみます。
上記の方程式を、kはωですので、2πf nに置き換えてGrapherで描画できるようにします。

blank

fは基本周波数、nは項数、xはにt相当します。



例として、基本周波数が1khzで、n=8にした時の波形を以下に示します。 項数(高域の周波数成分)が少ないので、波形が波打っています。
blank

1項〜8項の正弦波の大きさと周波数は以下の通りで、この8つの正弦波を加算して合成されたものです。

n 1 2 3 4 5 6 7 8
sin
大きさ
0.637 0.318 0.212 0.159 0.127 0.106 0.091 0.080
db
換算
.000 -6.02 -9.54 -12.04 -13.98 -15.56 -16.9 -18.06
sin
周波数
1khz 2khz 3khz 4khz 5khz 6khz 7khz 8khz

更に、基本周波数が1khzで、n=1000にした時の波形を以下に示します。 立ち上がりも急峻になり波形の波打ちもありませんが、ナイキスト周波数(サンプリング周波数の1/2)を超えてしまう周波数成分がありファイル化するとエイリアシング(折り返し)ノイズが盛大に出現する筈です。
blank

エイリアシングノイズの無いノコギリ波について

エイリアシングノイズの無いノコギリ波を生成するには、上記ウィキペディアの記載がある様に、ナイキスト周波数(サンプリング周波数の半分)未満の倍音までの正弦波を組合せればよいことになります。
CDフォーマットの場合、ナイキスト周波数は、22.05khz(44.1khzの半分)になります。 例えば、10khzのノコギリ波を作成する場合、10khzと20khzのみの加算であれば、エイリアスノイズの発生は無いということになります。
blank

 

WaveGeneによるノコギリ波発生

WaveGeneは、大変素晴らしい多機能なテスト信号発生ソフトです。 種々のテストパターンを発生させることも、パラメータを設定してWave1〜Wave8まで多チャンネルで組合せることもできます。 使用したバージョンは、V1.50 (2013/01/05)です。

❏ エイリアシングの無い 10khzのノコギリ波の発生
上記の表から、WaveGeneのパラーメタをwave1(10000hz),wave2(20000hz)をサイン波に選んで以下の様に設定します。 dbは振幅レベルが大きくなるので-20dbにシフトして設定しています。
blank
CDフォーマット(16bit 44.1khz)WAVファイルで出力した時のAudacityスペクトルです。 当然ながら、10khzと20khzの成分しか無いのでエイリアシングノイズは出ていません。
blank

「エイリアシングの無い 10khzのノコギリ波」を聴いてみてください。

 

❏ 故意にエイリアシングを付加した時の 10khzノコギリ波の発生
WaveGeneのパラーメタをwave1(10000hz)、wave2(20000hz)、wave3(30000hz)をサイン波に選んで以下の様に設定します。 wave3に30khzを入れていますので、44.1khz(サンプリング周波数)ー30khz=14.1khzのエイリアシングが発生する筈です。
blank

CDフォーマット(16bit 44.1khz)WAVファイルで出力した時のAudacityスペクトルです。 やはり、14.1khzにエイリアシングノイズが出ています。 音声波形も、エイリアシング分でノコギリ波の波形が崩れているのが判ります。
blank

「エイリアシングを付加した時の 10khzノコギリ波」を聴いてみてください。 若干濁りがあるように聴こえると思います。

 

❏ エイリアシングの無い 2.5khzのノコギリ波の発生
以上は、WaveGeneのWave1…に夫々サイン波を指定しノコギリ波を作成していましたが、Wave1にノコギリ波を設定して、「帯域制限」の「加算」を指定しますと、非常に簡単にエイリアシングの無いノコギリ波を生成することができます。

blank
例として、2.5khzのノコギリ波を作成してみます。



CDフォーマット(16bit 44.1khz)WAVファイルで出力した時のAudacityスペクトルです。 位相が逆転していますがエイリアシングノイズは出ていません。 このページの先頭のエイリアシングノイズのある2.5khzノコギリ波スペクトルと見比べてください。
blank

「エイリアシングの無い 2.5khzのノコギリ波」を聴いてみてください。

 

参考までに、「エイリアシングのある 2.5khzのノコギリ波」を聴いてみてください。

 

 

ここでWaveGeneのヘルプファイルにある帯域制限についての記述を以下に紹介しておきます。

V1.40 までは、サイン波以外の周期波形は単なる図形的な波形を発生させていました。
これはこれで、ハードやソフトのテスト用や、変調信号としては有用であるのですが、音声信号として使う(聞く)には正しいものではありませんでした。 音声信号としてはあってはならない サンプリング周波数 / 2 (以下 ナイキスト周波数)以上の成分を含んでいるために、いわゆる折り返しひずみ(折り返しノイズ、エイリアス)を発生するためです。

V1.50 からは、それらを含まない帯域制限された周期波形 (矩形波、三角波、ノコギリ波、パルス、パルス(+-)) を発生させることが可能になりました。 音声信号として用いる場合にはこの帯域制限された波形を用いてください。 // 中略 //

加算合成
加算合成は、文字通りその波形のナイキスト周波数までの高調波(倍音)成分を加算して合成する方法です。
つまり波形のフーリエ級数展開によって近似します。 正確な合成が可能ですが、基本周波数が低い場合は合成する成分の数が大きくなるので計算時間が多く掛かってしまうことになります。

振幅の補正値を省略したノコギリ波の合成式は次のようになります。
ノコギリ波:sin(x) + 1/2 * sin(2x) + 1/3 * sin(3x) + 1/4 * sin(4x) …

 

マトメ

WaveGeneによるエイリアシングノイズの無い音質評価用の音源ファイルを簡単に作成できることが判りました。 今後、この音質評価用PCM音源ファイルを使って、HAP-Z1ESの機能(DSEEやDSDリマスタリングエンジン)などを確認して行きたいと思っています。

 

ピュア音源(ノコギリ波)による音質評価 関連記事

 

 

スポンサーリンク

 


関連記事 (Tag related)

スポンサーリンク

 

t