デジタル信号処理という用語をご存知でしょうか。今までデジタルオーディオに関して書いてきましたが、この辺でデジタル信号処理についても少し話をしたいと思います。
デジタル信号処理
デジタル信号処理とは、その名の通りデジタル化された信号を処理(加工)する技術ですが、今や専門用語ではなくなりつつあると感じます。デジタル信号処理を専門に行うプロセッサーで、DSP(Digital Signal Processor)というものをご存知でしょうか。。。信号処理はもちろんアナログ回路でも出来ますが、半導体の進化によりDSPなどが普及し、低コストでデジタル信号処理が可能な時代になりました。
アナログ信号をデジタル変換した後、デジタル信号処理を行い、またアナログ信号に戻すようなプロセスをリアルタイムで行えるようになってきました。
10年ほど前では、高品質を求めると、ハイスペックで高価なプロセッサーが必要だったり、処理時間や遅延が問題になり、リアルタイムではアナログ信号に比べ、その差を感じてしまうケースが多々ありました。
近年では何と言ってもスマホの影響でその需要が高まり、私生活でも仕事でも関わらない日は無いと思います。
デジタル信号処理の応用例
分野 | 応用例(特にアナログ ↔ デジタル変換に関わるもの) |
---|---|
画像処理 | デジタルカメラ、デジタルビデオ |
映像動画 | 地上波デジタル放送、ネット動画配信 |
音声符号化 | 音声通信、携帯電話 |
音声認識 | 音声ナビ、AIスピーカ、ロボット工学 |
音響技術 | エコーキャンセラ、ノイズキャンセラ、マイクロホンアレー |
※スマホは、ほぼ全部に関連しますね。。。
私は、音声や音響の分野で信号処理に携わり、過去は音声符号化を中心にやっていました。最近は音響の方を中心にやっています。今回は、Audacityを通じて、音響信号処理の代表的なアルゴリズムについて紹介したいと思います。
何といっても、フィルタとFFTだと思います。
- デジタルフィルタ
- FFT(高速フーリエ変換)
学問的には基礎的で教科書に書かれているものだったと思いますが、仕事で実戦となると奥が深く製品の品質に直結するコアの技術と感じます。私はまじめに勉強してなかったので、実戦のみで奮闘していますが、有識者に質問すると数学で説明してくれるので、分かったフリはしますが、ん~って感じです。
これらの技術は、Audacityでも使われています。今回はデジタルフィルタを数学抜きに少し紹介したいと思います。
デジタルフィルタ
信号処理のフィルタとは、信号から特定の成分を取り出したり、または除去したりすることです。デジタルフィルタとは、アナログ➞デジタル変換された信号を、デジタルでフィルタ処理することです。Audacityで簡単なフィルタ処理をしてみます。
Audacityでスイープトーンを生成してフィルタリングしてみる
【ジェネレータ】→【チャープ】
まずは、フィルタリングを行う信号を生成してみます。今回はスイープトーン(Sweep tone)を使用してみました。スイープトーンとは、連続的に周波数を変化させた信号の事です。Audacityでは、【ジェネレータ】→【チャープ】で生成できます(サンプリング周波数は48kHz)。
波形 | サイン波 | 備考 |
---|---|---|
周波数(Hz): | 開始:1000 ~ 終了:20000 | 今回は、1000Hz~20000Hz にしてみます |
振幅(0-1): | 開始: 0.5 ~ 終了: 0.5 | 0.0~1.0を指定、信号の振幅です |
補完: | リニア |
時間軸の波形:Sweep tone
サイン波の周期が時間と共に短く(周波数が高く)なって行きますが、この表示ではちょっと分かりにくいです。
カーソルを波形の上に置き、Ctrl+スクロールで波形が拡大されます。この表示も分かりにくいですが、表示の範囲を右にずらして行くと周期が短く(周波数が高く)なるのが分かります。
スペクトログラム:Sweep tone
【ファイル名】➞【 スペクトログラム】(表示波形のファイル名のところを、プルダウン)
<var id="internallink-24" class="internallink">#24</var> (Audactyで周波数分析)
スペクトログラムを選択すると、縦軸が周波数、横軸が時間で、周波数成分のレベルは色で表されます。この表示では時間と共に周波数が高くなって行くことが分かると思います。1kHz~20kHzに変化していきます。興味のある方は聞いてみて下さい(言葉で表すなら、ピーという音がどんどん高くなって行きます)。
皆さんは何Hzまで聞き取れるでしょうか。。。 ヘッドフォンで聞く場合は音量に注意して下さい。
スペクトラム表示:Sweep tone
【解析】➞【 スペクトラム表示】(リニア周波数軸)
<var id="internallink-24" class="internallink">#24</var> (Audactyで周波数分析)
1000Hz~20000Hzの周波数成分が分かると思います。
AudacityでHigh Pass Filter(高域通過フィルタ)
【エフェクト】→【High Pass Filter】
生成したスイープトーンに、ハイパスフィルタをかけてみます。
High Pass Filter | 設定 | 備考 |
---|---|---|
Frequency (Hz): | 10000.0 | 20000Hzの半分の10000Hzにしてみました |
Rolloff (dB per octave): | 48 dB | 違いがはっきり分かるように大きい減衰量を指定 |
スペクトログラム:Sweep tone→High Pass Filter
低い周波数が消えています。
時間軸の波形:Sweep tone→High Pass Filter
【ファイル名】➞【波形】(表示波形のファイル名のところを、プルダウン)
こちらの波形でも、低い周波数が消えているのが分かります(振幅が小さくなります)。
スペクトラム表示:Sweep tone→High Pass Filter
【解析】➞【 スペクトラム表示】(リニア周波数軸)
High Pass Filterで指定した10000Hzを境に低域が減衰していることが分かります。
Audacityでホワイトノイズを生成してフィルタ特性を調べる
【ジェネレータ】→【ノイズ】
フィルタの特性を見るには、ホワイトノイズ(White noise)という全ての周波数成分が同じ強度で含まれる雑音を使用すると良く分かります(言葉で表すなら、サーッとした音です)。
ノイズ | 設定 | 備考 |
---|---|---|
ノイズの種類: | ホワイト | 乱数によって生成できます |
振幅(0-1): | 0.5 | 0.0~1.0を指定、信号の振幅です |
スペクトラム表示:White noise
【解析】➞【 スペクトラム表示】(リニア周波数軸)
全ての周波数成分があることが分かります。
High Pass Filter(高域通過フィルタ)
【エフェクト】→【High Pass Filter】
スイープトーンの時と同じHigh Pass Filterを実行します。
スペクトラム表示
【解析】➞【 スペクトラム表示】(リニア周波数軸)
High Pass Filterで指定した10000Hzを境に、フィルタの特性が分かります。
Low Pass Filter(低域通過フィルタ)
【エフェクト】→【Low Pass Filter】
逆にローパスフィルタでは次の特性です。10000Hzを境に、高域が減衰される特性が分かります。
FFT(高速フーリエ変換)
ここで紹介したスペクトラム表示とは、FFTを使用して時間領域の信号から周波数領域へ変換を行い、周波数成分の解析を行ったものです。
moniswitch
今お使いの離床センサーがそのまま使える!
離床センサーのスイッチ入れ忘れ事故を防止するスマートスイッチ
monipet
動物病院の犬猫の見守りをサポート
病院を離れる夜間でも安心
ASSE/CORPA
センサー、IoT、ビッグデータを活用して新たな価値を創造
「できたらいいな」を「できる」に
OSGi対応 ECHONET Lite ミドルウェア
短納期HEMS開発をサポート!
GuruPlug
カードサイズ スマートサーバ
株式会社ジェイエスピー
横浜に拠点を置くソフトウェア開発・システム開発・
製品開発(monipet)、それに農業も手がけるIT企業
※コメント投稿者のブログIDはブログ作成者のみに通知されます