高調波を理解するためにあれこれやっています。
フーリエ変換というのは聞いたことありますけど、詳しいことはよく分かっていません^^;
今回は視覚的に遊んで学んで見たいと思います。
まずは次のようなPythonスクリプトを作りました。
sinwave.py
フーリエ変換というのは聞いたことありますけど、詳しいことはよく分かっていません^^;
今回は視覚的に遊んで学んで見たいと思います。
まずは次のような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のノイズを紛れ込ませるのです。
台形波がぐちゃぐちゃになりましたヽ(;´Д`)ノ
スペクトラムにははっきりと現れています。
なかなか楽しいですね、これは。。。