JPH0612862B2 - デイジタルフイルタ - Google Patents

デイジタルフイルタ

Info

Publication number
JPH0612862B2
JPH0612862B2 JP61231060A JP23106086A JPH0612862B2 JP H0612862 B2 JPH0612862 B2 JP H0612862B2 JP 61231060 A JP61231060 A JP 61231060A JP 23106086 A JP23106086 A JP 23106086A JP H0612862 B2 JPH0612862 B2 JP H0612862B2
Authority
JP
Japan
Prior art keywords
data
coefficient
bit
exponent
bits
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 - Fee Related
Application number
JP61231060A
Other languages
English (en)
Other versions
JPS6384312A (ja
Inventor
章 臼井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP61231060A priority Critical patent/JPH0612862B2/ja
Priority to US07/101,857 priority patent/US4866648A/en
Publication of JPS6384312A publication Critical patent/JPS6384312A/ja
Publication of JPH0612862B2 publication Critical patent/JPH0612862B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • H03H17/0227Measures concerning the coefficients
    • H03H17/023Measures concerning the coefficients reducing the wordlength, the possible values of coefficients
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/06Non-recursive filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Filters That Use Time-Delay Elements (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、畳み込み演算を利用したディジタルフィル
タに関し、短い演算語長で高精度の演算を可能にしたも
のである。
〔従来の技術〕
ディジタルフィルタは、例えばCD(コンパクトディス
ク)プレーヤにおいて、再生されたPCM信号をD/A
変換する際にその前段に置かれて、D/A変換の後段の
LPFの負担を軽減する等の目的に利用されている。
ディジタルフィルタは、例えば第2図にFIR(非巡
回)形を示すように、入力サンプルxiを遅延回路10
−1,10−2,……10−20で1サンプルずつ順次
遅延し、係数乗算器12−1,12−2,……12−2
1で各遅延信号にフィルタのインパルス応答に対応する
係数C-10,C-9,……、C0,……、C10をそれぞれ乗
算し、アキュームレータ(加算器)14でこれら乗算値
を全て累算するいわゆる畳み込み演算により実現され
る。
畳み込み演算の各係数は、例えば第3図に示すような理
想フィルタを実現する場合、一般式 で与えられ、2進16ビットで表わすとそれぞれ第4図
に示すような値となる。なお、理想フィルタの係数は第
3図に示すようにt=0を中心に左右対称なので(第2
図の例ではC1=C-1,C2=C-2,……となる。)、第
4図では片側だけで示している。
第4図の表記は2進符号の1形式である2′sコンプリ
メントによるものである。2′sコンプリメントにおい
ては、MSB(最上位ビット)がサインビットで、これ
が“0”のものが正の値を示し、“1”のものが負の値
を示している。また、MSBから下位に向かって符号が
はじめて1から0にまたは0から1に変化する位置(第
4図中境界部分を点線で示す。)が下位にあるものほど
係数の値が小さくなる。
現在市販されているCDプレーヤ用ディジタルフィルタ
ICでは第4図に示すような係数をそのままの形で畳み
込み演算に用いる固定小数点演算形が一般的であった。
〔発明が解決しようとする問題点〕
ディジタルフィルタの畳み込み演算に用いる係数は、第
4図からわかるように値が大きなものもあれば小さなも
のもある。このように値が異なる係数をすべて同じ語長
(第4図では16ビット)で表わすと、小さな係数にと
っては上位ビットが使用されず、実質少ないビット数で
表わされることになり(第4図の例では、サインビット
を除いて係数C1(インパルスレスポンスの中心に隣接
する係数)は15ビットの有効桁を持っているのに対
し、係数C20は10ビットの有効桁しか持っていな
い。)、値が小さくなるほど係数の精度は実質的に低下
している。
また、係数を表わす語長が限られているため各係数は最
下位ビット未満の桁が丸められて(例えば切捨てられ
て)、丸め誤差を含んでいるので、畳み込み演算を行な
うと、アキュームレータによる累算によって丸め誤差が
累積されて上位ビットに繰り上がってきて増大し、精度
をさらに悪化させる。このような精度の悪化は、フィル
タの周波数特性においてリップルとして生じる。
固定係数演算形で丸め誤差が上位ビットに繰り上がって
こないようにするには、アキュームレータに正規のビッ
ト(最終的に畳み込み演算値として出力するビット)以
外にその下に畳み込み演算による累積回数に対応するビ
ット分余裕を持たせなければならない。例えば1024
回累算するならば、正規のビット以外にその下に10ビ
ットの余裕を持たせなければならず、畳み込み演算値と
して最終的に取り出すビット数の割にはアキュームレー
タの語長が長くなってしまう。
この発明は、前記従来の技術における問題点を解決し
て、短い演算語長で高精度のフィルタを実現できるディ
ジタルフィルタを提供しようとするものである。
〔問題点を解決するための手段〕
この発明のディジタルフィルタは、所定のフィルタ特性
を実現するインパルス応答からなる係数データを所定ビ
ット数の仮数データで表わしかつその指数の小さい順に
出力する係数データ手段と、乗算器および累算器を有
し、前記仮数データを順次対応する入力信号データに畳
み込む畳み込み手段と、前記仮数データの指数が変化す
る際前記累算器を制御して前回までの累算データを指数
変化分だけ減少方向にビットシフトするシフト制御手段
とを具備してなるものである。
〔作 用〕
この発明の前記解決手段によれば、係数を指数と仮数に
分けて、仮数データを入力データに畳み込んでいる。そ
して、指数付与は、乗算値の累算の際前の係数との指数
の変化分だけ、今まで累算値をビットシフトすることに
より与えている。また、累算を指数の小さなものから行
なうことにより、ビットシフトが減少方向に行なわれる
ようにしている。
この発明では、このような演算を差分指数形浮動小数点
演算と称している。ここで「差分指数形」とは、指数情
報として指数値そのものを持つ代わりに、指数の変化分
(差分)の情報を持つことを指している。 なお、係数
の指数とは、係数の桁を表わす情報をいい、仮数とは係
数から指数を除した値の情報(すなわち有効桁の数値を
含む情報)をいい、係数=仮数×(2の指数乗)とな
る。例えば、係数が 000111(サインビットを除
く)で表わされる場合、頭の3ビットを指数とすれば、
111が仮数となる。また、頭の2ビットを指数とすれ
ば、0111が仮数となる。また、頭の1ビットを指数
とすれば、00111が仮数となる。
この発明の前記解決手段によれば、係数を仮数と指数に
分けて、仮数のみを用いて畳み込み演算(浮動小数点演
算)を行なうので、畳み込み演算に際して係数データを
表わすのに用意された語長に対して、全ビットを仮数デ
ータを表わすのに用いることができ、係数の大小にかか
わらず同一の精度で係数を表わすことができる。したが
って、係数を表わすビット数が比較的少なくても係数自
体の誤差は少なくなり乗算器の演算語長を短くすること
ができる。
また、差分指数形でない通常の浮動小数点演算を用いた
場合には、乗算後に指数値(差分ではない)を付与して
アキュームレータで加算することになる。この場合乗算
の係数は差分指数形と同様に短くすることができ、乗算
器の演算語長は短くなるが、乗算出力に指数値そのもの
を付与するので、アキュームレータの語長は固定小数点
演算形と同様に長くなってしまう。この発明のように、
差分指数形の浮動小数点演算にして乗算出力に指数の差
分だけ与えるとともに、指数の小さな係数から累算して
いくことによりアキュームレータの語長を短くすること
ができる。
また、指数情報にしても差分情報だけでよいので、指数
値の情報をそのまま持つよりも指数情報の語長を短くで
きる。すなわち、例えば2-15,2-14という指数があっ
た場合従来のごとく−15,−14という形で指数情報
を持つものに比べ、−15−(−14)=−1すなわち
後者に1ビットという指数情報を持たせれば済むように
なり、指数情報を表わすためのビット数を極めて少なく
することができる。しかも、指数の小さい順に演算を行
なうので、シフト方向は同一方向(減少方向)となり、
シフト方向に関する情報は不要となる。
なお、指数情報を発生させる方法としては、例えば次の
方法が考えられる。
予め高精度で求めた係数をもとに仮数情報と指数情
報に分けてROMに入れておく方法 高精度係数自体をROMに持ち、演算過程で、仮数
データと指数データを随時発生し、これに基づいて処理
していく方法 周期的に指数が変化するように仮数と指数に分け
て、単に演算回数をカウントしてビットシフトする方法
(実施例で示す方法)。これは指数情報をハードウェア
で代替することに相当する。
さらに、この発明によれば、差分指数形浮動小数点演算
と、累算を指数の小さなものから行なっていくことによ
り、丸め誤差の累積を防止する効果と、微小なデータで
も生かすことができる効果を得ている。
すなわち、畳み込み演算で丸め誤差が累積されても指数
付与のための減少方法へのビットシフトにより、丸め誤
差の累算値も減少方向にビットシフトされていくので、
丸め誤差の増大を防止することができる。したがって、
従来装置のように丸め誤差が上位ビットまで繰り上らな
いように下位に余分なビットを用意する必要がなくな
り、アキュームレータの演算語長をさらに短くすること
ができる。
また、 なるデータA,B(A>B)があって、19ビットアキ
ュームレータでデータAにデータBを1024回足して
いく演算 をする場合、指数の大きい(係数の値が大きい)データ
Aから累算していくと、最初に19ビットアキュームレ
ータにデータAがセットされてしまい、以後データBを
累算していっても、常に誤差(アキュームレータ有効下
位ビットのさらに10ビット下)ということで切捨てら
れてしまう。データBを1024回累算しても結果は常
にAのままであり、微小なデータBは無視されてしま
う。
これに対し、この発明のように指数の小さい(係数の値
が小さい)データBから累算していくと、最初にデータ
Bの値を演算しているため、アキュームレータ(浮動演
算)はデータBの1024回の累算により、データBと
しては最下位の29ビット目にあった“1”が10ビッ
ト上に動き、19ビットアキュームレータの最下位に表
われる。つまり となって、これは最後に加算されるデータAに対しても
有効となり、結果は となって、微小なデータBが生かされることになる。
このようにして、この発明では丸め誤差の累積を防止し
つつ微小なデータも生かすということができる。
〔実施例〕
この発明をCDプレーヤの信号処理に適用した一実施例
を第1図に示す。
この実施例では、直線位相の225次(1/2fs(fs:入
力信号のサンプリング周波数)において)と41次(1/
4fsにおいて)のFIRフィルタを2段縦続に接続す
ることにより、4倍オーバサンプリングのディジタルフ
ィルタを構成し、通過帯域リップル±0.0001dB以
内、阻止帯域減衰量100dB以下を実現している。ま
た、直線位相であるため群遅延は一定となる。
また、直線位相のためインパルスレスポンスの係数が左
右対称となる点に着目して、先に加算してから乗算する
手法を採用し、乗算回数を減少させている。これによ
り、CDの1データあたり、1段目のフィルタ(1次オ
ーバサンプリングフィルタ)、2段目のフィルタ(2次
オーバサンプリングフィルタ)合わせて96回(1次5
6回で1つの1次補間データ、2枚20回×2で2つの
2次補間データを作成)、左チャンネル、右チャンネル
で192回(入力データとしては、片チャンネル112
データ、両チャンネルで224データ)の乗加算を8.
64MHzという高速で演算している。そして、最終出力
には、入力1データあたり4データ(入力データ1、1
次補間データ1、2次補間データ2)を18ビットにて
出力している。もともと16ビットのCDのデータを1
8ビットにして出力することにより、後段のD/A変換
器でハイビット信号処理(小振幅時にディジタル信号を
2ビットシフトアップし、アナログで1/4にアッテネー
トすることにより、D/A変換後の誤差を1/4にする)
を可能にしている。
この実施例における4倍オーバサンプリングの処理方法
は、畳み込み演算に1組の乗算器とアキュームレータを
用い、これを左右各チャンネルについて時分割的に利用
して、1次2倍オーバサンプリングと2次2倍オーバサ
ンプリングを行なっている。すなわち、左右チャンネル
について1個ずつ新しいデータが入力されると、はじめ
に1次2倍オーバサンプリングにより、左右各チャンネ
ルの入力データについて交互に畳み込み演算がなされ
て、左右各チャンネルの入力データの中間のタイミング
に1つずつ1次補間データが作成される。1次補間デー
タが作成されると、次に2次2倍オーバサンプリングに
より、入力データと入力データの中間のタイミングに作
成された1次補間データについて左右チャンネル交互に
畳み込み演算がなされて、1次補間データの両側の位置
で入力データと1次補間データの中間のタイミングに2
次補間データが左右チャンネル2個ずつ作成される。こ
のようにして、第5図に示すように、入力データ1個、
1次補間データ1個、2次補間データ2個の合計4個の
データが入力信号の1サンプリング周期fsの間に得ら
れて、1/4fsの周期で順次に出力されて、4倍オーバ
サンプリング出力が得られる。
畳み込み演算処理は、この発明に基づいて指数の小さな
係数から順に係数の仮数データを用いて乗算が行なわ
れ、指数が変化した分だけ累算値を減少方向へビットシ
フトして指数付けを行なっている。
また、この実施例では、CD用ディジタルフィルタの係
数がうまい具合に単調減少となっており、ほぼ4個ごと
に有効桁の最上位ビットが1ビット下がっている点に着
目し、係数を4個ずつ同じ指数になるように仮数を設定
し、4回の演算ごとに1ビットずつシフトダウンするよ
うにして、指数情報をハードウェアで代替することによ
り、浮動小数点演算でありながら係数ROMに指数部を
不要としている。
以下、第1図の実施例について説明する。
第1図のディジタルフィルタでは、前述のように直線位
相FIRフィルタを構成している。直線位相FIRフィ
ルタは、第6図に原理図を示すように、入力サンプルx
iを遅延回路16−1,16−2,……で1サンプルず
つ順次遅延し、入力信号および各遅延信号に係数乗算器
18−1,18−2,……で係数Ci(i=0,1,
2,……)を乗算し、各乗算結果をアキュームレータ2
0で累算することにより実現される。係数は、直線位相
の場合Coを中心に左右対称となる。
そこで、第1図の実施例の1次オーバサンプリングフィ
ルタでは、第7図に示すように、同じ係数を乗算するサ
ンプルどうしを加算器22−1,22−2,……で先に
加算しておいてから、係数乗算器18−1,18−2,
……で係数(仮数)を乗算して乗算結果を加算器24で
累算するようにしている。これにより、乗算回数を約半
分にすることができ、効率的に演算を行なうことができ
る。
なお、2次オーバサンプリングフィルタは、1次オーバ
サンプリングフィルタとは別のフィルタ特性を有し、1
次オーバサンプリングフィルタと同様に各遅延データご
とに係数(仮数)を乗算している。
第1図において、入力端子30にはCDから再生された
16ビットシリアルデータが左右チャンネル交互に入力
される。入力されたシリアルデータは、シリアル/パラ
レル変換回路32でパラレル信号に変換される。パラレ
ル信号に変換されたデータは、左チャンネルのものがラ
ッチ回路34にラッチされ、右チャンネルのものがラッ
チ回路36にラッチされて左右チャンネルごとのデータ
に振り分けられる。
ここで、ラッチ回路34,36はタイミング合せのため
に設けたものである。すなわち、後段のRAM38,4
4は、読出しと書込みを同時にできないので、書込みや
読出しを畳み込み演算のステップ中の支障のない時点で
任意に行なえるように一旦保持している。
ラッチ回路34にラッチされた左チャンネルのデータ
は、56ワードの容量を有するRAM38に順次入力さ
れ、それぞれ56サンプル遅延後に順次吐き出される。
RAM38から吐き出された左チャンネルのデータは、
ラッチ回路39(ラッチ回路34と同様にタイミング合
せのためのもの)を介してさらに56ワードの容量を有
するRAM40に順次入力され、それぞれ56サンプル
遅延後順次消去される。このようにして、RAM38,
40には左チャンネルの最新の112個のデータが保持
される。
RAMをRAM38,40の2ブロツクに分けたのは、
直線位相フィルタにおける係数の対称性を利用して第7
図に示すような乗算回数を減らした畳み込み演算を行な
うため、共通の係数が掛けられる2つのデータを別々の
RAM38,40に記憶して、それらを同時に取り出せ
るようにするためである。すなわち、RAM38,40
は、前記第7図の直線位相FIRフィルタの原理図にお
ける遅延回路A,Bにそれぞれ相当する。
RAM38,40からは、共通の係数が掛けられるデー
タが2個ずつ対になって順次読み出され、セレクタ42
の端子A1,B1にそれぞれ供給される。
ラッチ回路36にラッチされた右チャンネルのデータ
は、56ワードの容量を有するRAM44に順次入力さ
れ、それぞれ56サンプル遅延後に順次吐き出される。
RAM44から吐き出された右チャンネルのデータは、
ラッチ回路45(ラッチ回路36と同様にタイミング合
せのためのもの)を介してさらに56ワードの容量を有
するRAM46に順次入力され、それぞれ56サンプル
遅延後順次消去される。このようにして、RAM44,
46には右チャンネルの最新の112個のデータが保持
される。
RAM44,46もRAM38,40と同様に、前記第
7図の直線位相FIRフィルタの原理図における遅延回
路A,Bにそれぞれ相当する。
RAM44,46からは、共通の係数が掛けられるデー
タが2個ずつ対になって順次読み出され、セレクタ42
の端子A2,B2にそれぞれ供給される。
なお、遅延回路48は、左チャンネルの信号と右チャン
ネルの信号を時分割的に処理するためのタイミング合わ
せ用である。
セレクタ2は、時分割で畳み込み演算をするため、端子
A1,B1に入力された左チャンネルの信号と、端子A
2,B2に入力された右チャンネルの信号を交互に選択
して出力する。フルアダー50は第7図の原理図におけ
る乗算前の加算器22−1,22−2,……に相当し、
セレクタ42の端子A1,B1に入力された左チャンネ
ルのデータどうし、端子A2,B2に入力された右チャ
ンネルのデータどうしを交互に加算する。
フルアダー50の出力はセレクタ52に入力される。セ
レクタ52は1次オーバサンプリングと2次オーバサン
プリングに使用するデータを選択するものである。1次
オーバサンプリングのときは、フルアダー50の出力
(A1+B1またはA2+B2)を選択する。2次オー
バサンプリングのときは、フルアダー50の出力(B1
またはB2、すなわち加算データでなく、RAM40ま
たは46に保持されている中の1つのデータ)と後述す
るRAM72または76からの1次オーバサンプリング
で作成された1つの1次補間データを選択する。
乗算器54は、畳み込み演算における乗算を行なうもの
で、1次オーバサンプリングと2次オーバサンプリング
について時分割時に、さらに1次、2次の各オーバサン
プリングにおいて左右各チャンネルについて時分割的に
用いられる。
係数ROM58は、1次オーバサンプリングの係数と2
次オーバサンプリングの係数(それぞれ左右チャンネル
共通)を仮数の形で記憶している。
1次オーバサンプリングは225次の係数を用いてい
る。ここで、ゼロデータの乗算は不要であり、入力デー
タは1次オーバサンプリング出力からでなく、RAM4
0,46に保持されている入力データを出力線68から
直接出力する。また、通過帯域が のローパスフィルタは係数が1個置きにゼロとなるので
記憶する係数としては1個置きの112個の係数だけあ
ればよい。さらには、前述のように直線位相なので、2
個ずつ共通の係数があるからその半分の56個の係数を
1次オーバサンプリングの係数(仮数)として係数RO
M58は記憶している。
この56個の係数について仮数化する前のデータ(C1
〜C56)の一例を第8A図と第8B図に示す。これ
は、2′sコンプリメンタル2進符号で各データを46
ビットで表わしたもので、最上位ビットがサインビッ
ト、最上位ビットからはじめて符号が変化する位置(実
線で示す。)が後にあるものほど値が小さい。有効桁を
見てみると、係数の値が最も大きいデータC1がサイン
ビットを除いて45ビットあるのに対し、係数の値が最
も小さいデータC56では27ビットしかなく、18ビ
ットもの差がある。
第8A図、第8B図の係数データC1〜C56に基づい
て、この発明で利用する仮数データN1〜N56を作成
する場合、CD用ディジタルフィルタの係数は単調減少
特性を有するので、このまま順序を入れ代えなくても、
指数の大きさの順に並べられ仮数データを作ることがで
きる。
第8A図、第8B図の係数データC1〜C56に基づい
て作成した仮数データN1〜N56の一例を第9図に示
す。仮数データN1〜N56は最上位ビットがサインビ
ットで全18ビットで構成されるデータである。これ
は、4個ごとに指数が1ビットずつ変化していくように
したものである。係数データC1〜C56において指数
と係数に区切った位置を第8A図、第8B図に点線で示
す。このように、4個ごとに指数を1ビットずつ変化し
ていくと、このデータでは仮数データN1〜N56の有
効桁をほぼ一定にすることができる。すなわち、最も大
きい仮数データN1の有効桁は17ビットであるのに対
し、最も小さい仮数データN56の有効桁は13ビット
となり、その差は4ビットだけになる。したがって、小
さな係数でも高い精度どなる(最も小さい仮数データN
56はもとの係数データC56でいえば、最上位ビット
から32ビットまでの情報を含んでいる。) 第1図の係数ROM58では、第9図の仮数データN1
〜N56を指数の小さなものから順に(N56,N5
5,N54,……,N2,N1)読み出す。読み出され
た各仮数データN56〜N1は、セレクタ52から対応
して出力される入力データと乗算器54において乗算さ
れる。すなわち、仮数データN56はRAM38,40
(RAM44,46)に保持された最も古い入力データ
と最も新しい入力データの加算値に乗算される。また、
次の仮数データN55は2番目に古い入力データと2番
目に新しい入力データの加算値に乗算される。このよう
にして56組の乗算が順次実行される。なお、仮数デー
タN56〜N1は左右両チャンネルの入力データに共通
して用いらるので、1つの仮数データが係数ROM58
から読み出されている間に左チャンネルの入力データと
の乗算と右チャンネルの入力データとの乗算が時分割的
に行なわれる、このようにして、乗算器54は、係数R
OM58から仮数データN56が読み出されるごとに左
右各チャンネルの対応する入力データと1回ずつ乗算を
行なう。これにより、乗算器54からは左右両チャンネ
ルの乗算値が交互に56個ずつ出力される。
乗算器54の演算語長は2′sコンプリメントで表わさ
れる19ビット(入力データ)と18ビット(仮数デー
タ)の乗算であるから36ビットとなるが、各乗算デー
タのうち上位23ビットを乗算結果として出力する。
アキュームレータ60は左右各チャンネルについて56
個ずつの乗算データを順次入力し、左右チャンネルごと
に累算していく。すなわち、アキュームレータ60は、
出力を遅延回路62で2データ分遅延して入力側に帰還
し、乗算器54から出力される新たな乗算データに加算
して累算を行なう。遅延回路62で2データ分遅延する
のは、乗算器54から左右チャンネルの乗算データが交
互に出力されるためで、これにより、左チャンネルの乗
算データは左チャンネルの乗算データどうし累算され、
右チャンネルの乗算データは右チャンネルの乗算データ
どうし累算されていく。
なお、この累算を行なう際、指数データが変化するごと
に(指数データが変化する位置を第9図中右側に<で示
す。)累算データをビットシフト回路64で1ビットず
つ(仮数データを作成する際1ビットずつ指数を変化さ
せていったためで、仮数データ作成のし方によっては1
ビットずつとは限らない。)減少方向に(下位方向に)
ビットシフトしていく。これにより、相対的な指数付け
がなされ、指数が小さな乗算データは順次小さな値にな
っていき、差分指数形浮動小数点演算が実現される。
仮数データを作成する際4個の係数ごとに1ビットずつ
指数を変化させていったので、このビットシフトも左右
各チャンネル4回の累算ごとに行なわれる。そこで、こ
の実施例では、1/4カウンタ66で累算回数をカウン
トし、左右各チャンネル4回累算するごとに累算データ
を1ビットずつシフトダウンするようにしている。これ
により、係数ROM58には指数データが不要となり、
係数ROM58の容量を小さくすることができる。
以上のようにして、アキュームレータ60において左右
各チャンネルについて56回ずつ累算を行なうと、左右
各チャンネルの最終累算データが得られる。これがRA
M38,40(RAM44,46)に保持された中央部
分のデータの1次補間データである。
ここで、以上の畳み込み演算における各部の語長の関係
を第10図に示す。乗算器54の演算値は前述のよう
に、36ビットの語長を有し、そのうち上位の23ビッ
トがアキュームレータ60に入力される。すなわち丸め
誤差を含む下位13ビットが乗算誤差として扱われる。
アキュームレータ60の演算値は累算によって繰り上が
っていくが、左右各チャンネル4回の累算ごとに累算デ
ータを減少方向にビットシフトしていくので、3ビット
以上は繰り上がらない。したがって、乗算器54の出力
ビットに対し、その上位に2ビット以上のヘッドマージ
ンを設ければ、累算データはアキュームレータ60の語
長からははみ出さない。この実施例ではこのヘッドマー
ジンを3ビット設けている。これにより、アキュームレ
ータ60の語長は26ビットとなる。56回累算する間
に14回ビットシフトするので、26+14=40すな
わち40ビットのアキュームレータと同様の精度で累算
が行なわれることになる。
乗算データの丸め誤差はアキュームレータ60により累
積されていくが、左右各チャンネル4回の累算ごとに行
なわれるビットシフトにより、丸め誤差の累算値もシフ
トダウンされ下位3ビット以上には増大しない。したが
って、累算誤差マージンを3ビット以上設ければ、丸め
誤差は補間データには現われない。この実施例では累算
誤差マージンを4ビット設けて、それより上位の19ビ
ットを補間データとして利用するようにしている。
以上のようにして、RAM38,44に新しいデータが
入力されるごとに、1次補間データが得られる。この1
次補間データはオーバフロープロテクタ65で19ビッ
トのオーバフロープロテクトをかけられる。
オーバフロープロテクタ65は第1次補間データのオー
バフロープロテクタであり、+6dB以上は値を最大値と
して固定するものである。すなわち、2′sコンプリメ
ントでは正の最大値を超えると負の値となってしまい動
作に支障を生じるので、これを防止するものである。
なお、このディジタルフィルタでは最終的に18ビット
でデータを出力するのに対し、それより1ビット高い1
9ビットでオーバフロープロテクトをかけているのは、
次の2次2倍オーバサンプリングでより多いビット演算
をさせて、2次2倍オーバサンプリングの精度を高める
ためである。
オーバフロープロテクタ65から出力される一次補間デ
ータは、2次2倍オーバサンプリングのため、ラッチ回
路70,74で左右各チャンネルごとに振り分けられて
RAM72,76に順次送り込まれていく。
2次2倍オーバサンプリングは、41次の係数(左右両
チャンネル共通)を用いている(2次2倍オーバサンプ
リングはこの程度の次数で十分である)。また、この場
合もゼロデータの乗算は不要であり、入力データはRA
M40,46に保持されている入力データを出力線68
から直接出力し、1次補間データは、RAM72,76
に保持されている1次補間データを出力線71から直接
出力する。そして、この41次の係数も1個置きにゼロ
となるから実際には1個置きの20個の係数だけあれば
よい。この20個の2次2倍サンプリング用の係数は仮
数の形で係数ROM58に保持されている。この20個
の仮数データには入力データと1次補間データの交互の
データが乗算されるので、入力データと1次補間データ
は左右各チャンネル10個ずつあればよい。したがって
RAM72,76は左右各チャンネル10個ずつ最新の
1次補間データを保持する。
また、2次2倍オーバサンプリングに用いられる入力デ
ータは、RAM72,76に保持された各1次補間デー
タの中間の位置のデータであり、それはRAM40,4
6に保持されている最新の10個のデータである。
2次2倍オーバサンプリングにおいては、係数ROM5
8に保持された20個の2次2倍オーバサンプリング用
仮数データが指数の小さなものから順に読み出される。
そして、これに合わせてRAM40,46またはRAM
72,76から対応する入力データまたは1次補間デー
タが読み出され、入力データについてはセレクタ42、
フルアダー50(加算は行なわれず通過するのみ)、セ
レクタ52を介して、また1次補間データについてはセ
レクタ56,52を介してそれぞれ乗算器54に入力さ
れ、左右チャンネル交互に乗算が行なわれる。なお、遅
延回路78は前記遅延回路48と同じ働きをするもの
で、同一クロック動作を可能とするための時刻合せ用で
ある。また、セレクタ56は前記セレクタ42と同様に
左右各チャンネルのデータを時分割的に出力するための
ものである。また、セレクタ52は入力データと1次補
間データの一方を選択する働きをする。
乗算器54で2次2倍オーバサンプリング用の左右各2
0回ずつの乗算が行なわれると、その乗算値はアキュー
ムレータ60と2データ分の遅延回路62を巡回して累
算されていく。この累算の際、指数の変化分だけ累算デ
ータはビットシフト回路64で減少方向にビットシフト
されて相対的な指数付けが行なわれる。左右各20個ず
つの乗算値が全部累算されると、その最終累算値が2次
補間データとして得られる。1サンプリング周期間に2
次補間データは2個入るので、もう1個の2次補間デー
タを同様の演算により作成する。この場合、この2次補
間データは2次2倍オーバサンプリング用係数データを
前回より1個分ずらして入力データ、1次補間データに
乗算し、累算することにより得られる。
このようにして得られた左右各チャンネル2個ずつの2
次補間データはオーバフロープロテクタ及びセレクタ8
2(+0dBの最終プロテクトを行なうもの)を介してレ
ジスタ84に一旦保持される。また、これら2個の2次
補間データの中間の位置の左右各チャンネルの1次補間
データ(RAM72,76の各中央部分に保持されたデ
ータ)がRAM72,76から読み出されて、信号線7
1、オーバフロープロテクタ及びセレクタ82を介して
レジスタ84に一旦保持される。また、2次補間データ
の一方に隣接する位置の左右各チャンネルの入力データ
(RAM40,46に保持されている。)が信号線6
8、オーバフロープロテクタ及びセレクタ82を介して
レジスタ84に一旦保持される。
このようにして、レジスタ84には入力データ1個、こ
の入力データに隣接する1次補間データ1個、この1次
補間データの両側にそれぞれ隣接する2次補間データ2
個の合計4個のデータが左右各チャンネルについて(合
計8個)保持される。そして、レジスタ84からは、保
持されたデータが入力データ、一方の2次補間データ、
1次補間データ、他方の2次補間データの順に1/4fs
の間隔で出力される。なお左右チャンネルのデータは時
分割出力されるので間に他方のチャンネルのデータが同
様の順序で出力される。
レジスタ84から出力される4倍オーバサンプリングさ
れたデータは、パラレル/シリアル変換回路86でシリ
アルデータに変換されて出力端子90から出力され、D
/A変換器に送り込まれる。
なお、タイミング制御回路92は、このフィジタルコィ
ルタの各部のタイミングを取るためのものである。
以上のように、第1図のディジタルフィルタでは、デー
タが入力されるごとに1次2倍オーバサンプリング1回
と、2次2倍オーバサンプリング2回が実行されて4倍
オーバサンプリングデータが出力される。
第1図のディジタルフィルタにおける1次2倍オーバサ
ンプリングフィルタ、2次2倍オーバサンプリングフィ
ルタと各周波数特性を第11図、第12図にそれぞれ示
す。また、両者による4倍オーバサンプリングの総合周
波数特性を第13図に、同通過帯域リップル特性を第1
4図にそれぞれ示す。これによれば、通過帯域リップル
±0.0001dB以内、阻止帯域減衰量100dB以下を
実現している。また、直線位相であるため群遅延は一定
である。
なお、前記実施例では、この発明をCDプレーヤにおけ
るD/A変換前の4倍オーバサンプリングのディジタル
ローパスフィルタに適用して、2′sコンプリメント2
進符号のフィルタリングを行なう場合について示した
が、CDプレーヤ以外の機器に適用することもできる。
また、ローパスフィルタに限らず、バンドパスフィルタ
やハイパスフィルタ等にも適用できる。また、オーバサ
ンプリングを行なわない場合や2′sコンプリメント2
進符号以外で表わされているデータについても適用でき
る。
また、前記実施例では単調減少傾向を示す係数を用いた
ので、係数の配列は並べ代える必要はなかったが、設定
しようとするフィルタ特性に応じて、指数が小さな順に
並ぶように配列を並び代えて畳み込みを行なうようにす
る。当然入力データ選択も係数並び代えに対応させて行
なうことになる。また、一度にシフトするビット数は前
記実施例ではすべて1ビットずつとしたが、2ビット以
上に設定することも可能である。
また、前記実施例では指数情報をハードウェアで置き換
えたが、前述のようにROM等に持ったり、あるいは畳
み込みのつど演算により指数情報を算出して与えること
も可能である。
〔発明の効果〕
以上説明したように、この発明によれば、次の効果が得
られる。
浮動小数点演算を用いたので、係数データをその大
小にかかわらず高精度データとして用いることができ
る。これにより、係数(仮数)語長を短くでき、乗算語
長も短くすることができる。
浮動小数点演算を差分指数形として、指数の変化分
だけ累算データをビットシフトするようにしたので、ア
キュームレータの語長を短くすることができる。また、
指数情報は変化分の情報を持てばよいので、指数情報の
語長を短くすることができる。
差分指数形浮動小数点演算を指数の小さなものから
行なうようにしたので、アキュームレータの語長が短く
ても、丸め誤差の累積を防止することができ、また微小
な有効データを生かすこともできる。
以上から、短い語長でも高精度のフィルタが実現さ
れる。
【図面の簡単な説明】
第1図は、この発明をCDプレーヤにおけるD/A変換
前のディジタルフィルタに適用した一実施例を示すブロ
ック図である。 第2図は、畳み込み演算がよるディジタルフィルタの原
理を示す回路図である。 第3図は、理想フィルタのインパルス応答を示す図であ
る。 第4図は、従来のCDプレーヤ用ディジタルフィルタに
用いていた固定小数点演算用の係数の一例を示す図であ
る。 第5図は、4倍オーバサンプリングの説明図である。 第6図は、直線位相特性を有するディジタルフィルタの
原理を示す回路図である。 第7図は、第6図の演算を簡略化した回路図である。 第8A図、第8B図は、CDプレーヤ用ディジタルフィ
ルタにおける1次2倍オーバサンプリング用係数データ
を示す図である。 第9図は、第1図の実施例において差分指数形浮動小数
点演算による1次2倍オーバサンプリングに用いられる
仮数データを示す図で、第8A図、第8B図のデータに
基づいて作成したデータである。 第10図は、第1図における畳み込み演算での各部の語
長の関係を示す図である。 第11図は、第1図における1次2倍オーバサンプリン
グフィルタの周波数特性図である。 第12図は、第1図における2次2倍オーバサンプリン
グフィルタの周波数特性図である。 第13図は、第1図のディジタルフィルタにおける1
次、2次オーバサンプリングによる総合周波数特性を示
す図である。 第14図は、第1図のディジタルフィルタにおける通過
帯域リップル特性を示す図である。 54……乗算器、58……係数ROM、60……アキュ
ームレータ、64……ビットシフト回路。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】所定のフィルタ特性を実現するインパルス
    応答からなる係数データを所定ビット数の仮数データで
    表わしかつその指数の小さい順に出力する係数データ手
    段と、 乗算器および累算器を有し、前記仮数データを順次対応
    する入力信号データを畳み込む畳み込み手段と、 前記仮数データの指数が変化する際前記累算器を制御し
    て前回までの累算データを指数変化分だけ減少方向にビ
    ットシフトするシフト制御手段 とを具備してなるディジタルフィルタ。
JP61231060A 1986-09-29 1986-09-29 デイジタルフイルタ Expired - Fee Related JPH0612862B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61231060A JPH0612862B2 (ja) 1986-09-29 1986-09-29 デイジタルフイルタ
US07/101,857 US4866648A (en) 1986-09-29 1987-09-28 Digital filter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61231060A JPH0612862B2 (ja) 1986-09-29 1986-09-29 デイジタルフイルタ

Publications (2)

Publication Number Publication Date
JPS6384312A JPS6384312A (ja) 1988-04-14
JPH0612862B2 true JPH0612862B2 (ja) 1994-02-16

Family

ID=16917654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61231060A Expired - Fee Related JPH0612862B2 (ja) 1986-09-29 1986-09-29 デイジタルフイルタ

Country Status (2)

Country Link
US (1) US4866648A (ja)
JP (1) JPH0612862B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0225987A (ja) * 1988-07-15 1990-01-29 Fuji Xerox Co Ltd 画像処理集積回路装置
JPH07109974B2 (ja) * 1989-04-22 1995-11-22 富士ゼロックス株式会社 ディジタルフィルタ処理装置
US5027306A (en) * 1989-05-12 1991-06-25 Dattorro Jon C Decimation filter as for a sigma-delta analog-to-digital converter
JPH07109975B2 (ja) * 1989-10-02 1995-11-22 富士ゼロックス株式会社 ディジタルフィルタ
EP0553832B1 (en) * 1992-01-30 1998-07-08 Matsushita Electric Industrial Co., Ltd. Sound field controller
EP0608665B1 (en) * 1993-01-29 1998-01-07 STMicroelectronics S.r.l. Method of filtering high resolution digital signals and corresponding architecture of digital filter
US5586068A (en) * 1993-12-08 1996-12-17 Terayon Corporation Adaptive electronic filter
KR970001314B1 (ko) * 1994-04-14 1997-02-05 엘지반도체 주식회사 디지탈 필터
JPH0923137A (ja) * 1995-07-10 1997-01-21 Sony Corp 信号処理装置
US5926580A (en) * 1997-01-30 1999-07-20 Hewlett-Packard Company Convolution algorithm for efficient hardware implementation
JP4245227B2 (ja) * 1999-06-03 2009-03-25 シャープ株式会社 デジタルマッチドフィルタ
AUPQ941600A0 (en) * 2000-08-14 2000-09-07 Lake Technology Limited Audio frequency response processing sytem
JP2005311601A (ja) * 2004-04-20 2005-11-04 Sanyo Electric Co Ltd デジタルフィルタ装置およびそのフィルタ処理方法
JP4702392B2 (ja) * 2008-04-28 2011-06-15 カシオ計算機株式会社 共鳴音発生装置および電子楽器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPH105518A (ja) * 1996-06-21 1998-01-13 Nippon Spindle Mfg Co Ltd 集塵機におけるバッグフイルタ保持用リテーナの取付け装置

Also Published As

Publication number Publication date
JPS6384312A (ja) 1988-04-14
US4866648A (en) 1989-09-12

Similar Documents

Publication Publication Date Title
JPH0612862B2 (ja) デイジタルフイルタ
JP3000325B2 (ja) 有限インパルス応答デジタル・フィルタ
EP0022302B1 (en) Decimation, linear phase, digital fir filter
TWI261966B (en) Digital filter device and filtering process method of the same
JP2007067646A (ja) サンプリングレート変換方法及びその回路
US7492848B2 (en) Method and apparatus for efficient multi-stage FIR filters
JP2779617B2 (ja) 有限インパルス応答フィルタ
US5440503A (en) Digital filtering circuit operable as a three-stage moving average filter
JP3066241B2 (ja) ディジタルフィルタ及び同ディジタルフィルタを用いたオーバサンプリング型アナログ/ディジタル変換器
GB2081544A (en) Digital filters
KR100545978B1 (ko) 데시메이션 필터 및 인터폴레이션 필터
EP0097167A1 (en) A time multiplexed n-ordered digital filter
EP0034241B1 (en) Non-recursive digital filter
EP0559154A1 (en) Digital filter
JPH0126204B2 (ja)
JP4397488B2 (ja) オーバーサンプリング処理回路およびデジタル−アナログ変換器
US5928314A (en) Digital filter having a substantially equal number of negative and positive weighting factors
JP2733403B2 (ja) デシメーション用ディジタルフィルタ
CN110247642B (zh) 一种fir滤波方法及滤波器
JPS61100015A (ja) 標本化周波数変換用デイジタルフイルタ
JP3097599B2 (ja) ディジタルフィルタ
JP3090043B2 (ja) ディジタル補間フィルタ回路
JPH0770948B2 (ja) デシメーション用ディジタルフィルタ
JPH0342729B2 (ja)
Mahanta et al. FIR filter structures having low sensitivity and roundoff noise

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees