短期集中連載 ダウンロード・データあります 84MHz 動作 Cortex-M4 マイコンで DSP 並みフィルタ& FFT 激安! 1500円mbed Nucleoで作る 本格ディジタル信号処理マシン 第 4回 処理時間は FIR の 1/40! リアルタイム処理向け IIR フィルタを試す 三上 直樹 500Hz以上を カットする IIRローパス・ フィルタ 今回は使わない マイク より 音源 ライン 出力 より マイク・ アンプ回路 バッファ・ アンプ回路 いろいろな周波数の正弦波を入力 USB ケーブル アナログ信号 LPF回路 A0 アンチエイ リアシング A-DコンバータはMCUに内蔵のものを使用 本稿で紹介したプログラムは インターネット mbedのWebサイトで公開して (mbed.orgへ) います. http://developer.mbed. org/users/CQpub0Mikami/ パソコン SPI Nucleo F401RE D-AコンバータIC MCP4922 5V LPF回路 アクティブ・ スピーカ, オシロスコープ などへ アパーチャ効果補正および平滑化用 レギュレータ XC6202P332 3.3V マイク・アンプ,バッファ・アンプ, D-Aコンバータ,LPF へ 図 1 実験のハードウェア構成…音声入力にディジタル IIR フィルタをかけて出力してみる 信号処理の 2 大フィルタは FIR と IIR です.前回 は,500Hz 以上をカットするローパス・フィルタを FIRフィルタで作成して試しました.今回は,IIRフィ ルタを作り,FIRフィルタの処理時間と比較してみま す.IIRフィルタは安定性を考慮して設計しないとい けませんが,FIRに比べて計算量が少ないため,処理 時間を短くできます. (編集部) ● IIR フィルタの基礎 IIR フィルタは FIR フィルタ同様,いろいろな実現 方法があります.一番基本的な IIR フィルタは,入力 信号を x[n] ,出力信号を y[n] ,フィルタの係数を ak および bk とすると,入出力信号の関係は次の差分方程 式のようになります. ● 実験の構成 今回の実験で使うハードウェアの構成を図 1 に示し ます. 500Hz 以上の周波数成分をカットできるローパス・ フィルタを IIR フィルタで作ります. 開発環境などの準備について知りたい場合は,第 1 回,第 2 回を参照できます. u[n] [ x n] z−1 a1 b0 b1 z−1 a2 u[n−2] 図 2 縦続形 IIR フィルタの構成ブロック 156 おさらい…IIR フィルタ b2 [ y n] M y[n] = ∑a K k y[n − k] + k=1 ∑b k x[n − k] … ………………(1) k=0 この式のまま計算するものを直接形といいます. しかし,FIR フィルタの場合と違って IIR フィルタで は,直接形のフィルタを使った場合,演算誤差の影響 が大きく現れることが知られています.そこで,ここ では演算誤差の影響が少ないものの中で,よく使われ ている縦続形の IIR フィルタのプログラムを作ります. 縦続形の場合,図 2 に示すブロックを組み合わせて 作ります.このブロックの入出力信号の関係は次の差 分方程式のようになります. u [n] = x [n] + a 1 u [n − 1] + a 2 u [n − 2 ] … …………(2) y [n] = b 0 u [n] + b 1 u [n − 1] + b 2 u [n − 2 ] 縦続形 IIR フィルタの全体の構成は,図 2 のブロッ クを組み合わせますが,ここでは少しでも演算量を減 らすため,b0 = 1 とします.そうすると,全体の利得 が変わるので,各ブロックの b0 に相当する係数を全 第 1 回 メイン回路の構成(2014 年 10 月号) 第 2 回 D-A コンバータ / フィルタ / マイク・アンプ…音声信号処理実験の準備(2014 年 11 月号) 第 3 回 音声入力に定番 FIR フィルタをかける(2014 年 12 月号) 2015 年 2 月号
© Copyright 2024 Paperzz