Pythonでのこぎり波を生成!次数の高調波成分を見てみた

  • このエントリーをはてなブックマークに追加

信号を生成する目的は様々あり、中には周波数軸で見た時にある周波数でピークが立ち、その倍数成分が全て高調波として立ってくる波形が欲しい時もあります。ここでは高調波成分がしっかり発生するのこぎり波をPythonで生成する方法を解説します。

こんにちは。wat(@watlablog)です。
今回も信号生成系の記事を書いてみます。ここではPythonを使ったのこぎり波を生成し、その周波数特性を見てみます

のこぎり波とは?

波形の形

のこぎり波とは、以下のグラフのような時間とともに徐々に直線増加後にストンと落ちる周期波形のことを言います。見た目がのこぎりの刃のようだとのことで、このような名称になっています。鋸歯状波(きょしじょうは)とも呼ばれます。

のこぎり波

のこぎり波はどんな目的で使われる?

上のグラフのような波形を作って何が面白いのか、と多くの人は思うかもしれませんが、実はのこぎり波は意外と僕達の身近で利用されています。

楽器のシンセサイザーは色々な音を出すことが出来ますが、その基本は周波数軸で見た時の高調波をどの程度含ませるか、という部分にあります。

後程FFTしたのこぎり波を示しますが、のこぎり波は基本次数の倍数で高調波が発生します。この高調波を増減させて色々な音を作り出し、IFFTで時間波形に戻すことで実際に音を発生させることが可能です。

のこぎり波は高調波がすごい!と覚えておけばとりあえず問題は無いでしょう(←?)。

Pythonでのこぎり波を作ってみる

時間波形と周波数波形の特徴

では早速Pythonでのこぎり波を作ってみましょう。SciPyのsignalモジュールの使い方等は「Pythonでチャープ信号!周波数スイープ正弦波の作り方」でやった内容と全く同じなので、詳しくはそちらの記事を参照下さい。

以下がのこぎり波生成とFFT計算をするプログラムコードです。のこぎり波は「# 波形生成」部分のsignal.sawtoothで生成しています。ここでは50Hzの周波数を指定しています。

そして以下のグラフが結果です。50Hzののこぎり波は、50Hzを基本次数として、その倍数で高調波の次数が立ってきている特徴がわかると思います。

のこぎり波の時間波形とFFT波形

まとめ

本ページでは、のこぎり波の特徴と利用方法について簡単に説明し、Pythonによるコーディング方法を紹介しました。

FFTまで含むコードを紹介し、実際に生成したのこぎり波の周波数特性を観察すると、基本次数の倍数で高調波が発生する特徴を持っていることが確かめられました。

チャープ信号が周波数でフラットな特性を持っている対し、のこぎり波は高調波が発生するという特徴があるんだね!

Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*