JPH05158656A - 積和演算装置および積和演算方法 - Google Patents
積和演算装置および積和演算方法Info
- Publication number
- JPH05158656A JPH05158656A JP3348942A JP34894291A JPH05158656A JP H05158656 A JPH05158656 A JP H05158656A JP 3348942 A JP3348942 A JP 3348942A JP 34894291 A JP34894291 A JP 34894291A JP H05158656 A JPH05158656 A JP H05158656A
- Authority
- JP
- Japan
- Prior art keywords
- coefficient
- data
- product
- stored
- storage means
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 精度の高い積和演算を行う。
【構成】 指数部が増減しながら、極大点が大きくなる
一般的なFIR型ディジタルフィルタの係数の場合にお
いては、最大の指数部(図7においては、係数C1の指
数部)に対して、他の係数の指数部が単調増加し、且つ
指数部間の差分が0または1になるように、各係数の仮
数部を調整することにより、丸め誤差の影響を低減した
積和演算を行うことができる。
一般的なFIR型ディジタルフィルタの係数の場合にお
いては、最大の指数部(図7においては、係数C1の指
数部)に対して、他の係数の指数部が単調増加し、且つ
指数部間の差分が0または1になるように、各係数の仮
数部を調整することにより、丸め誤差の影響を低減した
積和演算を行うことができる。
Description
【0001】
【産業上の利用分野】本発明は、積和演算を行う場合に
用いて好適な積和演算装置、並びに積和演算方法に関す
る。
用いて好適な積和演算装置、並びに積和演算方法に関す
る。
【0002】
【従来の技術】例えばp次のディジタルフィルタにおい
ては、入力されたp個のデータ(ディジタル信号)と、
p個の所定の係数とのそれぞれの積が、順次累積加算さ
れ、即ちp個のデータと、p個の所定の係数とが積和演
算され、所望のフィルタ出力が得られるようになされて
いる。
ては、入力されたp個のデータ(ディジタル信号)と、
p個の所定の係数とのそれぞれの積が、順次累積加算さ
れ、即ちp個のデータと、p個の所定の係数とが積和演
算され、所望のフィルタ出力が得られるようになされて
いる。
【0003】
【発明が解決しようとする課題】このように、従来のデ
ィジタルフィルタでは、データと係数との積和演算が行
われるが、この係数が、固定小数点形式で扱われる場
合、係数の精度が装置で扱われる語長(ビット数)に制
限されるので、即ち係数が装置で扱うことのできるビッ
ト数に切り捨てられ、丸め誤差が生じるので、所望のフ
ィルタ出力を得ることができない課題があった。
ィジタルフィルタでは、データと係数との積和演算が行
われるが、この係数が、固定小数点形式で扱われる場
合、係数の精度が装置で扱われる語長(ビット数)に制
限されるので、即ち係数が装置で扱うことのできるビッ
ト数に切り捨てられ、丸め誤差が生じるので、所望のフ
ィルタ出力を得ることができない課題があった。
【0004】そこで、装置で扱うことのできるビット数
を増やす方法があるが、この方法は、装置を構成する素
子数を増やし、その消費電力を増加させる課題があっ
た。
を増やす方法があるが、この方法は、装置を構成する素
子数を増やし、その消費電力を増加させる課題があっ
た。
【0005】さらに、例えばローパスフィルタとして設
計されたディジタルフィルタにおいては、0次の係数に
対して対称な係数の絶対値が、次数が大きくなるにつれ
て、一般的に小さくなるので、装置で扱うことのできる
ビット数を増加させた場合、次数が大きい係数、即ち絶
対値の小さい係数は、上位ビットを余らすことになるの
で、効率が悪くなる。
計されたディジタルフィルタにおいては、0次の係数に
対して対称な係数の絶対値が、次数が大きくなるにつれ
て、一般的に小さくなるので、装置で扱うことのできる
ビット数を増加させた場合、次数が大きい係数、即ち絶
対値の小さい係数は、上位ビットを余らすことになるの
で、効率が悪くなる。
【0006】そこで、係数を指数部と仮数部とで、即ち
浮動小数点形式で扱う方法がある。しかしながら、指数
部の大きい積(データと係数との積)に、指数部の小さ
い積が累積加算される場合、この方法は、これらの積の
指数部の大きさを同一にする、即ち桁合わせをするため
に、指数部の小さい積の仮数部の下位ビットを切り捨て
るので、丸め誤差が増加する課題があった。
浮動小数点形式で扱う方法がある。しかしながら、指数
部の大きい積(データと係数との積)に、指数部の小さ
い積が累積加算される場合、この方法は、これらの積の
指数部の大きさを同一にする、即ち桁合わせをするため
に、指数部の小さい積の仮数部の下位ビットを切り捨て
るので、丸め誤差が増加する課題があった。
【0007】本発明は、このような状況に鑑みてなされ
たものであり、精度の高い積和演算ができるようにする
ものである。
たものであり、精度の高い積和演算ができるようにする
ものである。
【0008】
【課題を解決するための手段】請求項1に記載の積和演
算装置は、データを記憶するデータ記憶手段としてのデ
ータメモリ1と、係数を記憶する係数記憶手段としての
係数メモリ5と、係数メモリ5に記憶された係数の指数
部の大きさに対応した順番で、データメモリ1に記憶さ
れたデータと係数メモリ5に記憶された係数との積を計
算し、累積加算する累積加算手段としての乗算器4、累
積加算器6、およびアキュームレータ(ACC)7とを
備えることを特徴とする。
算装置は、データを記憶するデータ記憶手段としてのデ
ータメモリ1と、係数を記憶する係数記憶手段としての
係数メモリ5と、係数メモリ5に記憶された係数の指数
部の大きさに対応した順番で、データメモリ1に記憶さ
れたデータと係数メモリ5に記憶された係数との積を計
算し、累積加算する累積加算手段としての乗算器4、累
積加算器6、およびアキュームレータ(ACC)7とを
備えることを特徴とする。
【0009】請求項2に記載の積和演算装置は、乗算器
4、累積加算器6、およびACC7は、係数メモリ5に
記憶された係数の指数部の小さい順に、データメモリ1
に記憶されたデータと係数メモリ5に記憶された係数と
の積を計算し、累積加算することを特徴とする。
4、累積加算器6、およびACC7は、係数メモリ5に
記憶された係数の指数部の小さい順に、データメモリ1
に記憶されたデータと係数メモリ5に記憶された係数と
の積を計算し、累積加算することを特徴とする。
【0010】請求項3に記載の積和演算装置は、係数の
指数部の小さい順に係数メモリ5に記憶された係数を読
み出す係数読出し手段としてのダウンカウンタ10をさ
らに備えることを特徴とする。
指数部の小さい順に係数メモリ5に記憶された係数を読
み出す係数読出し手段としてのダウンカウンタ10をさ
らに備えることを特徴とする。
【0011】請求項4に記載の積和演算装置は、ダウン
カウンタ10により係数メモリ5に記憶された係数が読
み出された順番に対応して、データメモリ1に記憶され
たデータを読み出すデータ読出し手段としてのXOR回
路11、加算器13、およびベースカウンタ12をさら
に備えることを特徴とする。
カウンタ10により係数メモリ5に記憶された係数が読
み出された順番に対応して、データメモリ1に記憶され
たデータを読み出すデータ読出し手段としてのXOR回
路11、加算器13、およびベースカウンタ12をさら
に備えることを特徴とする。
【0012】請求項5に記載の積和演算装置は、乗算器
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部間の差分が単調増加する順番で、
データメモリ1に記憶されたデータと係数メモリ5に記
憶された係数との積を計算し、累積加算することを特徴
とする。
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部間の差分が単調増加する順番で、
データメモリ1に記憶されたデータと係数メモリ5に記
憶された係数との積を計算し、累積加算することを特徴
とする。
【0013】請求項6に記載の積和演算装置は、乗算器
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部間の差分が0または1になる順番
で、データメモリ1に記憶されたデータと係数メモリ5
に記憶された係数との積を計算し、累積加算することを
特徴とする。
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部間の差分が0または1になる順番
で、データメモリ1に記憶されたデータと係数メモリ5
に記憶された係数との積を計算し、累積加算することを
特徴とする。
【0014】請求項7に記載の積和演算装置は、乗算器
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部の大きさに対応して、係数を任意
の項数よりなる和の形に展開し、データメモリ1に記憶
されたデータとの積を計算し、累積加算することを特徴
とする。
4、累積加算器6、およびACC7は係数メモリ5に記
憶された係数の指数部の大きさに対応して、係数を任意
の項数よりなる和の形に展開し、データメモリ1に記憶
されたデータとの積を計算し、累積加算することを特徴
とする。
【0015】請求項8に記載の積和演算装置は、係数メ
モリ5に記憶された係数の指数部間の差分に対応して、
乗算器4、累積加算器6、およびACC7により累積加
算された積をビットシフトするビットシフト手段として
のシフタ8をさらに備えることを特徴とする。
モリ5に記憶された係数の指数部間の差分に対応して、
乗算器4、累積加算器6、およびACC7により累積加
算された積をビットシフトするビットシフト手段として
のシフタ8をさらに備えることを特徴とする。
【0016】請求項9に記載の積和演算装置は、係数メ
モリ5は係数の指数部間の差分を記憶することを特徴と
する。
モリ5は係数の指数部間の差分を記憶することを特徴と
する。
【0017】請求項10に記載の積和演算方法は、デー
タを記憶し、係数を記憶し、係数の指数部の大きさに対
応した順番で、データと係数との積を計算し、累積加算
することを特徴とする。
タを記憶し、係数を記憶し、係数の指数部の大きさに対
応した順番で、データと係数との積を計算し、累積加算
することを特徴とする。
【0018】請求項11に記載の積和演算装置は、デー
タを記憶する記憶手段としてのプログラムの処理ステッ
プS1と、記憶されたデータと係数の仮数部との積を計
算する乗算手段としてのプログラムの処理ステップS2
乃至S5と、計算された積を累積加算する累積加算手段
としてのプログラムの処理ステップS6と、係数の指数
部間の差分に対応して累積加算された積をビットシフト
するビットシフト手段としてのプログラムの処理ステッ
プS7,S8とを備えることを特徴とする。
タを記憶する記憶手段としてのプログラムの処理ステッ
プS1と、記憶されたデータと係数の仮数部との積を計
算する乗算手段としてのプログラムの処理ステップS2
乃至S5と、計算された積を累積加算する累積加算手段
としてのプログラムの処理ステップS6と、係数の指数
部間の差分に対応して累積加算された積をビットシフト
するビットシフト手段としてのプログラムの処理ステッ
プS7,S8とを備えることを特徴とする。
【0019】
【作用】請求項1に記載の積和演算装置においては、デ
ータメモリ1にデータを記憶し、係数メモリ5に係数を
記憶し、係数メモリ5に記憶された係数の指数部の大き
さに対応した順番で、データメモリ1に記憶されたデー
タと係数メモリ5に記憶された係数との積を累積加算す
る。従って、指数部の大きい係数と指数部の小さい係数
が混在している場合でも、精度の高い累積加算をするこ
とができる。
ータメモリ1にデータを記憶し、係数メモリ5に係数を
記憶し、係数メモリ5に記憶された係数の指数部の大き
さに対応した順番で、データメモリ1に記憶されたデー
タと係数メモリ5に記憶された係数との積を累積加算す
る。従って、指数部の大きい係数と指数部の小さい係数
が混在している場合でも、精度の高い累積加算をするこ
とができる。
【0020】請求項2に記載の積和演算装置において
は、乗算器4、累積加算器6、およびACC7は、係数
メモリ5に記憶された係数の指数部の小さい順に、デー
タメモリ1に記憶されたデータと係数メモリ5に記憶さ
れた係数との積を累積加算する。従って、指数部の小さ
い、即ち絶対値の小さい係数に生ずる丸め誤差を低減す
ることができる。
は、乗算器4、累積加算器6、およびACC7は、係数
メモリ5に記憶された係数の指数部の小さい順に、デー
タメモリ1に記憶されたデータと係数メモリ5に記憶さ
れた係数との積を累積加算する。従って、指数部の小さ
い、即ち絶対値の小さい係数に生ずる丸め誤差を低減す
ることができる。
【0021】請求項3に記載の積和演算装置において
は、係数の指数部の小さい順に係数メモリ5に記憶され
た係数を読み出す。従って、最初に、指数部の小さい係
数に対する累積加算が行われるので、指数部の小さい、
即ち絶対値の小さい係数に生ずる丸め誤差を低減するこ
とができる。
は、係数の指数部の小さい順に係数メモリ5に記憶され
た係数を読み出す。従って、最初に、指数部の小さい係
数に対する累積加算が行われるので、指数部の小さい、
即ち絶対値の小さい係数に生ずる丸め誤差を低減するこ
とができる。
【0022】請求項4に記載の積和演算装置において
は、係数メモリ5に係数が記憶された順番に対応して、
データメモリ1に記憶されたデータを読み出す。従っ
て、所望する係数とデータとの積の累積加算を行うこと
ができる。
は、係数メモリ5に係数が記憶された順番に対応して、
データメモリ1に記憶されたデータを読み出す。従っ
て、所望する係数とデータとの積の累積加算を行うこと
ができる。
【0023】請求項5に記載の積和演算装置において
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部間の差分が単調増加す
る順番で、データメモリ1に記憶されたデータと係数メ
モリ5に記憶された係数との積を計算し、累積加算す
る。従って、係数の絶対値が、ほぼ大きくなっていく順
番で、係数とデータとの積が累積加算されるので、絶対
値の小さい係数の桁落ちが防止される。
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部間の差分が単調増加す
る順番で、データメモリ1に記憶されたデータと係数メ
モリ5に記憶された係数との積を計算し、累積加算す
る。従って、係数の絶対値が、ほぼ大きくなっていく順
番で、係数とデータとの積が累積加算されるので、絶対
値の小さい係数の桁落ちが防止される。
【0024】請求項6に記載の積和演算装置において
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部の間差分が0または1
になる順番で、データメモリ1に記憶されたデータと係
数メモリ5に記憶された係数との積を計算する。従っ
て、係数の絶対値が大きく変化しない順番で、係数とデ
ータとの積が累積加算されるので、絶対値の小さい係数
の桁落ちが防止される。
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部の間差分が0または1
になる順番で、データメモリ1に記憶されたデータと係
数メモリ5に記憶された係数との積を計算する。従っ
て、係数の絶対値が大きく変化しない順番で、係数とデ
ータとの積が累積加算されるので、絶対値の小さい係数
の桁落ちが防止される。
【0025】請求項7に記載の積和演算装置において
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部の大きさに対応して、
係数を任意の項数よりなる和の形に展開し、データメモ
リ1に記憶されたデータとの積を計算する。従って、和
の形に展開された係数の絶対値は小さくなり、係数の絶
対値の最大値と最小値と差が小さくなるので、係数の桁
落ちが防止される。
は、乗算器4、累積加算器6、およびACC7は係数メ
モリ5に記憶された係数の指数部の大きさに対応して、
係数を任意の項数よりなる和の形に展開し、データメモ
リ1に記憶されたデータとの積を計算する。従って、和
の形に展開された係数の絶対値は小さくなり、係数の絶
対値の最大値と最小値と差が小さくなるので、係数の桁
落ちが防止される。
【0026】請求項8に記載の積和演算装置において
は、係数メモリ5に記憶された係数の指数部間の差分に
対応して、乗算器4、累積加算器6、およびACC7に
より累積加算された積をシフトする。従って、指数部の
値の異なる係数から計算された積の桁を合わせることが
できる。
は、係数メモリ5に記憶された係数の指数部間の差分に
対応して、乗算器4、累積加算器6、およびACC7に
より累積加算された積をシフトする。従って、指数部の
値の異なる係数から計算された積の桁を合わせることが
できる。
【0027】請求項9に記載の積和演算装置において
は、係数メモリ5は係数の指数部間の差分を記憶する。
従って、係数の指数部を記憶する場合に比べ、係数メモ
リ5の記憶容量を節約することができる。
は、係数メモリ5は係数の指数部間の差分を記憶する。
従って、係数の指数部を記憶する場合に比べ、係数メモ
リ5の記憶容量を節約することができる。
【0028】請求項10に記載の積和演算方法において
は、データを記憶し、係数を記憶し、係数の指数部の大
きさに対応した順番で、データと係数との積を計算し、
累積加算する。従って、従って、指数部の大きい係数と
指数部の小さい係数が混在している場合でも、精度の高
い累積加算をすることができる。
は、データを記憶し、係数を記憶し、係数の指数部の大
きさに対応した順番で、データと係数との積を計算し、
累積加算する。従って、従って、指数部の大きい係数と
指数部の小さい係数が混在している場合でも、精度の高
い累積加算をすることができる。
【0029】請求項11に記載の積和演算装置において
は、データを記憶し、記憶されたデータと浮動小数点形
式で表した係数の仮数部との積を計算し、計算された積
を累積加算し、係数の指数部間の差分に対応して累積加
算した積をビットシフトする。従って、指数部の値の異
なる係数から計算された積の桁を合わせる場合の桁落ち
を最小限に抑えることができる。
は、データを記憶し、記憶されたデータと浮動小数点形
式で表した係数の仮数部との積を計算し、計算された積
を累積加算し、係数の指数部間の差分に対応して累積加
算した積をビットシフトする。従って、指数部の値の異
なる係数から計算された積の桁を合わせる場合の桁落ち
を最小限に抑えることができる。
【0030】
【実施例】図1は本発明の積和演算装置を応用したディ
ジタルローパスフィルタ(ディジタルLPF)の一実施
例の構成を示すブロック図である。データメモリ1は、
その入力端子DIより入力される、例えば16ビットの
データ(ディジタルデータ)を1フレーム分記憶し、そ
のアドレス端子ADに入力されるアドレス信号が示すア
ドレスに記憶されたデータを、その出力端子DOよりラ
ッチ回路2、加算器3およびスイッチ14に出力する。
ラッチ回路2は、クロック端子CLKに、データメモリ
1よりデータが出力される(読み出される)周期1/C
K(周波数CK)の2倍の周期2/CKのクロック信号
が入力されるタイミングで、データメモリ1より出力さ
れる16ビットのデータをラッチし、加算器3の入力端
子Aに出力する。即ち、ラッチ回路2は、データメモリ
1より読み出されたデータを1つおきにラッチし、加算
器3に供給する。
ジタルローパスフィルタ(ディジタルLPF)の一実施
例の構成を示すブロック図である。データメモリ1は、
その入力端子DIより入力される、例えば16ビットの
データ(ディジタルデータ)を1フレーム分記憶し、そ
のアドレス端子ADに入力されるアドレス信号が示すア
ドレスに記憶されたデータを、その出力端子DOよりラ
ッチ回路2、加算器3およびスイッチ14に出力する。
ラッチ回路2は、クロック端子CLKに、データメモリ
1よりデータが出力される(読み出される)周期1/C
K(周波数CK)の2倍の周期2/CKのクロック信号
が入力されるタイミングで、データメモリ1より出力さ
れる16ビットのデータをラッチし、加算器3の入力端
子Aに出力する。即ち、ラッチ回路2は、データメモリ
1より読み出されたデータを1つおきにラッチし、加算
器3に供給する。
【0031】加算器3は、ラッチ回路2より出力される
16ビットのデータ、およびデータメモリ1より出力さ
れる16ビットのデータのMSBをそれぞれ1ビット拡
張し、拡張したビットにラッチ回路2より出力されるデ
ータ、およびデータメモリ1より出力されるデータのM
SB(符号ビット)をコピーし、即ちデータを加算する
ことにより生ずるオーバーフロー対策を施し、それぞれ
を加算する。さらに、加算器3は、MSBを拡張し、加
算した17ビットのデータのLSBを切り捨て、上位1
6ビットを乗算器4に出力する。
16ビットのデータ、およびデータメモリ1より出力さ
れる16ビットのデータのMSBをそれぞれ1ビット拡
張し、拡張したビットにラッチ回路2より出力されるデ
ータ、およびデータメモリ1より出力されるデータのM
SB(符号ビット)をコピーし、即ちデータを加算する
ことにより生ずるオーバーフロー対策を施し、それぞれ
を加算する。さらに、加算器3は、MSBを拡張し、加
算した17ビットのデータのLSBを切り捨て、上位1
6ビットを乗算器4に出力する。
【0032】係数メモリ5は、このディジタルLPFの
係数Cn(nは自然数)を、例えば8ビットの仮数部、
並びに例えば1ビットの、係数Cnおよびその1つ前の
次数の係数Cn-1の指数部間の差分に分けて記憶してお
り、そのアドレス端子ADに入力されるダウンカウンタ
10より出力される値が示すアドレスに記憶された係数
Cnの仮数部および指数部間の差分を、乗算器4および
シフタ8に供給する。但し、本実施例において、係数メ
モリ5に記憶される係数の仮数部は、指数部間の差分を
1ビットにするように、即ち指数部間の差分を0または
1にするように調整されている。
係数Cn(nは自然数)を、例えば8ビットの仮数部、
並びに例えば1ビットの、係数Cnおよびその1つ前の
次数の係数Cn-1の指数部間の差分に分けて記憶してお
り、そのアドレス端子ADに入力されるダウンカウンタ
10より出力される値が示すアドレスに記憶された係数
Cnの仮数部および指数部間の差分を、乗算器4および
シフタ8に供給する。但し、本実施例において、係数メ
モリ5に記憶される係数の仮数部は、指数部間の差分を
1ビットにするように、即ち指数部間の差分を0または
1にするように調整されている。
【0033】ここで、このディジタルLPFは、入力さ
れたディジタル信号を2倍オーバーサンプリングした
(入力されたディジタル信号のサンプリング周波数fs
の2倍の周波数2fsの)フィルタ出力を得る38次の
補間型ディジタルフィルタで、そのインパルス応答は、
図2に示すような波形になるように設計されている。図
2に示したインパルス応答からわかるように、このLP
Fの係数は、その次数が高くなるほど係数の絶対値が小
さくなる傾向があり、0次の係数C0に対して対称で、
また、補間型なので、0次の係数C0(=1)を除く偶
数次の係数C2,C4,C6,C8,C10,C12,C14,C
16,C18は、すべて0になる。また、奇数次の係数は、 C1=0.6328 C3=−0.2031 C5=0.1152 C7=−0.07520 C9=0.05078 C11=−0.03516 C13=0.02393 C15=−0.01587 C17=0.009888 C19=−0.008057 となっている。このように、本実施例の場合において
は、0次を除く偶数次の係数C2乃至C18(C2,C4,
C6,C8,C10,C12,C14,C16,C18)が、0にな
るので、係数の指数部間の差分は、偶数次の係数C2乃
至C18を除いた奇数次の係数C1乃至C19(C1,C3,
C5,C7,C9,C11,C13,C15,C17,C19)にお
ける差分、即ち係数C2q+1およびC2q-1の指数部間の差
分を用いる。従って、係数C2q+1の指数部間の差分は、
係数C2q+1およびC2q-1の指数部間の差分とする。但
し、qは自然数である。
れたディジタル信号を2倍オーバーサンプリングした
(入力されたディジタル信号のサンプリング周波数fs
の2倍の周波数2fsの)フィルタ出力を得る38次の
補間型ディジタルフィルタで、そのインパルス応答は、
図2に示すような波形になるように設計されている。図
2に示したインパルス応答からわかるように、このLP
Fの係数は、その次数が高くなるほど係数の絶対値が小
さくなる傾向があり、0次の係数C0に対して対称で、
また、補間型なので、0次の係数C0(=1)を除く偶
数次の係数C2,C4,C6,C8,C10,C12,C14,C
16,C18は、すべて0になる。また、奇数次の係数は、 C1=0.6328 C3=−0.2031 C5=0.1152 C7=−0.07520 C9=0.05078 C11=−0.03516 C13=0.02393 C15=−0.01587 C17=0.009888 C19=−0.008057 となっている。このように、本実施例の場合において
は、0次を除く偶数次の係数C2乃至C18(C2,C4,
C6,C8,C10,C12,C14,C16,C18)が、0にな
るので、係数の指数部間の差分は、偶数次の係数C2乃
至C18を除いた奇数次の係数C1乃至C19(C1,C3,
C5,C7,C9,C11,C13,C15,C17,C19)にお
ける差分、即ち係数C2q+1およびC2q-1の指数部間の差
分を用いる。従って、係数C2q+1の指数部間の差分は、
係数C2q+1およびC2q-1の指数部間の差分とする。但
し、qは自然数である。
【0034】奇数次の係数C1乃至C19を、仮数部が8
ビットで、指数部間の差分が0または1になるような浮
動小数点形式で表すと、次のようになる。 C1 =01010001×2-7 C3 =11001100×2-8 C5 =00111011×2-9 C7 =10110011×2-10 C9 =01101000×2-11 C11=10111000×2-11 C13=01100010×2-12 C15=10111111×2-12 C17=01010001×2-13 C19=10111110×2-13
ビットで、指数部間の差分が0または1になるような浮
動小数点形式で表すと、次のようになる。 C1 =01010001×2-7 C3 =11001100×2-8 C5 =00111011×2-9 C7 =10110011×2-10 C9 =01101000×2-11 C11=10111000×2-11 C13=01100010×2-12 C15=10111111×2-12 C17=01010001×2-13 C19=10111110×2-13
【0035】このように、係数C1およびC3の指数部間
の差分が1、係数C3およびC5の指数部間の差分が1、
係数C5およびC7の指数部間の差分が1、係数C7およ
びC9の指数部間の差分が1、係数C9およびC11の指数
部間の差分が0、係数C11およびC13の指数部間の差分
が1、係数C13およびC15の指数部間の差分が0、係数
C15およびC17の指数部間の差分が1、並びに係数C17
およびC19の指数部間の差分が0になるように、仮数部
が調整された係数C1乃至C19が、係数メモリ5に、例
えばアドレス0番地から記憶されている(図3)。但
し、本装置において、係数メモリ5のアドレス0番地に
記憶された係数C1の仮数部の小数点位置が、基準の小
数点位置として扱われるので、係数C1の指数部間の差
分は係数メモリ5に0と記憶される。
の差分が1、係数C3およびC5の指数部間の差分が1、
係数C5およびC7の指数部間の差分が1、係数C7およ
びC9の指数部間の差分が1、係数C9およびC11の指数
部間の差分が0、係数C11およびC13の指数部間の差分
が1、係数C13およびC15の指数部間の差分が0、係数
C15およびC17の指数部間の差分が1、並びに係数C17
およびC19の指数部間の差分が0になるように、仮数部
が調整された係数C1乃至C19が、係数メモリ5に、例
えばアドレス0番地から記憶されている(図3)。但
し、本装置において、係数メモリ5のアドレス0番地に
記憶された係数C1の仮数部の小数点位置が、基準の小
数点位置として扱われるので、係数C1の指数部間の差
分は係数メモリ5に0と記憶される。
【0036】乗算器4は、加算器3より出力される16
ビットのデータと、係数メモリ5に記憶された係数Cn
の8ビットの仮数部との積を計算し、23ビットの計算
結果(積)を出力する。ここで、加算器3より出力され
る16ビットのデータ、および係数メモリ5に記憶され
た係数Cnの8ビットの仮数部の各MSBは、符号ビッ
トなので、計算された積は、24ビット(=16ビット
×8ビット)でななく、23ビット(=15ビット×7
ビット+1ビット(符号ビット))になる。
ビットのデータと、係数メモリ5に記憶された係数Cn
の8ビットの仮数部との積を計算し、23ビットの計算
結果(積)を出力する。ここで、加算器3より出力され
る16ビットのデータ、および係数メモリ5に記憶され
た係数Cnの8ビットの仮数部の各MSBは、符号ビッ
トなので、計算された積は、24ビット(=16ビット
×8ビット)でななく、23ビット(=15ビット×7
ビット+1ビット(符号ビット))になる。
【0037】累積加算器6は、その入力端子A0乃至A
23から入力される乗算器4より出力された23ビットの
データ(積)のMSBを1ビット拡張した24ビットの
データと、その入力端子B0乃至B23から入力されるア
キュームレータ(ACC)7に記憶された24ビットの
データとを加算して、その結果を出力端子Σ0乃至Σ2 3
より出力する。
23から入力される乗算器4より出力された23ビットの
データ(積)のMSBを1ビット拡張した24ビットの
データと、その入力端子B0乃至B23から入力されるア
キュームレータ(ACC)7に記憶された24ビットの
データとを加算して、その結果を出力端子Σ0乃至Σ2 3
より出力する。
【0038】シフタ8は、係数メモリ5より読み出され
た仮数部に対応する係数の指数部間の差分が0である場
合、累積加算器6の出力端子Σ0乃至Σ23を、それぞれ
ACC7の入力端子D0乃至D23に接続する(累積加算
器6の出力をそのままACC7に供給する)。また、シ
フタ8は、係数メモリ5より読み出された仮数部に対応
する係数の指数部間の差分が1である場合、累積加算器
6の出力端子Σ1乃至Σ23を、それぞれACC7の入力
端子D0乃至D22に接続し、さらに累積加算器6の出力
端子Σ23をACC7の入力端子D23に接続する(累積加
算器6の出力を1ビットシフトダウンして、ACC7に
供給する)。
た仮数部に対応する係数の指数部間の差分が0である場
合、累積加算器6の出力端子Σ0乃至Σ23を、それぞれ
ACC7の入力端子D0乃至D23に接続する(累積加算
器6の出力をそのままACC7に供給する)。また、シ
フタ8は、係数メモリ5より読み出された仮数部に対応
する係数の指数部間の差分が1である場合、累積加算器
6の出力端子Σ1乃至Σ23を、それぞれACC7の入力
端子D0乃至D22に接続し、さらに累積加算器6の出力
端子Σ23をACC7の入力端子D23に接続する(累積加
算器6の出力を1ビットシフトダウンして、ACC7に
供給する)。
【0039】ACC7は、そのクロック端子CLKに周
期2/CKのクロック信号が入力されるタイミングで、
シフタ8を介して累積加算器6より出力される24ビッ
トのデータを一時記憶(ラッチ)する。さらに、ACC
7は、そのクリア端子CLRに周期1/fsのクリア信
号が入力されるタイミングで、記憶内容をリセットする
(記憶している値を0にする)。
期2/CKのクロック信号が入力されるタイミングで、
シフタ8を介して累積加算器6より出力される24ビッ
トのデータを一時記憶(ラッチ)する。さらに、ACC
7は、そのクリア端子CLRに周期1/fsのクリア信
号が入力されるタイミングで、記憶内容をリセットする
(記憶している値を0にする)。
【0040】スイッチ14は、1/2fs周期で切り換
わり、データメモリ1より読み出されたデータ、または
ACC7に記憶されたデータを出力フリップフロップ
(FF)9に、交互に出力する。出力FF9は、スイッ
チ14を介してデータメモリ1より読み出されたデー
タ、またはACC7に記憶されたデータをラッチし、例
えばD/A変換器(図示せず)などに供給する。
わり、データメモリ1より読み出されたデータ、または
ACC7に記憶されたデータを出力フリップフロップ
(FF)9に、交互に出力する。出力FF9は、スイッ
チ14を介してデータメモリ1より読み出されたデー
タ、またはACC7に記憶されたデータをラッチし、例
えばD/A変換器(図示せず)などに供給する。
【0041】ダウンカウンタ10は、周期1/fsのロ
ード(LOAD)信号が供給されるタイミングで所定の
初期値、例えば14Hをセットし、そのクロック端子C
LKに周期1/CKのクロック信号が供給されるタイミ
ングで14Hから0Hまでをカウントダウンし、このカ
ウントしている値(カウントダウン値)をXOR回路1
1に供給する。さらに、ダウンカウンタ10は、カウン
トダウン値の上位4ビットを係数メモリ5のアドレス端
子ADに供給する。
ード(LOAD)信号が供給されるタイミングで所定の
初期値、例えば14Hをセットし、そのクロック端子C
LKに周期1/CKのクロック信号が供給されるタイミ
ングで14Hから0Hまでをカウントダウンし、このカ
ウントしている値(カウントダウン値)をXOR回路1
1に供給する。さらに、ダウンカウンタ10は、カウン
トダウン値の上位4ビットを係数メモリ5のアドレス端
子ADに供給する。
【0042】XOR回路11は、4つのXORゲートか
らなり、各XORゲートの一方の入力端子にはダウンカ
ウンタ10のカウントダウン値の上位4ビットがそれぞ
れ入力され、他の入力端子には、共通してダウンカウン
タ10のカウントダウン値のLSBが入力されている。
XOR回路11の他の入力端子に入力されるカウントダ
ウン値のLSBが0である場合、XOR回路11は、一
方の入力端子に入力されるカウントダウン値の上位4ビ
ットを変化させずに出力し、XOR回路11の他の入力
端子に入力されるカウントダウン値のLSBが1である
場合、XOR回路11は、一方の入力端子に入力される
カウントダウン値の上位4ビットをビット反転して出力
する。さらに、XOR回路11は、出力した4ビットの
ビット列に、そのMSBとして、ダウンカウンタ10よ
り出力されたカウントダウン値のLSBを付加した5ビ
ットのビット列(値)を加算器13の入力端子Bに供給
する。
らなり、各XORゲートの一方の入力端子にはダウンカ
ウンタ10のカウントダウン値の上位4ビットがそれぞ
れ入力され、他の入力端子には、共通してダウンカウン
タ10のカウントダウン値のLSBが入力されている。
XOR回路11の他の入力端子に入力されるカウントダ
ウン値のLSBが0である場合、XOR回路11は、一
方の入力端子に入力されるカウントダウン値の上位4ビ
ットを変化させずに出力し、XOR回路11の他の入力
端子に入力されるカウントダウン値のLSBが1である
場合、XOR回路11は、一方の入力端子に入力される
カウントダウン値の上位4ビットをビット反転して出力
する。さらに、XOR回路11は、出力した4ビットの
ビット列に、そのMSBとして、ダウンカウンタ10よ
り出力されたカウントダウン値のLSBを付加した5ビ
ットのビット列(値)を加算器13の入力端子Bに供給
する。
【0043】ベースカウンタ12は、そのクロック端子
CLKに周期1/fsのクロック信号が供給されるタイ
ミングで、カウントしている値(カウントアップ値)を
カウントアップする。加算器13は、ベースカウンタ1
2より出力されるカウントアップ値と、XOR回路11
より出力される値とを加算し、この加算値を、データメ
モリ1のアドレス端子ADに出力する。
CLKに周期1/fsのクロック信号が供給されるタイ
ミングで、カウントしている値(カウントアップ値)を
カウントアップする。加算器13は、ベースカウンタ1
2より出力されるカウントアップ値と、XOR回路11
より出力される値とを加算し、この加算値を、データメ
モリ1のアドレス端子ADに出力する。
【0044】次に、図5のタイミングチャートを参照し
て、その動作について説明する。データメモリ1におい
て、サンプリング周波数fsでサンプリングされ、周期
1/fs(図5(a))ごとに供給される1フレームの
ディジタルデータが、アドレス0番地から順次記憶され
る(書き込まれる)(図5(h))。
て、その動作について説明する。データメモリ1におい
て、サンプリング周波数fsでサンプリングされ、周期
1/fs(図5(a))ごとに供給される1フレームの
ディジタルデータが、アドレス0番地から順次記憶され
る(書き込まれる)(図5(h))。
【0045】ここで、一般的に1フレームは、(ディジ
タルフィルタの次数n+1)サンプルのデータD-n,D
-(n-1),・・・,D-1,D0,D1,・・・,Dn-1,Dn
であるが、本実施例の場合、補間型のディジタルフィル
タであるため、1フレームは奇数次のフィルタ係数数
(図2)、即ち20サンプルのデータD-19,D-17,D
-15,D-13,D-11,D-9,D-7,D-5,D-3,D-1,
D1,D3,D5,D7,D9,D11,D13,D15,D17,
D19になる。
タルフィルタの次数n+1)サンプルのデータD-n,D
-(n-1),・・・,D-1,D0,D1,・・・,Dn-1,Dn
であるが、本実施例の場合、補間型のディジタルフィル
タであるため、1フレームは奇数次のフィルタ係数数
(図2)、即ち20サンプルのデータD-19,D-17,D
-15,D-13,D-11,D-9,D-7,D-5,D-3,D-1,
D1,D3,D5,D7,D9,D11,D13,D15,D17,
D19になる。
【0046】また、ベースカウンタ12において、デー
タメモリ1に1フレームのデータが記憶されるタイミン
グ、即ち周期1/fsで、カウントアップ値が順次カウ
ントアップされる。従って、ベースカウンタ12のカウ
ントアップ値は、データD1が記憶されるデータメモリ
1のアドレスに等しくなるように、初期設定されている
ので、このカウントアップ値は、常に、データメモリ1
に順次記憶されるデータのデータD1のアドレスを示す
ようになっている。
タメモリ1に1フレームのデータが記憶されるタイミン
グ、即ち周期1/fsで、カウントアップ値が順次カウ
ントアップされる。従って、ベースカウンタ12のカウ
ントアップ値は、データD1が記憶されるデータメモリ
1のアドレスに等しくなるように、初期設定されている
ので、このカウントアップ値は、常に、データメモリ1
に順次記憶されるデータのデータD1のアドレスを示す
ようになっている。
【0047】一方、ダウンカウンタ10において、周期
1/fsのロード(カウンタ同期ロード)信号が入力さ
れると(図5(e))、初期値14Hがセットされ、周
波数fsを少なくとも1フレームのデータ数倍である、
例えば32倍した周波数CK、即ち周期1/CKのクロ
ック信号(図5(d))が供給されるタイミングで14
Hから0Hまでがカウントダウンされ(図5(f))、
このカウントダウン値がXOR回路11に供給される。
XOR回路11において、ダウンカウンタ10より出力
されたダウンカウンタ値(ビット列)のLSBが0であ
る場合、ダウンカウンタ10より出力された5ビットの
カウントダウン値は、そのLSBをMSBに移動したビ
ット列(値)に変換され、ダウンカウンタ10より出力
されたダウンカウンタ値(ビット列)のLSBが1であ
る場合、ダウンカウンタ値は、上位4ビットをビット反
転し、この4ビットのビット列のMSBとして、カウン
トダウン値のLSBを追加した5ビットのビット列
(値)に変換され、加算器13の入力端子Bに出力され
る(図5(g))。
1/fsのロード(カウンタ同期ロード)信号が入力さ
れると(図5(e))、初期値14Hがセットされ、周
波数fsを少なくとも1フレームのデータ数倍である、
例えば32倍した周波数CK、即ち周期1/CKのクロ
ック信号(図5(d))が供給されるタイミングで14
Hから0Hまでがカウントダウンされ(図5(f))、
このカウントダウン値がXOR回路11に供給される。
XOR回路11において、ダウンカウンタ10より出力
されたダウンカウンタ値(ビット列)のLSBが0であ
る場合、ダウンカウンタ10より出力された5ビットの
カウントダウン値は、そのLSBをMSBに移動したビ
ット列(値)に変換され、ダウンカウンタ10より出力
されたダウンカウンタ値(ビット列)のLSBが1であ
る場合、ダウンカウンタ値は、上位4ビットをビット反
転し、この4ビットのビット列のMSBとして、カウン
トダウン値のLSBを追加した5ビットのビット列
(値)に変換され、加算器13の入力端子Bに出力され
る(図5(g))。
【0048】ここで、図4は、ダウンカウンタ10より
出力されるダウンカウンタ値と、XOR回路11より出
力されるビット列(値)との関係を示している。ダウン
カウンタ値が14H、即ち101002である場合、ダ
ウンカウンタ値のLSBは0であるから、XOR回路1
1の出力は、ダウンカウンタ値のLSBをMSBに移動
したビット列010102、即ち10になる。ダウンカ
ウンタ値が13H、即ち100112である場合、ダウ
ンカウンタ値のLSBは1であるから、XOR回路11
の出力は、ダウンカウンタ値の上位4ビットを反転し
(10012→01102)、そのMSBとして、ダウン
カウンタ値のLSBである12を追加したビット列10
1102、即ち−10になる。以下同様にして、図4に
示す値が、XOR回路11より出力される。
出力されるダウンカウンタ値と、XOR回路11より出
力されるビット列(値)との関係を示している。ダウン
カウンタ値が14H、即ち101002である場合、ダ
ウンカウンタ値のLSBは0であるから、XOR回路1
1の出力は、ダウンカウンタ値のLSBをMSBに移動
したビット列010102、即ち10になる。ダウンカ
ウンタ値が13H、即ち100112である場合、ダウ
ンカウンタ値のLSBは1であるから、XOR回路11
の出力は、ダウンカウンタ値の上位4ビットを反転し
(10012→01102)、そのMSBとして、ダウン
カウンタ値のLSBである12を追加したビット列10
1102、即ち−10になる。以下同様にして、図4に
示す値が、XOR回路11より出力される。
【0049】図4からXOR回路11より出力される値
が、データメモリ1にデータD1が記憶されるアドレス
を基準にした、データメモリ1に記憶されたデータD
-19乃至D19(D-19,D-17,D-15,D-13,D-11,D
-9,D-7,D-5,D-3,D-1,D1,D3,D5,D7,D
9,D11,D13,D15,D17,D19)のアドレスのオフ
セット(オフセットアドレス)になっていることが判
る。
が、データメモリ1にデータD1が記憶されるアドレス
を基準にした、データメモリ1に記憶されたデータD
-19乃至D19(D-19,D-17,D-15,D-13,D-11,D
-9,D-7,D-5,D-3,D-1,D1,D3,D5,D7,D
9,D11,D13,D15,D17,D19)のアドレスのオフ
セット(オフセットアドレス)になっていることが判
る。
【0050】加算器13において、ベースカウンタ12
より出力されるデータD1が記憶されているデータメモ
リ1のアドレスと、XOR回路11より出力されるオフ
セットアドレスとが加算され、データメモリ1のアドレ
ス端子ADに供給される。データメモリ1において、加
算器13より供給されるアドレスに記憶されているデー
タDnが読み出され、ラッチ回路2、加算器3およびス
イッチ14に供給される。従って、データメモリ1にお
いて、加算器13よりアドレスが出力される周期1/C
Kで、乗算器4で次数の高い係数Cn、即ちその絶対値
が比較的小さい係数との積が計算されるデータから順次
読み出される、即ちデータD-19,D19,D-17,D17,
D-15,D15,D-13,D13,D-11,D11,D-9,D9,
D-7,D7,D-5,D5,D-3,D3,D-1,D1の順番で
読み出される(図5(i))。
より出力されるデータD1が記憶されているデータメモ
リ1のアドレスと、XOR回路11より出力されるオフ
セットアドレスとが加算され、データメモリ1のアドレ
ス端子ADに供給される。データメモリ1において、加
算器13より供給されるアドレスに記憶されているデー
タDnが読み出され、ラッチ回路2、加算器3およびス
イッチ14に供給される。従って、データメモリ1にお
いて、加算器13よりアドレスが出力される周期1/C
Kで、乗算器4で次数の高い係数Cn、即ちその絶対値
が比較的小さい係数との積が計算されるデータから順次
読み出される、即ちデータD-19,D19,D-17,D17,
D-15,D15,D-13,D13,D-11,D11,D-9,D9,
D-7,D7,D-5,D5,D-3,D3,D-1,D1の順番で
読み出される(図5(i))。
【0051】このように、周期1/CKでデータメモリ
1より、D-19,D19,D-17,D17,D-15,D15,D
-13,D13,D-11,D11,D-9,D9,D-7,D7,
D-5,D5,D-3,D3,D-1,D1の順番で読み出され
たデータのうちデータD-19,D-17,D-15,D-13,D
-11,D-9,D-7,D-5,D-3,D-1は、ラッチ回路2
において、そのクロック端子CLKに周期2/CKのク
ロック信号(図5(c))が入力されるタイミングでラ
ッチされる(図5(j))。ラッチ回路2において、周
期2/CKごとにデータがラッチされ、そのデータが加
算器3に供給され、データメモリ1において、周期1/
CKごとにデータが読み出され、同様に加算器3に供給
される。
1より、D-19,D19,D-17,D17,D-15,D15,D
-13,D13,D-11,D11,D-9,D9,D-7,D7,
D-5,D5,D-3,D3,D-1,D1の順番で読み出され
たデータのうちデータD-19,D-17,D-15,D-13,D
-11,D-9,D-7,D-5,D-3,D-1は、ラッチ回路2
において、そのクロック端子CLKに周期2/CKのク
ロック信号(図5(c))が入力されるタイミングでラ
ッチされる(図5(j))。ラッチ回路2において、周
期2/CKごとにデータがラッチされ、そのデータが加
算器3に供給され、データメモリ1において、周期1/
CKごとにデータが読み出され、同様に加算器3に供給
される。
【0052】従って、加算器3において、周期2/CK
でラッチ回路2にラッチされたデータD-19乃至D
-1(D-19,D-17,D-15,D-13,D-11,D-9,
D-7,D-5,D-3,D-1)と、周期1/CKでデータメ
モリ1より読み出されたデータD-19,D19,D-17,D
17,D-15,D15,D-13,D13,D-11,D11,D-9,
D9,D- 7,D7,D-5,D5,D-3,D3,D-1,D1の
うちラッチ回路2でラッチされないデータD19,D17,
D15,D13,D11,D9,D7,D5,D3,D1とが、そ
れぞれ加算され、ラッチ回路2でデータDnがラッチさ
れるタイミング、即ち周期2/CKで、加算されたデー
タD-19+D19,D-17+D17,D-15+D15,D-13+D
13,D-11+D11,D-9+D9,D-7+D7,D-5+D5,
D-3+D3,D-1+D1が乗算器4に順次出力される。
でラッチ回路2にラッチされたデータD-19乃至D
-1(D-19,D-17,D-15,D-13,D-11,D-9,
D-7,D-5,D-3,D-1)と、周期1/CKでデータメ
モリ1より読み出されたデータD-19,D19,D-17,D
17,D-15,D15,D-13,D13,D-11,D11,D-9,
D9,D- 7,D7,D-5,D5,D-3,D3,D-1,D1の
うちラッチ回路2でラッチされないデータD19,D17,
D15,D13,D11,D9,D7,D5,D3,D1とが、そ
れぞれ加算され、ラッチ回路2でデータDnがラッチさ
れるタイミング、即ち周期2/CKで、加算されたデー
タD-19+D19,D-17+D17,D-15+D15,D-13+D
13,D-11+D11,D-9+D9,D-7+D7,D-5+D5,
D-3+D3,D-1+D1が乗算器4に順次出力される。
【0053】一方、係数メモリ5において、ダウンカウ
ンタ10より供給されるカウントダウン値の上位4ビッ
トに対応するアドレスに記憶された係数が読み出され、
乗算器4に出力される。
ンタ10より供給されるカウントダウン値の上位4ビッ
トに対応するアドレスに記憶された係数が読み出され、
乗算器4に出力される。
【0054】ここで、ダウンカウンタ10より供給され
るカウントダウン値の上位4ビットは、図4に示したよ
うに、初期値101012(14H)の上位4ビットを
除いて、同じ値を2度繰り返す。このカウントダウン値
は、前述したように、周期1/CKで1ずつカウントダ
ウンされているので、カウントダウン値の上位4ビット
は、初期値10102、即ち10進数表示で10である
場合を除き、9から周期2/CKで1ずつデクリメント
(カウントダウン)される。本装置においては、カウン
トダウン値が初期値101012 であるとき、データメ
モリ1にデータが書き込まれるので(図5(h))、そ
の後、係数メモリ5より、周期2/CKで、9乃至0ま
でカウントダウンされるカウントダウン値に対応するア
ドレスに記憶された係数C19乃至C1 の仮数部が、順次
読み出され、乗算器4に供給される。
るカウントダウン値の上位4ビットは、図4に示したよ
うに、初期値101012(14H)の上位4ビットを
除いて、同じ値を2度繰り返す。このカウントダウン値
は、前述したように、周期1/CKで1ずつカウントダ
ウンされているので、カウントダウン値の上位4ビット
は、初期値10102、即ち10進数表示で10である
場合を除き、9から周期2/CKで1ずつデクリメント
(カウントダウン)される。本装置においては、カウン
トダウン値が初期値101012 であるとき、データメ
モリ1にデータが書き込まれるので(図5(h))、そ
の後、係数メモリ5より、周期2/CKで、9乃至0ま
でカウントダウンされるカウントダウン値に対応するア
ドレスに記憶された係数C19乃至C1 の仮数部が、順次
読み出され、乗算器4に供給される。
【0055】従って、係数メモリ5に記憶された、指数
部間の差分が0または1になるように調整された係数の
仮数部は、その指数部の小さいものから順番に読み出さ
れるようになっている(図3)。即ち、係数メモリ5に
記憶された係数の仮数部は、その小数点位置が変わらな
い、または右に1桁シフトするような順番で読み出され
る。
部間の差分が0または1になるように調整された係数の
仮数部は、その指数部の小さいものから順番に読み出さ
れるようになっている(図3)。即ち、係数メモリ5に
記憶された係数の仮数部は、その小数点位置が変わらな
い、または右に1桁シフトするような順番で読み出され
る。
【0056】以上のように、加算器3より周期2/CK
で、加算されたデータD-19+D19,D-17+D17,D
-15+D15,D-13+D13,D-11+D11,D-9+D9,D
-7+D7,D-5+D5,D-3+D3,D-1+D1が乗算器4
に順次出力され、係数メモリ5より同じ周期2/CK
で、9乃至0までカウントダウンされるカウントダウン
値に対応するアドレスに記憶された係数C19乃至C1の
仮数部が乗算器4に順次供給される。乗算器4におい
て、データD-19+D19と係数C19の仮数部との積、デ
ータD-17+D17と係数C17の仮数部との積、データD
-15+D15と係数C15の仮数部との積、データD-13+D
13と係数C13の仮数部との積、データD-11+D11と係
数C11の仮数部との積、データD-9+D9と係数C9の仮
数部との積、データD-7+D7と係数C7の仮数部との
積、データD-5+D5と係数C5の仮数部との積、データ
D-3+D3と係数C3の仮数部との積、データD-1+D1
と係数C1の仮数部との積が、周期2/CKで順次計算
され、累積加算器6に出力される。
で、加算されたデータD-19+D19,D-17+D17,D
-15+D15,D-13+D13,D-11+D11,D-9+D9,D
-7+D7,D-5+D5,D-3+D3,D-1+D1が乗算器4
に順次出力され、係数メモリ5より同じ周期2/CK
で、9乃至0までカウントダウンされるカウントダウン
値に対応するアドレスに記憶された係数C19乃至C1の
仮数部が乗算器4に順次供給される。乗算器4におい
て、データD-19+D19と係数C19の仮数部との積、デ
ータD-17+D17と係数C17の仮数部との積、データD
-15+D15と係数C15の仮数部との積、データD-13+D
13と係数C13の仮数部との積、データD-11+D11と係
数C11の仮数部との積、データD-9+D9と係数C9の仮
数部との積、データD-7+D7と係数C7の仮数部との
積、データD-5+D5と係数C5の仮数部との積、データ
D-3+D3と係数C3の仮数部との積、データD-1+D1
と係数C1の仮数部との積が、周期2/CKで順次計算
され、累積加算器6に出力される。
【0057】累積加算器6において、乗算器4より出力
される積と、ACC7より出力される値とが加算され
(乗算器4より出力される積が累積加算され)、シフタ
8に出力される。係数メモリ5より乗算器4に供給され
た係数の仮数部に対応する指数部間の差分(図3)が0
である場合、シフタ8において、累積加算器6より出力
された加算値が、そのままACC7に供給される(図5
(m))。係数メモリ5より乗算器4に供給された係数
の仮数部に対応する指数部間の差分(図3)が1である
場合、シフタ8において、累積加算器6より出力された
加算値が、1ビットシフトダウンされ、ACC7に供給
される(図5(m))。
される積と、ACC7より出力される値とが加算され
(乗算器4より出力される積が累積加算され)、シフタ
8に出力される。係数メモリ5より乗算器4に供給され
た係数の仮数部に対応する指数部間の差分(図3)が0
である場合、シフタ8において、累積加算器6より出力
された加算値が、そのままACC7に供給される(図5
(m))。係数メモリ5より乗算器4に供給された係数
の仮数部に対応する指数部間の差分(図3)が1である
場合、シフタ8において、累積加算器6より出力された
加算値が、1ビットシフトダウンされ、ACC7に供給
される(図5(m))。
【0058】ここで、前述したように、係数メモリ5に
記憶された、指数部間の差分が0または1になるように
調整された係数の仮数部は、その指数部の小さいものか
ら順番に読み出されるようになっている(図3)。即
ち、係数メモリ5に記憶された係数の仮数部は、その小
数点位置が変わらない、または右に1桁シフトするよう
な順番で読み出される。従って、現在、係数メモリ5よ
り乗算器4に供給された係数の仮数部に対応する指数部
間の差分(図3)が0である場合は、その係数の仮数部
の小数点位置と、その次に、乗算器4により加算器3の
出力値との積が計算される(係数メモリ5より読み出さ
れる)係数の仮数部の小数点位置とが等しいので、シフ
タ8において、この2つの係数の仮数部の桁合わせのた
めのビットシフトは行われない。
記憶された、指数部間の差分が0または1になるように
調整された係数の仮数部は、その指数部の小さいものか
ら順番に読み出されるようになっている(図3)。即
ち、係数メモリ5に記憶された係数の仮数部は、その小
数点位置が変わらない、または右に1桁シフトするよう
な順番で読み出される。従って、現在、係数メモリ5よ
り乗算器4に供給された係数の仮数部に対応する指数部
間の差分(図3)が0である場合は、その係数の仮数部
の小数点位置と、その次に、乗算器4により加算器3の
出力値との積が計算される(係数メモリ5より読み出さ
れる)係数の仮数部の小数点位置とが等しいので、シフ
タ8において、この2つの係数の仮数部の桁合わせのた
めのビットシフトは行われない。
【0059】また、現在、係数メモリ5より乗算器4に
供給された係数の仮数部に対応する指数部間の差分(図
3)が1である場合は、その係数の仮数部の小数点位置
が、その次に、乗算器4により加算器3の出力値との積
が計算される係数の仮数部の小数点位置より1桁高い位
置(1桁左にシフトした位置)にあるので、シフタ8に
おいて、この2つの値の桁合わせのためのビットシフト
がおこなわれる。即ち、シフタ8において、乗算器4に
より計算された、現在、係数メモリ5より読み出された
係数の指数部と加算器3の出力との積を、累積加算器6
で累積加算した値が、1桁だけ右にビットシフト(1ビ
ットシフトダウン)される。
供給された係数の仮数部に対応する指数部間の差分(図
3)が1である場合は、その係数の仮数部の小数点位置
が、その次に、乗算器4により加算器3の出力値との積
が計算される係数の仮数部の小数点位置より1桁高い位
置(1桁左にシフトした位置)にあるので、シフタ8に
おいて、この2つの値の桁合わせのためのビットシフト
がおこなわれる。即ち、シフタ8において、乗算器4に
より計算された、現在、係数メモリ5より読み出された
係数の指数部と加算器3の出力との積を、累積加算器6
で累積加算した値が、1桁だけ右にビットシフト(1ビ
ットシフトダウン)される。
【0060】ACC7において、シフタ8より出力され
た値は周期2/CKでラッチされ、累積加算器6および
スイッチ14に出力される。
た値は周期2/CKでラッチされ、累積加算器6および
スイッチ14に出力される。
【0061】このように、ACC7において、シフタ8
を介して累積加算器6より出力された値が周期2/CK
でラッチされ、そのラッチされた値が累積加算器6に出
力される。一方、乗算器4において、計算されたデータ
D-19+D19と係数C19の仮数部との積、データD-17+
D17と係数C17の仮数部との積、データD-15+D15と
係数C15の仮数部との積、データD-13+D13と係数C
13の仮数部との積、データD-11+D11と係数C11の仮
数部との積、データD-9+D9と係数C9の仮数部との
積、データD-7+D7と係数C7の仮数部との積、データ
D-5+D5と係数C5の仮数部との積、データD-3+D3
と係数C3の仮数部との積、データD-1+D1と係数C1
の仮数部との積が、周期2/CKで累積加算器6に出力
される。
を介して累積加算器6より出力された値が周期2/CK
でラッチされ、そのラッチされた値が累積加算器6に出
力される。一方、乗算器4において、計算されたデータ
D-19+D19と係数C19の仮数部との積、データD-17+
D17と係数C17の仮数部との積、データD-15+D15と
係数C15の仮数部との積、データD-13+D13と係数C
13の仮数部との積、データD-11+D11と係数C11の仮
数部との積、データD-9+D9と係数C9の仮数部との
積、データD-7+D7と係数C7の仮数部との積、データ
D-5+D5と係数C5の仮数部との積、データD-3+D3
と係数C3の仮数部との積、データD-1+D1と係数C1
の仮数部との積が、周期2/CKで累積加算器6に出力
される。
【0062】従って、累積加算器6において、乗算器6
より周期2/CKで順次出力されるデータD-19+D19
と係数C19の仮数部との積、データD-17+D17と係数
C17の仮数部との積、データD-15+D15と係数C15の
仮数部との積、データD-13+D13と係数C13の仮数部
との積、データD-11+D11と係数C11の仮数部との
積、データD-9+D9と係数C9の仮数部との積、データ
D-7+D7と係数C7の仮数部との積、データD-5+D5
と係数C5の仮数部との積、データD-3+D3と係数C3
の仮数部との積、およびデータD-1+D1と係数C1の仮
数部との積が、シフタ8により桁合わせされながら順次
加算されるので、最終的に、ACC7には、データD
-19+D19と係数C19との積、データD-17+D17と係数
C17との積、データD-15+D15と係数C15との積、デ
ータD-13+D13と係数C13との積、データD-1 1+D11
と係数C11との積、データD-9+D9と係数C9との積、
データD-7+D7と係数C7との積、データD-5+D5と
係数C5との積、データD-3+D3と係数C3との積、お
よびデータD-1+D1と係数C1との積を、すべて加算し
た(累積加算した)値、即ちデータD-19乃至D19(デ
ータD-1+D1乃至D-19+D19)と係数C1乃至C19と
の積和(積和演算値)がラッチされる(図5(m))。
より周期2/CKで順次出力されるデータD-19+D19
と係数C19の仮数部との積、データD-17+D17と係数
C17の仮数部との積、データD-15+D15と係数C15の
仮数部との積、データD-13+D13と係数C13の仮数部
との積、データD-11+D11と係数C11の仮数部との
積、データD-9+D9と係数C9の仮数部との積、データ
D-7+D7と係数C7の仮数部との積、データD-5+D5
と係数C5の仮数部との積、データD-3+D3と係数C3
の仮数部との積、およびデータD-1+D1と係数C1の仮
数部との積が、シフタ8により桁合わせされながら順次
加算されるので、最終的に、ACC7には、データD
-19+D19と係数C19との積、データD-17+D17と係数
C17との積、データD-15+D15と係数C15との積、デ
ータD-13+D13と係数C13との積、データD-1 1+D11
と係数C11との積、データD-9+D9と係数C9との積、
データD-7+D7と係数C7との積、データD-5+D5と
係数C5との積、データD-3+D3と係数C3との積、お
よびデータD-1+D1と係数C1との積を、すべて加算し
た(累積加算した)値、即ちデータD-19乃至D19(デ
ータD-1+D1乃至D-19+D19)と係数C1乃至C19と
の積和(積和演算値)がラッチされる(図5(m))。
【0063】周期2/fsで切り換わっているスイッチ
14において、ACC7にラッチされた累積加算値と、
データメモリ1より供給されたデータD1とが交互に選
択され、出力FF9に供給される。出力FF9におい
て、ACC7にラッチされた累積加算値は、ディジタル
LPFの奇数サンプル(ODD)の出力として、データ
メモリ1より供給されるデータD1は、ディジタルLP
Fの偶数サンプル(EVEN)の出力としてラッチされ
(図5(i)および図5(p))、D/A変換器などに
供給される。
14において、ACC7にラッチされた累積加算値と、
データメモリ1より供給されたデータD1とが交互に選
択され、出力FF9に供給される。出力FF9におい
て、ACC7にラッチされた累積加算値は、ディジタル
LPFの奇数サンプル(ODD)の出力として、データ
メモリ1より供給されるデータD1は、ディジタルLP
Fの偶数サンプル(EVEN)の出力としてラッチされ
(図5(i)および図5(p))、D/A変換器などに
供給される。
【0064】以上説明したように、本実施例において
は、係数をその仮数部および指数部間の差分に分けて記
憶し、その指数部の差分に対応して、積和演算の中間結
果をビットシフト(シフトダウン)しながら、指数部の
小さい係数から順番に、積和演算が行われる。よって、
装置の扱うことのできるビット長(レンジ)が有効に利
用され、精度の高い積和演算を行うことができる。
は、係数をその仮数部および指数部間の差分に分けて記
憶し、その指数部の差分に対応して、積和演算の中間結
果をビットシフト(シフトダウン)しながら、指数部の
小さい係数から順番に、積和演算が行われる。よって、
装置の扱うことのできるビット長(レンジ)が有効に利
用され、精度の高い積和演算を行うことができる。
【0065】なお、ACC7において、そのクリア端子
CLRに、周期1/fsで入力されるリセット信号によ
り、ラッチした内容がリセットされる(図5(n))。
CLRに、周期1/fsで入力されるリセット信号によ
り、ラッチした内容がリセットされる(図5(n))。
【0066】本実施例において、前述したように、係数
メモリ5に記憶する係数C2q+1の指数部間の差分を、係
数C2q+1の指数部とC2q-1の指数部との差分としたが
(図3)、累積加算器6の出力端子Σ0乃至Σ23とAC
C7の入力端子D0乃至D23との間に設けた桁合わせを
するためのシフタ8を、ACC7出力端子Q0乃至Q23
と累積加算器6の入力端子A0乃至A23との間に設け、
係数メモリ5に記憶する係数C2 q-1の指数部間の差分
を、係数C2q+1の指数部とC2q-1の指数部との差分とす
ることができる(図6)。
メモリ5に記憶する係数C2q+1の指数部間の差分を、係
数C2q+1の指数部とC2q-1の指数部との差分としたが
(図3)、累積加算器6の出力端子Σ0乃至Σ23とAC
C7の入力端子D0乃至D23との間に設けた桁合わせを
するためのシフタ8を、ACC7出力端子Q0乃至Q23
と累積加算器6の入力端子A0乃至A23との間に設け、
係数メモリ5に記憶する係数C2 q-1の指数部間の差分
を、係数C2q+1の指数部とC2q-1の指数部との差分とす
ることができる(図6)。
【0067】また、図7に示すような、指数部が増減し
ながら、極大点が大きくなる一般的なFIR型ディジタ
ルフィルタの係数の場合においては、最大の指数部(図
7においては、係数C1の指数部)に対して、他の係数
の指数部が単調増加し、且つ指数部間の差分が0または
1になるように、各係数の仮数部を調整することによ
り、丸め誤差の影響を低減した積和演算を行うことがで
きる。
ながら、極大点が大きくなる一般的なFIR型ディジタ
ルフィルタの係数の場合においては、最大の指数部(図
7においては、係数C1の指数部)に対して、他の係数
の指数部が単調増加し、且つ指数部間の差分が0または
1になるように、各係数の仮数部を調整することによ
り、丸め誤差の影響を低減した積和演算を行うことがで
きる。
【0068】さらに、この場合、指数部の小さい係数か
ら順番に積和演算が行われるように、例えばプログラム
などによって、係数メモリ5に記憶された係数のアドレ
スを発生させることにより(図8)、図7における場合
に比べ、さらに精度の高い積和演算を行うことができ
る。
ら順番に積和演算が行われるように、例えばプログラム
などによって、係数メモリ5に記憶された係数のアドレ
スを発生させることにより(図8)、図7における場合
に比べ、さらに精度の高い積和演算を行うことができ
る。
【0069】本装置において、積和演算を行う係数が、
例えば81.5などである場合、8ビットの仮数部の浮
動小数点形式で81.5である係数を表すと、 010100012×20(=81) となり、精度が劣化する。しかしながら、この81.5
の係数を82/2および81/2(82/2+81/2
=81.5)に展開(分割)して表すと、 010100102×2-1(=82/2) および 010100012×2-1(=81/2) となり、精度を劣化させずに8ビットの仮数部の浮動小
数点形式で表すことができる。従って、このように係数
を展開して係数メモリ5に記憶させることにより、精度
を劣化させずに積和演算を行うことができる。
例えば81.5などである場合、8ビットの仮数部の浮
動小数点形式で81.5である係数を表すと、 010100012×20(=81) となり、精度が劣化する。しかしながら、この81.5
の係数を82/2および81/2(82/2+81/2
=81.5)に展開(分割)して表すと、 010100102×2-1(=82/2) および 010100012×2-1(=81/2) となり、精度を劣化させずに8ビットの仮数部の浮動小
数点形式で表すことができる。従って、このように係数
を展開して係数メモリ5に記憶させることにより、精度
を劣化させずに積和演算を行うことができる。
【0070】なお、本実施例においては、指数部間の差
分を0または1としたが、係数メモリ5に指数部間の差
分を記憶することのできるビット数を増やし、そのビッ
ト数の範囲でシフトダウンすることのできるシフタをシ
フタ8に代えて設けることにより任意の指数部間の差分
を有する係数に対しても、精度の高い積和演算を行うこ
とができる。
分を0または1としたが、係数メモリ5に指数部間の差
分を記憶することのできるビット数を増やし、そのビッ
ト数の範囲でシフトダウンすることのできるシフタをシ
フタ8に代えて設けることにより任意の指数部間の差分
を有する係数に対しても、精度の高い積和演算を行うこ
とができる。
【0071】次に、図9は、本発明の積和演算装置を応
用したディジタルディジタルLPFの第2実施例の構成
を示すブロック図である。このディジタルLPFは、図
1の実施例と同様に、入力されたディジタル信号を2倍
オーバーサンプリングしたフィルタ出力を得ることがで
きる38次の補間型ディジタルフィルタで、そのインパ
ルス応答は、図2に示すような波形になるように設計さ
れており、このLPFの係数は、0次の係数C0に対し
て対称で、0次の係数C0(=1)を除く偶数次の係数
C2,C4,C6,C8,C10,C12,C14,C16,C
18は、すべて0になっている。
用したディジタルディジタルLPFの第2実施例の構成
を示すブロック図である。このディジタルLPFは、図
1の実施例と同様に、入力されたディジタル信号を2倍
オーバーサンプリングしたフィルタ出力を得ることがで
きる38次の補間型ディジタルフィルタで、そのインパ
ルス応答は、図2に示すような波形になるように設計さ
れており、このLPFの係数は、0次の係数C0に対し
て対称で、0次の係数C0(=1)を除く偶数次の係数
C2,C4,C6,C8,C10,C12,C14,C16,C
18は、すべて0になっている。
【0072】レジスタ部21のレジスタ211乃至21
20は、レジスタ2120から入力されるサンプリング周波
数fsでサンプリングされた時系列のデータを、周期1
/fsでラッチし、順次左側のレジスタへ出力する。加
算部22の加算器221乃至221 0は、レジスタ部21
にラッチされたデータD-1およびD1、データD-3およ
びD3、データD-5およびD5、データD-7およびD7、
データD-9およびD9、データD-11およびD11、データ
D-13およびD13、データD-15およびD15、データD-
17およびD17、データD-19およびD19を、それぞれ加
算する。
20は、レジスタ2120から入力されるサンプリング周波
数fsでサンプリングされた時系列のデータを、周期1
/fsでラッチし、順次左側のレジスタへ出力する。加
算部22の加算器221乃至221 0は、レジスタ部21
にラッチされたデータD-1およびD1、データD-3およ
びD3、データD-5およびD5、データD-7およびD7、
データD-9およびD9、データD-11およびD11、データ
D-13およびD13、データD-15およびD15、データD-
17およびD17、データD-19およびD19を、それぞれ加
算する。
【0073】乗算部23の乗算器231乃至2310は、
加算器221乃至2210より出力された値に、図1の実
施例の場合と同じ係数の仮数部、即ち係数C1乃至C19
の仮数部(図3)をそれぞれ乗する。
加算器221乃至2210より出力された値に、図1の実
施例の場合と同じ係数の仮数部、即ち係数C1乃至C19
の仮数部(図3)をそれぞれ乗する。
【0074】シフタ部25のシフタ251乃至256は、
加算部24の加算器242乃至245,247,249より
出力された値を、それぞれ1ビットシフトダウンする。
加算部24の加算器242乃至245,247,249より
出力された値を、それぞれ1ビットシフトダウンする。
【0075】加算部24の加算器249は、乗算器23
10の出力と乗算器239の出力との和を計算する。加算
部24の加算器248は、シフタ256の出力と乗算器2
38の出力との和を計算する。加算部24の加算器247
は、加算器248の出力と乗算器237の出力との和を計
算する。加算部24の加算器246は、シフタ255の出
力と乗算器236の出力との和を計算する。加算部24
の加算器245は、加算器246の出力と乗算器235の
出力との和を計算する。加算部24の加算器244は、
シフタ254の出力と乗算器234の出力との和を計算す
る。加算部24の加算器243は、シフタ253の出力と
乗算器233の出力との和を計算する。加算部24の加
算器242は、シフタ252の出力と乗算器232の出力
との和を計算する。加算部24の加算器241は、シフ
タ251の出力と乗算器231の出力との和を計算する。
10の出力と乗算器239の出力との和を計算する。加算
部24の加算器248は、シフタ256の出力と乗算器2
38の出力との和を計算する。加算部24の加算器247
は、加算器248の出力と乗算器237の出力との和を計
算する。加算部24の加算器246は、シフタ255の出
力と乗算器236の出力との和を計算する。加算部24
の加算器245は、加算器246の出力と乗算器235の
出力との和を計算する。加算部24の加算器244は、
シフタ254の出力と乗算器234の出力との和を計算す
る。加算部24の加算器243は、シフタ253の出力と
乗算器233の出力との和を計算する。加算部24の加
算器242は、シフタ252の出力と乗算器232の出力
との和を計算する。加算部24の加算器241は、シフ
タ251の出力と乗算器231の出力との和を計算する。
【0076】レジスタ26は、レジスタ2111に周期1
/fsでラッチされるデータを、その半分の周期1/2
fsでラッチする。
/fsでラッチされるデータを、その半分の周期1/2
fsでラッチする。
【0077】図9のディジタルLPFにおいて、2倍オ
ーバーサンプリングされたフィルタ出力の奇数サンプル
(ODD)は、入力されたデータとサフィックスが奇数
の係数C1乃至C19との積和になるが、偶数サンプル
(EVEN)は、係数C2,C4,C6,C8,C10,
C12,C14,C16,C18が、すべて0になので、係数C
0と入力されたデータとの積になる。従って、係数C0は
1なので、偶数サンプルは、係数C0との積が計算され
る入力されたデータ(データD0)そのものになる。ま
た、周期fsで入力されているデータが2倍オーバーサ
ンプリングされるので、仮想的に、入力されているデー
タに0を補間したデータが、周期1/2fsで入力され
ているものとすると、フィルタ出力の奇数サンプルが出
力されるときに、係数C1との積が計算されたデータD1
が、時間1/2fsだけ経過すると、データD0に相当す
ることになる。
ーバーサンプリングされたフィルタ出力の奇数サンプル
(ODD)は、入力されたデータとサフィックスが奇数
の係数C1乃至C19との積和になるが、偶数サンプル
(EVEN)は、係数C2,C4,C6,C8,C10,
C12,C14,C16,C18が、すべて0になので、係数C
0と入力されたデータとの積になる。従って、係数C0は
1なので、偶数サンプルは、係数C0との積が計算され
る入力されたデータ(データD0)そのものになる。ま
た、周期fsで入力されているデータが2倍オーバーサ
ンプリングされるので、仮想的に、入力されているデー
タに0を補間したデータが、周期1/2fsで入力され
ているものとすると、フィルタ出力の奇数サンプルが出
力されるときに、係数C1との積が計算されたデータD1
が、時間1/2fsだけ経過すると、データD0に相当す
ることになる。
【0078】よって、周期1/fsでレジスタ2111に
ラッチされたデータD1を、レジスタ26により周期1
/2fsでラッチすれば、2倍オーバーサンプリングし
たフィルタ出力の偶数サンプルが得られる。
ラッチされたデータD1を、レジスタ26により周期1
/2fsでラッチすれば、2倍オーバーサンプリングし
たフィルタ出力の偶数サンプルが得られる。
【0079】スイッチ27は、1/2fs周期で切り換
わり、レジスタ26にラッチされたデータD0(時間1
/2fsだけ経過したD1)または加算器241の出力
を、交互に、例えばD/A変換器などに供給する。
わり、レジスタ26にラッチされたデータD0(時間1
/2fsだけ経過したD1)または加算器241の出力
を、交互に、例えばD/A変換器などに供給する。
【0080】次に、その動作について説明する。加算器
221乃至2210において、レジスタ部21に周期1/
fsでラッチされたデータD-1およびD1、データD-3お
よびD3、データD-5およびD5、データD-7および
D7、データD-9およびD9、データD-11およびD11、
データD-13およびD13、データD-15およびD15、デー
タD- 17およびD17、データD-19およびD19が、それぞ
れ加算され、加算されたデータD-1+D1,D-3+D3,
D-5+D5,D-7+D7,D-9+D9,D-11+D11,D-1
3+D13,D-15+D15,D-17+D17,D-19+D19が、
それぞれ乗算器23 1乃至2310に供給される。
221乃至2210において、レジスタ部21に周期1/
fsでラッチされたデータD-1およびD1、データD-3お
よびD3、データD-5およびD5、データD-7および
D7、データD-9およびD9、データD-11およびD11、
データD-13およびD13、データD-15およびD15、デー
タD- 17およびD17、データD-19およびD19が、それぞ
れ加算され、加算されたデータD-1+D1,D-3+D3,
D-5+D5,D-7+D7,D-9+D9,D-11+D11,D-1
3+D13,D-15+D15,D-17+D17,D-19+D19が、
それぞれ乗算器23 1乃至2310に供給される。
【0081】乗算器231乃至2310において、データ
D-1+D1と係数C1の仮数部との積、データD-3+D3
と係数C3の仮数部との積、データD-5+D5と係数C5
の仮数部との積、データD-7+D7と係数C7の仮数部と
の積、データD-9+D9と係数C9の仮数部との積、デー
タD-11+D11と係数C11の仮数部との積、データD-1 3
+D13と係数C13の仮数部との積、データD-15+D15
と係数C15の仮数部との積、データD-17+D17と係数
C17の仮数部との積、データD-19+D19と係数C19の
仮数部との積が、それぞれ計算される。
D-1+D1と係数C1の仮数部との積、データD-3+D3
と係数C3の仮数部との積、データD-5+D5と係数C5
の仮数部との積、データD-7+D7と係数C7の仮数部と
の積、データD-9+D9と係数C9の仮数部との積、デー
タD-11+D11と係数C11の仮数部との積、データD-1 3
+D13と係数C13の仮数部との積、データD-15+D15
と係数C15の仮数部との積、データD-17+D17と係数
C17の仮数部との積、データD-19+D19と係数C19の
仮数部との積が、それぞれ計算される。
【0082】ここで、乗算部23において、加算部22
より供給されたデータとの積が計算される係数の仮数部
は、図1の実施例の場合と同一のものである(図3)。
より供給されたデータとの積が計算される係数の仮数部
は、図1の実施例の場合と同一のものである(図3)。
【0083】乗算器2310でデータD-19+D19との積
が計算された仮数部を有する係数C1 9の指数部間の差分
は0、即ち乗算器2310でデータD-19+D19との積が
計算された仮数部を有する係数C19の指数部と、乗算器
239でデータD-17+D17との積が計算された仮数部を
有する係数C17の指数部との差分は0なので(図3)、
乗算器2310により計算されるデータD-19+D19と係
数C19の仮数部との積は、そのまま加算器249に供給
され、加算器249において、乗算器2310より供給さ
れるデータD-19+D19と係数C19の仮数部との積と乗
算器239より供給されるデータD-17+D17と係数C17
の仮数部との積との和が計算され、シフタ256に出力
される。
が計算された仮数部を有する係数C1 9の指数部間の差分
は0、即ち乗算器2310でデータD-19+D19との積が
計算された仮数部を有する係数C19の指数部と、乗算器
239でデータD-17+D17との積が計算された仮数部を
有する係数C17の指数部との差分は0なので(図3)、
乗算器2310により計算されるデータD-19+D19と係
数C19の仮数部との積は、そのまま加算器249に供給
され、加算器249において、乗算器2310より供給さ
れるデータD-19+D19と係数C19の仮数部との積と乗
算器239より供給されるデータD-17+D17と係数C17
の仮数部との積との和が計算され、シフタ256に出力
される。
【0084】乗算器239でデータD-17+D17との積が
計算された仮数部を有する係数C17の指数部間の差分は
1、即ち乗算器239でデータD-17+D17との積が計算
された仮数部を有する係数C17の指数部と、乗算器23
8でデータD-15+D15との積が計算された仮数部を有す
る係数C15の指数部との差分は1なので(図3)、シフ
タ256において、加算器249より出力された値は、1
ビットシフトダウンされ、加算器248に出力される。
加算器248において、シフタ256の出力と乗算器23
8の出力との和が計算される。
計算された仮数部を有する係数C17の指数部間の差分は
1、即ち乗算器239でデータD-17+D17との積が計算
された仮数部を有する係数C17の指数部と、乗算器23
8でデータD-15+D15との積が計算された仮数部を有す
る係数C15の指数部との差分は1なので(図3)、シフ
タ256において、加算器249より出力された値は、1
ビットシフトダウンされ、加算器248に出力される。
加算器248において、シフタ256の出力と乗算器23
8の出力との和が計算される。
【0085】乗算器238でデータD-15+D15との積が
計算された仮数部を有する係数C15の指数部間の差分は
0なので(図3)、乗算器238の出力はそのまま加算
器247に供給され、加算器247において、加算器24
8の出力と乗算器237の出力との和が計算される。
計算された仮数部を有する係数C15の指数部間の差分は
0なので(図3)、乗算器238の出力はそのまま加算
器247に供給され、加算器247において、加算器24
8の出力と乗算器237の出力との和が計算される。
【0086】以下同様にして、シフタ255において、
加算器247の出力が1ビットシフトダウンされ、加算
器246において、シフタ255の出力と乗算器236の
出力との和が計算され、加算器245において、加算器
246の出力と乗算器235の出力との和が計算され、シ
フタ254において、加算器245の出力が1ビットシフ
トダウンされ、加算器244において、シフタ254の出
力と乗算器234の出力との和が計算され、シフタ253
において、加算器244の出力が1ビットシフトダウン
され、加算器243において、シフタ253の出力と乗算
器233の出力との和が計算され、シフタ252におい
て、加算器243の出力が1ビットシフトダウンされ、
加算器242において、シフタ252の出力と乗算器23
2の出力との和が計算され、シフタ251において、加算
器242の出力が1ビットシフトダウンされ、加算器2
41において、シフタ251の出力と乗算器231の出力
との和が計算される。
加算器247の出力が1ビットシフトダウンされ、加算
器246において、シフタ255の出力と乗算器236の
出力との和が計算され、加算器245において、加算器
246の出力と乗算器235の出力との和が計算され、シ
フタ254において、加算器245の出力が1ビットシフ
トダウンされ、加算器244において、シフタ254の出
力と乗算器234の出力との和が計算され、シフタ253
において、加算器244の出力が1ビットシフトダウン
され、加算器243において、シフタ253の出力と乗算
器233の出力との和が計算され、シフタ252におい
て、加算器243の出力が1ビットシフトダウンされ、
加算器242において、シフタ252の出力と乗算器23
2の出力との和が計算され、シフタ251において、加算
器242の出力が1ビットシフトダウンされ、加算器2
41において、シフタ251の出力と乗算器231の出力
との和が計算される。
【0087】このようにして、加算器241より、フィ
ルタ出力の奇数サンプルである積和演算結果C1(D-1
+D1)+C3(D-3+D3)+C5(D-5+D5)+C
7(D-7+D7)+C9(D-9+D9)+C11(D-11+D
11)+C13(D-13+D13)+C1 5(D-15+D15)+C
17(D-17+D17)+C19(D-19+D19)が出力され
る。
ルタ出力の奇数サンプルである積和演算結果C1(D-1
+D1)+C3(D-3+D3)+C5(D-5+D5)+C
7(D-7+D7)+C9(D-9+D9)+C11(D-11+D
11)+C13(D-13+D13)+C1 5(D-15+D15)+C
17(D-17+D17)+C19(D-19+D19)が出力され
る。
【0088】さらに、レジスタ26において、レジスタ
2111に周期1/fsでラッチされるデータが、周期1
/2fsでラッチされ、スイッチ27において、レジス
タ26にラッチされた値と、加算器241の出力とが、
周期1/fsで交互に、選択され、2倍オーバーサンプ
リングしたフィルタ出力を得ることができる。
2111に周期1/fsでラッチされるデータが、周期1
/2fsでラッチされ、スイッチ27において、レジス
タ26にラッチされた値と、加算器241の出力とが、
周期1/fsで交互に、選択され、2倍オーバーサンプ
リングしたフィルタ出力を得ることができる。
【0089】次に、図10は、本発明の積和演算装置を
応用したディジタルLPFの第3実施例の構成を示すブ
ロック図である。このディジタルLPFは、図1および
図9の実施例と同様に、入力されたディジタル信号を2
倍オーバーサンプリングしたフィルタ出力を得ることが
できる38次の補間型ディジタルフィルタで、そのイン
パルス応答は、図2に示すような波形になるように設計
されている。
応用したディジタルLPFの第3実施例の構成を示すブ
ロック図である。このディジタルLPFは、図1および
図9の実施例と同様に、入力されたディジタル信号を2
倍オーバーサンプリングしたフィルタ出力を得ることが
できる38次の補間型ディジタルフィルタで、そのイン
パルス応答は、図2に示すような波形になるように設計
されている。
【0090】インターフェース(I/O)31は、外部
とのデータの入出力を制御する。データメモリ32は、
インターフェース31よりデータバス41を介して出力
されたデータDnを記憶する。係数メモリ33は、図1
の実施例の場合と同様に、フィルタ係数Cnの仮数部と
指数部間の差分とを記憶している(図3)。
とのデータの入出力を制御する。データメモリ32は、
インターフェース31よりデータバス41を介して出力
されたデータDnを記憶する。係数メモリ33は、図1
の実施例の場合と同様に、フィルタ係数Cnの仮数部と
指数部間の差分とを記憶している(図3)。
【0091】レジスタ34(変数AReg)は、ALU
36の出力をラッチする。レジスタ35(変数BRe
g)は、データメモリ32に記憶されたデータDnをラ
ッチする。レジスタ37(変数xReg)は、レジスタ
35にラッチされたデータをデータバス41を介してラ
ッチする。レジスタ40(変数yReg)は、係数メモ
リ33に記憶された係数Cnの仮数部をラッチする。乗
算器(MPY)38は、レジスタ37によりラッチされ
たデータとレジスタ38によりラッチされたデータとの
積を計算する。レジスタ39(変数pReg)は、乗算
器38より出力されるレジスタ37によりラッチされた
データとレジスタ38によりラッチされたデータとの積
をラッチする。
36の出力をラッチする。レジスタ35(変数BRe
g)は、データメモリ32に記憶されたデータDnをラ
ッチする。レジスタ37(変数xReg)は、レジスタ
35にラッチされたデータをデータバス41を介してラ
ッチする。レジスタ40(変数yReg)は、係数メモ
リ33に記憶された係数Cnの仮数部をラッチする。乗
算器(MPY)38は、レジスタ37によりラッチされ
たデータとレジスタ38によりラッチされたデータとの
積を計算する。レジスタ39(変数pReg)は、乗算
器38より出力されるレジスタ37によりラッチされた
データとレジスタ38によりラッチされたデータとの積
をラッチする。
【0092】ALU36は、入力されたデータの加算、
1ビットシフトを行う。さらに、ALU36は、レジス
タ34,35,37,39,40を初期化(クリア)す
るために0を出力する。
1ビットシフトを行う。さらに、ALU36は、レジス
タ34,35,37,39,40を初期化(クリア)す
るために0を出力する。
【0093】次に、図11のフローチャートを参照し
て、その動作について説明する。まず最初に、ステップ
S1において、インターフェース(I/O)31より1
フレーム分のデータD-19,D-17,D-15,D-13,D
-11,D-9,D-7,D-5,D-3,D-1,D1,D3,D5,
D7,D9,D11,D13,D15,D17,D19が、取り込ま
れ、データバス41を介してデータメモリ32に記憶さ
れる。さらに、ステップS1において、レジスタ34
(変数AReg)がALU36より出力される0にクリ
アされ(AReg=0)、フィルタ係数のサフィックス
に相当する変数nが、このLPFの次数の1/2、即ち
19にセットされ(n=19)、ステップS2に進む。
て、その動作について説明する。まず最初に、ステップ
S1において、インターフェース(I/O)31より1
フレーム分のデータD-19,D-17,D-15,D-13,D
-11,D-9,D-7,D-5,D-3,D-1,D1,D3,D5,
D7,D9,D11,D13,D15,D17,D19が、取り込ま
れ、データバス41を介してデータメモリ32に記憶さ
れる。さらに、ステップS1において、レジスタ34
(変数AReg)がALU36より出力される0にクリ
アされ(AReg=0)、フィルタ係数のサフィックス
に相当する変数nが、このLPFの次数の1/2、即ち
19にセットされ(n=19)、ステップS2に進む。
【0094】ステップS2において、レジスタ35(変
数BReg)によりデータD-nがラッチされた後、ステ
ップS3に進む。ステップS3において、ALU36に
よりレジスタ35(変数BReg)にラッチされたデー
タD-nと、データメモリ32に記憶されたデータDnと
の和(D-n+Dn)が計算され、その和がレジスタ35
(変数BReg)にラッチされ、ステップS4に進み、
レジスタ35にラッチされたデータD-n+Dnが、レジ
スタ37(変数xReg)にラッチされるとともに、係
数メモリ32に記憶された係数Cnの仮数部がレジスタ
40(変数yReg)にラッチされる。
数BReg)によりデータD-nがラッチされた後、ステ
ップS3に進む。ステップS3において、ALU36に
よりレジスタ35(変数BReg)にラッチされたデー
タD-nと、データメモリ32に記憶されたデータDnと
の和(D-n+Dn)が計算され、その和がレジスタ35
(変数BReg)にラッチされ、ステップS4に進み、
レジスタ35にラッチされたデータD-n+Dnが、レジ
スタ37(変数xReg)にラッチされるとともに、係
数メモリ32に記憶された係数Cnの仮数部がレジスタ
40(変数yReg)にラッチされる。
【0095】ステップS5において、レジスタ37(変
数xReg)にラッチされたデータD-n+Dnと、レジ
スタ40(変数yReg)にラッチされた係数Cnの仮
数部との積(係数Cnの仮数部×(D-n+Dn))が、乗
算器38により計算され、レジスタ39(変数pRe
g)にラッチされる。
数xReg)にラッチされたデータD-n+Dnと、レジ
スタ40(変数yReg)にラッチされた係数Cnの仮
数部との積(係数Cnの仮数部×(D-n+Dn))が、乗
算器38により計算され、レジスタ39(変数pRe
g)にラッチされる。
【0096】ステップS6において、レジスタ39(変
数pReg)にラッチされたデータ(係数Cnの仮数部
×(D-n+Dn))と、レジスタ34(変数AReg)
にラッチされたデータと和が、ALU36により計算さ
れ、再びレジスタ(変数AReg)にラッチされる。即
ち、ステップS6において、レジスタ39(変数pRe
g)にラッチされたデータ(係数Cn×(D-n+Dn))
の累積加算値がレジスタ34(変数AReg)にラッチ
される。
数pReg)にラッチされたデータ(係数Cnの仮数部
×(D-n+Dn))と、レジスタ34(変数AReg)
にラッチされたデータと和が、ALU36により計算さ
れ、再びレジスタ(変数AReg)にラッチされる。即
ち、ステップS6において、レジスタ39(変数pRe
g)にラッチされたデータ(係数Cn×(D-n+Dn))
の累積加算値がレジスタ34(変数AReg)にラッチ
される。
【0097】ステップS6において、レジスタ39(変
数pReg)にラッチされたデータ(係数Cn×(D-n
+Dn))の累積加算値がレジスタ34(変数ARe
g)にラッチされた後、ステップS7において、ステッ
プS4でレジスタ40(変数yReg)にラッチされた
仮数部を有する係数Cnの指数部の差分(図3)が、1
であるか否かが判定される。ステップS7において、レ
ジスタ40(変数yReg)にラッチされた仮数部を有
する係数Cnの指数部の差分(図3)が、1でないと判
定された場合、即ち0であると判定された場合、ステッ
プS8をスキップしてステップS9に進む。
数pReg)にラッチされたデータ(係数Cn×(D-n
+Dn))の累積加算値がレジスタ34(変数ARe
g)にラッチされた後、ステップS7において、ステッ
プS4でレジスタ40(変数yReg)にラッチされた
仮数部を有する係数Cnの指数部の差分(図3)が、1
であるか否かが判定される。ステップS7において、レ
ジスタ40(変数yReg)にラッチされた仮数部を有
する係数Cnの指数部の差分(図3)が、1でないと判
定された場合、即ち0であると判定された場合、ステッ
プS8をスキップしてステップS9に進む。
【0098】ステップS7において、レジスタ40(変
数yReg)にラッチされた仮数部を有する係数Cnの
指数部の差分(図3)が、1であると判定された場合、
ステップS8に進み、レジスタ34(変数AReg)に
ラッチされたデータ(係数Cn×(D-n+Dn))の累積
加算値に1/2が乗される、即ちレジスタ34(変数A
Reg)にラッチされたデータ(係数Cn×(D-n+
Dn))の累積加算値が、ステップS6で、次に累積加
算されるデータ(係数Cn-2 ×(D-(n-2)+Dn-2))
との桁合わせをするために、1ビットシフトダウンさ
れ、ステップS9に進む。
数yReg)にラッチされた仮数部を有する係数Cnの
指数部の差分(図3)が、1であると判定された場合、
ステップS8に進み、レジスタ34(変数AReg)に
ラッチされたデータ(係数Cn×(D-n+Dn))の累積
加算値に1/2が乗される、即ちレジスタ34(変数A
Reg)にラッチされたデータ(係数Cn×(D-n+
Dn))の累積加算値が、ステップS6で、次に累積加
算されるデータ(係数Cn-2 ×(D-(n-2)+Dn-2))
との桁合わせをするために、1ビットシフトダウンさ
れ、ステップS9に進む。
【0099】ステップS9において、変数nが2だけデ
クリメントされ、ステップS10に進み、変数nが負で
あるか否かが判定される。ステップS10において、変
数nが負でないと判定された場合、即ち1フレームのデ
ータの積和演算が終了していない場合、ステップS2に
戻り、ステップS10において、変数nが負であると判
定されるまで、ステップS2乃至S10の処理を繰り返
す。
クリメントされ、ステップS10に進み、変数nが負で
あるか否かが判定される。ステップS10において、変
数nが負でないと判定された場合、即ち1フレームのデ
ータの積和演算が終了していない場合、ステップS2に
戻り、ステップS10において、変数nが負であると判
定されるまで、ステップS2乃至S10の処理を繰り返
す。
【0100】ステップS10において、変数nが負であ
ると判定された場合、即ち1フレームのデータの積和演
算が終了した場合、ステップS11に進み、フィルタ出
力の偶数サンプル(EVEN出力)にはデータD1が、
フィルタ出力の奇数サンプル(ODD出力)にはレジス
タ34(変数AReg)にラッチされた累積加算値が、
インターフェース31に供給される。
ると判定された場合、即ち1フレームのデータの積和演
算が終了した場合、ステップS11に進み、フィルタ出
力の偶数サンプル(EVEN出力)にはデータD1が、
フィルタ出力の奇数サンプル(ODD出力)にはレジス
タ34(変数AReg)にラッチされた累積加算値が、
インターフェース31に供給される。
【0101】なお、図11のフローチャートは、1フレ
ームのデータのフィルタ出力に関するもので、以上説明
した処理S1乃至S11は、インターフェース31に入
力されるデータがなくなるまで繰り返される。
ームのデータのフィルタ出力に関するもので、以上説明
した処理S1乃至S11は、インターフェース31に入
力されるデータがなくなるまで繰り返される。
【0102】以上、本発明の積和演算装置をディジタル
LPFに応用した場合について説明したが、本発明の積
和演算装置、並びに積和演算方法は、一般的なディジタ
ルフィルタ、ディジタルイコライザおよびDSP(ディ
ジタルシグナルプロセッサ)、並びにDCT(離散コサ
イン変換)、FFT(ファーストフーリエ変換)などに
応用することができる。
LPFに応用した場合について説明したが、本発明の積
和演算装置、並びに積和演算方法は、一般的なディジタ
ルフィルタ、ディジタルイコライザおよびDSP(ディ
ジタルシグナルプロセッサ)、並びにDCT(離散コサ
イン変換)、FFT(ファーストフーリエ変換)などに
応用することができる。
【0103】
【発明の効果】請求項1に記載の積和演算装置によれ
ば、データ記憶手段にデータを記憶し、係数記憶手段に
係数を記憶し、係数記憶手段に記憶された係数の指数部
の大きさに対応した順番で、データ記憶手段に記憶され
たデータと係数記憶手段に記憶された係数との積を累積
加算する。従って、指数部の大きい係数と指数部の小さ
い係数が混在している場合でも、精度の高い累積加算を
することができる。
ば、データ記憶手段にデータを記憶し、係数記憶手段に
係数を記憶し、係数記憶手段に記憶された係数の指数部
の大きさに対応した順番で、データ記憶手段に記憶され
たデータと係数記憶手段に記憶された係数との積を累積
加算する。従って、指数部の大きい係数と指数部の小さ
い係数が混在している場合でも、精度の高い累積加算を
することができる。
【0104】請求項2に記載の積和演算装置によれば、
累積加算手段は、係数記憶手段に記憶された係数の指数
部の小さい順に、データ記憶手段に記憶されたデータと
係数記憶手段に記憶された係数との積を累積加算する。
従って、指数部の小さい、即ち絶対値の小さい係数に生
ずる丸め誤差を低減することができる。
累積加算手段は、係数記憶手段に記憶された係数の指数
部の小さい順に、データ記憶手段に記憶されたデータと
係数記憶手段に記憶された係数との積を累積加算する。
従って、指数部の小さい、即ち絶対値の小さい係数に生
ずる丸め誤差を低減することができる。
【0105】請求項3に記載の積和演算装置によれば、
係数の指数部の小さい順に係数記憶手段に記憶された係
数を読み出す。従って、最初に、指数部の小さい係数に
対する累積加算が行われるので、指数部の小さい、即ち
絶対値の小さい係数に生ずる丸め誤差を低減することが
できる。
係数の指数部の小さい順に係数記憶手段に記憶された係
数を読み出す。従って、最初に、指数部の小さい係数に
対する累積加算が行われるので、指数部の小さい、即ち
絶対値の小さい係数に生ずる丸め誤差を低減することが
できる。
【0106】請求項4に記載の積和演算装置によれば、
係数記憶手段に係数が記憶された順番に対応して、デー
タ記憶手段に記憶されたデータを読み出す。従って、所
望する係数とデータとの積の累積加算を行うことができ
る。
係数記憶手段に係数が記憶された順番に対応して、デー
タ記憶手段に記憶されたデータを読み出す。従って、所
望する係数とデータとの積の累積加算を行うことができ
る。
【0107】請求項5に記載の積和演算装置によれば、
累積加算手段は係数記憶手段に記憶された係数の指数部
間の差分が単調増加する順番で、データ記憶手段に記憶
されたデータと係数記憶手段に記憶された係数との積を
計算し、累積加算する。従って、係数の絶対値が、ほぼ
大きくなっていく順番で、係数とデータとの積が累積加
算されるので、絶対値の小さい係数の桁落ちが防止され
る。
累積加算手段は係数記憶手段に記憶された係数の指数部
間の差分が単調増加する順番で、データ記憶手段に記憶
されたデータと係数記憶手段に記憶された係数との積を
計算し、累積加算する。従って、係数の絶対値が、ほぼ
大きくなっていく順番で、係数とデータとの積が累積加
算されるので、絶対値の小さい係数の桁落ちが防止され
る。
【0108】請求項6に記載の積和演算装置によれば、
累積加算手段は係数記憶手段に記憶された係数の指数部
の間差分が0または1になる順番で、データ記憶手段に
記憶されたデータと係数記憶手段に記憶された係数との
積を計算する。従って、係数の絶対値が大きく変化しな
い順番で、係数とデータとの積が累積加算されるので、
絶対値の小さい係数の桁落ちが防止される。
累積加算手段は係数記憶手段に記憶された係数の指数部
の間差分が0または1になる順番で、データ記憶手段に
記憶されたデータと係数記憶手段に記憶された係数との
積を計算する。従って、係数の絶対値が大きく変化しな
い順番で、係数とデータとの積が累積加算されるので、
絶対値の小さい係数の桁落ちが防止される。
【0109】請求項7に記載の積和演算装置によれば、
累積加算手段は係数記憶手段に記憶された係数の指数部
の大きさに対応して、係数を任意の項数よりなる和の形
に展開し、データ記憶手段に記憶されたデータとの積を
計算する。従って、和の形に展開された係数の絶対値は
小さくなり、係数の絶対値の最大値と最小値と差が小さ
くなるので、係数の桁落ちが防止される。
累積加算手段は係数記憶手段に記憶された係数の指数部
の大きさに対応して、係数を任意の項数よりなる和の形
に展開し、データ記憶手段に記憶されたデータとの積を
計算する。従って、和の形に展開された係数の絶対値は
小さくなり、係数の絶対値の最大値と最小値と差が小さ
くなるので、係数の桁落ちが防止される。
【0110】請求項8に記載の積和演算装置によれば、
係数記憶手段に記憶された係数の指数部間の差分に対応
して、累積加算手段により累積加算された積をシフトす
る。従って、指数部の値の異なる係数から計算された積
の桁を合わせることができる。
係数記憶手段に記憶された係数の指数部間の差分に対応
して、累積加算手段により累積加算された積をシフトす
る。従って、指数部の値の異なる係数から計算された積
の桁を合わせることができる。
【0111】請求項9に記載の積和演算装置によれば、
係数記憶手段は係数の指数部間の差分を記憶する。従っ
て、係数の指数部を記憶する場合に比べ、係数記憶手段
の記憶容量を節約することができる。
係数記憶手段は係数の指数部間の差分を記憶する。従っ
て、係数の指数部を記憶する場合に比べ、係数記憶手段
の記憶容量を節約することができる。
【0112】請求項10に記載の積和演算方法によれ
ば、データを記憶し、係数を記憶し、係数の指数部の大
きさに対応した順番で、データと係数との積を計算し、
累積加算する。従って、従って、指数部の大きい係数と
指数部の小さい係数が混在している場合でも、精度の高
い累積加算をすることができる。
ば、データを記憶し、係数を記憶し、係数の指数部の大
きさに対応した順番で、データと係数との積を計算し、
累積加算する。従って、従って、指数部の大きい係数と
指数部の小さい係数が混在している場合でも、精度の高
い累積加算をすることができる。
【0113】請求項11に記載の積和演算装置によれ
ば、データを記憶し、記憶されたデータと浮動小数点形
式で表した係数の仮数部との積を計算し、計算された積
を累積加算し、係数の指数部間の差分に対応して累積加
算した積をビットシフトする。従って、指数部の値の異
なる係数から計算された積の桁を合わせる場合の桁落ち
を最小限に抑えることができる。
ば、データを記憶し、記憶されたデータと浮動小数点形
式で表した係数の仮数部との積を計算し、計算された積
を累積加算し、係数の指数部間の差分に対応して累積加
算した積をビットシフトする。従って、指数部の値の異
なる係数から計算された積の桁を合わせる場合の桁落ち
を最小限に抑えることができる。
【図1】本発明の積和演算装置を応用したディジタルロ
ーパスフィルタ(LPF)の一実施例の構成を示すブロ
ック図である。
ーパスフィルタ(LPF)の一実施例の構成を示すブロ
ック図である。
【図2】図1、図9および図10の実施例のディジタル
LPFのインパルス応答を示す図である。
LPFのインパルス応答を示す図である。
【図3】図1の係数メモリ5および図10の係数メモリ
32に記憶される係数の仮数部および係数の指数部間の
差分を示す図である。
32に記憶される係数の仮数部および係数の指数部間の
差分を示す図である。
【図4】図1のXOR回路11の入力値と出力値との関
係を説明する図である。
係を説明する図である。
【図5】図1の実施例の動作を説明するタイミングチャ
ートである。
ートである。
【図6】図1の係数メモリ5に記憶される係数の仮数部
および係数の指数部間の差分を示す図である。
および係数の指数部間の差分を示す図である。
【図7】係数の指数部が単調増加するように、係数の仮
数部を調整することを説明する図である。
数部を調整することを説明する図である。
【図8】係数の指数部が小さい順に、データとの積和が
計算されることを説明する図である。
計算されることを説明する図である。
【図9】本発明の積和演算装置を応用したディジタルL
PFの第2実施例の構成を示すブロック図である。
PFの第2実施例の構成を示すブロック図である。
【図10】本発明の積和演算装置を応用したディジタル
LPFの第3実施例の構成を示すブロック図である。
LPFの第3実施例の構成を示すブロック図である。
【図11】図11の実施例の動作を説明するフローチャ
ートである。
ートである。
1 データメモリ 2 ラッチ回路 3 加算器 4 乗算器 5 係数メモリ 6 累積加算器 7 アキュームレータ(ACC) 8 シフタ 9 出力フリップフロップ(出力FF) 10 ダウンカウンタ 11 XOR回路 12 ベースカウンタ 13 加算器 14 スイッチ 21 レジスタ部 211乃至2120 レジスタ 22 加算部 221乃至2210 加算器 23 乗算部 231乃至2310 乗算器 24 加算部 241乃至249 加算器 25 シフタ部 251乃至256 シフタ 26 レジスタ 27 スイッチ 31 インターフェース(I/O) 32 データメモリ 33 係数メモリ 34,35 レジスタ 36 ALU 37 レジスタ 38 乗算器 39,40 レジスタ 41 データバス
【手続補正書】
【提出日】平成4年2月17日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項5
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0012
【補正方法】変更
【補正内容】
【0012】 請求項5に記載の積和演算装置は、乗算
器4、累積加算器6、およびACC7は係数メモリ5に
記憶された係数の指数部が単調増加する順番で、データ
メモリ1に記憶されたデータと係数メモリ5に記憶され
た係数との積を計算し、累積加算することを特徴とす
る。
器4、累積加算器6、およびACC7は係数メモリ5に
記憶された係数の指数部が単調増加する順番で、データ
メモリ1に記憶されたデータと係数メモリ5に記憶され
た係数との積を計算し、累積加算することを特徴とす
る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0033
【補正方法】変更
【補正内容】
【0033】 ここで、このディジタルLPFは、入力
されたディジタル信号を2倍オーバーサンプリングした
(入力されたディジタル信号のサンプリング周波数fs
の2倍の周波数2fsの)フィルタ出力を得る39次の
補間型ディジタルフィルタで、そのインパルス応答は、
図2に示すような波形になるように設計されている。図
2に示したインパルス応答からわかるように、このLP
Fの係数は、その次数が高くなるほど係数の絶対値が小
さくなる傾向があり、0次の係数C0に対して対称で、
また、補間型なので、0次の係数C0(=1)を除く偶
数次の係数C2,C4,C6,C8,C10,C12,C14,C
16,C18は、すべて0になる。また、奇数次の係数は、 C1=0.6328 C3=−0.2031 C5=0.1152 C7=−0.07520 C9=0.05078 C11=−0.03516 C13=0.02393 C15=−0.01587 C17=0.009888 C19=−0.008057 となっている。このように、本実施例の場合において
は、0次を除く偶数次の係数C2乃至C18(C2,C4,
C6,C8,C10,C12,C14,C16,C18)が、0にな
るので、係数の指数部間の差分は、偶数次の係数C2乃
至C18を除いた奇数次の係数C1乃至C19(C1,C3,
C5,C7,C9,C11,C13,C15,C17,C19)にお
ける差分、即ち係数C2q+1およびC2q-1の指数部間の差
分を用いる。従って、係数C2q+1の指数部間の差分は、
係数C2q+1およびC2q-1の指数部間の差分とする。但
し、qは自然数である。
されたディジタル信号を2倍オーバーサンプリングした
(入力されたディジタル信号のサンプリング周波数fs
の2倍の周波数2fsの)フィルタ出力を得る39次の
補間型ディジタルフィルタで、そのインパルス応答は、
図2に示すような波形になるように設計されている。図
2に示したインパルス応答からわかるように、このLP
Fの係数は、その次数が高くなるほど係数の絶対値が小
さくなる傾向があり、0次の係数C0に対して対称で、
また、補間型なので、0次の係数C0(=1)を除く偶
数次の係数C2,C4,C6,C8,C10,C12,C14,C
16,C18は、すべて0になる。また、奇数次の係数は、 C1=0.6328 C3=−0.2031 C5=0.1152 C7=−0.07520 C9=0.05078 C11=−0.03516 C13=0.02393 C15=−0.01587 C17=0.009888 C19=−0.008057 となっている。このように、本実施例の場合において
は、0次を除く偶数次の係数C2乃至C18(C2,C4,
C6,C8,C10,C12,C14,C16,C18)が、0にな
るので、係数の指数部間の差分は、偶数次の係数C2乃
至C18を除いた奇数次の係数C1乃至C19(C1,C3,
C5,C7,C9,C11,C13,C15,C17,C19)にお
ける差分、即ち係数C2q+1およびC2q-1の指数部間の差
分を用いる。従って、係数C2q+1の指数部間の差分は、
係数C2q+1およびC2q-1の指数部間の差分とする。但
し、qは自然数である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0071
【補正方法】変更
【補正内容】
【0071】 次に、図9は、本発明の積和演算装置を
応用したディジタルLPFの第2実施例の構成を示すブ
ロック図である。このディジタルLPFは、図1の実施
例と同様に、入力されたディジタル信号を2倍オーバー
サンプリングしたフィルタ出力を得ることができる39
次の補間型ディジタルフィルタで、そのインパルス応答
は、図2に示すような波形になるように設計されてお
り、このLPFの係数は、0次の係数C0に対して対称
で、0次の係数C0(=1)を除く偶数次の係数C2,C
4,C6,C8,C10,C12,C14,C16,C18は、すべ
て0になっている。
応用したディジタルLPFの第2実施例の構成を示すブ
ロック図である。このディジタルLPFは、図1の実施
例と同様に、入力されたディジタル信号を2倍オーバー
サンプリングしたフィルタ出力を得ることができる39
次の補間型ディジタルフィルタで、そのインパルス応答
は、図2に示すような波形になるように設計されてお
り、このLPFの係数は、0次の係数C0に対して対称
で、0次の係数C0(=1)を除く偶数次の係数C2,C
4,C6,C8,C10,C12,C14,C16,C18は、すべ
て0になっている。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正内容】
【0089】 次に、図10は、本発明の積和演算装置
を応用したディジタルLPFの第3実施例の構成を示す
ブロック図である。このディジタルLPFは、図1およ
び図9の実施例と同様に、入力されたディジタル信号を
2倍オーバーサンプリングしたフィルタ出力を得ること
ができる39次の補間型ディジタルフィルタで、そのイ
ンパルス応答は、図2に示すような波形になるように設
計されている。
を応用したディジタルLPFの第3実施例の構成を示す
ブロック図である。このディジタルLPFは、図1およ
び図9の実施例と同様に、入力されたディジタル信号を
2倍オーバーサンプリングしたフィルタ出力を得ること
ができる39次の補間型ディジタルフィルタで、そのイ
ンパルス応答は、図2に示すような波形になるように設
計されている。
【手続補正6】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/347 M 6798−5L
Claims (11)
- 【請求項1】 データを記憶するデータ記憶手段と、 係数を記憶する係数記憶手段と、 前記係数記憶手段に記憶された係数の指数部の大きさに
対応した順番で、前記データ記憶手段に記憶されたデー
タと前記係数記憶手段に記憶された係数との積を計算
し、累積加算する累積加算手段とを備えることを特徴と
する積和演算装置。 - 【請求項2】 前記累積加算手段は、前記係数記憶手段
に記憶された係数の指数部の小さい順に、前記データ記
憶手段に記憶されたデータと前記係数記憶手段に記憶さ
れた係数との積を計算し、累積加算することを特徴とす
る請求項1に記載の積和演算装置。 - 【請求項3】 前記係数の指数部の小さい順に前記係数
記憶手段に記憶された係数を読み出す係数読出し手段を
さらに備えることを特徴とする請求項2に記載の積和演
算装置。 - 【請求項4】 前記係数読出し手段により前記係数記憶
手段に記憶された係数が読み出された順番に対応して、
前記データ記憶手段に記憶されたデータを読み出すデー
タ読出し手段をさらに備えることを特徴とする請求項3
に記載の積和演算装置。 - 【請求項5】 前記累積加算手段は前記係数記憶手段に
記憶された係数の指数部間の差分が単調増加する順番
で、前記データ記憶手段に記憶されたデータと前記係数
記憶手段に記憶された係数との積を計算し、累積加算す
ることを特徴とする請求項1に記載の積和演算装置。 - 【請求項6】 前記累積加算手段は前記係数記憶手段に
記憶された係数の指数部間の差分が0または1になる順
番で、前記データ記憶手段に記憶されたデータと前記係
数記憶手段に記憶された係数との積を計算し、累積加算
することを特徴とする請求項5に記載の積和演算装置。 - 【請求項7】 前記累積加算手段は前記係数記憶手段に
記憶された係数の指数部の大きさに対応して、前記係数
を任意の項数よりなる和の形に展開し、前記データ記憶
手段に記憶されたデータとの積を計算し、累積加算する
ことを特徴とする請求項5に記載の積和演算装置。 - 【請求項8】 前記係数記憶手段に記憶された係数の指
数部間の差分に対応して、前記累積加算手段により累積
加算された積をビットシフトするビットシフト手段をさ
らに備えることを特徴とする請求項1に記載の積和演算
装置。 - 【請求項9】 前記係数記憶手段は前記係数の指数部間
の差分を記憶することを特徴とする請求項8に記載の積
和演算装置。 - 【請求項10】 データを記憶し、 係数を記憶し、 前記係数の指数部の大きさに対応した順番で、前記デー
タと前記係数との積を計算し、累積加算することを特徴
とする積和演算方法。 - 【請求項11】 データを記憶する記憶手段と、 前記記憶手段に記憶されたデータと係数の仮数部との積
を計算する乗算手段と、 前記乗算手段により計算された積を累積加算する累積加
算手段と、 前記係数の指数部間の差分に対応して前記累積加算手段
により累積加算された積をビットシフトするビットシフ
ト手段とを備えることを特徴とする積和演算装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34894291A JP3318753B2 (ja) | 1991-12-05 | 1991-12-05 | 積和演算装置および積和演算方法 |
| US07/985,028 US5400271A (en) | 1991-12-05 | 1992-12-03 | Apparatus for and method of calculating sum of products |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP34894291A JP3318753B2 (ja) | 1991-12-05 | 1991-12-05 | 積和演算装置および積和演算方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05158656A true JPH05158656A (ja) | 1993-06-25 |
| JP3318753B2 JP3318753B2 (ja) | 2002-08-26 |
Family
ID=18400423
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP34894291A Expired - Fee Related JP3318753B2 (ja) | 1991-12-05 | 1991-12-05 | 積和演算装置および積和演算方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5400271A (ja) |
| JP (1) | JP3318753B2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6073155A (en) * | 1996-08-08 | 2000-06-06 | Fuji Xerox Co., Ltd. | Floating-point accumulator |
| JP2007509524A (ja) * | 2003-10-16 | 2007-04-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理装置における時間基準調整 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07253965A (ja) * | 1994-03-16 | 1995-10-03 | Fujitsu Ltd | 積和演算器 |
| JP3620887B2 (ja) * | 1995-03-24 | 2005-02-16 | 株式会社ルネサステクノロジ | データ処理装置 |
| US5905757A (en) * | 1996-10-04 | 1999-05-18 | Motorola, Inc. | Filter co-processor |
| JP3181879B2 (ja) | 1998-07-22 | 2001-07-03 | シャープ株式会社 | 送信装置 |
| JP2008206136A (ja) * | 2007-01-23 | 2008-09-04 | Rohm Co Ltd | フィルタ回路およびそれを含むfm送信機、ならびにこれらを用いた電子機器 |
| US10360163B2 (en) | 2016-10-27 | 2019-07-23 | Google Llc | Exploiting input data sparsity in neural network compute units |
| US10175980B2 (en) | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2618925B1 (fr) * | 1987-07-30 | 1989-12-15 | Rault Jean | Dispositif de calcul numerique pour installation de transmission de donnees en code 2b 1q ou analogue |
| US5032865A (en) * | 1987-12-14 | 1991-07-16 | General Dynamics Corporation Air Defense Systems Div. | Calculating the dot product of large dimensional vectors in two's complement representation |
| JPH04116720A (ja) * | 1990-09-07 | 1992-04-17 | Hitachi Ltd | 半導体装置 |
| JPH04127364A (ja) * | 1990-09-19 | 1992-04-28 | Nec Corp | 積和算器 |
-
1991
- 1991-12-05 JP JP34894291A patent/JP3318753B2/ja not_active Expired - Fee Related
-
1992
- 1992-12-03 US US07/985,028 patent/US5400271A/en not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6073155A (en) * | 1996-08-08 | 2000-06-06 | Fuji Xerox Co., Ltd. | Floating-point accumulator |
| JP2007509524A (ja) * | 2003-10-16 | 2007-04-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理装置における時間基準調整 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3318753B2 (ja) | 2002-08-26 |
| US5400271A (en) | 1995-03-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5862067A (en) | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations | |
| US5726924A (en) | Exponentiation circuit utilizing shift means and method of using same | |
| KR20040063143A (ko) | 오퍼랜드 가산 방법 및 회로 장치 및 컴퓨터 구현형 장치 | |
| EP0441121A2 (en) | Arithmetic operation apparatus for elementary function | |
| US6101521A (en) | Data processing method and apparatus operable on an irrational mathematical value | |
| US4956799A (en) | Trigonometric function arithmetic processor using pseudo-division | |
| JP3318753B2 (ja) | 積和演算装置および積和演算方法 | |
| EP0416308A2 (en) | Rectangular array signed digit multiplier | |
| JP2822399B2 (ja) | 対数関数演算装置 | |
| JPH0833809B2 (ja) | 浮動小数点表示データの演算方法 | |
| JPH0127463B2 (ja) | ||
| JPH0519170B2 (ja) | ||
| US6055553A (en) | Apparatus for computing exponential and trigonometric functions | |
| JPH09128213A (ja) | ブロックフローティング処理システムおよび方法 | |
| JPS6165362A (ja) | デジタル信号処理装置 | |
| JPH0831024B2 (ja) | 演算プロセッサ | |
| JP3595449B2 (ja) | 累積加算回路 | |
| JPH067375B2 (ja) | 演算回路 | |
| JP2508286B2 (ja) | 平方根演算装置 | |
| JPS61213926A (ja) | Dsp演算処理方式 | |
| Kehtarnavaz et al. | Fixed-Point vs. Floating-Point | |
| US11652471B2 (en) | Low power biquad systems and methods | |
| JP4196434B2 (ja) | データ丸め方法およびデータ丸め装置 | |
| JPH032970A (ja) | 演算回路 | |
| JPH11134174A (ja) | 演算回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020513 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080621 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090621 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090621 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100621 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |