JP2630778B2 - 低周波帯域デジタルフィルタの構成方法 - Google Patents
低周波帯域デジタルフィルタの構成方法Info
- Publication number
- JP2630778B2 JP2630778B2 JP62179301A JP17930187A JP2630778B2 JP 2630778 B2 JP2630778 B2 JP 2630778B2 JP 62179301 A JP62179301 A JP 62179301A JP 17930187 A JP17930187 A JP 17930187A JP 2630778 B2 JP2630778 B2 JP 2630778B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- constant
- address
- stored
- acc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Filters That Use Time-Delay Elements (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 (イ)産業上の利用分野 本発明は、時系列で入力されるデータを所定のアルゴ
リズムに基いて処理し、時系列データとして出力するデ
ジタル信号処理装置に於いて、低周波帯域デジタルフィ
ルタを構成するための方法に関する。
リズムに基いて処理し、時系列データとして出力するデ
ジタル信号処理装置に於いて、低周波帯域デジタルフィ
ルタを構成するための方法に関する。
(ロ)従来の技術 一般に、音声や画像等のように我々の周囲に存在する
原子情報源は、アナログ信号であることが多い。このア
ナログ信号をデジタル的な手法によって処理するシステ
ムがデジタル信号処理装置(デジタル・シグナル・プロ
セッシング・システム:DSPシステム)である。
原子情報源は、アナログ信号であることが多い。このア
ナログ信号をデジタル的な手法によって処理するシステ
ムがデジタル信号処理装置(デジタル・シグナル・プロ
セッシング・システム:DSPシステム)である。
近年、デジタル回路のLSI化が急速に進み、ワンチッ
プ上にDSPシステムが容易に実現できるようになり、更
に、アナログ信号処理に比べて高精度処理が可能、パラ
メータの設定により任意の特性が安定して均一に得られ
る、無調整化が可能となる等の特徴を有するため、DSP
システムが急速に実用化されるようになった。また、DS
Pシステムの応用範囲は、音声信号処理、通信信号処
理、計測信号処理、画像信号処理、地震波信号処理、水
中音響信号処理等に広がり利用されている。
プ上にDSPシステムが容易に実現できるようになり、更
に、アナログ信号処理に比べて高精度処理が可能、パラ
メータの設定により任意の特性が安定して均一に得られ
る、無調整化が可能となる等の特徴を有するため、DSP
システムが急速に実用化されるようになった。また、DS
Pシステムの応用範囲は、音声信号処理、通信信号処
理、計測信号処理、画像信号処理、地震波信号処理、水
中音響信号処理等に広がり利用されている。
また、オーディオ分野に於いてもCD(コンパクト・デ
ィスク)プレーヤやDAT(デジタル・オーディオ・テー
プ)プレーヤの如く、オーディオ信号のデジタル処理化
が進むに伴って、オーディオ信号をデジタル処理するDS
Pシステムが実用化されている。
ィスク)プレーヤやDAT(デジタル・オーディオ・テー
プ)プレーヤの如く、オーディオ信号のデジタル処理化
が進むに伴って、オーディオ信号をデジタル処理するDS
Pシステムが実用化されている。
従来のDSPシステムは、デジタルフィルタを容易に形
成できるように第8図に示すアーキテクチャを有してい
る。
成できるように第8図に示すアーキテクチャを有してい
る。
第8図に於いて、データバス(1)には、入出力回路
(I/O)(2)、データRAM(2)、乗算器(3)、演算
回路(ALU)(4)、アキュームレータ(ACC)(5)等
が接続され、データRAM(2)の出力とデータROM(6)
の出力が乗算器(3)に接続され、乗算器(3)の乗算
結果出力がALU(4)の一方の入力に印加されている。
これらの各回路は、プログラムROM(7)から順次読み
出される命令を解読するデコーダ(8)からその命令に
応じて出力されるマイクロコード信号によって制御され
る。
(I/O)(2)、データRAM(2)、乗算器(3)、演算
回路(ALU)(4)、アキュームレータ(ACC)(5)等
が接続され、データRAM(2)の出力とデータROM(6)
の出力が乗算器(3)に接続され、乗算器(3)の乗算
結果出力がALU(4)の一方の入力に印加されている。
これらの各回路は、プログラムROM(7)から順次読み
出される命令を解読するデコーダ(8)からその命令に
応じて出力されるマイクロコード信号によって制御され
る。
デジタルフィルタの実現に於いては Yi=C1・Xi+C2・Xi-1+C3・Xi-2…… という形の積和演算が繰返し表われる。このデジタルフ
ィルタをDSPシステムで実現する場合には、フィルタ内
の節点の計算順序を決定して、プログラムを作成し、そ
のプログラムをプログラムPOM(7)に格納すると共に
データROM(6)内に計算式の定数を格納しておく。そ
して、プログラムを実行することにより、積和演算が為
され、演算結果はデータRAM(2)に順次記憶される。
ィルタをDSPシステムで実現する場合には、フィルタ内
の節点の計算順序を決定して、プログラムを作成し、そ
のプログラムをプログラムPOM(7)に格納すると共に
データROM(6)内に計算式の定数を格納しておく。そ
して、プログラムを実行することにより、積和演算が為
され、演算結果はデータRAM(2)に順次記憶される。
(ハ)発明が解決しようとする問題点 第8図に示されたDSPシステムをオーディオ分野に使
用した場合、グラフィックイコライザ機能、バス・トレ
ブル、ラウドネス、ローブースト機能、サラウンド効果
機能等のオーディオに必要な機能を実現できる。例え
ば、グラフィックイコライザ機能は、中心周波数の異な
るデジタルフィルタを多段縦続接続したものとして実現
でき、各々の段に於いて、Yi=C1・Xi+C2・Xi-1+C3・
Xi-2……の積和演算を行っている。
用した場合、グラフィックイコライザ機能、バス・トレ
ブル、ラウドネス、ローブースト機能、サラウンド効果
機能等のオーディオに必要な機能を実現できる。例え
ば、グラフィックイコライザ機能は、中心周波数の異な
るデジタルフィルタを多段縦続接続したものとして実現
でき、各々の段に於いて、Yi=C1・Xi+C2・Xi-1+C3・
Xi-2……の積和演算を行っている。
しかしながら、中心周波数が200Hz程度の低周波帯域
のデジタルフィルタの場合、積和演算を行う定数の小数
点以下の有効桁が長くなり、限られたビット数、例えば
16ビットで積和演算を行うと演算精度が劣化し、フィル
タ特性が悪化して、低域でのオーディオ信号が歪む等の
欠点があった。
のデジタルフィルタの場合、積和演算を行う定数の小数
点以下の有効桁が長くなり、限られたビット数、例えば
16ビットで積和演算を行うと演算精度が劣化し、フィル
タ特性が悪化して、低域でのオーディオ信号が歪む等の
欠点があった。
また、低周波帯域での演算精度を上げるためには、定
数のビット数及び乗算器のビット数を増す必要があり、
そのため、定数を記憶するメモリや乗算器が大きくな
り、集積回路化する際の障害となる不都合がある。
数のビット数及び乗算器のビット数を増す必要があり、
そのため、定数を記憶するメモリや乗算器が大きくな
り、集積回路化する際の障害となる不都合がある。
(ニ)問題点を解決するための手段 本発明は、上述した点に鑑みて創作されたものであ
り、デジタルフィルタを実現する積和演算Yi=C1・Xi+
C2・Xi-1+C3・Xi-2……の定数C1,C2,C3……を低周波帯
域の場合には、α+β・δ[αは整数、βは少数部分を
各定数に共通の定数δ(δ<<1)で割った値、あるい
は、αは定数に最も近い整数、βは整数αと定数の差を
各定数に共通の定数δ(δ<<1)で割った値]の形に
分割し、入力されたデータに対して各々の定数βの積和
演算を行った後、定数δを乗算し、該乗算結果に各々の
定数αと入力されたデータの積和演算の結果を加減算す
ることにより低周波帯域デジタルフィルタを実現するも
のである。
り、デジタルフィルタを実現する積和演算Yi=C1・Xi+
C2・Xi-1+C3・Xi-2……の定数C1,C2,C3……を低周波帯
域の場合には、α+β・δ[αは整数、βは少数部分を
各定数に共通の定数δ(δ<<1)で割った値、あるい
は、αは定数に最も近い整数、βは整数αと定数の差を
各定数に共通の定数δ(δ<<1)で割った値]の形に
分割し、入力されたデータに対して各々の定数βの積和
演算を行った後、定数δを乗算し、該乗算結果に各々の
定数αと入力されたデータの積和演算の結果を加減算す
ることにより低周波帯域デジタルフィルタを実現するも
のである。
(ホ)作用 上述した方法によれば、各々の定数の少数点以下は、
β・δの如く、有効数字βの1以下の非常に小さい共通
定数δの積として表わされるため、βは限定された少な
いビット数、例えば16ビットで表わされ、データとの積
和演算を精度良く行うことができる。そして、βの積和
演算の結果にδを乗算することで小数点以下の部分の演
算結果が求められる。一方、整数部分αとデータの積和
演算を行って、両方を加算することにより、全体として
の演算結果を得ることができ、低周波帯域での演算を16
ビットのデータ長で十分精度良く行え得る。
β・δの如く、有効数字βの1以下の非常に小さい共通
定数δの積として表わされるため、βは限定された少な
いビット数、例えば16ビットで表わされ、データとの積
和演算を精度良く行うことができる。そして、βの積和
演算の結果にδを乗算することで小数点以下の部分の演
算結果が求められる。一方、整数部分αとデータの積和
演算を行って、両方を加算することにより、全体として
の演算結果を得ることができ、低周波帯域での演算を16
ビットのデータ長で十分精度良く行え得る。
(ヘ)実施例 第1図は、本発明を実施するのに好都合なデジタル信
号処理装置のブロック図であり、一対のデジタル処理回
路(9)(10)と、該デジタル処理回路(9)(10)の
データバス(BUS1)(BUS2)(11)に接続されたデータ
入出力回路(12)と、同様にデータバス(11)に接続さ
れたインターフェイス回路(13)と、これらデジタル処
理回路(9)(10)、データ入出力回路(12)、及び、
インターフェイス回路(13)の動作を制御する制御回路
(14)とから構成されたオーディオ用のDSPシステムで
ある。
号処理装置のブロック図であり、一対のデジタル処理回
路(9)(10)と、該デジタル処理回路(9)(10)の
データバス(BUS1)(BUS2)(11)に接続されたデータ
入出力回路(12)と、同様にデータバス(11)に接続さ
れたインターフェイス回路(13)と、これらデジタル処
理回路(9)(10)、データ入出力回路(12)、及び、
インターフェイス回路(13)の動作を制御する制御回路
(14)とから構成されたオーディオ用のDSPシステムで
ある。
データバス(11)は、各々8ビット×3の24ビット構
成である。データ入出力回路(12)は、入力端子INに外
部から印加された16ビットの左チャンネルと右チャンネ
ルのサンプリングデータ(例えば、CDプレーヤの場合は
サンプリング周波数が44.1KHzのデータ)をシリアルに
入力し、左チャンネルのデータはデータバス(11)のBU
S1に、右チャンネルのデータはデータバス(11)のBUS2
に送出し、更に、データバスBUS1に送出された処理済の
左チャンネルのデータとデータバスBUS2に送出された処
理済の右チャンネルのデータを受け取り、出力端子OUT
から交互にシリアル出力するものである。インターフェ
イス回路(13)は、DSPシステムとマイクロコンピュー
タ(不図示)の間のデータ送受を行うものであり、マイ
クロコンピュータから印加されたデジタルフィルタの定
数等をデータバス(11)に各々送出し、また、データバ
ス(11)に送出されたシステムステイタスデータ等を受
け取りマイクロコンピュータに送出するものである。
成である。データ入出力回路(12)は、入力端子INに外
部から印加された16ビットの左チャンネルと右チャンネ
ルのサンプリングデータ(例えば、CDプレーヤの場合は
サンプリング周波数が44.1KHzのデータ)をシリアルに
入力し、左チャンネルのデータはデータバス(11)のBU
S1に、右チャンネルのデータはデータバス(11)のBUS2
に送出し、更に、データバスBUS1に送出された処理済の
左チャンネルのデータとデータバスBUS2に送出された処
理済の右チャンネルのデータを受け取り、出力端子OUT
から交互にシリアル出力するものである。インターフェ
イス回路(13)は、DSPシステムとマイクロコンピュー
タ(不図示)の間のデータ送受を行うものであり、マイ
クロコンピュータから印加されたデジタルフィルタの定
数等をデータバス(11)に各々送出し、また、データバ
ス(11)に送出されたシステムステイタスデータ等を受
け取りマイクロコンピュータに送出するものである。
データ処理回路(9)は左チャンネルのデータ処理用
で、データ処理回路(10)は右チャンネルのデータ処理
用であり、各々全く同じ構成から成る。即ち、データ処
理回路(9)(10)は、データバス(11)、データRAM
(15)、定数RAM(16)、定数ROM(17)、アドレスポイ
ンタ(18)(19)(20)、乗算器(MUL)(21)、ALU
(22)、アキュームレータ(ACC)(23)、テンポラリ
ーレジスタ(TMP1,TMP2,……)(24)を有している。デ
ータRAM(15)は、データ入出力回路(12)から送出さ
れた処理前のデータ及び演算処理後のデータを記憶する
24ビット×128の容量を持つ第1のRAMであり、データバ
ス(11)及び乗算器(21)の入力に接続される。定数RA
M(16)は、インターフェイス回路(13)から送出され
るデジタルフィルタの係数等の定数を記憶する16ビット
×256の容量を持つ第2のRAMであり、データバス(11)
及び乗算器(21)の他方の入力に接続される。アドレス
ポインタ(18)は、8ビットで構成されデータRAM(1
5)のアドレス指定を行うものであり、制御回路(14)
から出力されるマイクロコードINC1及びDEC1で制御さ
れ、保持しているアドレスデータをインクリメント(+
1)及びデクリメント(−1)する機能を備えると共
に、プログラムによって任意の値が設定できるレジスタ
と、設定された値とアドレスデータを比較する回路を内
蔵し、アドレスデータをインクリメントした結果が設定
値を越えると「0」になり、デクリメントの結果が
「0」未満になると設定値になる機能、即ち、「0」と
設定値の間を循環する機能を有している。この循環アド
レス指定機能を使用してデジタルフィルタの積和演算を
簡単化している。また、アドレスポインタ(19)は、定
数RAM(16)のアドレスを指定する10ビットのポインタ
であり、制御回路(14)から出力されるマイクロコード
INC2で制御され、アドレスデータをインクリメントする
機能と、制御回路(14)から出力されるマイクロコード
CLEAR2によって「0」にクリアされる機能を有してい
る。更に、アドレスポインタ(20)は、定数ROM(17)
のアドレスを指定する8ビットのボインタであり、制御
回路(14)から出力されるマイクロコードDEC3によって
アドレスデータをデクリメントする機能を有している。
で、データ処理回路(10)は右チャンネルのデータ処理
用であり、各々全く同じ構成から成る。即ち、データ処
理回路(9)(10)は、データバス(11)、データRAM
(15)、定数RAM(16)、定数ROM(17)、アドレスポイ
ンタ(18)(19)(20)、乗算器(MUL)(21)、ALU
(22)、アキュームレータ(ACC)(23)、テンポラリ
ーレジスタ(TMP1,TMP2,……)(24)を有している。デ
ータRAM(15)は、データ入出力回路(12)から送出さ
れた処理前のデータ及び演算処理後のデータを記憶する
24ビット×128の容量を持つ第1のRAMであり、データバ
ス(11)及び乗算器(21)の入力に接続される。定数RA
M(16)は、インターフェイス回路(13)から送出され
るデジタルフィルタの係数等の定数を記憶する16ビット
×256の容量を持つ第2のRAMであり、データバス(11)
及び乗算器(21)の他方の入力に接続される。アドレス
ポインタ(18)は、8ビットで構成されデータRAM(1
5)のアドレス指定を行うものであり、制御回路(14)
から出力されるマイクロコードINC1及びDEC1で制御さ
れ、保持しているアドレスデータをインクリメント(+
1)及びデクリメント(−1)する機能を備えると共
に、プログラムによって任意の値が設定できるレジスタ
と、設定された値とアドレスデータを比較する回路を内
蔵し、アドレスデータをインクリメントした結果が設定
値を越えると「0」になり、デクリメントの結果が
「0」未満になると設定値になる機能、即ち、「0」と
設定値の間を循環する機能を有している。この循環アド
レス指定機能を使用してデジタルフィルタの積和演算を
簡単化している。また、アドレスポインタ(19)は、定
数RAM(16)のアドレスを指定する10ビットのポインタ
であり、制御回路(14)から出力されるマイクロコード
INC2で制御され、アドレスデータをインクリメントする
機能と、制御回路(14)から出力されるマイクロコード
CLEAR2によって「0」にクリアされる機能を有してい
る。更に、アドレスポインタ(20)は、定数ROM(17)
のアドレスを指定する8ビットのボインタであり、制御
回路(14)から出力されるマイクロコードDEC3によって
アドレスデータをデクリメントする機能を有している。
乗算器(21)は、24ビット×16ビットの乗算をするも
のであり、A入力は24ビット、B入力は16ビットで、そ
の乗算結果は1サイクル後に確定するものである。更
に、乗算器(21)のA入力とB入力には、入力選択回路
MPXAとMPXBが設けられ、入力選択回路MPXAは、制御回路
(14)からのマイクロコードA−BUSによりデータバス
(11)を選択し、マイクロコードA−DRAMによりデータ
RAM(15)を選択してA入力に印加し、入力選択回路MPX
Bは、マイクロコードB−BUSによりデータバス(11)を
選択し、マイクロコードB−CRAMにより定数RAM(16)
を選択し、マイクロコードB−CROMにより定数ROM(1
7)を選択してB入力に印加する。乗算結果は32ビット
で出力される。
のであり、A入力は24ビット、B入力は16ビットで、そ
の乗算結果は1サイクル後に確定するものである。更
に、乗算器(21)のA入力とB入力には、入力選択回路
MPXAとMPXBが設けられ、入力選択回路MPXAは、制御回路
(14)からのマイクロコードA−BUSによりデータバス
(11)を選択し、マイクロコードA−DRAMによりデータ
RAM(15)を選択してA入力に印加し、入力選択回路MPX
Bは、マイクロコードB−BUSによりデータバス(11)を
選択し、マイクロコードB−CRAMにより定数RAM(16)
を選択し、マイクロコードB−CROMにより定数ROM(1
7)を選択してB入力に印加する。乗算結果は32ビット
で出力される。
ALU(22)は32ビットの演算回路であり、一方に入力
された32ビットの乗算結果と他方に入力された32ビット
のACC(23)のデータをマイクロコードAddによって加算
処理して、その結果をACC(23)に転送する。ACC(23)
の32ビットのうち、上位24ビットはデータバス(11)と
接続され、下位8ビットは補助バス(25)によってテン
ポラリーレジスタ(24)の下位8ビットと接続されてい
る。テンポラリーレジスタ(24)は、32ビットのレジス
タTMP1,TMP2……TMP8で構成され、32ビットのデータを
最大8保持するレジスタであり、各々の上位24ビットは
データバス(11)と接続される。データバス(11)と補
助バス(25)によって、テンポラリーレジスタ(24)と
ACC(23)間で32ビットデータの転送が行われる。
された32ビットの乗算結果と他方に入力された32ビット
のACC(23)のデータをマイクロコードAddによって加算
処理して、その結果をACC(23)に転送する。ACC(23)
の32ビットのうち、上位24ビットはデータバス(11)と
接続され、下位8ビットは補助バス(25)によってテン
ポラリーレジスタ(24)の下位8ビットと接続されてい
る。テンポラリーレジスタ(24)は、32ビットのレジス
タTMP1,TMP2……TMP8で構成され、32ビットのデータを
最大8保持するレジスタであり、各々の上位24ビットは
データバス(11)と接続される。データバス(11)と補
助バス(25)によって、テンポラリーレジスタ(24)と
ACC(23)間で32ビットデータの転送が行われる。
制御回路(14)は、プログラムを記憶するプログラム
ROM(26)と、プログラムROM(26)のアドレスを指定す
るプログラムカウンタ(PC)(27)と、読み出された命
令を解読するインストラクションデコーダ(I−DEC)
(28)とを有する。プログラムROM(26)は、32ビット
×512の容量を有し、デジタルフィルタを実現するため
のプログラム、及び、その他必要なプログラムが格納さ
れる。インストラクションデコーダ(28)は、命令を解
読してマイクロコードを出力するものであり、アドレス
ポインタ(18)(19)(20)を制御するINC1,INC2,DEC
1,CLEAR2,DEC3や、入力選択回路MPXA,MPXBを制御するA
−BUS,A−DRAM,B−BUS,B−CRAM,B−CROM,あるいはALU
(22)を制御するADD,THR等を出力する。このマイクロ
コードは、各々データ処理回路(9)(10)の各部の共
通する回路に印加されるため、一つの命令の実行によっ
てデータ処理回路(9)(10)を同時に同一の制御が行
われる。
ROM(26)と、プログラムROM(26)のアドレスを指定す
るプログラムカウンタ(PC)(27)と、読み出された命
令を解読するインストラクションデコーダ(I−DEC)
(28)とを有する。プログラムROM(26)は、32ビット
×512の容量を有し、デジタルフィルタを実現するため
のプログラム、及び、その他必要なプログラムが格納さ
れる。インストラクションデコーダ(28)は、命令を解
読してマイクロコードを出力するものであり、アドレス
ポインタ(18)(19)(20)を制御するINC1,INC2,DEC
1,CLEAR2,DEC3や、入力選択回路MPXA,MPXBを制御するA
−BUS,A−DRAM,B−BUS,B−CRAM,B−CROM,あるいはALU
(22)を制御するADD,THR等を出力する。このマイクロ
コードは、各々データ処理回路(9)(10)の各部の共
通する回路に印加されるため、一つの命令の実行によっ
てデータ処理回路(9)(10)を同時に同一の制御が行
われる。
第1図に示されたDSPシステムに於いて、デジタルフ
ィルタを構成するために必要な命令の例を第2図に示
す。第2図に於いて、MUL命令は乗算命令であり、乗算
器(21)の入力A及び入力Bに入力される対象を選択
し、乗算を行わせるものである。AP命令は、アドレスポ
インタ(18)(19)(20)のインクリメント、デクリメ
ントあるいはクリアを行うものである。ALU命令はALU
(22)の制御命令であり、ALUADDは、入力された2つの
データをALU(22)で加算し、加算結果をACC(23)に保
持させ、ALUSUBは一方の入力のデータから他方の入力の
データを減算し、減算結果をACC(23)に保持させ、ALU
THRは、乗算器(21)からの乗算結果をそのままACC(2
3)に保持させる命令である。RAM1D,TMP1D,TMP2D,TMP3D
はストア命令であり、データバス(11)のデータをデー
タRAM(15)、テンポラリーレジスタ(24)に記憶させ
る。ACLS,TMP1S,TMP2S,TMP3Sは転送命令であり、ACC(2
3)、テンポラリーレジスタ(24)のデータをデータバ
ス(11)及び補助バス(25)に送出する命令である。
ィルタを構成するために必要な命令の例を第2図に示
す。第2図に於いて、MUL命令は乗算命令であり、乗算
器(21)の入力A及び入力Bに入力される対象を選択
し、乗算を行わせるものである。AP命令は、アドレスポ
インタ(18)(19)(20)のインクリメント、デクリメ
ントあるいはクリアを行うものである。ALU命令はALU
(22)の制御命令であり、ALUADDは、入力された2つの
データをALU(22)で加算し、加算結果をACC(23)に保
持させ、ALUSUBは一方の入力のデータから他方の入力の
データを減算し、減算結果をACC(23)に保持させ、ALU
THRは、乗算器(21)からの乗算結果をそのままACC(2
3)に保持させる命令である。RAM1D,TMP1D,TMP2D,TMP3D
はストア命令であり、データバス(11)のデータをデー
タRAM(15)、テンポラリーレジスタ(24)に記憶させ
る。ACLS,TMP1S,TMP2S,TMP3Sは転送命令であり、ACC(2
3)、テンポラリーレジスタ(24)のデータをデータバ
ス(11)及び補助バス(25)に送出する命令である。
ところで、オーディオの信号処理に於いて、グラフィ
ックイコライザを実現する場合、第3図に示される2次
の直接型IIRフィルタを複数段縦続接続することによっ
て得られる。第3図のIIR型フィルタは、 Yi=C1Xi+C2Xi-1+C3Xi-2+C4Yi-1+C5Yi-2……(1)
式 (C1,C2,C3,C4,C5はフィルタ特性を決定する定数) の積和演算を行うものであり、(29)で示されるZ-1は
単位時間(ここではサンプリング周期)の遅延素子であ
り、(30)は定数C1〜C5の乗算素子、(31)は加算素子
である。
ックイコライザを実現する場合、第3図に示される2次
の直接型IIRフィルタを複数段縦続接続することによっ
て得られる。第3図のIIR型フィルタは、 Yi=C1Xi+C2Xi-1+C3Xi-2+C4Yi-1+C5Yi-2……(1)
式 (C1,C2,C3,C4,C5はフィルタ特性を決定する定数) の積和演算を行うものであり、(29)で示されるZ-1は
単位時間(ここではサンプリング周期)の遅延素子であ
り、(30)は定数C1〜C5の乗算素子、(31)は加算素子
である。
しかしながら、中心周波数が200Hz程度の低周波帯域
の場合には、定数C1〜C5の有効桁数は、16ビットで表わ
すことができなくなるため、各定数をα+β・δという
形に変換する。即ち、αは、定数に最も近い整数であ
り、βは、整数αと定数の差を1より小さい数δで割っ
た商である。中心周波数を200Hzとすると定数C1〜C
5は、 C1=1+a・δ C2=−2+b・δ C3=1+c・δ C4=2+d・δ C5=−1+e・δ となる。ここでδは1/2n(nは整数)とする。
の場合には、定数C1〜C5の有効桁数は、16ビットで表わ
すことができなくなるため、各定数をα+β・δという
形に変換する。即ち、αは、定数に最も近い整数であ
り、βは、整数αと定数の差を1より小さい数δで割っ
た商である。中心周波数を200Hzとすると定数C1〜C
5は、 C1=1+a・δ C2=−2+b・δ C3=1+c・δ C4=2+d・δ C5=−1+e・δ となる。ここでδは1/2n(nは整数)とする。
これらを(1)式に代入すると Yi=Xi−2Xi-1+Xi-2+2Yi-1−Yi-2+δ(aXi+bXi-1 +cXi-2+dYi-1+eYi-2) =Xi−2(Xi-1−Yi-1)+Xi-2−Yi-2+δ(aXi +bXi-1+cXi-2+dYi-1+eYi-2) となる。この積和演算は、第4図に示す回路で実現され
る。即ち、第3図の回路と同様にaXi+bXi-1+cXi-2+d
Yi-1+eYi-2の演算結果を求めてδを乗算し、該乗算結
果に入力データXiと、2サンプリング前のデータXi-2−
Yi-2を加算し、更に、その結果から、1サンプリング前
のデータXi-1−Yi-1に2を乗算したものを引いて、出力
データYiを算出する。従って、16ビットで十分有効桁が
表わされる定数a,b,c,d,eを用いて積和演算を行うので
小数点以下の演算精度が向上する。
る。即ち、第3図の回路と同様にaXi+bXi-1+cXi-2+d
Yi-1+eYi-2の演算結果を求めてδを乗算し、該乗算結
果に入力データXiと、2サンプリング前のデータXi-2−
Yi-2を加算し、更に、その結果から、1サンプリング前
のデータXi-1−Yi-1に2を乗算したものを引いて、出力
データYiを算出する。従って、16ビットで十分有効桁が
表わされる定数a,b,c,d,eを用いて積和演算を行うので
小数点以下の演算精度が向上する。
例えば、低周波帯域フィルタの場合、フィルタ係数
A、B、Cを10進数で表したとすると、 A=2.0000001234567 B=1.0000000076543 C=3.0000000654321 となり、フィルタ係数の小数点以下の「0」の桁が非常
に多くなる。これを本願発明のようなα+β・δという
形にすると、 A=2+1.234567×δ B=1+0.076543×δ C=3+0.654321×δ となり、このときのδは10-7となる。このように各フィ
ルタ係数に共通で、1より小さい係数δで括ることによ
り、小数点以下の有効桁がβの形で表せる。従って、演
算回路の能力が7桁の場合であっても小数点以下の有効
桁7桁を取り扱うことが可能になる。更に、各フィルタ
係数に共通な係数δを使用することで、第4図及び第5
図に示されるような基本的なIILフィルタの形を保った
低周波帯域フィルタを構成できる。
A、B、Cを10進数で表したとすると、 A=2.0000001234567 B=1.0000000076543 C=3.0000000654321 となり、フィルタ係数の小数点以下の「0」の桁が非常
に多くなる。これを本願発明のようなα+β・δという
形にすると、 A=2+1.234567×δ B=1+0.076543×δ C=3+0.654321×δ となり、このときのδは10-7となる。このように各フィ
ルタ係数に共通で、1より小さい係数δで括ることによ
り、小数点以下の有効桁がβの形で表せる。従って、演
算回路の能力が7桁の場合であっても小数点以下の有効
桁7桁を取り扱うことが可能になる。更に、各フィルタ
係数に共通な係数δを使用することで、第4図及び第5
図に示されるような基本的なIILフィルタの形を保った
低周波帯域フィルタを構成できる。
次に、第1図に示されたDSPシステムを用いて、第5
図に示されるようなグラフィックイコライザを実現する
方法を説明する。第5図に示されたデジタルフィルタ
は、第3図及び第4図に示されたフィルタを縦続接続し
たものであり、1段目では、入力データがxi、定数がA,
B,C,D,E,出力がyiであり、2段目では、入力データが
yi、定数がa,b,c,d,e,δ,2,出力データがziとなる。第
6図は、第5図のデジタルフィルタを実現するプログラ
ムを示す図であり、第7図は、データRAM(15)、定数R
AM(16)、及びテンポラリーレジスタ(24)に記憶され
るデータの割付け図である。第6図のプログラムにより
定数の乗算は、C,B,A,E,D,c,d,a,e,dの順で行うために
定数RAM(16)のアドレス「0」から「9」までには、
同一順序で定数が格納される。一方、データRAM(15)
には、xi,yi,ziのデータが3アドレスおきに書き込まれ
るが、サンプリング周期、即ち、1つの入力データxi+1
に対する演算処理毎に、1アドレスずらしてxi+1,yi+1,
zi+1を書き込むことにより、遅延素子(29)による遅延
データを作成している。よって、第5図に示されたデジ
タルフィルタの場合には、アドレスポインタ(18)は
「0」〜「7」の循環アドレス指定、及び、アドレスポ
インタ(19)は「0」〜「9」の循環アドレス指定とな
るように予めプログラムによって、設定しておく。
図に示されるようなグラフィックイコライザを実現する
方法を説明する。第5図に示されたデジタルフィルタ
は、第3図及び第4図に示されたフィルタを縦続接続し
たものであり、1段目では、入力データがxi、定数がA,
B,C,D,E,出力がyiであり、2段目では、入力データが
yi、定数がa,b,c,d,e,δ,2,出力データがziとなる。第
6図は、第5図のデジタルフィルタを実現するプログラ
ムを示す図であり、第7図は、データRAM(15)、定数R
AM(16)、及びテンポラリーレジスタ(24)に記憶され
るデータの割付け図である。第6図のプログラムにより
定数の乗算は、C,B,A,E,D,c,d,a,e,dの順で行うために
定数RAM(16)のアドレス「0」から「9」までには、
同一順序で定数が格納される。一方、データRAM(15)
には、xi,yi,ziのデータが3アドレスおきに書き込まれ
るが、サンプリング周期、即ち、1つの入力データxi+1
に対する演算処理毎に、1アドレスずらしてxi+1,yi+1,
zi+1を書き込むことにより、遅延素子(29)による遅延
データを作成している。よって、第5図に示されたデジ
タルフィルタの場合には、アドレスポインタ(18)は
「0」〜「7」の循環アドレス指定、及び、アドレスポ
インタ(19)は「0」〜「9」の循環アドレス指定とな
るように予めプログラムによって、設定しておく。
ここで、入力データxiに対して第6図のプログラムの
ステップ「0」を実行する時点に於いて、データRAM(1
5)の内容が第7図(イ)の如くであり、アドレスポイ
ンタ(18)(19)が共にアドレス「0」であるとき、ス
テップ「0」が実行されると、乗算器(21)の入力A及
びBには、データRAM(15)のアドレス「0」に記憶さ
れている。データxi-2(2サンプル前の入力データ)と
定数RAM(16)のアドレス「0」に記憶されている係数
Cが印加されるが、その乗算結果は、次のステップで確
定し出力される。また、ステップ「0」の最後に、命令
AP1INC,AP2INCにより、アドレスポインタ(18)(19)
が共にインクリメントされ、その内容が「1」となる。
ステップ「0」を実行する時点に於いて、データRAM(1
5)の内容が第7図(イ)の如くであり、アドレスポイ
ンタ(18)(19)が共にアドレス「0」であるとき、ス
テップ「0」が実行されると、乗算器(21)の入力A及
びBには、データRAM(15)のアドレス「0」に記憶さ
れている。データxi-2(2サンプル前の入力データ)と
定数RAM(16)のアドレス「0」に記憶されている係数
Cが印加されるが、その乗算結果は、次のステップで確
定し出力される。また、ステップ「0」の最後に、命令
AP1INC,AP2INCにより、アドレスポインタ(18)(19)
が共にインクリメントされ、その内容が「1」となる。
ステップ「1」が実行されると、ステップ「0」と同
様にデータRAM(15)と定数RAM(16)が乗算器(21)の
入力として選択され、各々、アドレス「1」に記憶され
たデータxi-1と定数Bが乗算器(21)に印加される。ま
た、前回のステップ「0」で乗算された結果は、命令AL
UTHRにより、ALU(22)を素通りしてACC(23)に最初の
乗算結果C・xi-2がストアされる。ステップ「1」の最
後に、命令AP1INC,AP2INCにより、アドレスポインタ(1
8)(19)がインクリメントされ、その内容はアドレス
「2」となる。
様にデータRAM(15)と定数RAM(16)が乗算器(21)の
入力として選択され、各々、アドレス「1」に記憶され
たデータxi-1と定数Bが乗算器(21)に印加される。ま
た、前回のステップ「0」で乗算された結果は、命令AL
UTHRにより、ALU(22)を素通りしてACC(23)に最初の
乗算結果C・xi-2がストアされる。ステップ「1」の最
後に、命令AP1INC,AP2INCにより、アドレスポインタ(1
8)(19)がインクリメントされ、その内容はアドレス
「2」となる。
次に、ステップ「2」が実行されると、命令MULA−BU
S,B−CRAMにより、乗算器(21)の入力Aにはデータバ
ス(11)、入力Bには定数RAM(16)が選択される。一
方、命令TMP1Sにより、テンポラリーレジスタTMP1の内
容がデータバス(11)に送出され、命令RAM1Dにより、
データバス(11)に送出されたデータが、アドレスポイ
ンタ(18)で指定されるデータRAM(15)のアドレス
「2」にストアされる。このとき、テンポラリーレジス
タTMP1には、サンプリング周期毎にデータ入力回路(1
2)に外部から印加された力データxiが予めストアされ
ている。従って、入力データxiは、乗算器(21)によっ
て定数RAM(16)から読み出された定数Aと乗算される
と共に、データRAM(15)のアドレス「2」にストアさ
れる。一方、命令ALUADDにより、ACC(23)にストアさ
れているC・xi-2とステップ「1」の乗算結果B・xi-1
の加算が行われ、その結果B・xi-1+C・xi-2がACC(2
3)にストアされる。ステップ「2」の最後に、アドレ
スポインタ(18)(19)がインクリメントされ、その内
容はアドレス「3」となる。
S,B−CRAMにより、乗算器(21)の入力Aにはデータバ
ス(11)、入力Bには定数RAM(16)が選択される。一
方、命令TMP1Sにより、テンポラリーレジスタTMP1の内
容がデータバス(11)に送出され、命令RAM1Dにより、
データバス(11)に送出されたデータが、アドレスポイ
ンタ(18)で指定されるデータRAM(15)のアドレス
「2」にストアされる。このとき、テンポラリーレジス
タTMP1には、サンプリング周期毎にデータ入力回路(1
2)に外部から印加された力データxiが予めストアされ
ている。従って、入力データxiは、乗算器(21)によっ
て定数RAM(16)から読み出された定数Aと乗算される
と共に、データRAM(15)のアドレス「2」にストアさ
れる。一方、命令ALUADDにより、ACC(23)にストアさ
れているC・xi-2とステップ「1」の乗算結果B・xi-1
の加算が行われ、その結果B・xi-1+C・xi-2がACC(2
3)にストアされる。ステップ「2」の最後に、アドレ
スポインタ(18)(19)がインクリメントされ、その内
容はアドレス「3」となる。
ステップ「3」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)と定数RAM(16)のアド
レス「3」にストアされているデータyi-2と定数Eが印
加され、命令ALUADDにより、ステップ「2」の乗算結果
A・xiとACC(23)の内容B・xi-1+C・xi-2がALU(2
2)に於いて加算され、加算結果A・xi+B・xi-1+C
・xi-2がACC(23)にストアされる。ステップ「3」の
最後にアドレスポインタ(18)(19)がインクリメント
され、アドレス「4」となる。
A及びBには、データRAM(15)と定数RAM(16)のアド
レス「3」にストアされているデータyi-2と定数Eが印
加され、命令ALUADDにより、ステップ「2」の乗算結果
A・xiとACC(23)の内容B・xi-1+C・xi-2がALU(2
2)に於いて加算され、加算結果A・xi+B・xi-1+C
・xi-2がACC(23)にストアされる。ステップ「3」の
最後にアドレスポインタ(18)(19)がインクリメント
され、アドレス「4」となる。
ステップ「4」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)と定数RAM(16)のアド
レス「4」にストアされているデータyi-1と定数Dが印
加され、命令ALUADDにより、ステップ「3」の乗算結果
E・yi-2とACC(23)の内容A・xi-1+B・xi-1+C・x
i-2がALU(22)に於いて加算され、加算結果A・xi+B
・xi-1+C・xi-2+E・yi-2がACC(23)にストアされ
る。ステップ「4」の最後に、命令AP1DEC,AP2INCによ
り、アドレスポインタ(18)はデクリメントされて、ア
ドレス「3」となり、アドレスポインタ(19)はインク
リメントされてアドレス「5」となる。
A及びBには、データRAM(15)と定数RAM(16)のアド
レス「4」にストアされているデータyi-1と定数Dが印
加され、命令ALUADDにより、ステップ「3」の乗算結果
E・yi-2とACC(23)の内容A・xi-1+B・xi-1+C・x
i-2がALU(22)に於いて加算され、加算結果A・xi+B
・xi-1+C・xi-2+E・yi-2がACC(23)にストアされ
る。ステップ「4」の最後に、命令AP1DEC,AP2INCによ
り、アドレスポインタ(18)はデクリメントされて、ア
ドレス「3」となり、アドレスポインタ(19)はインク
リメントされてアドレス「5」となる。
ステップ「5」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)のアドレス「3」にス
トアされたデータyi-2と定数RAM(16)のアドレス
「5」にストアされた定数cが印加される。即ち、乗算
器(21)は、このステップ「5」から第5図に示された
デジタルフィルタの2段目の乗算を行う。一方、命令AL
UADDにより、ステップ「4」の乗算結果D・yi-1とACC
(23)の内容A・xi+B・xi-1+C・xi-2+E・yi-2が
ALU(22)に於いて加算され、加算結果A・xi+B・x
i-1+C・xi-2+D・yi-1+E・yi-2がACC(23)にスト
アされる。このときACC(23)の内容は、1段目のデジ
タルフィルタの出力yiとなる。ステップ「5」の最後に
アドレスポインタ(18)はインクリメントされてアドレ
ス「4」となり、アドレスポインタ(19)はインクリメ
ントされてアドレス「6」となる。
A及びBには、データRAM(15)のアドレス「3」にス
トアされたデータyi-2と定数RAM(16)のアドレス
「5」にストアされた定数cが印加される。即ち、乗算
器(21)は、このステップ「5」から第5図に示された
デジタルフィルタの2段目の乗算を行う。一方、命令AL
UADDにより、ステップ「4」の乗算結果D・yi-1とACC
(23)の内容A・xi+B・xi-1+C・xi-2+E・yi-2が
ALU(22)に於いて加算され、加算結果A・xi+B・x
i-1+C・xi-2+D・yi-1+E・yi-2がACC(23)にスト
アされる。このときACC(23)の内容は、1段目のデジ
タルフィルタの出力yiとなる。ステップ「5」の最後に
アドレスポインタ(18)はインクリメントされてアドレ
ス「4」となり、アドレスポインタ(19)はインクリメ
ントされてアドレス「6」となる。
ステップ「6」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)のアドレス「4」にス
トアされたデータyi-1と定数RAM(16)のアドレス
「6」にストアされた定数bが印加される。また、命令
ACCSにより、ACC(23)にストアされたデータyiがデー
タバス(11)に送出され、命令TMP1Dにより、データバ
ス(11)に送出されたデータyiがテンポラリーレジスタ
TMP1にストアされる。一方、命令ALUTHRにより、ステッ
プ「5」の乗算結果c・yi-2は、ALU(22)を素通りし
てACC(23)にストアされる。ステップ「6」の最後に
アドレスポインタ(18)(19)はインクリメントされ
て、アドレス「5」とアドレス「7」になる。
A及びBには、データRAM(15)のアドレス「4」にス
トアされたデータyi-1と定数RAM(16)のアドレス
「6」にストアされた定数bが印加される。また、命令
ACCSにより、ACC(23)にストアされたデータyiがデー
タバス(11)に送出され、命令TMP1Dにより、データバ
ス(11)に送出されたデータyiがテンポラリーレジスタ
TMP1にストアされる。一方、命令ALUTHRにより、ステッ
プ「5」の乗算結果c・yi-2は、ALU(22)を素通りし
てACC(23)にストアされる。ステップ「6」の最後に
アドレスポインタ(18)(19)はインクリメントされ
て、アドレス「5」とアドレス「7」になる。
ステップ「7」が実行されると、命令MULA−BUS,B−C
RAMにより、乗算器(21)の入力A及びBには、データ
バス(11)に送出されたデータと定数RAM(16)のアド
レス「7」にストアされた定数aが印加される。また、
命令TMP1S及びRAM1Dにより、テンポラリーレジスタTMP1
にストアされたデータyiは、データバス(11)に送出さ
れて乗算器(21)の入力Aに印加されると共に、アドレ
スポインタ(18)で指定されたデータRAM(15)のアド
レス「5」にストアされる。一方、命令ALUADDによりス
テップ「6」の乗算結果b・yi-1とACC(23)のc・y
i-2がALU(22)に於いて加算され、その結果b・yi-1+
c・yi-2がACC(23)にストアされる。ステップ「7」
の最後に、アドレスポインタ(18)(19)はインクリメ
ントされてアドレス「6」とアドレス「8」になる。
RAMにより、乗算器(21)の入力A及びBには、データ
バス(11)に送出されたデータと定数RAM(16)のアド
レス「7」にストアされた定数aが印加される。また、
命令TMP1S及びRAM1Dにより、テンポラリーレジスタTMP1
にストアされたデータyiは、データバス(11)に送出さ
れて乗算器(21)の入力Aに印加されると共に、アドレ
スポインタ(18)で指定されたデータRAM(15)のアド
レス「5」にストアされる。一方、命令ALUADDによりス
テップ「6」の乗算結果b・yi-1とACC(23)のc・y
i-2がALU(22)に於いて加算され、その結果b・yi-1+
c・yi-2がACC(23)にストアされる。ステップ「7」
の最後に、アドレスポインタ(18)(19)はインクリメ
ントされてアドレス「6」とアドレス「8」になる。
ステップ「8」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)のアドレス「6」にス
トアされたデータzi-2と定数RAM(16)のアドレス
「8」にストアされた定数eが印加され、一方ALU(2
2)に於いてステップ「7」の乗算結果a・yiとACC(2
3)にストアされたデータb・yi-1+c・yi-2が加算さ
れ、その結果a・yi+b・yi-1+c・yi-2がACC(23)
にストアされる。ステップ「8」の最後にアドレスポイ
ンタ(18)(19)はインクリメントされて、アドレス
「7」とアドレス「9」になる。
A及びBには、データRAM(15)のアドレス「6」にス
トアされたデータzi-2と定数RAM(16)のアドレス
「8」にストアされた定数eが印加され、一方ALU(2
2)に於いてステップ「7」の乗算結果a・yiとACC(2
3)にストアされたデータb・yi-1+c・yi-2が加算さ
れ、その結果a・yi+b・yi-1+c・yi-2がACC(23)
にストアされる。ステップ「8」の最後にアドレスポイ
ンタ(18)(19)はインクリメントされて、アドレス
「7」とアドレス「9」になる。
ステップ「9」が実行されると、乗算器(21)の入力
A及びBには、データRAM(15)のアドレス「7」にス
トアされたデータzi-1と定数RAM(16)のアドレス
「9」にストアされた定数dが印加され、一方ALU(2
2)に於いて、ステップ「8」の乗算結果e・zi-2とACC
(23)にストアされたデータa・yi+b・yi-1+c・y
i-2が加算され、加算結果a・yi+b・yi-1+c・yi-2
+e・zi-2がACC(23)にストアされる。ステップ
「9」の最後にアドレスポインタ(18)(19)がインク
リメントされると、アドレスポインタ(18)(19)は共
にアドレス「0」となる。
A及びBには、データRAM(15)のアドレス「7」にス
トアされたデータzi-1と定数RAM(16)のアドレス
「9」にストアされた定数dが印加され、一方ALU(2
2)に於いて、ステップ「8」の乗算結果e・zi-2とACC
(23)にストアされたデータa・yi+b・yi-1+c・y
i-2が加算され、加算結果a・yi+b・yi-1+c・yi-2
+e・zi-2がACC(23)にストアされる。ステップ
「9」の最後にアドレスポインタ(18)(19)がインク
リメントされると、アドレスポインタ(18)(19)は共
にアドレス「0」となる。
ステップ「10」が実行されると乗算は行われず、ステ
ップ「9」の乗算結果d・zi-1とACC(23)にストアさ
れたデータa・yi+b・yi-1+c・yi-2+e・zi-2がAL
U(22)に於いて加算され、その加算結果a・yi+b・y
i-1+c・yi-2+d・zi-1+e・zi-2がACC(23)にスト
アされる。
ップ「9」の乗算結果d・zi-1とACC(23)にストアさ
れたデータa・yi+b・yi-1+c・yi-2+e・zi-2がAL
U(22)に於いて加算され、その加算結果a・yi+b・y
i-1+c・yi-2+d・zi-1+e・zi-2がACC(23)にスト
アされる。
ステップ「11」が実行されるとACC(23)にストアさ
れたデータがnビット右方向にシフトされる。シフトさ
れた結果は、δ(a・yi+b・yi-1+c・yi-2+d・z
i-1+e・zi-2)となる。即ち、δは1/2nと設定されて
いるため、右方向にnビットシフトすることが1/2n乗算
したことになる。
れたデータがnビット右方向にシフトされる。シフトさ
れた結果は、δ(a・yi+b・yi-1+c・yi-2+d・z
i-1+e・zi-2)となる。即ち、δは1/2nと設定されて
いるため、右方向にnビットシフトすることが1/2n乗算
したことになる。
ステップ「12」が実行されると、命令TMP3Sにより、
テンポラリーレジスタTMP3に保持されているデータyi-2
−zi-2がデータバス(11)に送出され、ALU(22)に於
いて、ACC(23)のデータと加算され、その加算結果、y
i-2−zi-2+δ(a・yi+b・yi-1+c・yi-2+d・z
i-1+d・zi-2)がACC(23)に保持される。
テンポラリーレジスタTMP3に保持されているデータyi-2
−zi-2がデータバス(11)に送出され、ALU(22)に於
いて、ACC(23)のデータと加算され、その加算結果、y
i-2−zi-2+δ(a・yi+b・yi-1+c・yi-2+d・z
i-1+d・zi-2)がACC(23)に保持される。
ステップ「13」が実行されると、命令TMP2Sによりテ
ンポラリーレジスタTMP2のデータyi-1−zi-2がデータバ
ス(11)に送出されると共に、次のサンプリングデータ
の処理の遅延データを得るために命令TMP3Dにより、デ
ータyi-1−zi-1がテンポラリーレジスタTMP3に書き込ま
れる。一方、命令ALUSUBにより、ALU(22)に於いて、A
CC(23)に保持されたデータからデータバス(11)に送
出されたデータyi-1−zi-1が引算され、その結果がACC
(23)に保持される。
ンポラリーレジスタTMP2のデータyi-1−zi-2がデータバ
ス(11)に送出されると共に、次のサンプリングデータ
の処理の遅延データを得るために命令TMP3Dにより、デ
ータyi-1−zi-1がテンポラリーレジスタTMP3に書き込ま
れる。一方、命令ALUSUBにより、ALU(22)に於いて、A
CC(23)に保持されたデータからデータバス(11)に送
出されたデータyi-1−zi-1が引算され、その結果がACC
(23)に保持される。
ステップ「14」が実行されると、ステップ「13」と同
様、データバス(11)にデータyi-1−zi-1が送出され、
ALU(22)に於いて、ACC(23)に保持されたデータから
yi-1−zi-1が引算され、その結果がACC(23)に書き込
まれる。このときのACC(23)のデータは−2(yi-1−z
i-1)+(yi-2−zi-2)+δ(a・yi+b・yi-1+c・y
i-2+d・zi-1+e・zi-2)である。
様、データバス(11)にデータyi-1−zi-1が送出され、
ALU(22)に於いて、ACC(23)に保持されたデータから
yi-1−zi-1が引算され、その結果がACC(23)に書き込
まれる。このときのACC(23)のデータは−2(yi-1−z
i-1)+(yi-2−zi-2)+δ(a・yi+b・yi-1+c・y
i-2+d・zi-1+e・zi-2)である。
ステップ「15」が実行されると、命令TMP1Sにより、
テンポラリーレジスタTMP1のデータxiがデータバス(1
1)に送出され、ALU(23)に於いて、ACC(23)のデー
タと加算され、加算結果がACC(23)に書き込まれる。
このときのACC(23)のデータは、yi-1(yi-1−zi-1)
+(yi-2−zi-2)+δ(a・yi+b・yi-1+c・yi-2+
d・zi-1+e・zi-2)、即ち、デジタルフィルタの出力
データziとなる。
テンポラリーレジスタTMP1のデータxiがデータバス(1
1)に送出され、ALU(23)に於いて、ACC(23)のデー
タと加算され、加算結果がACC(23)に書き込まれる。
このときのACC(23)のデータは、yi-1(yi-1−zi-1)
+(yi-2−zi-2)+δ(a・yi+b・yi-1+c・yi-2+
d・zi-1+e・zi-2)、即ち、デジタルフィルタの出力
データziとなる。
ステップ「16」が実行されると、命令ACCSによりACC
(23)にストアされたデータziがデータバス(11)に送
出され、命令RAM1Dにより、アドレスポインタ(18)で
指定されたデータRAM(15)のアドレス「0」にストア
される。
(23)にストアされたデータziがデータバス(11)に送
出され、命令RAM1Dにより、アドレスポインタ(18)で
指定されたデータRAM(15)のアドレス「0」にストア
される。
ステップ「17」が実行されると、命令TMP1Sにより、
テンポラリーレジスタTMP1のデータyiがデータバス(1
1)に送出され、命令ALUSUBにより、データyiからACC
(23)にストアされたデータziがALU(22)で引算さ
れ、yi−ziがACC(23)にストアされる。
テンポラリーレジスタTMP1のデータyiがデータバス(1
1)に送出され、命令ALUSUBにより、データyiからACC
(23)にストアされたデータziがALU(22)で引算さ
れ、yi−ziがACC(23)にストアされる。
ステップ「18」が実行されると、命令ACCSにより、AC
C(23)にストアされたデータyi−ziがデータバス(1
1)に送出され、命令TMP2Dにより、データバス(11)の
データyi−ziがテンポラリーレジスタTMP2にストアさ
れ、次のサンプリングデータの処理のための遅延データ
となる。ステップ「18」の最後に命令AP1INCにより、ア
ドレスポインタ(18)がインクリメントされてアドレス
「1」となる。従って、次のサンプリングデータxi+1の
処理開始時には、アドレスポインタ(18)でアドレスさ
れるデータRAM(15)は、アドレス「1」からアクセス
されることになり、前回のスタートアドレスより1アド
レス先にずれる。
C(23)にストアされたデータyi−ziがデータバス(1
1)に送出され、命令TMP2Dにより、データバス(11)の
データyi−ziがテンポラリーレジスタTMP2にストアさ
れ、次のサンプリングデータの処理のための遅延データ
となる。ステップ「18」の最後に命令AP1INCにより、ア
ドレスポインタ(18)がインクリメントされてアドレス
「1」となる。従って、次のサンプリングデータxi+1の
処理開始時には、アドレスポインタ(18)でアドレスさ
れるデータRAM(15)は、アドレス「1」からアクセス
されることになり、前回のスタートアドレスより1アド
レス先にずれる。
以上のステップ「0」〜「18」のプログラムをサンプ
リング周期毎に実行することにより、入力データxi,x
i+1,xi+2……に対するフィルタ処理が行われ、データRA
M(15)の内容が第7図(イ)(ロ)(ハ)(ニ)……
の如く変化し、フィルタ出力zi,zi+1,zi+2,……が得ら
れる。
リング周期毎に実行することにより、入力データxi,x
i+1,xi+2……に対するフィルタ処理が行われ、データRA
M(15)の内容が第7図(イ)(ロ)(ハ)(ニ)……
の如く変化し、フィルタ出力zi,zi+1,zi+2,……が得ら
れる。
このように、第4図に示されたデジタルフィルタと第
5図に示された低周波帯域デジタルフィルタの積和演算
が連続して行え得ると共に、定数の小数点以下の有効数
次を16ビットで表わされるようにして乗算するので乗算
精度が向上する。
5図に示された低周波帯域デジタルフィルタの積和演算
が連続して行え得ると共に、定数の小数点以下の有効数
次を16ビットで表わされるようにして乗算するので乗算
精度が向上する。
(ト)発明の効果 上述の如く本発明によれば、低周波帯域デジタルフィ
ルタをDSPシステムで実現する際に、乗算のビット数を
増加することなく乗算精度を高くすることができるた
め、低周波帯域でのフィルタ特性を良好に確保すること
ができる。更に、他の低周波帯域のフィルタ処理と連続
して行うことがでるので、グラフィックイコライザを実
現するプログラムステップ数を短縮することができ、他
の処理を行う余裕が生じ、DSPシステム全体のスループ
ットの向上にも貢献するものである。
ルタをDSPシステムで実現する際に、乗算のビット数を
増加することなく乗算精度を高くすることができるた
め、低周波帯域でのフィルタ特性を良好に確保すること
ができる。更に、他の低周波帯域のフィルタ処理と連続
して行うことがでるので、グラフィックイコライザを実
現するプログラムステップ数を短縮することができ、他
の処理を行う余裕が生じ、DSPシステム全体のスループ
ットの向上にも貢献するものである。
第1図は本発明を実行するためのDSP装置のブロック
図、第2図は第1図のDSP装置に用いられる命令の例を
示す図、第3図は、IIR型デジタルフィルタの回路図、
第4図は、本発明の実施例を示すデジタルフィルタの回
路図、第5図は、本発明を使用したグラフィックイコラ
イザの回路図、第6図は、第5図のグラフィックイコラ
イザを実現するプログラムを示す図、第7図は、データ
RAM、定数RAM、及び、テンポラリーレジスタのデータ割
付け図、第8図は一般的なDSP装置のブロック図であ
る。 (9)(10)……デジタル処理回路、(12)……データ
入出力回路、(13)……インターフェイス回路、(14)
……制御回路、(11)……データバス、(15)……デー
タRAM、(16)……定数RAM、(17)……定数ROM、(1
8)(19)(20)……アドレスポインタ、(21)……乗
算器、(22)……ALU、(23)……アキュームレータ(A
CC)、(24)……テンポラリーレジスタ、(25)……補
助バス、(26)……プログラムROM、(27)……プログ
ラムカウンタ、(28)……インストラクションデコー
ダ、(29)……遅延素子、(30)……乗算素子、(31)
……加算素子。
図、第2図は第1図のDSP装置に用いられる命令の例を
示す図、第3図は、IIR型デジタルフィルタの回路図、
第4図は、本発明の実施例を示すデジタルフィルタの回
路図、第5図は、本発明を使用したグラフィックイコラ
イザの回路図、第6図は、第5図のグラフィックイコラ
イザを実現するプログラムを示す図、第7図は、データ
RAM、定数RAM、及び、テンポラリーレジスタのデータ割
付け図、第8図は一般的なDSP装置のブロック図であ
る。 (9)(10)……デジタル処理回路、(12)……データ
入出力回路、(13)……インターフェイス回路、(14)
……制御回路、(11)……データバス、(15)……デー
タRAM、(16)……定数RAM、(17)……定数ROM、(1
8)(19)(20)……アドレスポインタ、(21)……乗
算器、(22)……ALU、(23)……アキュームレータ(A
CC)、(24)……テンポラリーレジスタ、(25)……補
助バス、(26)……プログラムROM、(27)……プログ
ラムカウンタ、(28)……インストラクションデコー
ダ、(29)……遅延素子、(30)……乗算素子、(31)
……加算素子。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大橋 秀紀 大阪府守口市京阪本通2丁目18番地 三 洋電機株式会社内 (72)発明者 川口 正樹 大阪府守口市京阪本通2丁目18番地 三 洋電機株式会社内 (56)参考文献 特開 昭62−105518(JP,A) 特開 昭58−137045(JP,A) 特開 昭55−80913(JP,A)
Claims (1)
- 【請求項1】データメモリに記憶されたデータと定数メ
モリに記憶された定数を乗算器により乗算し、該乗算結
果を演算回路で加減算することにより、IIR(インフィ
ニット・インパルス・レスポンス)型の低周波帯域デジ
タルフィルタを構成する方法において、前記定数を予め
α+β・δ(αは定数に最も近い整数、βは整数αと前
記定数の差を共通の定数δ≪1で割った値)の形に分解
して前記α、β、及びδを前記定数メモリに記憶し、前
記乗算器及び演算回路において、前記データに対して前
記定数メモリから読み出された各々の定数βの積和演算
を行った後、定数δを乗算し、該乗算結果をデータ保持
手段に保持した状態で前記各々の定数αと前記データの
積和演算を行い、該演算結果と前記データ保持手段に保
持された乗算結果と加減算することにより、フィルタ出
力を得ることを特徴とする低周波帯域デジタルフィルタ
の構成方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62179301A JP2630778B2 (ja) | 1987-07-17 | 1987-07-17 | 低周波帯域デジタルフィルタの構成方法 |
KR1019880008911A KR0134042B1 (ko) | 1987-07-17 | 1988-07-16 | 디지탈 신호처리장치 및 신호처리방법 |
EP88111551A EP0299537B1 (en) | 1987-07-17 | 1988-07-18 | Apparatus and Method for processing digital signal |
DE3853025T DE3853025T2 (de) | 1987-07-17 | 1988-07-18 | Anordnung und Verfahren zur Digitalsignalverarbeitung. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62179301A JP2630778B2 (ja) | 1987-07-17 | 1987-07-17 | 低周波帯域デジタルフィルタの構成方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23752689A Division JPH0695627B2 (ja) | 1989-09-13 | 1989-09-13 | 低周波帯域デジタルフィルタ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6423614A JPS6423614A (en) | 1989-01-26 |
JP2630778B2 true JP2630778B2 (ja) | 1997-07-16 |
Family
ID=16063432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62179301A Expired - Lifetime JP2630778B2 (ja) | 1987-07-17 | 1987-07-17 | 低周波帯域デジタルフィルタの構成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2630778B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011023927A (ja) * | 2009-07-15 | 2011-02-03 | Yamaha Corp | デジタルフィルタおよびプログラム |
JP6863907B2 (ja) * | 2018-01-05 | 2021-04-21 | 日本電信電話株式会社 | 演算回路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5580913A (en) * | 1978-12-15 | 1980-06-18 | Toshiba Corp | Characteristic setting method for digital filter |
JPS58137045A (ja) * | 1982-02-05 | 1983-08-15 | Matsushita Electric Ind Co Ltd | 並列乗算器 |
JPH0720047B2 (ja) * | 1985-11-01 | 1995-03-06 | ソニー株式会社 | デイジタルフイルタ |
-
1987
- 1987-07-17 JP JP62179301A patent/JP2630778B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS6423614A (en) | 1989-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0577101B1 (en) | Multiplier accumulator | |
JP2630778B2 (ja) | 低周波帯域デジタルフィルタの構成方法 | |
EP0405915A2 (en) | Audio signal data processing system | |
JP2943112B2 (ja) | デジタル信号処理装置 | |
US6032081A (en) | Dematrixing processor for MPEG-2 multichannel audio decoder | |
KR0134042B1 (ko) | 디지탈 신호처리장치 및 신호처리방법 | |
JP2885725B2 (ja) | Mpeg−2オーディオ復号化器の合成フィルタ | |
JPS6259408A (ja) | デジタル・グラフイツク・イコライザ | |
JPH07101835B2 (ja) | デジタル信号処理装置 | |
JPH0748633B2 (ja) | オ−デイオ用振幅及び群遅延の調整装置 | |
JP3091574B2 (ja) | データ変換回路及びデータ変換方法 | |
JPH0695627B2 (ja) | 低周波帯域デジタルフィルタ | |
JP2647991B2 (ja) | 方向性強調を有するオーディオ信号処理装置 | |
JP3022186B2 (ja) | デジタル信号処理装置 | |
JP2589199B2 (ja) | デジタルデータの非線形変換方法及びこれを用いた信号処理装置 | |
JP2517702B2 (ja) | イコライザ装置 | |
JPH0719246B2 (ja) | デジタル信号処理装置 | |
JPH06119167A (ja) | ディジタル信号処理回路 | |
JPH07210541A (ja) | デジタル信号処理装置及び信号処理方法 | |
JPS62123820A (ja) | デジタル・グラフイツク・イコライザ | |
JPH1079644A (ja) | デジタルフィルタ | |
JPH0410009A (ja) | デジタルデータの非線形変換方法及びこれを用いた信号処理装置 | |
JPH0544040B2 (ja) | ||
JP3089726B2 (ja) | メモリ回路 | |
JPH0113244B2 (ja) |