• 検索結果がありません。

DSP DSPによる実時間信号処理に関する検討

N/A
N/A
Protected

Academic year: 2021

シェア "DSP DSPによる実時間信号処理に関する検討"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

DSPによる実時間信号処理に関する検討

      岸本芳典1 坂井良広2

A study on the real−time programing of a, DSP  Yoshinori Kisihimotoi Yoshihiro Sakai2

 We analyze the programing envi}onment for a DSP(TI TMS320C542), picked up some important point for the programing, and then developed typical module programs for the real−time programing of an DSP. The module prograi[ns been developed are, t・he throughout program which will be the base of any DSP appli cation, the digital filter program including both FIR and IIR, and the FFT program bing used most flequently for frequency analysis application, We evaluate the performance of these programs, and confirm t・he function expected.

 Key words: DSP, real−time programing, digital filter, FFT

1 はじめに

1.1 研究の背景

 現代の高度情報化社会を支える重要な技術に「デ ジタル信号処理」がある.その技術は例えば携帯電 話,映像音声機器やパソコン等の身近な民生機器か ら通信や計装などの産業用機器,環境技術まで広範 に応用されている.

  「デジタル信号処理」では膨大な量の計算を高 速に行なう事を要求されるが,それは従来の汎用 MPU3では実現不可能な処理であった.しかしその 要求に応えるため,デジタル信号処理に特化した アーキテクチャを持つDSP4が開発された.

 DSPの登場により「デジタル信号処理」でもア ナログ回路に迫る実時間での高速な処理が可能と なった.デジタル信号処理は,以前のアナログ回路 による処理に比べてより高度で複雑な処理を行なう ことができ,伝送・蓄積・処理の連携が可能である こと,仕様・要求の変更などに対して柔軟に対応で きること,装置の小型化などが可能であること,素 子のばらつきや経年変化が無いこと,そしてデジタ ル処理技術は比較的容易に習得できることなどの利 点がある.

 DSPによる信号処理の形態は図1に示すようにな り,信号処理の機能を決定付けるのはすなわちDSP が実行するプmグラムである,目的とする機能を正 確に効率良く実現するためには,DSPのアーキテク チャや信号処理理論に関する知識およびこれらに立

原稿受付 平成12年8月31日

1情報工学科卒業生(豊橋技術科学大学在学中)

2情報工学科

3Micro Processing Unit(小型演算処理装置}

4Degital S ig nal Proc;esg. or(デジタル信号処理装置1

脚するプログラミングノウハウが必要である.本研 究では,これらノウハウの獲得およびDSP上で実 時間信号処理を行なう応用プログラムの作成を用 意にするための基本的な構成要素となるプログラ ムの開発を目的として検討を行なった.信号入出力 の基本となるスルーアウトプログラムをベースとし て,バッファを用いたディレイ処理や積和演算を行 なうデジタルフィルタ処理,さらにFFT処理を用 いてリアルタイムなスペクトラムデータの出力も行

なった.

入力 ア馴

    戸一夕 A/D変換器

DSP デ脚データ @出力

D/A変換器

プログラム

各種フィルタなど

図1=DSPによる信号処理

2 研究の概要

2.1 DSPシステムの概要

 本研究ではTexas Inst.ruments社のDSP評価用 キットである「DSP Starter Kit Plus(以下DSPキッ ト)」を用いて,音声信号に関する実時間信号処理 プログラムの作成および検討を行なうこととした.

Texas Instruments社はDSPメーカとしては世界 トップのシェア(45%)を持ち,その製品は通信,情 報処理,制御等に広く用いられている.また技術サ ポートの充実,多数のDSPボード供給メーカの存在

(2)

津山高専紀要第42号 (2000)

等によりプログラム開発環境が整っている上,教育 機関向けのサポートにより低コストでDSPプログ

ラミングの研究開発を行なうことができる.これら の点から本研究ではTexas hstruments社のDSP を選択した.DSPキットはPC上で動作するクロ スアセンブラおよびデバッガ,いくつかのサンプル プログラム,TI社のDSPであるTMS320C542を 搭載した評価用ボード(以下DSPボード)からなっ

ている.

 これを用いたDSPプログラム開発の全体象を図2 に示す.プログラムの作成およびアセンブル,DSP ボードへの転送などはすべてホストPC上にて行な うことが可能である.アセンブリ言語には代数表記 の物が使われている.

 エディタにて作成したソースプログラムはキット に付属のクロスアセンブラによってアセンブルされ る.アセンブル済みのオブジェクトファイルは,デ バッガもしくはローダによってDSPボード上に転

送可能である。

 デバッガはボードとホストPCとの問のデータ通 信や,ブレークポイントの設定およびレジスタやメ モリの内容のウオッチ,グラフ化などのデバッグ機 能を備えている.

AICとDSPとの問でのデータのやり取りはそれぞ れがもつシリアルポートを介して行なわれ,DSP 側ではシリアルポート割り込みを使用してサンプ リングデータを処理することができる.DSP側の シリアルポートは4CLKOUT 6サイクルごとに1 ビットの転送が行なわれるため,最大で10Mbpsの 速度を出すことが出来る.

 ホストとの通信を行なうパラレルポートはDSP が持つHPI7機能を利用し,デバッグ動作やデータ通 信を行なう.HPIを使用する事によりホストPCか

らDSPに対して外部割込みを発生させたり,DSP 側からホストPCに対してポーリングを行なうこ

とができるため,実行中のプログラムの強制停止や ブレークポイントからの復帰などを行なうことがで

きる.

 また,ホストPCからDSP内部のRAMに対し ての読み書きをサポートし,内部RAMの共有モー ド時には5CLKOUTサイクルごとに1バイトの 転送が行なわれるので最大で64Mbps,ホスト占 有モード時にはDSPのクロック周波数によらず50 nsにつき1バイトの転送が可能であるため,最大 で160Mbpsの速度を出すことができる.

Algorhythm

 Ed 騨

rbu F聰」¢

Cro鰯

@A蔑鷺mb馳r Obド Fll¢

図2:システムの全体図

一一一 Snput

開■.●o頃P回

3 基本的入出力処理

 これは言わばスルー処理ということになるが,D−

spボードにおける信号処理の基礎となる重要な処 理である.実際に信号処理を行なう場合には,ス ルーになっている部分を変更して何らかの処理を加 えれば良い.これを前提とするプUグラムの構:造を 図3に示す.ここでは,音声入出力を行なうAIC の設定方法とデータの送受信方法について述べる.

2.2 DSPボードの概要

 DSPボード上には演算処理を行なうDSP,音声 入出力を行なうAIC,ホストPCとの通信のため

にパラレルポートが搭載されている,

 DSPにはTI社のTMS320C542が使用されてお り,外部クロック10MHzを内部で逓倍し40 MHz で動作する.命令のほとんどは1クロックで実行さ れるため,処理能力は概算で40MlpSとなってい る.また,乗算は固定小数点で行なわれる.

 音声の入出カインターフエースであるAIG5は,

D/AコンバータとA/Dコンバータを内蔵し,それ ぞれ最大で25kHz,43.2 kHzで動作可能である.

 5Audio II1しerrace Circuit、の略

各種初期化

待機状態

t

受信割り込み

11匿

1 ,,t

      ・・ゼ

スルー処理沼

      r...y,.

図3:プログラムの基本構造

 e・外部クロックを逓倍し生成された内部クロックの外部出力 端子

 7H )st, Port, lnterfaeeの略

(3)

DSPによる実時間信号処理に関する検討 岸本・坂井

3.1 シリアルポートの使用方法

 DSPとAICとの間では図4に示すようにシリア ルポートを用いて通信を行なう.そのためAICの 設定方法について述べる前に,まずシリアルポート の使用方法について説明する.

 TMS320C542はシリアルポートを内蔵しており,

ペリフェラルレジスタ8に対してデータの入出力を 行なうことによって通信を行なうことができる.

 シリアルポート部はダブルバッファ構造になって おり,ペリフェラルレジスタTDXR, TRCVと送 受信シフトレジスタTXSR, TRSRにより構成さ

れている.

 受信はTRSRへのシリアルデータの格納および,

TRCVへのデータ転送により実現される. TRSR からTRCVへのデータ転送時にシリアルポート受 信割り込みが発生し,DSPに対してデータが受信

されたことを知らせる.

 送信はTDXRからTXSRへのデータ転送およ び,TXSRからのシリアルデータの送信により実 現される.TDXRからTXSRへのデータ転送時に シリアルポート送信割り込みが発生し,DSPに対 してデータが送信されたことを知らせる.

 シリアルポート送信および受信割り込みが発生す ると,IFR 9の該当ビットが!となる.この割り 込みはIMR 1。およびINTM 11の2段階のマスク を経て,マスクされなかった場合には割り込みテー ブルの該当位置の命令を実行する、ここには通常,

ISR 12に対するジャンプ命令が置かれる.つまり,

割り込みテーブルに送信や受信ルーチンへのジャン プ命令を書いておき,割り込みマスクを解除して通 信を開始する事により,シリアルポートを使用する 事が出来る、

3.2 AICの設定方法

 AICは14ビットのA/DおよびD/Aコンバー

タである.その入力および出力は同期しており,同 じ周波数で動作する.AICに対する各種の設定は,

AICに対して送信する16ビットのD/A出力デー タのLSB側2ビットを利用する.通常,ここには

「00」をセットするが「11」をセットすることによ り,セカンダリフレームを送信することができる.

セカンダリフレームはRead/Writeフラグやレジス タアドレス,レジスタデータからなる16ビットの データで,これに適当な値を設定することにより AICの内部レジスタの設定が行なえる.この様子

を図5に示す,

Primary Setial Communication Data Fortnat 14bit DAC Conversion Result Control Bits

皇6      L5      1A      l1       2       且       o

        (C。ntr。l Bi【罵!1,S醐dary Setial C。㎜ni幽㎎畑)

Secondary Serial Communication Data Format 1 1 R/W Register Address

     s

Register Data

16 1.S 14 13

図5:プライマリおよびセカンダリフレーム

3.3 スルー処理の構成

 まず,初期化ルーチンでは,AICやシリアルポー トの初期化などを行なう,メインルーチンは無限 ループとし,シリアルポート受信割り込みを待ち つづける.シリアルポート受信割り込みルーチンで は,ペリフェラルレジスタTRCVからアキューム レータに値を取りだし,それをそのままTDXRに

渡している.

這信.7一・タ

受信.アータ

↓一門□∫■

図4:シリアルポート部とAIC

8Peripheriil Reglster(周辺装置レジスタ)

91ntelTupt Flag Register(割り込みフラグレジスタ)

101nt.enul)t Mask Register(割り込みマスクレジスタ)

