本格ディジタル信号処理マシン

連 載
ダウンロード・データあります
84MHz 動作 Cortex-M4 マイコンで DSP 並みフィルタ& FFT
激安! 1500円mbed Nucleoで作る
本格ディジタル信号処理マシン
第
6回
声の特徴まる見え! ボイス・スペアナづくり
①音声を入力.今回
の実験では/ア/
音源
バッファ・
アンプ回路
いろいろな周波数の
正弦波やオーディオ
信号を入力
アンチエイ
リアシング
A-DコンバータはMCU
に内蔵のものを使用
USBケーブル
Nucleo F401RE
アナログ信号
LPF回路
ライン
出力
より
インターネット
(mbed.orgへ)
パソコン
音源により
切り替える
マイク・
アンプ回路
マイク
より
三上 直樹
A0
デバッガ
ST-LINK/
SWD V2-1機能
STM32F
401RET6
②Nucleo F401REで
リアルタイムFFTの
計算を行う
5V
レギュレータ
XC6202P332
③FFTの結果をグラフ表示.
今回は簡易的にExcelを使用
本稿で紹介したプログラムは
mbedのWebサイトで公開中.
http://developer.mbed.
org/users/CQpub0Mikami/
デバック用アイコン
3.3V マイク・アンプ,バッファ・
アンプ,D-Aコンバータ,
LPF へ
図 1 さすが Cortex-M4! リアルタイム FFT 処理で音声用スペクトラム・アナライザを作る
音声やオーディオの信号処理でフーリエ変換はよく
使われます.フーリエ変換を使えば,ある信号に含ま
れている周波数成分がわかります.どのような周波数
の sin 波や con 波がどれだけの振幅で含まれているか
を,計算で求めることができるため,音声の特徴を把
握するためによく使われます.
本 連 載 で 紹 介 し て い る Nucleo F401RE に は,
84MHz 動 作 で FPU も 使 え る Cortex-M4 マ イ コ ン
STM32F401RET6 が搭載されているので,計算量が
多めの FFT(高速フーリエ変換)処理も十分リアルタ
イムで行えます.
今回は,mbed で動く FFT 処理プログラムを作り
ました.声の特徴を自分で確認できるようになるた
め,音声信号の理解が非常にしやすくなります.今回
グラフ表示には簡易的に Excel を使いましたが,リア
ルタイム表示するようにできれば,さらに便利になる
と思います.
● こんな実験
今回の実験で使うハードウェアの構成を図 1 に示し
ます.ソフトウェアとしては FFT のプログラムと,
これを応用したスペクトル解析プログラムを作ってお
きます.
実験は以下の手順で行います.
(1)マイクから音声 / ア / を入力
2015 年 4 月号
(2)Nucleo F401RE 上の Cortex-M4 マイコン STM32
F401RET6 で FFT を計算
(3)パソコンのターミナルで計算結果を表示
(4)
(3)を Excel に貼り付けてグラフ化
FFT の考え方
● 基本…信号を離散化して公式通りに計算する
フーリエ変換をコンピュータで計算する場合,離散
値で計算します.
信号を標本化したものを x[n]とし,N 個の x[n]か
ら求められる DFT を X[k]とすると,X[k]は次の式
で計算します.
N−1
− j2 π kn
Y,
X[k]= x[n]exp T
N
n=0
/
k= 0,1,2,…, N− 1
�������(1)
この式をそのまま計算するとデータ数の 2 乗に比例
した演算量になり,計算量が膨大になります.そこ
で,普通のパソコンやマイコンでは FFT アルゴリズ
ムを使って計算します.
● データ数が 2M なら計算量を減らせる
FFT アルゴリズムはいろいろありますが,ここで
は 2 を基底とする周波数間引きのアルゴリズムを使い
ます.このアルゴリズムは,扱えるデータ数が 2M(M:
第 1 回 メイン回路の構成(2014 年 10 月号)
第 2 回 D-A コンバータ / フィルタ / マイク・アンプ…音声信号処理実験の準備(2014 年 11 月号)
第 3 回 音声入力に定番 FIR フィルタをかける(2014 年 12 月号)
143