Special
» 2014年07月28日 09時30分 UPDATE

ソリューションライブラリ:デジタルフィルターとアナログフィルター(4):デジタル信号処理を徹底比較! フィルター特性と窓関数も解説

好評のソリューションライブラリ!第4回目はデジタル信号処理についての理論をプログラムに置き換えてデモ環境での波形を比較、さらにデジタル信号処理には必要不可欠な「窓関数」と「フィルター特性」についても、公開プログラムを使って分かりやすく解説していきます。

[PR/EDN Japan]
PR

 好評のソリューションライブラリ!第4回目はデジタル信号処理についての理論をプログラムに置き換えてデモ環境での波形を比較、さらにデジタル信号処理には必要不可欠な「窓関数」と「フィルター特性」についても、公開プログラムを使って分かりやすく解説していきます。


1.デジタルフィルターの仕様

 今回プログラムに組み込むデジタルフィルターは、次の3種類です。

  1. 移動平均フィルター
  2. IIRフィルター
  3. FIRフィルター

 それぞれのフィルターを通した結果を比較してみましょう。

 各種フィルターの仕様は次の通りで、比較的簡単に実現できる内容にしています。

  • 移動平均フィルター
    • 移動平均数:10回
  • IIRフィルター
    • フィルタータイプ:バタワース型 ローパスフィルター
    • フィルタ次数:2次
    • ブロック図
tt140728SELIB001.jpg 図1:IIRフィルターブロック図(2次)
  • FIRフィルター
    • フィルタータイプ:窓関数法 ローパスフィルター
    • 窓関数:ハミング窓
    • タップ数N:31
    • ブロック図
tt140728SELIB002.jpg 図2:FIRフィルターブロック図

2.デジタルフィルターの仕様解説

 さて、IIRフィルターとFIRフィルターの仕様にて、少し聞き慣れない単語が登場しましたので一部解説します。

IIRフィルターの「バタワース型」とは?

 IIRフィルターを設計する際、周波数の通過域と阻止域を定義付けますが、通過域と阻止域それぞれの特性の表れ方は、フィルターの「型」に依存します。

 下図を見てください。

tt140728SELIB003.jpgtt140728SELIB004.jpg 左=図3:バタワース型フィルター特性 / 右=図4:チェビシェフフィルター特性

 図3と図4は、代表的なフィルター特性を紹介しています。角周波数ω<遮断周波数ωcを周波数の通過域とし、ω≧ωcを周波数の阻止域としたグラフです。

 バタワースフィルターは比較的緩やかな変化で、ロールオフが軽い勾配になる特性を持つのが特徴です。

 チェビシェフフィルターは通過域にリプルを生じますが、阻止域のロールオフが急勾配になります。 ※逆に、阻止域にリプルを生じるタイプもあります。

 また、チェビシェフフィルターはバタワースフィルターに比べて計算が多少複雑になります。詳しくは各種文献を参照してください。

FIRフィルターの「窓関数」とは?

 FIRフィルターの特徴として、タップ数Nの数が多いほどより精度が上がり、狙った周波数特性に近づく性質があります。

 そのため精度の良い特性を実現するためには、Nを無限個にするのが理想ですが、Nに対応する係数と入力信号を無限に用意するのは不可能ですし、マイコンのメモリの制限などもあるので、サンプリング時にNを有限で打ち切ります。

 N個でサンプリングを打ち切るというのは、図5のように、連続信号から赤枠の範囲をサンプリングするということです。離散時間信号として取り出した信号をフーリエ変換にかける場合、取り出した信号は元の信号のように周期的になっているのが理想です。つまり、取り出した信号を周期拡張してつなげると、元の信号と同じように連続的な形状になるサンプリングが理想的です。

tt140728SELIB005.jpg 図5:理想的なサンプリング

 しかし、実際のサンプリングでは理想通りにいきません。元の信号は正確な周波数が分からなかったり、複数の周波数成分が含まれていたりで、うまく合わせてサンプリングするのは事実上不可能です。