1ユInterrul)しMask(割り込みマスク)

ユ21nterrul)t Service Routine(割り込みサービスルーチン)

4 Digital Filter処理

 デジタルフィルタは,乗算素子,加算素子,遅延 素子の3つの素子より構成され,離散入力信号に対 する代数演算を行なうことにより希望する周波数特 性や位相特性をもつ出力信号を得るものである.こ れはDSP上ではサンプリングされた信号系列に対 する積和演算として表現される.ここでは,FIR 13 形フィルタとIIR 14形フィルタをツールを用いて 設計し,DSP上で実際に動作させてその特性を測

定する.

ユ3Fiitite hnpulse ReSl)onse(有限長インパルス応答)

141nfinite Impulse Response(無限長インパルス応答)

(4)

津山高専紀要第42号 (2000)

4.1 FIR形フィルタとIIR形フィルタ

 デジタルフィルタの伝達関数h(71)をz変換した H(z)はゴ1の多項式または有理関数となる.イン パルス入力δ(n)に対して,伝達関数が■一1の多項 式である場合にはその応答は有限長で終了する.こ の時,このデジタルフィルタをFIR形フィルタと いう.一方,伝達関数がz−1の有理関数となるとき には,その応答は無限に続く.この時,このデジタ ルフィルタをIIR形フィルタという.

 インパルス応答が有限で終了する場合には,デジ タルフィルタは有限個の素子で構成することができ るが,応答が無限に続く場合には無限個の素子を用 いるか,有限個の素子を再帰形に接続して構成しな ければならない.

