FFT(高速フーリエ変換)演算で直面する2つの課題と解決方法

マイコン、またはDSPでFFT(高速フーリエ変換)演算を行う場合、以下のような課題に直面することが多いです。

[課題1] 処理速度

低消費電力なマイコンであれば、バッテリー持ちの良いシステムを作ることができますが、その分CPUの処理速度が遅く、演算能力が足りなくなってしまいます。

[課題2] 消費電力

多くのDSPは、外部にA/Dコンバータとメモリが必要です。演算パフォーマンスに優れている反面、小型なアプリケーションに対しては、実装面積の増加や過剰スペック、さらには消費電力が大きくなってしまうという欠点があります。

このような課題の解決には、LEA(低エネルギー・アクセラレータ)を搭載したマイコンの使用をおすすめします。

LEA(低エネルギー・アクセラレータ)とは

LEA(低エネルギー・アクセラレータ)とは、Low Energy Acceleratorの略称で、信号処理向けアプリケーションには欠かせないFFT(高速フーリエ変換)演算やFIR・IIR(有限・無限インパルス応答)フィルタ処理を実行できるハードウェアモジュールです。

Texas Instruments社(以降 TI社)のMSP430FRAMシリーズマイコンには、CPUとは別にこのLEAがペリフェラルとして搭載されており、これによってCPUの処理を介さず演算・フィルタ処理を実現します。

CPUと独立したハードウェアを使用することで、次のようなメリットがあります。

演算用コプロセッサであり、一般の汎用CPUによる演算より高速

ARM Cortex-M0でFFT演算した時とLEAでFFT演算した時のパフォーマンスを比較したものが下の表になります。
この表からわかるように、演算する時のサイクル数が短いほど処理を行う時間が短くなるため、一般のCPUよりLEAを使用した方が非常に高速な演算が可能です。

Article header library 120973 pic01  1
「Benchmarking the Signal Processing Capabilities of the Low-Energy Accelerator on MSP430™ MCUs」P16より流用

※本データはTI社の下記資料がRev.B時点の物です。資料が新しいRevisionに更新された場合、章や記載内容が変更される可能性があるため、本ページへの反映が遅れる場合がございますので予めご了承ください。
Benchmarking the Signal Processing Capabilities of the Low-Energy Accelerator on MSP430™ MCUs

低消費電力化

高速な演算処理が行えるため、CPUのスリープ時間が増え、全体的な消費電力を抑えることができます。LEAを使用したときと使用しないときの電力パフォーマンスの比較が次の図になります。

Article header library 120973 pic02  1
消費電力の比較

これらのメリットを兼ね備えたLEAだからこそ、冒頭でご紹介した課題を解決することができます。

FFT演算の課題とLEAについてさらに詳しく知りたい方は、TI社のこちらの資料をご覧ください。
エネルギー消費を最小限に抑えながらマイコンのパフォーマンスに新たな標準を確立

LEAでアプリケーションを動かしてみよう

TI社ではLEAを評価できるリファレンス・デザインとキットが用意されています。キットは有償で購入手続きが必要ですが、リファレンス・デザインはユーザーズマニュアルやサンプルソース、回路図やBOMリストなど無償提供されています。

<リファレンス・デザイン>
こちらのページにアクセスすると、ユーザーズマニュアル、サンプルソフトウェア、BOMリスト等が入手できます。本記事では、こちらのマニュアルとサンプルソフトの手順に沿って、動かしていきます。
MSP430 FRAM を使用したフィルター処理および信号処理リファレンス・デザイン

用意するもの

1. MSP430FR5994 評価ボード LaunchPad(MSP-EXP430FR5994)
低消費電力なMSP430FRAMマイコン評価用のボード。オンボードエミュレータ搭載で開発環境さえ用意すれば、すぐに評価ができる製品です。
MSP430FR5994は256KBのFRAMと8KBのSRAMを搭載。さらに、LEAの他、ADC、Timer、AES暗号化、シリアル通信などの各種ペリフェラルを備えています。

2. オーディオ・ブースターパック・モジュール(BOOSTXL-AUDIO)
オンボードのスピーカー・マイクを搭載したモジュール。音声信号処理とフィルタリング処理の実験に使用できます。MSP430評価ボードとはSPI通信で接続します。

3. Sharp® メモリ LCD ブースタパック(430BOOST-SHARP96)
96x96ピクセルのLCDモジュールです。この製品を使ってMSP430評価ボードとSPI通信で接続します。また、LEAリファレンス・デザインでは、FFT波形、モード表示に使用されます。

Article header library 120973 pic03  1
左:MSP-EXP430FR5994 / 中央:BOOSTXL-AUDIO / 右:430BOOST-SHARP96

