エリアシング
先の頁では、このモデルの91次から180次までの入力成分に対する二次高調波については一旦忘れてもらいましたが、この連中はどこにいったのでしょうか。本来、182次から360次のcos波となるはずですが、サンプリング定理の教えるところによると、360点の「窓」では180次未満の波しか扱えないのです。
実はこの連中は全て「エリアシング」を起こしていて、178次から0次の成分に折り返されているのです。「エリアシング」とは「連続信号をサンプリングして離散信号に変換するとき、その信号に含まれる最高の周波数の2倍以上の周波数でサンプリングすれば、完全に復元することができる。」という「サンプリング定理」に違反した結果「折り返し歪」が発生している状態、です。
うん? このエクセルモデルで各サンプル点の値を自乗して歪として加えているだけで、高い周波数を与えた覚えはない・・・という疑問が生まれるかもしれませんので補足しますと、
{cos(t)+cos(2t)+....+cos(180t)}×{cos(t)+cos(2t)+....+cos(180t)} という「歪」の形と、
cos 波同士の掛け算は、和と差の周波数の波の足し算になるという三角関数の公式より、
182次から360次のcos波は一旦は生まれているのです。
実際のスピーカの計測だとしたら、20Hzから20kHzの入力信号成分に対し、2次高調波は40Hzから40kHzに発生するけれど、計測サンプリング44.1kHzなので、20kHz以上はアナログフィルタでカットしてからサンプリングされて、2次高調波も40Hzから20kHzの範囲で評価される、という手順を踏むのですが、
このエクセルモデルではサンプル点での計算しかないので、計算したその時点で180次以上の高周波分は「折り返されて」出力されている、というか、出力データを見る時点で「折り返されて出力されている」と認識するしかない、のです。
#うーむ、分かっている人にしか分からない説明になってる気がする・・・
実際のスピーカ計測の様子をエクセル上で実現するのは、「アナログフィルタ」の模擬のところが面倒どころではなく、到底やっていられません。でもエリアシングを起こしていては実は滅茶苦茶なデータですから回避せねばなりません。仕方ないので入力信号を90次までに制限します。
「ファリーナ」シートのCS10セルからGD370セルまでを消します。(カーソルをCS10セルに合わせて、CtrlとShiftを同時に押したまま↓→のキーを押し、CtrlとShiftを離してからDeleteを押せば一気に消せます。FFT操作以降は180次まで扱いますから、列ごと消してはいけません。)
(↑クリックで拡大) 歪ゼロでこんな具合になります。これなら、2次高調波も180次までで収まりますので、サンプリング定理への違反も「折り返し」もなくなります。そのかわり、再構成したインパルスの形が高周波不足で格好悪くなります。理屈上「折り返し」を排したこちらの方が正しいにもかかわらず、表看板に出している図もアップしているエクセルファイルも「折り返し」有りのままにしているのは、このインパルスの見た目の格好悪さのせい、です。
さて、これに、前と同じように y = x + b・x^2 の形の歪を加えますと、
こうなります。前と同じ場所に2次高調波歪が「堆積」しています。これを良く見ると、2次歪の山の高さは約18で、形も大きさも前と殆ど変わりません。「前」では182次以上は折り返された挙句に再構成の際に雲散霧消していた、というのをあらためて確認できます。
この山の高さは妥当なのでしょうか。240度ずらしのログスイープ波形は大雑把に言って±3の大きさを持っています。となると、先の頁の検討より、歪率は 0.1・3
/2 = 0.15 のはずです。
再構成された基本波の山の高さが90で、再構成する際に高周波成分は周波数のルートを掛けて割り増しするルールがありましたから、2次高調波は基本波のルート2倍だけ割り増しされているはず、というのも考慮すると、予想される2次高調波の山の高さは
90 ・ 0.15 ・ √2 ≒ 18.2 おお、ぴったりだ!
・・・・・・・・・・・・・・・・・・・・・・・・・
ぴったりなのは良いのですが、本当に納得していいのでしょうか。
先の頁の一部を再掲します。
ここで混変調は一旦忘れているのですから、「ピンク」が入力とその二次高調波のみを含むものとします。FFTをかけて分離すると、奇数次の成分は二次高調波を含みようがありませんから、入力と全く同じになります。偶数次の成分は、2次から180次までは入力成分と二次高調波の重ね合わせになります・・・・あれ?91次から180次までの入力成分に対する二次高調波はどこへ・・・・いいところに気がつきました。でもこれも暫く忘れて下さい→別頁へ(注:この頁のことです。入力を90次までに制限することで解決済み)。
入力そのままの奇数次成分と、偶数次成分の入力と同じ部分は、入力=「青」と同じものですから、上の説明と同様に位相ずれを最初にずらした分だけ戻して高周波の振幅を増やしなおせば、各周波数成分を全部足しあわせで「青」と同一のインパルスを構成します。
残った二次高調波の分は、それぞれ元となった基本波と位相が揃っていたのです。ところがFFTを通ってからは、基本波の2倍の周波数を持つものとして別扱いで処理されます。その周波数に応じて位相をずらすと、基本波のずれよりも周波数2倍分だけ余計にずらされます。
ここで、「ログスイープ」が重要な意味を持ってきます。インパルスの位相をずらしてログスイープを作成したのですが、その位相のずらし量は周波数のlogに比例したものだったのでした。するとどの周波数であっても、その2倍の周波数とのずらし量の差は常に一定になります。
この性質のために、二次高調波の成分は、基本波とは、その一定値だけずれた位相のところに「堆積」して、インパルスを構成するはずです。
・・・・・・・・ここまで。
ここで無理やりこじつけた論理をエクセル上で表現してみましょう。本当は歪の無い「青」をつくってから歪を加えるべきところを、各基本波に2次高調波歪が乗って、それらを合計して「歪つき波形」を作るのです。非線形プロセスで順番を変えると大違い、というのを実感する場面です。
作り方はエクセルの操作に慣れていれば簡単で、91次以降を予めカットしたシートでさらに
G10セルが元々 =COS(G$9*($B10-G$8))/G$7 だったのを
=(COS(G$9*($B10-G$8))+0.1*COS(G$9*($B10-G$8))^2)/G$7 とし、
G10セルからCR370セルまでコピーすればできます。合計した時点で既に歪を含んでいますから「歪係数」を0にしてそれ以上の歪を含まないようにすると
1次から90次までの波は再構成の時点で±1なので、歪率は0.05で、2次高調波の山の高さは約6になるはずで、その論理には合いますが、先ほどの約18とは大きく異なります。さらに、2次高調波が出来る場所は一致していますが、もう一つ+148の位置、即ち窓の半分(180度)ずれた位置に同じ山があります。
考えて見れば、2次高調波は(2次なのですから)偶数次のはずで、であれば周期は窓の半分になって何の不思議もないはずです。むしろ、普通に「青」から「ピンク」を作ってインパルスを再構成した際に-32にだけ山があって+148に痕跡すら無いのが不思議な気もしてきます・・・かな???
この続きは頁を改めましょう。