z−i

z t

F=R形ブイルタ

y   x

z z1

τL

z

IIR形フィルタ

図6:FIR形フィルタとIIR形フィルタ

4.2 FIR形フィルタの構成

y

 FIR形フィルタはフィルタ係数h(n)とサンプリ ングデータの畳み込みにより実現することができる.

これはDSPの三和遅延命令を用いて同和と同時に バッファのシフト処理も行なうことにより,高速に 実行することができる.今回は次数80次のローバ

匠10

積和遅延命令により1クロックで実行可能

.20

一st

一to

一10

III︐ll一口lllI峯lII↓III

r︻  監﹂.L﹇ E脚    −圏. ﹂﹂﹂− 一 ﹂

e s[m 1coe lsco 20eo 2soo 30co asoo 一coo

図8:FIR形フィルタの設計特性

の減衰量一40dbのローパスフィルタとしてツ・・一一ルで 設計し,分母・分子多項式の係数が7次のフィルタ

を得た。

o

一w

一〇〇

・田

。 mo looo tsoo nm 2spm eoco ssoe 4coo

1 i i

1 .4

1}

ツ十一一・一 1 i

堰A

 き.』ぎ』』@1

1

1・︷︻ i 1・i・・︐

}i一 P1

P

i・i トヨ Il

1 1

  ヒ  i1…む一一…

丁 …一『.汁幽

寸 E・⁝十・ 1

  胃

@  i}『1−丁…一 .翼

  1  1一・・一・・⁝一  1

1

1

i ﹁

 1..4・一・・

i i r 1

図9:IIR形フィルタの設計特性

4.4 フィルタ特性の測定結果

図7:積和遅延命令

スフィルタとし,遮断周波数2〜2.lkHz,遮断領 域の減衰量は一30dbとしてツールで設計した.

4.3 11R形フィルタの構成

 IIR形フィルタは再帰構造を含んでおりその実現 方法は一通りではない.しかし,フィードフォワー ドの部分とフィードバックの部分の畳み込みをそれ ぞれ計算する事により,DSP上で実行することが できるゼ今回は遮断周波数2〜2.1kHz,遮断領域

 フィルタ特性の測定結果を図10および図11に

示す.

 DSPボードに白色雑音を入力しフィルタ処理を 施した出力をパソコンに取り込み,FFT処理した

、後それを平均化したものである.FIR形フィルタ、

IIR形フィルタともにツールでの設計どおりの特性 を確認することができた.IIR形はFIR形よりも フィルタ係数の次数が少なくてすむと言う利点があ るが,DSPによる処理においては多少フィルタ係 数が多くなってもあまり問題にならず,一画純なFIR 形フィルタの方が実装の容易さにおいては優れて いると言える.しかし,位相補佐や逆フィルタなど はIIR形フィルタでしか実現できないため, IIR形 フィルタもまた重要でありその精度を向上させるこ とが必要である.

(5)

DSPによる実時間信号処理に関する検討  岸本・坂井

100CO 一一

10co F

︐  I I  I

lkHt 2kk 9kトを

図10:FIR形フィルタの実測特性

4kト11

分の折り返しであり冗長であるので計算を省略し,

代わりに同期用のパルス信号を入れオシロスコー プの同期をとるようにした.FFTの結果得られた スペクトラムデータは出力バッファに置かれ、受信 割り込みルーチンでのデータ入力と同時に出力す

る.この音声信号のバッファリングとそのデータに 対するFFTを繰り返して行なう事により,連続し たFFT処理を行なえるようになっている.

leeoo p一

leco  一

抑口

1?kts

図11:IIR形フィルタの実測特性

5 Fast Fourier Transform処   理

 高速フーリエ変換とはDFT 15演算を変形し冗長 部分を省いて処理を高速化したものである.DFT 処理では演算量はN2に比例していたが, FFT処 理では1V log2 Nに比例するため演算量を著しく削 減することができる.そのため信号処理を周波数領 域で実用的に行なうことができる.

5.1 FFT処理の構成

 DSPキットには実数FFT処理ルーチンのプログ ラムが付属していたので,ここではそれを使用した パワースペクトラム出力プログラムを作成した.こ れを図12に示す.

 まず一定量の音声信号のサンプリングを行ないメ モリ中にその波形を記憶する.次にキットに付属の 実数FFT変換のルーチンを呼び出し,時間領域か ら周波数領域に変換する。周波数データは複素数と なるので実部と虚部をそれぞれ2乗して加え合わせ ることにより,最終的なパワースペクトラムデータ を得ることができる.

 この時,パワースペクトラムの後半部分は前半部

15Discrete Fourier Transform(離散フーリエ変換)

     FFT処理一…1        1一,

バッファリング   入力バッファ スペクトラム出カ…叡・一・出カバンファ1

図12:FFT処理の構成

5.2 打ち切りによる影響と窓関数の適用

 FFT処理では入力信号よりサンプリングされた ある一定区間のデータを,図14に示すように無限 に続く周期関数であるとみなしてフーリエ変換を行 なう.しかし実際には,サンプリングデータの始端 と終端は連続ではなく,その不連続部分の影響によ り実際には存在しない周波数成分が発生し,変換結 果の精度が悪化する.そこで,図15のような窓関 数を入力信号に乗じて始端と終端を滑らかに0とす ることにより,不連続部分が生じないようにするこ とができる。

 窓関数ω(n)を入力信号 x(n)に乗じそれをフー リエ変換すると言うことは,周波数領域ではW(ω)

とX(ω)を畳み込むことに相当する.従って窓関数 を乗じることによって元波形が歪むことによる影響 は,窓関数を周波数領域に変換することにより判断 することができる.

5.3 出力データの加工

 FFT処理されて得られたスペクトラムデータを 視覚上の観点からエンベロープの概形(包絡線)が 分かるように加工した。

 前回の出力値を幾分減じたものと今回の出力値を 比較して,今回の出力値の方が低い場合には前回の 出力値を下げた物を表示するようにした.

