ワークシートの説明

1.「リニア・ログスイープ」シート

使い道は本文で述べた通りなので、やりやすいところから中の構成を説明します。

A列は-180から180までの数字が並びます。これは時間軸といっても良いし、位相角といっても良いと思います。グラフの横軸です。

B列は、B10セルが =PI()*A10/180 であり、以下全てこのコピーです。A列の±180°を rad に置き換えただけです。

第9行は、ここで扱う1次から180次までの cos波の次数を意味しています。

第8行は、1次から180次までの cos波を重ね合わせる際にずらす位相が rad で入ります。
G8セルが =IF($G$3=1,$G$2*PI()/180*LOG(G$9)/LOG(180),$G$2*G$9*PI()/180/180) で、
「リニア」の場合には (180次高調波位相ずれ)/(当該cos波の次数) が、
「ログ」の場合には (180次高調波位相ずれ)*log(当該cos波の次数)/log(180) が、
それぞれ rad 単位で入ります。

G10セルからGD370セルには、各 cos波の各時刻(位相)での値が入ります。
G10セルが =COS(G$9*($B10-G$8)) で、これは
n次の cos波の時刻 t での値が、位相ずれがθの時に cos(nt-nθ) になる、ということです。
但し「お化粧」のため、180次=GD列だけ =COS(GD$9*($B10-G$8))/2 と半分にしています。

C列は、G列からGD列まで、即ち、1次から180次までの各 cos波の各時刻での値の総和=重ね合わせ、です。
C10セルが =SUM(G10:GD10) です。このC列がグラフの縦軸になります。

 

 

2.「ファリーナ」シート

グラフは別として、370行目までは「リニア・ログスイープ」シートとほぼ同じです。

追加した第7行は、「ログ」の場合には次数の平方根を、「リニア」の場合には1を入れています。
G10セルからGD370セルの値をこの数字で割っています。これにより「ログ」の場合だけ高周波分を小さくして重ね合わせて、いわゆる「ログスイープ」になるようにしました。
G10セルが =COS(G$9*($B10-G$8))/G$7 で、「リニア・ログスイープ」シートに比べると /G$7 が付け加わっています。

E4セルは、歪の大きさを指定しています。この値をa、C列の値をx として、D列には歪み込みの出力 y として機械的に y = x + ax^2 を入れています。
D10セルが =C10+$E$4*C10^2 です。

上段のグラフの「青」線は「リニア・ログスイープ」シートのグラフから、ログスイープの場合だけ形を修正した、ということになります。「ピンク」は、「青」を入力とする場合の歪み込みの出力波形になります。

380行から1114行までは、「ピンク」に対する離散フーリエ変換を最も原始的にやっています。超原始的なので FFT ではないのですが、でも、まあ、「ピンクの線にFFTしているんです!」

そのうち、380行から741行は cos成分の抽出です。380行が次数で、第9行と同じです。
G381セルが =COS(G$380*$B10)*$D10 ですが、
  「ピンク」の t = -180 での値 $D10
  抽出すべき次数 G$380 (この場合は1次)の cos波 の
  t =-180 での値 COS(G$380*$B10) を掛け合わせたものです。

列方向でGC列(179次)まで次数違いのセルが、行方向で740行(t=180)まで時刻違い(というか位相違いというか)のセルが並んでいます。

741行はそれぞれ 381行から 740行までの総和を 180 で割っており、これが「ピンク」の各次の cos成分の大きさになります。G741セルが =SUM(G381:G740)/180 です。
ここがフーリエ級数の肝心なところに相当します。

750行から1111行までが sin成分の抽出で、cos を sin に変えただけで 380行から 741行と同じことをやっています。

1113行と1114行は、各次のcos成分とsin成分を合成しており、
G1113セルが =(G1111^2+G741^2)^0.5 で、合成された波の大きさを、
G1114セルが =ATAN2(G741,G1111) で、合成された波の位相を、それぞれ意味します。この2行が「FFT出力」になります。

1120行から1480行までが、「刺激信号の逆フィルタをコンボリューション」の部分です。

G1120セルが =COS(G$9*($B1120+G$8)-G$1114)*G$1113*G$7 です。
スイープ波形を作るG10セル =COS(G$9*($B10-G$8))/G$7 と比べると、
次数 G$9 と、時刻 $B10 は共通します。
位相差は、G10セルが G$9*(-G$8) で、G1120セルが G$9*(+G$8)-G$1114 となります。FFTで検出した位相から、刺激信号(入力)で与えていた位相を差し引いた、と見てください。入力信号に歪を与えずにFFTしてここを通すと、位相は必ず0になります。
ゲインは G$1113*G$7 です。FFTで検出したゲインに、刺激信号(入力)を作る際に割っていた分G$7 を掛けて戻した、と見て下さい。入力信号に歪を与えずにFFTしてここを通すと、ゲインは必ず1になります。

10行目から370行目までと同じく、行(縦)に時間軸、列(横)にcos波の次数が並びます。C列がG列からGC列までの総和で、これにより、C列がコンボリューションした結果となります。入力信号に歪を与えない場合は時刻0でのインパルスになります。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

このシートの基本的使い方も、黄色の3つのセルへの数値入力になります。

上から{0,1,0}と入力すると、インパルスからログスイープのために高周波成分を減らした波形が観察できます。

基本的には2番目の黄色セルは”1”=ログスイープ、に固定でいいのですが、これを”0”にしてリニアスイープにすると、高調波歪が「堆積しない」様子も観察できます。

H5セルは「2字高調波堆積位置」の理論値です。黄色セルが{240,1,0.1}の時のは-32.0348となり、下のグラフでのピーク位置と勿論一致します。

 

TOPへ インパルスとスイープ信号へ