好評のソリューションライブラリ!第4回目はデジタル信号処理についての理論をプログラムに置き換えてデモ環境での波形を比較、さらにデジタル信号処理には必要不可欠な「窓関数」と「フィルター特性」についても、公開プログラムを使って分かりやすく解説していきます。Top>ソリューションライブラリ>好評のソリューションライブラリ!第4回目はデジタル信号処理についての理論をプログラムに置き換えてデモ環境での波形を比較、さらにデジタル信号処理には必要不可欠な「窓関数」と「フィルター特性」についても、公開プログラムを使って分かりやすく解説していきます。今回プログラムに組み込むデジタルフィルターは、次の3種類です。移動平均フィルターIIRフィルターFIRフィルターそれぞれのフィルターを通した結果を比較してみましょう。各種フィルターの仕様は次の通りで、比較的簡単に実現できる内容にしています。図2:FIRフィルターブロック図2.デジタルフィルターの仕様解説さて、IIRフィルターとFIRフィルターの仕様にて、少し聞き慣れない単語が登場しましたので一部解説します。IIRフィルターの「バタワース型」とは?IIRフィルターを設計する際、周波数の通過域と阻止域を定義付けますが、通過域と阻止域それぞれの特性の表れ方は、フィルターの「型」に依存します。図3と図4は、代表的なフィルター特性を紹介しています。角周波数ω<遮断周波数ωcを周波数の通過域とし、ω≧ωcを周波数の阻止域としたグラフです。バタワースフィルターは比較的緩やかな変化で、ロールオフが軽い勾配になる特性を持つのが特徴です。チェビシェフフィルターは通過域にリプルを生じますが、阻止域のロールオフが急勾配になります。※逆に、阻止域にリプルを生じるタイプもあります。チェビシェフフィルターはバタワースフィルターに比べて計算が多少複雑になります。詳しくは各種文献を参照してください。FIRフィルターの「窓関数」とは?FIRフィルターの特徴として、タップ数Nの数が多いほどより精度が上がり、狙った周波数特性に近づく性質があります。そのため精度の良い特性を実現するためには、Nを無限個にするのが理想ですが、Nに対応する係数と入力信号を無限に用意するのは不可能ですし、マイコンのメモリの制限などもあるので、サンプリング時にNを有限で打ち切ります。N個でサンプリングを打ち切るというのは、図5のように、連続信号から赤枠の範囲をサンプリングするということです。離散時間信号として取り出した信号をフーリエ変換にかける場合、取り出した信号は元の信号のように周期的になっているのが理想です。取り出した信号を周期拡張してつなげると、元の信号と同じように連続的な形状になるサンプリングが理想的です。図5:理想的なサンプリングしかし、実際のサンプリングでは理想通りにいきません。元の信号は正確な周波数が分からなかったり、複数の周波数成分が含まれていたりで、うまく合わせてサンプリングするのは事実上不可能です。図6:実際のサンプリングこのままフーリエ変換を行うと、波形のつなぎ目部分の不自然な形状が原因で、本来無いはずのノイズ成分が数値となって現れてしまいます。窓関数を掛け合わせると、取り出した波形の両端を連続性のある形に補正して、連続性を持たせることができます。図7:窓関数の掛け合わせイメージ図7ではハミング窓を例にしていますが、窓関数にはいくつか種類があり、それぞれ異なる特徴があります。どの窓関数を使うかは設計時に決めますが、今回はハミング窓を使用します。3.プログラムの作成とその動作、ハードウェアの設定それでは、本題に入りましょう。プログラムを動かす環境は、ソリューションコラム第12回でご紹介したものをベースにします。必要な機材などはこちらを参照してください。今回はさらに、シリアル通信を加えてPCでログ取得を行いますので、シリアル通信ケーブルと、通信用のPCアプリケーションを用意します。どんなプログラム?今回使用したプログラムは、図8のような動作になっています。250μsec周期でADサンプリングを行いながら、フィルター処理を行います。衝撃を検知すると、ログにため込んだデータをシリアルでPCへ送信します。シリアル通信処理は、DMAを使用してCPU負荷を減らしています。図8:サンプル・プログラムの動作DSP処理部分は、本記事冒頭の「1.デジタルフィルターの仕様」にて紹介したブロック図を元に、プログラムを組んでいます。フィルター処理に必須となる各種係数は、今回の仕様に沿う形に決め打ちとさせて頂いています。ソースファイル「RX_DSP_Test.c」内の冒頭部分、IDXのdefine定義を変更することで、移動平均/IIRフィルター/FIRフィルター/フィルター処理無し(生データ)から選べます。RX63N特有の注意事項)今回ご紹介のデモ環境ではシリアル通信を使用しますが、RSK+上に用意されているシリアル通信用ポート2系統のうち、SCI0(TXD0)はCN0303向けに、SCI1(TXD1)はE1向けに使用しているため別途通信ポートを用意する必要があります。そこで、シリアル通信の代替手段としてSCI6を確保するため、RSK+上で1本のジャンパーを飛ばします。23番ピンとJ12の2番ピン(真ん中)同士を、図9のようにジャンパーで接続します。これにより、SCI6のTXD6を使用してシリアル通信を行えるようになります。※SW2と共用になるため、SW2は使用しないでください。図9:シリアル通信用のジャンパー接続プログラムを動かしてみるサンプル・プログラムを動かしてフィルター種別ごとのログを収集し、その結果を図10に示します。図の前半は、受信したデータをそのままグラフ化して比較したものです。図の後半は、受信したデータに対してフーリエ変換をかけて比較したものです。図を見ると、フィルター処理無し(生データ)に対して、各フィルターとも一定の効果が現れていることが、グラフから確認できます。生データのフーリエ変換結果を見てみると、どの周波数帯域でもノイズ成分が目立ちますが、フィルターを通すと周波数阻止域以降のノイズ成分がほぼ除去されていることが分かります。このように実際にプログラムを動かしながら結果を比較できると、デジタルフィルターに対する理解も一層深まります。4.サンプル・プログラム公開とダウンロードさて、ここまでご紹介した内容を皆さんに実感いただくために、プログラムを公開致します。デジタルフィルター処理の参考に、お役にいただけると幸いです。Generator)を使用しています。PDGはルネサス製のマイコン内蔵I/Oドライバ作製支援ツール(ソースコード自動生成ツール)で、無償配布していますので、デジタルフィルターデモファームウェアの内容を変更する場合は、PDGをご使用ください。詳しくは、コチラを参照してください。ダウンロードにはSolution-Edge会員登録、およびログインが必要です。5.最後に今回は、デジタル信号処理をプログラムで動かして比較してみました。いかがでしたでしょうか。実際のデジタル信号処理においては、設計段階から綿密な検討のうえ、フィルター仕様を決めて設計します。これまでにご紹介した内容が、デジタル信号処理の知識習得の足掛かりになれば幸いです。次回はフィルター以外のデジタル信号処理について解説します。実際どれくらい簡単なのでしょうか。SP-01を使ってシステムを組んでみましょう。デジタルフィルターとアナログフィルター(1)——デジタルフィルター超入門編これから数回にわたり、アナログ信号よりある帯域の成分を取り除き、必要な信号成分だけを取り出す目的で使用される、信号処理用のフィルターについて紹介していきます。今回は、フィルター処理の中で、アナログ信号の状態で使用するアナログ・フィルターと一度デジタル値に変換してから処理を行うデジタル・フィルターについて、その特長の違いや組み合わせなどを解説していきます。デジタルフィルターとアナログフィルター(2)——デジタルフィルターの動きを見ながら理解する信号処理用フィルターについて解説する本連載。今回は、デジタルフィルターに着目し、フィルターにはどのようなものがあってどのような違いがあるのかを紹介しながら、実際にフィルターを動かしてみたいと思います。デジタル・フィルターとアナログ・フィルター(3)——デジタルフィルターの使い方データコンバータ(A-DコンバータやD-Aコンバータなど)は、アナログ信号処理とデジタル信号処理の間を橋渡しする素子です。デジタル・フィルターについて解説してきているこの入門編で、少し実際のフィルターの使い方についてお話ししたいと思います。SP-01」を使ったデータ・アクイジション・システムのデモが披露されました。今回は、このデモの詳細を加賀デバイスの開発担当者自らがご紹介します。SP-01を使用したさまざまなバリエーションのデモをご紹介してきました。SP-01でGR-SAKURAに高精度センサーを取り付ける手順とプログラム電子工作好きの皆さんにはおなじみの小型電子工作ボード(ガジェット)「GR-SAKURA」。このGR-SAKURAにセンサーを接続していろいろな装置作りにチャレンジしている方も多いと思います。工作しているうちに「もっと高精度なセンサーを使いたい」という欲求が生まれているかと思います。高精度センサーをGR-SAKURAを接続するには、結構な技術力が要求されます。SP-01」を使って、GR-SAKURに高精度センサーを手軽に取り付ける手順とプログラムをご紹介します。SP-01でGR-SAKURAを究極まで進化させてください。SP-01を使って手軽にシステム構築ができる一例を紹介しました。今回は、前回に組み上げた評価環境を実際に動作させていく様子をご紹介します。SP-01の素晴らしさを、よりご理解頂けると思います。実際どれくらい簡単なのでしょうか。SP-01を使ってシステムを組んでみましょう。LLC.ITmediaはアイティメディア株式会社の登録商標です。