Chapter Twenty Four

第24話



サウンドは馴染みがない分野なので、いろいろ調べるのに手間取ってしまった。今回は取り込んだサウンドデータを周波数解析してみようと思う。
サウンドデータの基本はマイクからの電気信号をA/D変換したもので、LabVIEWを使っているエンジニアにとってあまり違和感はないだろう。LabVIEWでは信号処理のツールが揃っているから気軽に遊ぶことができる。

今回使うサウンドデータは、Sonny Rollinsの"Tenor Madness"というCDからSoundView1.3.3を使ってシステムサウンドファイルに保存したものを、SoundApp 2.31でWaveフォーマットに変換した。

解析する部分を生データからトライアンドエラーで手軽に切り出せないと効率が悪い。信号処理を気持ち良く楽しむためには、ツールの整備から始めなくてはいけないと思う。
"Sound"のグラフは、ファイルのデータを全て表示する。"ROI"グラフにも起動時には同じ波形が表示されるが、解析するデータ範囲を制御器"Start"と"End"で指定し、"Make ROI"ボタンをクリックするとその部分だけが"ROI"のグラフに表示される。"Reset"ボタンを押すと起動時と同じ全データの表示に戻すことができる。ボタンの機械的動作は"押されたらラッチ"を愛用している。

もっと気軽に解析する部分を選ぶには、カーソルを活用したいものだ。部分的に拡大して、欲しいところだけを選択できるからすごく便利になる。ここで表示されているのは、"PAUL'S PAL"の出だしのロリンズのテナーサックスだ。
LabVIEWのカーソルは属性接点を使うと気持ち良く動いてくれる。かなりごちゃごちゃしているが、グラフの属性接点でカーソルの位置から切り取り範囲を指定するところを追加しただけだ。Whileループの外の属性接点は、はじめにグラフ表示したときにカーソルが表示範囲内にいるように配慮したものだ。

LabVIEWでは信号処理のツールで気軽に遊ぶことができる、、、とは言うものの、周波数軸については注意が必要だ。サンプリング間隔をdtにしてn個の信号を取り込んで周波数解析する場合、周波数軸の最小単位は1/(n*dt)、つまり、取り込んだ時間(sec)の逆数になる。これさえ気をつければ悩むことは少ない。
下のグラフは振幅スペクトルを実周波数で表示したものだ。"FFT"ボタンを押せば、指定した上限の周波数までを表示する。基本周波数がおよそ200Hzで倍音が連なっている。--ロリンズのおおらかな太いひびきがここにある--
グラフの横軸を実周波数にするために、FFTで解析する時間(Size/SamplePerSec)の逆数をdfとしてx軸の増分に入力している。上限の周波数はグラフの属性接点で指定しているが、グラフ表示後に属性接点に値を入れないとオートスケールしてしまうので、格好が悪いが、グラフからケース構造に結線をしている。

さて、このあとサウンドで何をするかは決めていないが、当分楽しめそうだ。
See you!


Nigel Yamaguchi

戻る