tt140728SELIB006.jpg 図6:実際のサンプリング

 このままフーリエ変換を行うと、波形のつなぎ目部分の不自然な形状が原因で、本来無いはずのノイズ成分が数値となって現れてしまいます。

 では、連続性を持たせるためにどうすればよいのでしょう?

 そこで登場するのが窓関数

 窓関数を掛け合わせると、取り出した波形の両端を連続性のある形に補正して、連続性を持たせることができます。

tt140728SELIB007.jpg 図7:窓関数の掛け合わせイメージ

 図7ではハミング窓を例にしていますが、窓関数にはいくつか種類があり、それぞれ異なる特徴があります。どの窓関数を使うかは設計時に決めますが、今回はハミング窓を使用します。

3.プログラムの作成とその動作、ハードウェアの設定

 それでは、本題に入りましょう。プログラムを動かす環境は、ソリューションコラム第12回でご紹介したものをベースにします。必要な機材などはこちらを参照してください。

 今回はさらに、シリアル通信を加えてPCでログ取得を行いますので、シリアル通信ケーブルと、通信用のPCアプリケーションを用意します。

どんなプログラム?

 今回使用したプログラムは、図8のような動作になっています。

 250μsec周期でADサンプリングを行いながら、フィルター処理を行います。

 衝撃を検知すると、ログにため込んだデータをシリアルでPCへ送信します。

 なおシリアル通信処理は、DMAを使用してCPU負荷を減らしています。

tt140728SELIB008.jpg 図8:サンプル・プログラムの動作

 DSP処理部分は、本記事冒頭の「1.デジタルフィルターの仕様」にて紹介したブロック図を元に、プログラムを組んでいます。フィルター処理に必須となる各種係数は、今回の仕様に沿う形に決め打ちとさせて頂いています。

 また、ソースファイル「RX_DSP_Test.c」内の冒頭部分、IDXのdefine定義を変更することで、移動平均/IIRフィルター/FIRフィルター/フィルター処理無し(生データ)から選べます。

tt140728SELIB000_1.jpg

シリアル通信を行うにあたって(RSK+ RX63N特有の注意事項)

 今回ご紹介のデモ環境ではシリアル通信を使用しますが、RSK+上に用意されているシリアル通信用ポート2系統のうち、SCI0(TXD0)はCN0303向けに、SCI1(TXD1)はE1向けに使用しているため別途通信ポートを用意する必要があります。

 そこで、シリアル通信の代替手段としてSCI6を確保するため、RSK+上で1本のジャンパーを飛ばします。

 RSK+のJA1 23番ピンとJ12の2番ピン(真ん中)同士を、図9のようにジャンパーで接続します。

 これにより、SCI6のTXD6を使用してシリアル通信を行えるようになります。

※SW2と共用になるため、SW2は使用しないでください。

tt140728SELIB009.jpg 図9:シリアル通信用のジャンパー接続

プログラムを動かしてみる

 サンプル・プログラムを動かしてフィルター種別ごとのログを収集し、その結果を図10に示します。

 図の前半は、受信したデータをそのままグラフ化して比較したものです。

 図の後半は、受信したデータに対してフーリエ変換をかけて比較したものです。

tt140728SELIB010_1.jpgtt140728SELIB010_2.jpg 図10:フィルター処理比較

 図を見ると、フィルター処理無し(生データ)に対して、各フィルターとも一定の効果が現れていることが、グラフから確認できます。

 また、生データのフーリエ変換結果を見てみると、どの周波数帯域でもノイズ成分が目立ちますが、フィルターを通すと周波数阻止域以降のノイズ成分がほぼ除去されていることが分かります。

 このように実際にプログラムを動かしながら結果を比較できると、デジタルフィルターに対する理解も一層深まります。

4.サンプル・プログラム公開とダウンロード

 さて、ここまでご紹介した内容を皆さんに実感いただくために、プログラムを公開致します。デジタルフィルター処理の参考に、お役にいただけると幸いです。

 なお、このファームウェアでは、RX63Nのペリフェラル・レジスタ周りの設定については、PDG(Peripheral Driver Generator)を使用しています。

 PDGはルネサス製のマイコン内蔵I/Oドライバ作製支援ツール(ソースコード自動生成ツール)で、無償配布していますので、デジタルフィルターデモファームウェアの内容を変更する場合は、PDGをご使用ください。詳しくは、コチラを参照してください。