4. Code Composer Studio(CCS)
CCSとはTI製の統合開発環境で無償にて提供されています。LEA評価用ソフトウェアをMSP430に書き込むために使用します。

Article header library 120973 pic04  1
Code Composer Studio

LEA デモキットを動かしてみよう

ボードの準備が整ったら、実際に動かしてみましょう。
ユーザーズマニュアルを簡単にまとめた手順が次の通りです。

[手順1] 評価ボードを組み立てよう

まずはLEAデモに欠かせない3つの評価ボードを、下記のようにボード上のピンヘッダに合わせて組み立てます。

Article header library 120973 pic05  1
3つのボードを組みたてた図

[手順2] ソフトウェアを書き込もう

TI社から提供されているLEA動作用のサンプルソフトをMSP430に書き込みます。

1.リファレンス・デザインのページよりソフトウェア一式のZIPファイルをダウンロードします。(あらかじめZIPファイルを解凍しておきます)

Article header library 120973 pic06  1
DLするファイルの名称

2. CCSを立ち上げます。(ワークスペースは任意のフォルダを指定します)

3. メニューバーの「Project」 → 「Import CCS Projects」をクリックします。

4. プロジェクトをインポートする画面が出たら、先ほどダウンロード、解凍したフォルダを「Browse」で指定します。(以下、Import画面の例を示します。)

Article header library 120973 pic07  1
Import画面の例

5. MSP-EXP430FR5994とPCをUSBケーブルで接続します。

Article header library 120973 pic08  1
PCと接続した図

6. プロジェクトを選択します。(選択するとプロジェクト名に「Active – Debug」が表示されます)

7. Buildボタン(トンカチアイコン)をクリックします。(エラーが出ず、「Build Finished」でビルド成功です)

8. Debugボタン(虫アイコン)をクリックします。これにより、マイコンへソフトを書き込み、CCSはデバッグモードに切り替わります。

Article header library 120973 pic09  1
CCS上の画面

9. Debug画面でResumeボタン(三角アイコン)をクリックすると、プログラムが実行されます。

10. Terminateボタン(赤四角ボタン)をクリックすると、Debug画面からEdit画面に切り替わります。

Article header library 120973 pic10  1
CCS上のデバッグ画面

[手順3] 動作テスト

書き込みが完了したMSP430でいよいよLEAデモをテストしてみます。

[手順2] でTerminateボタンを押した後、一度USBケーブルをPCから外し、再接続します。

すると、書き込んだプログラムが動き、LCDが表示されます。
MSP-EXP430FR5994のS1ボタン(左側)とS2ボタン(右側)でそれぞれ演算、フィルタ処理の切り替えとフィルタ設定の変更を行うことができます。

Article header library 120973 pic11  1
MSP-EXP430FR5994のボタン位置

また、今回はLEAに決まった周波数の音を入力するため、iPhoneでフリーのファンクションジェネレータアプリを使用します。
早速、LEAデモ機に音声信号を入力してみます。

Article header library 120973 pic12  1
動作テストの結果

すると、入力信号の周波数に応じて、LCD上にスペクトル分布が表示されました。(サンプルコードでは300~3000Hzの周波数帯でLCD上に表示するよう設定されています。)

リファレンス・デザインでは、LEAを使用したFFT演算とLEAを使用しない(CPUで行う)FFT演算が用意されています。この2つを実際に電力測定することで、LEAの電力効率がCPUよりもすぐれていることを確認することができます。

最後に

今回はTI社提供のリファレンス・デザインを利用したLEAデモをご紹介しました。

更にLEAの電力効率について知りたい方は、TI社のサイトにてTI社のLEAを搭載したマイコンと、他社CPUの電力効率を検証したレポートが公開されておりますので、ご興味がありましたら是非こちらもご覧ください。


お問い合わせはこちら

本記事でご紹介した各種マイコンや、LEAについて詳細な情報をお求めの方は、是非こちらからお問い合わせください。

関連情報

おすすめ記事/資料はこちら

マイコンの選び方
おすすめマイコンボード6選!超初心者向けからARM ®搭載製品もご紹介
水滴が付いてもタッチ検出可能!2つの静電容量方式とは

商品の購入はこちら

MSP-EXP430FR5994
BOOSTXL-AUDIO
430BOOST-SHARP96

メーカーサイト/その他関連リンク

MSP マイコン概要
MSP430 超低消費電力マイコン アプリケーション
MSP430FR5994 評価ボード LaunchPad
オーディオ・ブースターパック・モジュール
Sharp® メモリ LCD ブースタパック