Pythonでサイン波(正弦波)をつくる

By | 2015年8月17日

振幅A、サンプリング周波数fs、周波数f0、時間nのサイン波(正弦波)は下記の関数として定義できます。

サイン波の式
s(t)=A sin(2\pi { f }_{ 0 }t)

t=n/{ f }_{ s }

とすると、

s(n)=A sin(\frac { 2\pi { f }_{ 0 }n }{ { f }_{ s } })

今回は、サンプリング周波数が8kHzで周波数440Hz(ラの音)のwavファイルを作成を行いました。

スクリプト

作成したサイン波
sin_wave

出力されたwavファイル

 

今回は440Hzの音(ラ・A4)で試しましたが、ド(C4)は261.63Hz、レ(D4)は293.66Hzというように音階(十二平均律音階)は周波数が決まっています。なのでスクリプトを改造して簡単な音楽のwavファイルをつくることもできます。