ボタン ダウンロードにはSolution-Edge会員登録、およびログインが必要です。

5.最後に

 今回は、デジタル信号処理をプログラムで動かして比較してみました。いかがでしたでしょうか。実際のデジタル信号処理においては、設計段階から綿密な検討のうえ、フィルター仕様を決めて設計します。

 これまでにご紹介した内容が、デジタル信号処理の知識習得の足掛かりになれば幸いです。

 次回はフィルター以外のデジタル信号処理について解説します。



Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:ルネサス エレクトロニクス株式会社 / アナログ・デバイセズ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2015年5月31日


2015年3月9日

津田建二の技術解説コラム【海外編】に知ってるつもりの外国事情(6)――IMECに見る研究開発のあり方を追加

2015年2月9日

津田建二の技術解説コラム【歴史編】に半導体の温故知新(6)――MOSトランジスタの次はTFET?を追加

2015年1月13日

津田建二の技術解説コラム【入門編】に半導体の基礎知識(6)――パワー半導体の広がりを追加

2014年12月8日

2014年11月10日

2014年10月13日

津田建二の技術解説コラム【入門編】に半導体の基礎知識(5)――ワイヤレスに必要な半導体を追加

2014年10月6日

2014年9月8日

津田建二の技術解説コラム【海外編】に知ってるつもりの外国事情(4)――業界用語の常識を海外と比較するを追加

2014年9月1日

2014年8月11日

津田建二の技術解説コラム【歴史編】に半導体の温故知新(4)――IBM30億ドル投資の裏にCMOSの凄さありを追加

2014年7月28日

2014年7月14日

津田建二の技術解説コラム【入門編】に半導体の基礎知識(4)――IoTを定義しようを追加

2014年7月11日

2014年6月30日


2014年9月、ルネサス エレクトロニクスのイベント「DevCon Japan2014」にて、加賀デバイスブースにてソリューションエッジのインターポーザボード「SE SP-01」を使ったデータ・アクイジション・システムのデモが披露されました。今回は、このデモの詳細を加賀デバイスの開発担当者自らがご紹介します。

アナログ・デバイセズの実用回路集「Circuits from the Lab」を活用して、ルネサス エレクトロニクスのマイコン評価環境とつないで、お手軽、簡単データアクイジションシステムを構築してみましょう!

ソリューションコラムでは、これまでSE SP-01を使用したさまざまなバリエーションのデモをご紹介してきました。今回ご紹介するのは、アナログ・デバイセズの超低消費電力18ビット1Mサンプル/秒のA/DコンバータAD7982を、なんとGR-KURUMIを使用して制御&デバッグをします!

電子工作好きの皆さんにはおなじみの小型電子工作ボード(ガジェット)「GR-SAKURA」。このGR-SAKURAにセンサーを接続していろいろな装置作りにチャレンジしている方も多いと思います。そして、いろいろ工作しているうちに「もっと高精度なセンサーを使いたい」という欲求が生まれているかと思います。でも、高精度センサーをGR-SAKURAを接続するには、結構な技術力が要求されます。そこで、今回、Solution-Edgeオリジナルのインターポーザボード「SE SP-01」を使って、GR-SAKURに高精度センサーを手軽に取り付ける手順とプログラムをご紹介します。ぜひ、皆さんもSE SP-01でGR-SAKURAを究極まで進化させてください。

前回のソリューションコラムでは、SE SP-01を使って手軽にシステム構築ができる一例を紹介しました。今回は、前回に組み上げた評価環境を実際に動作させていく様子をご紹介します。SE SP-01の素晴らしさを、よりご理解頂けると思います。

アナログ・デバイセズ製の各種デバイスと、ルネサスエレクトロニクス製マイコンボードを簡単につなぐことができるようになるインターポーザボード「SE SP-01」。実際どれくらい簡単なのでしょうか。早速、SE SP-01を使ってシステムを組んでみましょう。

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © 2005 - 2017 ITmedia Inc. All rights reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.