● 実験テーマ75
「デジタル・フィルタの実験」 (dsPIC30Fトレーニング基板+自作簡易自動周波数特性測定装置にて実験をしてみました。)
■ 2016.3.15
・ターゲットの、dsPIC30Fトレーニング基板は、約10年前に、キットで組立てたものですが、
オリジナルは、トラ技2007年8月号に付属されてる「dsPIC30F2012(28pin)基板」
(ブートロダー+タクトSW等を搭載)を、マルツ製トレーニング基板の、40pinソケットに実装して
使うようになっていたものを、 40pinの、dsPIC30F4013+PICkit2で開発出来るように、
インターポーザ基板による改造を施したものです。
この詳細については、実験テーマ3の記事を参照してください。
・トラ技2007年9月号に、DSPライブラリによる、各種デジタルフィルタの実験記事が載っていたので、
既にそれにのっとり、PWM+LPF出力での実験は一通り済んではいました。
ただ、この時の測定には、記事でも紹介されている、「SoftOscillo2」の、Fスイープ機能と、FFT解析機能
を使ってのものでした。
Fスイープに使っているWAVファイルの、Fポイントは、50Hz〜 20KHzの間で全11ポイントしかないため、
詳細なグラフが 描けず、折れ線グラフのようになってしまいます。
今回、これを、最近ソフト更新した「簡易自動F特測定装置」で、測定してみたくなりました。
これなら、Fスイープポイントは、10Hz〜 100kHzの間で全181ポイントあるので、詳細なグラフ描画が可能です。
デジタルフィルタはどれも、減衰が急峻なので、0dBを基準にして測定すると、下の方が、-40dBでスケールアウト
してしまうので、オフセットトリマを回し、+10dBを基準にして測定してみました。
尚、描画されたカーブは、ソフトで作られたDSP演算による特性と、PWM(又はDAC)出力後の、アクティブLPF
(カットオフ≒ 5kHz)の特性の合成されたものとなります。
なので、HPFなどは、高域が強制的に、5kHzからダウンし始めるので、一見、BPFのように見えるので 注意が必要です。
またテストプログラムは、雑誌に付属のCD-ROMに収録されている各サンプル・プログラムをブートローダーでなく、
dsPIC30F4013+PICkit2で開発出来るよう手直ししました。(テスト内容は特に変えていません。)
■ 2016.3.16
・まずは、移動平均フィルタから試してみました。
プログラムの流れの概要は以下の通りです。(トラ技記事よりまとめて抜粋)
T3割込み関数に10タップ移動平均フィルタを組み込む。
T3周期で、ADCから入力信号のAD変換データが読込まれ、T2の周期で動作する、PWM処理へデータが渡される。
移動平均フィルタの処理は、ADCと、PWM処理の間で行う。
以下にその結果を示しました。1kHzから急峻に減衰し始め、2.8kHzで、-33.50dB(読値+10dB)ダウン、
そして約5kHzにて-20dBにアップ、その後は、幾つかのバタツキを経て減衰して行くのがよく判ります。
■ 2016.3.17
・次に、127タップの、各種FIRフィルタを試しました。(トラ技では、第6章)
電源投入時に、2つのタクトSWの状態を読込み、その状態によって
4種類のフィルタ→ LPF, HPF, BPF,
BRF(ノッチ)の、係数(127個)を、どのテーブルから読込むか判断し、
各処理に分岐します。
その係数の取得は、「DSPLinks」というソフトによって行っています。
以下にトラ技から抜粋した、本実験のブロック図を示しました。
以下にその結果を示します。
■ 2016.3.21
・このトレーニング基板は、オプションで、Microchip社の、DAC:MCP4822
が実装できるようになっていて
ヘッダピンにて、PWM出力と、DAC出力を選べるようになっている。
DACの方が、S/Nは良くなりそうなので(トラ技の記事では、-20dBほど良くなると書いてあった。)
DAC+LPF出力でも、試してみた。
F特で見る限りは、見た目、そんなに変わりはないが、良く見ると、低レベル領域の、スペクトルの様子
などが若干詳細になったような気がする。
まあこの辺は、FFT解析で見ないと判らないか・・・
以下にDAC+LPF出力での、F特実測例を示した。
<最終ソース>
・こちらから、どうぞ→ MovingAverage_4013.c
(移動平均フィルタの、テストプログラム)
StaticAdaptive_4013.c
(4種の、FIRフィルタの、テストプログラム(PWM出力の場合))
ExternalDac_4013.c
(4種の、FIRフィルタの、テストプログラム(DAC出力の場合))
← 実験テーマ1に戻る TOP PAGEに戻る 実験テーマ76へ →