PythonでFFT!SciPyで窓関数をかける

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

FFTの時に使う窓関数は以前自作する方法を紹介しましたが、一般的な窓関数はSciPyというパッケージに豊富にあります。今回はSciPyの窓関数の使い方を説明します。

こんにちは。wat(@watlablog)です。
SciPyはとても便利なパッケージのようです。今回はSciPyを使った窓関数のかけかたを習得していきます

SciPyについて

SciPyとは?

SciPyとは高度な科学技術系の演算を行うためのライブラリパッケージであり、信号処理以外にも数値シミュレーションといった分野にも良く使われているみたいです。

SciPyのインストール

SciPyはこれまでと同様にpipでインストール可能です。pipについては以下の記事を参照して下さい。

Pythonのパッケージ管理ツール pipの使い方とコマンド集

インストール時のコマンドはこちらです。

SciPyの窓関数を使ってみよう

窓関数をオーバーラップ波形にかける

以下の記事でFFTをする前の信号に対し、フレームをオーバーラップさせながらデータを抽出する所まで作成しました。

PythonでFFTをする前にオーバーラップ処理をしよう!

今回はこのオーバーラップ波形に対して窓関数をかけていきます。上の記事のコードにそのまま追加していきますので、それぞれの変数もそのまま引き継いでいます。

以下が窓関数を作成するコードです。

実行結果

以下が実行結果です。オーバーラップ率は90%で設定していますので、波形は22個あります。

ハニング窓をかけたので、フレームの両端にいくにつれ滑らかに0になっていきます。

まとめ

今回はSciPyのパッケージを使ってハニング窓をかけてみました。

前回自作した窓関数に比べてコーディングは明らかに簡単であることがわかりました。

SciPyの窓関数が簡単過ぎて記事のボリュームも小さくなったぞ。
やはり既にパッケージ化された関数を使うのは効率が良いね!

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

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

SNSでもご購読できます。

コメント

  1. あめす より:

    はじめまして。あめすと申します。
    クロネさんのリツイートから来ました。
    いつかpythonを使えるようになりたいのでその際は参考にさせてもらいます。
    ブログ更新頑張ってください。

    1. wat より:

      コメントありがとうございます!はげみになります!クロネさんのブログは僕も大変参考にさせていただいています、リツイートで非常に大勢の方にブログを見て頂いているようで驚いています。
      Python学習者にとって良いブログにしたいと思いますので、引き続きよろしくお願いします。

wat へ返信する コメントをキャンセル

*