next up previous
Next: 2. C3x による ODE Up: DSPによる非線形系の信号処理 Previous: DSPによる非線形系の信号処理

1. C6211DSK による ODE solver

IT技術,マルチメディアの発展に伴い,携帯電話や計測機器, 画像処理装置においては,リアルタイム信号処理に適したDSP (Digital Signal Prosessor)が盛んに用いられている. DSPは通常のマイクロプロセッサに較べて,累積加算が高速に 行える特徴をもつ.DSPによる信号発生は,IIR フィルタ, 正弦関数の近似やそれらの合成によって行われ, ファンクションジェネレータなどへの応用が行われている. 一方,常微分方程式で記述される非線形システムは, 電気回路などで実現できる例は少なく,任意のシステムの 信号を物理量として取り出すことは重要である. 本稿では, 任意の微分方程式の解を,DSP内部で数値積分法によって求積し, アナログ信号として出力させる手法について述べる.

DSP実験ボードとして, Texas Instrument社の 16 bit 固定小数点 プロセッサを搭載した TMS320C6211DSK,ソフトウェア開発環境と して,Code Composer Studio を用いた. この環境では,プログラム開発はほとんど全てC 言語を用いて 行うことができる.

常微分方程式の解をアナログ信号出力として得る方法として, デジタルコンピュータの計算結果をD/A変換器に送る方法がある. しかし,デジタルコンピュータでは一般に累積加算演算に 時間がかかり,リアルタイム処理は難しい.そこで本研究では, 数値積分アルゴリズムをDSPに実装し,DSP単独による 信号発生を実現する. アナログ出力はDSPモジュールに付属している TLC320AD535 (標本化周波数 8KHz) を用いる.

実験は,2階自律系の van der Pol 方程式を用いる.

\begin{displaymath}
\ddot{x} - \epsilon (1 - x^2) \dot{x} + x = 0
\end{displaymath} (1)

ここで, $\epsilon = 1.25$ とした. DSPは固定小数点形式であるため,時刻および変数のスケーリングを 行わねばならない. 積の計算においては,一時的に 状態変数の倍のダイナミックレンジの必要となる. このダイナミックレンジを確保するため,小数以下の桁を 少なくする必要があり,よって精度が失われる. 非線形系の計算では,ひとたびオーバーフローを起こすと まったく元の系の性質が失われ,別の波形が得られてしまうことに 注意が必要である. 本質的な解決には,浮動小数点形式のDSPを用いる必要があろう. 数値積分には 4次のRunge-Kutta法を用いた. DSPにロードされる実行プログラムのサイズは 11 KByte となった.

式(1)は正規化方程式であり, 時刻のスケーリングで基本周波数を任意に決定できる. 具体的には,正規系方程式は,Runge-Kutta法のステップを 1/64 として解を計算し,$N$ ステップおきに D/A 変換器に 状態値を送り,D/A変換器後段のアナログフィルタによって 滑らかな信号を得る.なお,標本化周期内で$N$ステップの 計算は完了しなければならない. 図1 に波形を示す.式(1)の 非線形項の係数 $\epsilon$が比較的大きい値であるため, 緩張振動的な発振が出力されている. $N = 20$ とおいたため,基本周波数は約 600 Hz に なっている.音響として聴くこともできる. 図2 に解の周波数スペクトルを示す.

Figure 1: 式(1)の解.横軸 500$\mu $s/dec, 縦軸 20 mV/dec.
\includegraphics [scale=1.0]{p.ps}

Figure 2: 図(1)に対応する周波数スペクトル. 縦軸 10 dB/dec, 横軸 1 KHz/dec.
\includegraphics {f.ps}

数値解法がアルゴリズムとして与えられるため,方程式を 変更するのみで,各数理モデルの状態を,電圧という物理量をもつ 信号として出力できる.高階の方程式では,カオス信号をも発生できる. また,外部入力を受け取り,インタラクティブに信号発生メカニズムを 変更できる柔軟性があり,応用が期待できる. 今後は,高階微分方程式の計算,A-D変換器の高速化にともなう 高周波発振出力の獲得, カオスを生じる電気回路におけるカオス制御について実験を行う.



Tetsushi Ueta
March 18 2006