関数 > ファイルの読み込みと書き込み > 例: WAV ファイルの使用とスペクトログラムの作成
  
例: WAV ファイルの使用とスペクトログラムの作成
関数 READWAVGETWAVINFO を使用して WAV ファイルを読み込み、フォーマット情報を取得します。
WAV 情報の取得
1. GETWAVINFO を使用してサウンドファイルの情報を取得します。このサウンドファイルは、イルカ類の鳴き声をサンプリングしたものです。任意の音楽プレーヤーで再生できます。
クリックしてこの式をコピー
ベクトルは、オーディオプレーヤーデバイス音声をリアルタイムで再生するために処理が必要なチャンネル数、サンプルレート、解像度 (サンプルあたりのビット数)、1 秒あたりの平均バイト数からなります。
2. ベクトル変数を評価します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
サウンドファイルの読み取り
1. READWAV 関数を使用してサウンドファイルを読み取り、ベクトルとして保存します。
クリックしてこの式をコピー
READWAV により行列が返る場合、それに続く列はデータの別のチャンネルを表します。
2. length 関数を使用して、サンプルの総数を計算します。
クリックしてこの式をコピー
クリックしてこの式をコピー
3. 信号をプロットします。
クリックしてこの式をコピー
4. 関数 matchmaxmin を使用してマグニチュードが最大および最小のサンプルを求め、対応するサンプル時間を求めます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 最初の 25000 個のサンプルをプロットして、マーカーを使用して最大のマグニチュードを持つサンプルを示します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
スペクトログラムを作成します。
データを小さな時間のスライスに分割し、各スライスの周波数成分を表示してサウンドデータを分析します。この例では 128 サンプルのスライスを使用しています。
1. 2 のべき乗のスライスサイズのベクトルを定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
ここで、ss はスライス行列の行数です。
2. 0-90% まで 10 ずつ増加する重なり因子のベクトルを定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
重なりは 100% 以外でなければなりません。
3. 重なり因子を設定し、floor 関数と ceil 関数を使用して行列のサイズを定義します。
クリックしてこの式をコピー
重なりがゼロに設定されている場合、Data ベクトルはいくつかの長さ ss のチャンクに分割されます。次の方程式のように、重なりが増えると長さ ss のチャンクの数も増えます
クリックしてこの式をコピー
クリックしてこの式をコピー
スライスサイズと重なり因子の組み合わせにより、それぞれ異なるスライス行列の次元になります。
クリックしてこの式をコピー
ss=128overlap=40% を使用すると、128x2602 行列になり、作成とプロットに非常に長い時間がかかる可能性があります。
4. ti 以下となる 10 個の値のいずれかに ti を設定しやすくするために、ベクトル TI を作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. TI の中間成分のいずれかに ti を設定し、ワークシート下部の等高線図を確認します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
新しいスライス行列の次元は以下のようになります。
クリックしてこの式をコピー
6. 各スライスを Hamming ウィンドウ処理します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
7. log 関数を使用して、周波数をデシベルで表します。
クリックしてこの式をコピー
8. dft 関数 (または廃止された fft 関数) を使用して、スライスのフーリエ変換を求めます。
クリックしてこの式をコピー
廃止された fft 関数を使用する場合、上記の領域を向こうにして次の領域を有効にします。
クリックしてこの式をコピー
9. 等高線図を使用して spectra をプロットします。
クリックしてこの式をコピー
10. さまざまな値のスライスサイズ (ss)、overlapti で実験します。ただし、計算およびプロット時間への影響を確認するため、一度に 1 つのパラメータだけを変更し、残りの 2 つはデフォルト値 ([128 0.4 82]) のままにすることをお勧めします。
ssoverlapti の現在の設定は次のとおりです。
クリックしてこの式をコピー