高調波を理解するためにあれこれやっています。
フーリエ変換というのは聞いたことありますけど、詳しいことはよく分かっていません^^;
今回は視覚的に遊んで学んで見たいと思います。

まずは次のようなPythonスクリプトを作りました。

sinwave.py


https://ideone.com/cOeUXB

参考サイト
【Python】時間変化するサイン波を作る
Pythonでフーリエ変換(と逆変換)


あとはpython-shellからインタプリタを利用して遊びます。


まずは周波数5Hz、振れ幅100%、サンプリング周波数1000のsin波を作り、プロットしてみます。



周波数5Hzのスペクトラムが出来ました(≧∇≦)

次に2次高調波を加えてみます。


周波数10Hz、振れ幅0.9、サンプリング周波数1000のsin波を作り出し、先ほどの基本波と合成してプロットします。



周波数5Hzと10Hzがあることが分かります。
作ってるんですから当たり前ですね^^;

この要領で9次高調波まで作ってみました。


べたですが全部手打ちで作りました。。。


そうするとこんな風になりました。

奇数次の高調波のみ合成してみます。




そうすると




こんな波形になりましたΣ(・∀・|||)


基本波と偶数次の高調波の合成





振れ幅を全部同じにしてみました。






だんだんとインタプリタでは面倒になってきたのでソースを改良します。


https://ideone.com/SqnHFi

奇数次の高調波をたくさん作って、奇数次で割った振れ幅を作り出して行きます。
この合成波を見ると




台形波が出来ましたヾ(@°▽°@)ノ
これを作ってみたくてあれこれ試してました。

特に何かに使うというわけでなく、趣味の世界です^^;


次に、ノイズを潜り込ませてみます(¬_¬)



基本波5Hzのところに17Hzのノイズを紛れ込ませるのです。



台形波がぐちゃぐちゃになりましたヽ(;´Д`)ノ
スペクトラムにははっきりと現れています。

なかなか楽しいですね、これは。。。