5.4 FFTの処理結果

 FFTの処理結果は図17,図18に示す通りである。

 これはDSP上のメモリから変換結果を読み出し てグラフ化したものである.図17は3kHzの正弦

(6)

津山高専紀要第42号 (2000)

図13:原波形  l   i

 l .I

 i .{u

20eco 10000 F・ 宇ーー

TTT  l l

  Il

斗.+ + 4.

II噛−1一

膠團﹁︸

lI

誌』._...

       ﹁

       ︸       噌       一

       一−⁝一1−﹂−⁝⁝

  

@ 

@ 

@ 

@ 

@ 

@一

       早1⁝一I−1一峠一

       一

CtFlt  2.SkFlt  5kHz  ア5k逝  1瓜Hz 12.StHt 2−k

1

図17:FFT処理の結果 図14:周期波形(原波形のまま)

図15:窓関数

2000じ 100eo

10)

1蹴25k地

i 、 l i

T⁝  T i一丁㎜r!       1       膠       ll   l   [   1

 1 [      1      }      1

v       l       l       

戟@  i   i   l

」       曇      i

p  ;  l  l

i  !  l  l

L   正       L

 i

@i ⁝ i i.一...︳二.

目論1   }       }1       「      li l    li } l i一ヰー一…↓一トー一一

i1﹁ 一 一』P一 ;l i i レi   「   1

}   il       F

5kHz  7.Skトセ  10cHt 12駄トti 2駄}明

哲18:陽関数の効果

 一 .

図16:周期波形(窓関数を適用)

波入力に対するFFTの処理結果である.3kHzの 成分以外にも打ち切りによって生じた成分が多く含

まれている.一方,図18はFFT処理の前に窓関数 を施したものである.変換結果は正弦波の周波数成 分のみとなっており窓関数の効果が確かめられた.

6 まとめ

 今回の研究では,DSPについての基礎的な事柄 について調べ,簡単なバッファリング処理などの作 成を通してDSPのプログラミング技法を確認し,

デジタルフィルタやFFTなどにより実際め音声信 号のリアルタイム処理を行ない,その結果を検討

した.

 まずスルーアウト処理を作成することによって DSPボードの音声入出力を確立した.

 次にデジタルフィルタ処理では音声信号処理ツー ルによりフィルタ係数を設計し,FIR形およびIIR 形ブイルタを実際に動作させ,設計どおりの特性と なっていることを確認した.

 更にFFT処理ではキット付属のFFTルーチン にサンプリング関連の処理などを加え,繰り返し FFT処理を行なうようにし,その動作を確認した.

また入力データに窓関数を適用し変換結果の改善を 行なった.

 本研究で開発したプログラムの内容は各種の実時 間信号処理の応用に頻繁に用いられる要素技術であ る.またターゲットとしているDSPは,この分野 で最も多く使われている品種のひとつである.した がってこれらをライブラリとして整備しておくこと により,実時間信号処理応用技術の開発が短時間か つ容易になり,これらに関する研究や教育に役立つ

ことが期待できる.

 今後の課題としては,有限語長による演算誤差を 考慮した、IIR形フィルタの特性改善や,ピッチ変換 などめ処理を行なうために逆FFTルーチンを作成 すること,エコーキャンセラなどの動的な特性改善 を行なうフィルタの作成などが挙げられる.

参考文献

[1]日本テキサス・インスッルメンツ株式会社:CPU  及びペリフェラル

 TMS320C54xリファレンろセットVoL1(1997)

参照

関連したドキュメント

あれば、その逸脱に対しては N400 が惹起され、 ELAN や P600 は惹起しないと 考えられる。もし、シカの認可処理に統語的処理と意味的処理の両方が関わっ

[No.20 優良処理業者が市場で正当 に評価され、優位に立つことができる環 境の醸成].

○齋藤第一部会長 もう一度確認なのですが、現存の施設は 1 時間当たり 60t の処理能力と いう理解でよろしいですよね。. 〇事業者

Should Buyer purchase or use ON Semiconductor products for any such unintended or unauthorized application, Buyer shall indemnify and hold ON Semiconductor and its officers,

「練馬区廃棄物の処理および清掃に関する条例」 (平成 11 年練馬区条例第 56

震災発生時のがれき処理に関

の会計処理に関する当面の取扱い 第1四半期連結会計期間より,「連結 財務諸表作成における在外子会社の会計

の会計処理に関する当面の取扱い 第1四半期連結会計期間より,「連結 財務諸表作成における在外子会社の会計