時間周波数応答を得ることができるWavelet変換。

 

本ブログではMatlabを使ってWavelet変換を行うサンプルプログラムをご紹介します。

 

ということで、実施することは

  • 1つの音声ファイルに対してWavelet変換
  • 時間周波数応答のわかりやすい図(スカログラム)を作成

これを実現するために

  1. 音声ファイルの読み込み
  2. Wavelet変換
  3. 図作成

という3手順で説明していきます。

 

1. 音声ファイルの読み込み

本プログラミングで用いる音声は以下のファイルです。

 

Matlabで音声ファイルを読み込むときはaudioread()という関数を用います。

 

 

これで音声ファイルを読み込むことができます。

Fsにはサンプリング周波数

yには時間に対するデータ

が入っています。

 

ワークスペースを見てみると、

というデータが入っていますね。

つまり、この音声ファイルは

サンプリング周波数が48000で

要素数が50160

であるデータと分かります。

 

これらを使ってWavelet変換を実施します。

 

2.Wavelet変換

さて、本題のWavelet変換です。

Wavelet変換実施にあたり、主に使用する関数はwt()という関数です。

 

 

これでWavelet変換が実施されました。

 

3.図作成

時間周波数応答が分かりやすいように図を作成します。

Wavelet図の作成するにあたり、描き方等を一部指定しています。

 

 

そして、

このように、Wavelet変換をわかりやすく図に示したもの(スカログラム)を作成することができました。

 

 

Matlabは有料ですが、信号処理のための関数が多数用意されています。

その後のグラフ化も非常に簡潔に記述することができます。

 

 

しかし、サンプルコードが少なく(主にMatlabのホームページのみ)勉強もしにくいです。

 

ですので、Matlabの基礎を学びたい方には、サンプルコードから勉強する前に

この本がおすすめです。この本を読んでから、

サンプルコードをいじっていくような勉強スタイルが

よろしいかと思います。

 

 

少しでも皆様のためになれば幸いです。

フォローしてね