JPH0689300A - Ltiシステムのデータ処理方法 - Google Patents
Ltiシステムのデータ処理方法Info
- Publication number
- JPH0689300A JPH0689300A JP26541992A JP26541992A JPH0689300A JP H0689300 A JPH0689300 A JP H0689300A JP 26541992 A JP26541992 A JP 26541992A JP 26541992 A JP26541992 A JP 26541992A JP H0689300 A JPH0689300 A JP H0689300A
- Authority
- JP
- Japan
- Prior art keywords
- fixed point
- data processing
- processing method
- exponent
- constant
- 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.)
- Pending
Links
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】
【目的】 量子化誤差及び演算誤差を排除してシステム
特性の向上を図り、加えて回路構成の縮小化とデータ処
理の高速化を実現する。 【構成】 各システム定数h[m]を指数部の大きさの
範囲を限定して浮動小数点表現し、かつ絶対値が一定の
大きさ以上となるシステム定数h[m]を複数に分割し
たシステム定数h′[m]、h[m]に変換するととも
に、各システム定数h′[m]、h[m]の仮数部h
m、h′mと各入力データx[n]を固定小数点により
乗算し、かつ同一の指数部pm、p′mを有するシステ
ム定数h′[m]、h[m]について実行した乗算結果
を、固定小数点により加算して部分和を求めるととも
に、異なる指数部毎に求めた部分和を固定小数点により
加算して出力データy[n]のための総和を求める。
特性の向上を図り、加えて回路構成の縮小化とデータ処
理の高速化を実現する。 【構成】 各システム定数h[m]を指数部の大きさの
範囲を限定して浮動小数点表現し、かつ絶対値が一定の
大きさ以上となるシステム定数h[m]を複数に分割し
たシステム定数h′[m]、h[m]に変換するととも
に、各システム定数h′[m]、h[m]の仮数部h
m、h′mと各入力データx[n]を固定小数点により
乗算し、かつ同一の指数部pm、p′mを有するシステ
ム定数h′[m]、h[m]について実行した乗算結果
を、固定小数点により加算して部分和を求めるととも
に、異なる指数部毎に求めた部分和を固定小数点により
加算して出力データy[n]のための総和を求める。
Description
【0001】
【産業上の利用分野】本発明はFIRディジタルフィル
タ、相互相関器等のディジタル信号処理に用いて好適な
LTI(線形時不変)システムのデータ処理方法に関す
る。
タ、相互相関器等のディジタル信号処理に用いて好適な
LTI(線形時不変)システムのデータ処理方法に関す
る。
【0002】
【従来の技術】一般に、入力データをx[n]、インパ
ルス応答を表すシステム定数をh[m](m=0,1,
2…N−1)とした場合、入力データx[n]とシステ
ム定数h[m]のたたみ込み演算を行う下記〔数1〕式
から出力データy[n]を求めることができるLTIシ
ステムは知られており、システム定数h[m]をインパ
ルス応答を表すタップ係数(フィルタ係数)とすれば、
このLTIシステムはFIRディジタルフィルタとな
る。
ルス応答を表すシステム定数をh[m](m=0,1,
2…N−1)とした場合、入力データx[n]とシステ
ム定数h[m]のたたみ込み演算を行う下記〔数1〕式
から出力データy[n]を求めることができるLTIシ
ステムは知られており、システム定数h[m]をインパ
ルス応答を表すタップ係数(フィルタ係数)とすれば、
このLTIシステムはFIRディジタルフィルタとな
る。
【0003】
【数1】 なお、〔数1〕式は入力データx[n]とシステム定数
h[m]の相互(自己)相関を求めることができるた
め、このLTIシステムは相互(自己)相関器とみなす
こともできる。
h[m]の相互(自己)相関を求めることができるた
め、このLTIシステムは相互(自己)相関器とみなす
こともできる。
【0004】ところで、この種のLTIシステムをFI
Rディジタルフィルタとして構成する場合、通常、入力
データx[n]と出力データy[n]は固定小数点表現
されるため、タップ係数(システム定数)h[m]も回
路構成の小規模化及び演算処理の高速化を確保する理由
から固定小数点表現され、前記〔数1〕式は固定小数点
により演算処理(データ処理)されていた。
Rディジタルフィルタとして構成する場合、通常、入力
データx[n]と出力データy[n]は固定小数点表現
されるため、タップ係数(システム定数)h[m]も回
路構成の小規模化及び演算処理の高速化を確保する理由
から固定小数点表現され、前記〔数1〕式は固定小数点
により演算処理(データ処理)されていた。
【0005】図2はこのようなデータ処理を実行できる
FIRディジタルフィルタのブロック構成回路を示す。
このFIRディジタルフィルタによれば、前記〔数1〕
式の演算処理が固定小数点により忠実に実行され、一つ
の出力データ(出力値)y[n]が求められる。以下、
図2に示すFIRディジタルフィルタ50の概要につい
て説明する。
FIRディジタルフィルタのブロック構成回路を示す。
このFIRディジタルフィルタによれば、前記〔数1〕
式の演算処理が固定小数点により忠実に実行され、一つ
の出力データ(出力値)y[n]が求められる。以下、
図2に示すFIRディジタルフィルタ50の概要につい
て説明する。
【0006】まず、固定小数点表現された入力データx
[n]は第一アドレス発生器52からの書込アドレスA
wによってRAM51に書き込まれる。この場合、書込
アドレスAwは、0000H…FFFFH,0000H…
FFFFHのようにサイクリックに生成され、その数は
最低タップ数だけ必要になる。なお、入力データx
[n]を一旦RAM51に書き込む理由は、データ処理
の実行をハードウェア化する際、タップ数が多くなるに
従って回路規模も大きくなり、パイプライン処理が困難
になるためである。
[n]は第一アドレス発生器52からの書込アドレスA
wによってRAM51に書き込まれる。この場合、書込
アドレスAwは、0000H…FFFFH,0000H…
FFFFHのようにサイクリックに生成され、その数は
最低タップ数だけ必要になる。なお、入力データx
[n]を一旦RAM51に書き込む理由は、データ処理
の実行をハードウェア化する際、タップ数が多くなるに
従って回路規模も大きくなり、パイプライン処理が困難
になるためである。
【0007】一方、RAM51に記憶された入力データ
x[n]は、第一アドレス発生器52からの読出アドレ
スAorによって、書き込まれた順番に読み出され、乗
算機能部53に付与される。この場合、タップ係数の数
が、例えば、256であれば、読出アドレスAorは、
0000H…00FFH,0001H…0100H,000
2H…0101H,0003H…0102Hのように順番に
生成される。
x[n]は、第一アドレス発生器52からの読出アドレ
スAorによって、書き込まれた順番に読み出され、乗
算機能部53に付与される。この場合、タップ係数の数
が、例えば、256であれば、読出アドレスAorは、
0000H…00FFH,0001H…0100H,000
2H…0101H,0003H…0102Hのように順番に
生成される。
【0008】他方、固定小数点表現されたタップ係数h
[m]は予めROM54に格納されており、第二アドレ
ス発生器55からの読出アドレスAofにより順次読み
出されるとともに、乗算機能部53に付与される。そし
て、乗算機能部53ではタップ係数と入力データの乗
算、即ち、h[m]・x[n−m]の乗算処理が実行さ
れる。また、得られた乗算結果は加算機能部56に付与
され、乗算結果の総和、即ち、前記〔数1〕式が求めら
れる。
[m]は予めROM54に格納されており、第二アドレ
ス発生器55からの読出アドレスAofにより順次読み
出されるとともに、乗算機能部53に付与される。そし
て、乗算機能部53ではタップ係数と入力データの乗
算、即ち、h[m]・x[n−m]の乗算処理が実行さ
れる。また、得られた乗算結果は加算機能部56に付与
され、乗算結果の総和、即ち、前記〔数1〕式が求めら
れる。
【0009】なお、57は前記〔数1〕式のΣ記号によ
る総和、即ち、出力データ(出力値)y[n]が得られ
る毎に加算機能部56を初期化するセレクタ、58は加
算機能部56から得た加算結果を必要なビット数に丸め
る四捨五入機能部、59は各ブロックにタイミング信号
を付与するタイミング信号発生器である。
る総和、即ち、出力データ(出力値)y[n]が得られ
る毎に加算機能部56を初期化するセレクタ、58は加
算機能部56から得た加算結果を必要なビット数に丸め
る四捨五入機能部、59は各ブロックにタイミング信号
を付与するタイミング信号発生器である。
【0010】
【発明が解決しようとする課題】しかし、上述したFI
Rディジタルフィルタ50における従来のデータ処理方
法は入力データx[n]及びタップ係数(システム定
数)h[m]は共に固定小数点表現により演算処理され
るため、量子化誤差や演算誤差が大きくなり、フィルタ
特性の低下を招く問題がある。
Rディジタルフィルタ50における従来のデータ処理方
法は入力データx[n]及びタップ係数(システム定
数)h[m]は共に固定小数点表現により演算処理され
るため、量子化誤差や演算誤差が大きくなり、フィルタ
特性の低下を招く問題がある。
【0011】一方、量子化誤差を低減するために、タッ
プ係数h[m]を浮動小数点表現するとともに、入力デ
ータx[n]を浮動小数点表現に拡大解釈し、前記〔数
1〕式を浮動小数点表現により演算した後、固定小数点
表現に変換して出力データy[n]を求めることも考え
られるが、このような単純な変換処理を行うだけでは、
回路規模が大きくなり、しかも、データの処理時間が長
くなるという新たな問題を生ずる。
プ係数h[m]を浮動小数点表現するとともに、入力デ
ータx[n]を浮動小数点表現に拡大解釈し、前記〔数
1〕式を浮動小数点表現により演算した後、固定小数点
表現に変換して出力データy[n]を求めることも考え
られるが、このような単純な変換処理を行うだけでは、
回路規模が大きくなり、しかも、データの処理時間が長
くなるという新たな問題を生ずる。
【0012】本発明はこのような従来の技術に存在する
課題を解決したものであり、量子化誤差及び演算誤差を
排除してシステム特性の向上を図り、加えて回路構成の
縮小化とデータ処理の高速化を実現できるLTIシステ
ムのデータ処理方法の提供を目的とする。
課題を解決したものであり、量子化誤差及び演算誤差を
排除してシステム特性の向上を図り、加えて回路構成の
縮小化とデータ処理の高速化を実現できるLTIシステ
ムのデータ処理方法の提供を目的とする。
【0013】
【課題を解決するための手段】本発明に係るLTIシス
テムのデータ処理方法は、固定小数点表現された入力デ
ータx[n]とシステム定数h[m]を演算処理して固
定小数点表現された出力データy[n]を求めるに際
し、各システム定数h[m]を指数部の大きさの範囲を
限定して浮動小数点表現し、かつ絶対値が一定の大きさ
以上となるシステム定数h[m]を複数に分割したシス
テム定数h′[m]、h[m]に変換するとともに、各
システム定数h′[m]、h[m]の仮数部hm、h′
mと各入力データx[n]を固定小数点により乗算し、
かつ同一の指数部pm、p′mを有するシステム定数
h′[m]、h[m]について実行した乗算結果を、固
定小数点により加算して部分和を求めるとともに、異な
る指数部毎に求めた部分和を固定小数点により加算、例
えば、小さい指数部pm、p′mを有するシステム定数
h′[m]、h[m]に対応する部分和から順番に加算
して出力データy[n]のための総和を求めることを特
徴とする。
テムのデータ処理方法は、固定小数点表現された入力デ
ータx[n]とシステム定数h[m]を演算処理して固
定小数点表現された出力データy[n]を求めるに際
し、各システム定数h[m]を指数部の大きさの範囲を
限定して浮動小数点表現し、かつ絶対値が一定の大きさ
以上となるシステム定数h[m]を複数に分割したシス
テム定数h′[m]、h[m]に変換するとともに、各
システム定数h′[m]、h[m]の仮数部hm、h′
mと各入力データx[n]を固定小数点により乗算し、
かつ同一の指数部pm、p′mを有するシステム定数
h′[m]、h[m]について実行した乗算結果を、固
定小数点により加算して部分和を求めるとともに、異な
る指数部毎に求めた部分和を固定小数点により加算、例
えば、小さい指数部pm、p′mを有するシステム定数
h′[m]、h[m]に対応する部分和から順番に加算
して出力データy[n]のための総和を求めることを特
徴とする。
【0014】
【作用】本発明に係るLTIシステムのデータ処理方法
によれば、まず、各システム定数h[m]は指数部pm
の大きさの範囲を限定して浮動小数点表現し、かつ絶対
値が一定の大きさ以上となるシステム定数は複数に分割
したシステム定数h′[m]とh[m]に変換する。
によれば、まず、各システム定数h[m]は指数部pm
の大きさの範囲を限定して浮動小数点表現し、かつ絶対
値が一定の大きさ以上となるシステム定数は複数に分割
したシステム定数h′[m]とh[m]に変換する。
【0015】システム定数をこのような浮動小数点表現
に変換する理由は次の通りである。通常、システム定数
の値をQビット固定小数点表現した場合、ほとんどのシ
ステム定数はフルスケール値をとらずに零付近の値をと
ることが多い。このため、システム定数の上位ビットは
そのほとんどが演算処理に利用されず、結局、Qビット
の演算処理では極めて無駄が多くなる。
に変換する理由は次の通りである。通常、システム定数
の値をQビット固定小数点表現した場合、ほとんどのシ
ステム定数はフルスケール値をとらずに零付近の値をと
ることが多い。このため、システム定数の上位ビットは
そのほとんどが演算処理に利用されず、結局、Qビット
の演算処理では極めて無駄が多くなる。
【0016】一方、システム定数を浮動小数点表現すれ
ば、仮数部の語長が減少し、演算処理においては各ビッ
トを有効に活用できる。しかし、単に、浮動小数点表現
を用いたとしても、入出力データは固定小数点表現され
ているので、各ビットは演算処理の最終結果に寄与しな
いこともあり得る。そこで、仮数部のとり得る値の範囲
を不要に広げないために、予め、Qビット固定小数点表
現したシステム定数から、Rビットずつ取り出して浮動
小数点表現する変換方法を採用した。
ば、仮数部の語長が減少し、演算処理においては各ビッ
トを有効に活用できる。しかし、単に、浮動小数点表現
を用いたとしても、入出力データは固定小数点表現され
ているので、各ビットは演算処理の最終結果に寄与しな
いこともあり得る。そこで、仮数部のとり得る値の範囲
を不要に広げないために、予め、Qビット固定小数点表
現したシステム定数から、Rビットずつ取り出して浮動
小数点表現する変換方法を採用した。
【0017】他方、システム定数における零付近の値は
部分和を求める演算処理によって、桁上がりした部分の
みが最終結果に寄与するので、仮数部の語長Rは入出力
データの語長よりも短くてもよい。しかし、フルスケー
ル付近の値は全ビットが最終結果に寄与し得るので、仮
数部の語長を入出力データの語長よりも短くすれば、シ
ステム定数の量子化誤差を招き、結局、正しい演算結果
を得られない。そこで、通常はRビットの比較的短い誤
長での演算処理を行うとともに、フルスケール付近(絶
対値が2-S以上)の値については、SビットとRビット
の二つに分割して演算処理を行うようにした。
部分和を求める演算処理によって、桁上がりした部分の
みが最終結果に寄与するので、仮数部の語長Rは入出力
データの語長よりも短くてもよい。しかし、フルスケー
ル付近の値は全ビットが最終結果に寄与し得るので、仮
数部の語長を入出力データの語長よりも短くすれば、シ
ステム定数の量子化誤差を招き、結局、正しい演算結果
を得られない。そこで、通常はRビットの比較的短い誤
長での演算処理を行うとともに、フルスケール付近(絶
対値が2-S以上)の値については、SビットとRビット
の二つに分割して演算処理を行うようにした。
【0018】なお、システム定数を浮動小数点表現し、
かつ上述した手法により演算処理を行った場合には、フ
ルスケール付近の値は重複して演算処理されることにな
るが、フルスケール近辺の値をとるシステム定数は全シ
ステム定数の数に比べて極めて少ないため、演算時間へ
の影響は極めて少ない。よって、高精度の高速演算処理
が実現される。
かつ上述した手法により演算処理を行った場合には、フ
ルスケール付近の値は重複して演算処理されることにな
るが、フルスケール近辺の値をとるシステム定数は全シ
ステム定数の数に比べて極めて少ないため、演算時間へ
の影響は極めて少ない。よって、高精度の高速演算処理
が実現される。
【0019】次に、本発明に係るデータ処理方法に基づ
く具体的処理手順について述べる。まず、│h[m]│
の最大値を1−2-Q(Q:正の整数)に正規化する。次
いで、│h[m]│を直線量子化するとともに、Qビッ
ト固定小数点で表現し、これを〜h[m]とする。な
お、〜h[m]におけるビットの重みは上位から下位に
行くに従って2-1,2-2,2-3…2-Qとなる。そして、
次に示す〜の条件に応じて〜h[m]を浮動小数点
表現する。なお、以下に記載する「INT()」は()
内の値を越えない最大の整数を表している。
く具体的処理手順について述べる。まず、│h[m]│
の最大値を1−2-Q(Q:正の整数)に正規化する。次
いで、│h[m]│を直線量子化するとともに、Qビッ
ト固定小数点で表現し、これを〜h[m]とする。な
お、〜h[m]におけるビットの重みは上位から下位に
行くに従って2-1,2-2,2-3…2-Qとなる。そして、
次に示す〜の条件に応じて〜h[m]を浮動小数点
表現する。なお、以下に記載する「INT()」は()
内の値を越えない最大の整数を表している。
【0020】 〜h[m]<2-Q+R(R:0<R<Q
となる整数)のとき、この場合、指数部pm=−Q、仮
数部hm=INT(h[m]/2pm)とし、〜h[m]
≒hm×2pmとする。仮数部hmはRビットで表現さ
れ、h[m]が負値を取り得るときは、hmに符号ビッ
トを付加してR+1ビットで表現する。
となる整数)のとき、この場合、指数部pm=−Q、仮
数部hm=INT(h[m]/2pm)とし、〜h[m]
≒hm×2pmとする。仮数部hmはRビットで表現さ
れ、h[m]が負値を取り得るときは、hmに符号ビッ
トを付加してR+1ビットで表現する。
【0021】 2-Q+R≦〜h[m]<2-S(S:0<
S<Qとなる整数)のとき、この場合、指数部pm=I
NT(log2│h[m]│)−R+1、仮数部hm=IN
T(h[m]/2pm)とし、〜h[m]≒hm×2pmと
する。なお、仮数部hmのビット数はに準ずる。
S<Qとなる整数)のとき、この場合、指数部pm=I
NT(log2│h[m]│)−R+1、仮数部hm=IN
T(h[m]/2pm)とし、〜h[m]≒hm×2pmと
する。なお、仮数部hmのビット数はに準ずる。
【0022】 〜h[m]>2-Sのとき、この場合、
指数部p′m=−S、仮数部h′m=INT(h[m]
/2pm)のシステム定数と、指数部pm=INT(log2
{│h[m]│−hm×2-S})−R+1(pm≦−Q
であればpm=−Q)、仮数部hm=INT(h[m]
/2pm)のシステム定数の二つで表現する。即ち、〜h
[m]≒h′m×2p′m+hm×2pmとする。この場
合、仮数部h′mはSビットで表現され、hmと同様
に、h[m]が負値を取り得るときは、符号ビットを付
加してS+1ビットで表現する。
指数部p′m=−S、仮数部h′m=INT(h[m]
/2pm)のシステム定数と、指数部pm=INT(log2
{│h[m]│−hm×2-S})−R+1(pm≦−Q
であればpm=−Q)、仮数部hm=INT(h[m]
/2pm)のシステム定数の二つで表現する。即ち、〜h
[m]≒h′m×2p′m+hm×2pmとする。この場
合、仮数部h′mはSビットで表現され、hmと同様
に、h[m]が負値を取り得るときは、符号ビットを付
加してS+1ビットで表現する。
【0023】以上の浮動小数点表現方法は、Qビットの
システム定数からは最も高い精度でRビットを取り出せ
るとともに、絶対値の大きいシステム定数からはSビッ
トとRビットの双方を取り出せることを意味する。
システム定数からは最も高い精度でRビットを取り出せ
るとともに、絶対値の大きいシステム定数からはSビッ
トとRビットの双方を取り出せることを意味する。
【0024】一方、上述した浮動小数点表現により、
〔数1〕式は下記〔数2〕式に書き替えることができ、
本発明のデータ処理方法ではこの〔数2〕式が利用され
る。
〔数1〕式は下記〔数2〕式に書き替えることができ、
本発明のデータ処理方法ではこの〔数2〕式が利用され
る。
【0025】
【数2】 なお、〔数2〕式における下記〔数3〕はpm=−Qと
なるmに対するhm・x[n−m]の部分和を意味す
る。
なるmに対するhm・x[n−m]の部分和を意味す
る。
【0026】
【数3】 よって、〔数2〕式により出力データを得るための演算
処理を行うことができる。この場合、データ処理の高速
化と回路の簡略化のために次の手順で演算処理を行う。
まず、同一の指数部を有するシステム定数について実行
した乗算結果毎に各乗算結果を加算した部分和、即ち、
〔数3〕を固定小数点演算により求める。次に、求めた
部分和を指数部pmの小さい順番に加算して総和、即
ち、〔数2〕式のy[n]を固定小数点演算により求め
る。この場合、指数部pm=−Qの部分和のビットを下
位側へ1ビットシフトし、指数部pm=−Q+1の部分
和に加算し、さらに、この部分和のビットを下位側へ1
ビットシフトし、指数部pm=−Q+2の部分和に加算
するというように、順次各部分和を加算して総和を求め
る。
処理を行うことができる。この場合、データ処理の高速
化と回路の簡略化のために次の手順で演算処理を行う。
まず、同一の指数部を有するシステム定数について実行
した乗算結果毎に各乗算結果を加算した部分和、即ち、
〔数3〕を固定小数点演算により求める。次に、求めた
部分和を指数部pmの小さい順番に加算して総和、即
ち、〔数2〕式のy[n]を固定小数点演算により求め
る。この場合、指数部pm=−Qの部分和のビットを下
位側へ1ビットシフトし、指数部pm=−Q+1の部分
和に加算し、さらに、この部分和のビットを下位側へ1
ビットシフトし、指数部pm=−Q+2の部分和に加算
するというように、順次各部分和を加算して総和を求め
る。
【0027】このような加算処理はビットシフトによっ
て小数点位置を揃える処理を含むため、疑似浮動小数点
演算と呼ぶこともでき、特に、部分和を指数部pmの小
さい順番に加算することにより演算誤差を低減できる。
て小数点位置を揃える処理を含むため、疑似浮動小数点
演算と呼ぶこともでき、特に、部分和を指数部pmの小
さい順番に加算することにより演算誤差を低減できる。
【0028】
【実施例】次に、本発明に係る好適な実施例を挙げ、図
面に基づき詳細に説明する。
面に基づき詳細に説明する。
【0029】まず、本発明に係るデータ処理方法を実施
できるLTIシステムの構成について図1を参照して説
明する。なお、実施例はLTIシステムの一例としてF
IRディジタルフィルタを示す。
できるLTIシステムの構成について図1を参照して説
明する。なお、実施例はLTIシステムの一例としてF
IRディジタルフィルタを示す。
【0030】図1中、1はFIRディジタルフィルタで
あり、入力データx[n]の入力部2と出力データy
[n]の出力部3を備える。ディジタルフィルタ1にお
いて、4はRAMであり、入力部2から入力する入力デ
ータx[n]を記憶する。また、5は第一アドレス発生
器であり、RAM4に入力データx[n]を書き込む際
の書込アドレスAwを生成するとともに、RAM4から
読み出す際の読出アドレスArを生成する。この場合、
読出アドレスArは最新の書込アドレスAwに応じて、
前記〔数2〕式の演算を実行できるように入力データx
[n]の読み出しを行う。即ち、具体的には、指数部p
m=−Qとなる仮数部hmを乗じる入力データx[n]
を順次読み出し、この後、指数部pm=−Q+1となる
仮数部hmを乗じる入力データx[n]を順次読み出
し、この後、指数部pm=−Q+2となる仮数部hmを
乗じる入力データx[n]を順次読み出し、以下、順番
に同様の読み出しを行う。
あり、入力データx[n]の入力部2と出力データy
[n]の出力部3を備える。ディジタルフィルタ1にお
いて、4はRAMであり、入力部2から入力する入力デ
ータx[n]を記憶する。また、5は第一アドレス発生
器であり、RAM4に入力データx[n]を書き込む際
の書込アドレスAwを生成するとともに、RAM4から
読み出す際の読出アドレスArを生成する。この場合、
読出アドレスArは最新の書込アドレスAwに応じて、
前記〔数2〕式の演算を実行できるように入力データx
[n]の読み出しを行う。即ち、具体的には、指数部p
m=−Qとなる仮数部hmを乗じる入力データx[n]
を順次読み出し、この後、指数部pm=−Q+1となる
仮数部hmを乗じる入力データx[n]を順次読み出
し、この後、指数部pm=−Q+2となる仮数部hmを
乗じる入力データx[n]を順次読み出し、以下、順番
に同様の読み出しを行う。
【0031】一方、6はROMでありシステム定数h
[m]であるタップ係数(フィルタ係数)の仮数部h
m、h′mが格納されている。この場合、仮数部hm、
h′mは前記“作用”の欄で述べた条件に基づいて予め
設定される。また、仮数部hm、h′mはRAM4から
読み出された入力データx[n]との乗算が容易となる
順番に格納される。なお、指数部pmの格納は不要なた
め、ROMの小容量化が図られる。また、7は第二アド
レス発生器であり、ROM6から目的の仮数部hmを読
み出すための読出アドレスAfを生成する。
[m]であるタップ係数(フィルタ係数)の仮数部h
m、h′mが格納されている。この場合、仮数部hm、
h′mは前記“作用”の欄で述べた条件に基づいて予め
設定される。また、仮数部hm、h′mはRAM4から
読み出された入力データx[n]との乗算が容易となる
順番に格納される。なお、指数部pmの格納は不要なた
め、ROMの小容量化が図られる。また、7は第二アド
レス発生器であり、ROM6から目的の仮数部hmを読
み出すための読出アドレスAfを生成する。
【0032】他方、8は乗算機能部であり、タップ係数
の仮数部と入力データの乗算、即ち、hm・x[n−
m]を固定小数点により演算処理する。また、9は第一
加算機能部であり、同一の指数部pmを有するタップ係
数について実行した乗算結果毎に各乗算結果を加算した
前記〔数3〕で示す部分和、即ち、Σhm・x[n−
m]を固定小数点により演算処理する。なお、10はΣ
記号による総和が求められる毎に、第一加算機能部9を
初期化するセレクタである。
の仮数部と入力データの乗算、即ち、hm・x[n−
m]を固定小数点により演算処理する。また、9は第一
加算機能部であり、同一の指数部pmを有するタップ係
数について実行した乗算結果毎に各乗算結果を加算した
前記〔数3〕で示す部分和、即ち、Σhm・x[n−
m]を固定小数点により演算処理する。なお、10はΣ
記号による総和が求められる毎に、第一加算機能部9を
初期化するセレクタである。
【0033】また、11は第二加算機能部であり、第一
加算機能部9から得られる前記〔数3〕で示す部分和を
全て加算した総和を固定小数点により演算する。なお、
12は〔数3〕の総和、即ち、前記〔数2〕式における
y[n]が求められる毎に、第二加算機能部11を初期
化するセレクタである。一方、13は第二加算機能部1
1の出力を1ビット下位側にシフトするためのシフトビ
ット部である。このシフトビット部13は回路素子を必
要としない配線のみで実現できる。
加算機能部9から得られる前記〔数3〕で示す部分和を
全て加算した総和を固定小数点により演算する。なお、
12は〔数3〕の総和、即ち、前記〔数2〕式における
y[n]が求められる毎に、第二加算機能部11を初期
化するセレクタである。一方、13は第二加算機能部1
1の出力を1ビット下位側にシフトするためのシフトビ
ット部である。このシフトビット部13は回路素子を必
要としない配線のみで実現できる。
【0034】その他、14は第二加算機能部11から得
る加算結果に対して利得補正定数を乗じる利得補正機能
部及び利得補正された値を必要な語長に変換して出力デ
ータとする四捨五入機能部を含む出力処理部である。こ
のような、利得補正機能部によりタップ係数を構成する
値を浮動小数点表現することによって生じるフィルタ利
得を補正できる。また、15は各ブロックにタイミング
信号を付与するタイミング信号発生器である。なお、各
ブロックにおける機能はハードウェア、ソフトウェアの
いずれによっても実現できる。
る加算結果に対して利得補正定数を乗じる利得補正機能
部及び利得補正された値を必要な語長に変換して出力デ
ータとする四捨五入機能部を含む出力処理部である。こ
のような、利得補正機能部によりタップ係数を構成する
値を浮動小数点表現することによって生じるフィルタ利
得を補正できる。また、15は各ブロックにタイミング
信号を付与するタイミング信号発生器である。なお、各
ブロックにおける機能はハードウェア、ソフトウェアの
いずれによっても実現できる。
【0035】次に、本発明に係るデータ処理方法を含む
FIRディジタルフィルタ1の機能について、図1を参
照して説明する。
FIRディジタルフィルタ1の機能について、図1を参
照して説明する。
【0036】まず、固定小数点表現された入力データx
[n]は第一アドレス発生器5からの書込アドレスAw
によってRAM4に書き込まれる。この場合、書込アド
レスAwは、従来と同様、0000H…FFFFH,00
00H…FFFFHのようにサイクリックに生成される。
[n]は第一アドレス発生器5からの書込アドレスAw
によってRAM4に書き込まれる。この場合、書込アド
レスAwは、従来と同様、0000H…FFFFH,00
00H…FFFFHのようにサイクリックに生成される。
【0037】一方、RAM4に記憶された入力データx
[n]は、第一アドレス発生器5からの読出アドレスA
rによって読み出され、乗算機能部8に付与される。即
ち、具体的には、RAM4から前記〔数2〕式の演算を
実行できるところの、指数部pm=−Qとなる仮数部h
mを乗じる入力データx[n]が順次読み出され、この
後、指数部pm=−Q+1となる仮数部hmを乗じる入
力データx[n]が順次読み出され、この後、指数部p
m=−Q+2となる仮数部hmを乗じる入力データx
[n]が順次読み出されるというように、全入力データ
x[n]が順番に読み出される。
[n]は、第一アドレス発生器5からの読出アドレスA
rによって読み出され、乗算機能部8に付与される。即
ち、具体的には、RAM4から前記〔数2〕式の演算を
実行できるところの、指数部pm=−Qとなる仮数部h
mを乗じる入力データx[n]が順次読み出され、この
後、指数部pm=−Q+1となる仮数部hmを乗じる入
力データx[n]が順次読み出され、この後、指数部p
m=−Q+2となる仮数部hmを乗じる入力データx
[n]が順次読み出されるというように、全入力データ
x[n]が順番に読み出される。
【0038】他方、ROM6からは前記〔数2〕式の演
算を実行できるように、タップ係数の仮数部hm、h′
mが第二アドレス発生器7からの読出アドレスAfによ
り予め設定された順番に読み出され、乗算機能部8に付
与される。
算を実行できるように、タップ係数の仮数部hm、h′
mが第二アドレス発生器7からの読出アドレスAfによ
り予め設定された順番に読み出され、乗算機能部8に付
与される。
【0039】そして、RAM4から読み出さた入力デー
タx[n]とROM6から読み出されたタップ係数の仮
数部hm、h′mは乗算機能部8により乗算される。即
ち、hm・x[n−m]が固定小数点により演算処理さ
れる。この乗算結果は第一加算機能部9に付与され、同
一の指数部pmを有するタップ係数について実行した乗
算結果毎に各乗算結果を加算した部分和、即ち、前記
〔数3〕が固定小数点により演算処理される。この際、
セレクタ10により、当該〔数3〕が求められる毎に、
第一加算機能部9は初期化される。
タx[n]とROM6から読み出されたタップ係数の仮
数部hm、h′mは乗算機能部8により乗算される。即
ち、hm・x[n−m]が固定小数点により演算処理さ
れる。この乗算結果は第一加算機能部9に付与され、同
一の指数部pmを有するタップ係数について実行した乗
算結果毎に各乗算結果を加算した部分和、即ち、前記
〔数3〕が固定小数点により演算処理される。この際、
セレクタ10により、当該〔数3〕が求められる毎に、
第一加算機能部9は初期化される。
【0040】また、第一加算機能部9により求められた
部分和は第二加算機能部11に付与され、前記〔数3〕
で示す部分和の総和が固定小数点により演算処理され
る。この場合、シフトビット部13は第二加算機能部1
1の出力を1ビット下位側にシフトする機能を有し、さ
らに、セレクタ12は一つのy[n]が求められる毎
に、第二加算機能部11を初期化する機能を有するた
め、第二加算機能部11は部分和を指数部pmの小さい
順番に加算して前記〔数2〕式のy[n]を求める。具
体的には、指数部pm=−Qの部分和のビットを下位側
へ1ビットシフトし、指数部pm=−Q+1の部分和に
加算し、さらに、この部分和のビットを下位側へ1ビッ
トシフトし、指数部pm=−Q+2の部分和に加算する
というように、順次各部分和を加算して総和を求める。
部分和は第二加算機能部11に付与され、前記〔数3〕
で示す部分和の総和が固定小数点により演算処理され
る。この場合、シフトビット部13は第二加算機能部1
1の出力を1ビット下位側にシフトする機能を有し、さ
らに、セレクタ12は一つのy[n]が求められる毎
に、第二加算機能部11を初期化する機能を有するた
め、第二加算機能部11は部分和を指数部pmの小さい
順番に加算して前記〔数2〕式のy[n]を求める。具
体的には、指数部pm=−Qの部分和のビットを下位側
へ1ビットシフトし、指数部pm=−Q+1の部分和に
加算し、さらに、この部分和のビットを下位側へ1ビッ
トシフトし、指数部pm=−Q+2の部分和に加算する
というように、順次各部分和を加算して総和を求める。
【0041】一方、得られた前記〔数2〕式のy[n]
は出力処理部14に付与される。出力処理部14はその
利得補正機能部により、付与された総和、即ち、前記
〔数2〕式による一つのy[n]に利得補正定数を乗
じ、タップ係数を構成する値を浮動小数点表現すること
によって生じるフィルタ利得を補正するとともに、四捨
五入機能部により、利得補正された値を必要な語長に変
換する。よって、出力処理部14からは固定小数点表現
された出力データが出力部3に付与される。
は出力処理部14に付与される。出力処理部14はその
利得補正機能部により、付与された総和、即ち、前記
〔数2〕式による一つのy[n]に利得補正定数を乗
じ、タップ係数を構成する値を浮動小数点表現すること
によって生じるフィルタ利得を補正するとともに、四捨
五入機能部により、利得補正された値を必要な語長に変
換する。よって、出力処理部14からは固定小数点表現
された出力データが出力部3に付与される。
【0042】以上、実施例について詳細に説明したが、
本発明はこのような実施例に限定されるものではない。
例えば、実施例はFIRディジタルフィルタに適用した
場合を示したが、ディジタル自己相関器にも同様に適用
できるなど、一般的には各種LTIシステムに適用でき
る。その他、細部の構成において本発明の要旨を逸脱し
ない範囲で任意に変更できる。
本発明はこのような実施例に限定されるものではない。
例えば、実施例はFIRディジタルフィルタに適用した
場合を示したが、ディジタル自己相関器にも同様に適用
できるなど、一般的には各種LTIシステムに適用でき
る。その他、細部の構成において本発明の要旨を逸脱し
ない範囲で任意に変更できる。
【0043】
【発明の効果】このように、本発明に係るLTIシステ
ムのデータ処理方法は、各システム定数を指数部の大き
さの範囲を限定して浮動小数点表現し、かつ絶対値が一
定の大きさ以上となるシステム定数を複数に分割したシ
ステム定数に変換するとともに、各システム定数の仮数
部と各入力データを固定小数点により乗算し、かつ同一
の指数部を有するシステム定数について実行した乗算結
果を、固定小数点により加算して部分和を求めるととも
に、異なる指数部毎に求めた部分和を固定小数点により
加算して出力データのための総和を求めるようにしたた
め、量子化誤差及び演算誤差を排除してシステム特性
(フィルタ特性等)の向上を図ることができるととも
に、加えて回路構成の縮小化とデータ処理の高速化を実
現できるという顕著な効果を奏する。
ムのデータ処理方法は、各システム定数を指数部の大き
さの範囲を限定して浮動小数点表現し、かつ絶対値が一
定の大きさ以上となるシステム定数を複数に分割したシ
ステム定数に変換するとともに、各システム定数の仮数
部と各入力データを固定小数点により乗算し、かつ同一
の指数部を有するシステム定数について実行した乗算結
果を、固定小数点により加算して部分和を求めるととも
に、異なる指数部毎に求めた部分和を固定小数点により
加算して出力データのための総和を求めるようにしたた
め、量子化誤差及び演算誤差を排除してシステム特性
(フィルタ特性等)の向上を図ることができるととも
に、加えて回路構成の縮小化とデータ処理の高速化を実
現できるという顕著な効果を奏する。
【図1】本発明に係るLTIシステムの一例であるFI
Rディジタルフィルタのブロック回路図、
Rディジタルフィルタのブロック回路図、
【図2】従来の技術に係るLTIシステムの一例である
FIRディジタルフィルタのブロック回路図、
FIRディジタルフィルタのブロック回路図、
1 FIRディジタルフィルタ
Claims (3)
- 【請求項1】 固定小数点表現された入力データとシス
テム定数を演算処理して固定小数点表現された出力デー
タを求めるLTIシステムのデータ処理方法において、
各システム定数を指数部の大きさの範囲を限定して浮動
小数点表現し、かつ絶対値が一定の大きさ以上となるシ
ステム定数を複数に分割したシステム定数に変換すると
ともに、各システム定数の仮数部と各入力データを固定
小数点により乗算し、かつ同一の指数部を有するシステ
ム定数について実行した乗算結果を、固定小数点により
加算して部分和を求めるとともに、異なる指数部毎に求
めた部分和を固定小数点により加算して出力データのた
めの総和を求めることを特徴とするLTIシステムのデ
ータ処理方法。 - 【請求項2】 小さい指数部を有するシステム定数に対
応する部分和から順番に加算して出力データのための総
和を求めることを特徴とする請求項1記載のLTIシス
テムのデータ処理方法。 - 【請求項3】 システム定数はFIRディジタルフィル
タのタップ係数であることを特徴とする請求項1又は2
記載のLTIシステムのデータ処理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26541992A JPH0689300A (ja) | 1992-09-07 | 1992-09-07 | Ltiシステムのデータ処理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP26541992A JPH0689300A (ja) | 1992-09-07 | 1992-09-07 | Ltiシステムのデータ処理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0689300A true JPH0689300A (ja) | 1994-03-29 |
Family
ID=17416900
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP26541992A Pending JPH0689300A (ja) | 1992-09-07 | 1992-09-07 | Ltiシステムのデータ処理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0689300A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6895423B2 (en) | 2001-12-28 | 2005-05-17 | Fujitsu Limited | Apparatus and method of performing product-sum operation |
| US11660585B2 (en) | 2008-11-06 | 2023-05-30 | Basf Corporation | Chabazite zeolite catalysts having low silica to alumina ratios |
-
1992
- 1992-09-07 JP JP26541992A patent/JPH0689300A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6895423B2 (en) | 2001-12-28 | 2005-05-17 | Fujitsu Limited | Apparatus and method of performing product-sum operation |
| US11660585B2 (en) | 2008-11-06 | 2023-05-30 | Basf Corporation | Chabazite zeolite catalysts having low silica to alumina ratios |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100241076B1 (ko) | 조정및정규화클래스를구비한부동소수점승산및누산장치 | |
| CN1322456C (zh) | 指数计算装置和解码装置 | |
| US20080281890A1 (en) | Fast correctly-rounding floating-point conversion | |
| US20060129623A1 (en) | Division and square root arithmetic unit | |
| JP2001222410A (ja) | 除算器 | |
| EP1049002A2 (en) | Method and apparatus for efficient calculation of an approximate square of a fixed-precision number | |
| EP0366155A2 (en) | Logarithmic function arithmetic unit including means for separately processing pseudo division and multiplication | |
| JPH0689300A (ja) | Ltiシステムのデータ処理方法 | |
| US5400271A (en) | Apparatus for and method of calculating sum of products | |
| JPH11212768A (ja) | 対数値算出回路 | |
| US7606850B2 (en) | Method and apparatus for providing a base-2 logarithm approximation to a binary number | |
| CN115840555A (zh) | 基于对数运算系统的小型浮点运算单元及其在fpga中的应用 | |
| JPH08504046A (ja) | 浮動小数点2進数を2進形式における対数に変換しまたはその逆変換をするための装置 | |
| JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
| WO2018131059A1 (ja) | ニューラルネットワーク回路 | |
| JP4196434B2 (ja) | データ丸め方法およびデータ丸め装置 | |
| JPH067375B2 (ja) | 演算回路 | |
| JP2001159927A (ja) | 補間方法および補間装置 | |
| JP2761145B2 (ja) | 開平演算装置 | |
| US5305246A (en) | Device and method for evaluating inverse trigonometric functions | |
| KR920006324B1 (ko) | 실시간 2's콤플리멘트 코드 승산기의 최적화방법 | |
| KR100974190B1 (ko) | 부동 소수점을 이용한 복소수 곱셈방법 | |
| JP3865556B2 (ja) | サンプルデータ変換装置およびプログラム記録媒体 | |
| JP2550597B2 (ja) | 2乗器 | |
| JP2000010763A (ja) | 除算回路 |