説明

積和演算器およびデジタルフィルタ

【課題】クロックに同期して逐次入力されるデータを対象として任意係数の積和演算を実行する高速ディジタルフィルタの回路規模を削減し消費電力を低減する。
【解決手段】Mタップの積和演算に対して1つまたは複数の積和演算にブロック分けし、予め乗数または被乗数の一方であるブロック内入力データから加算を行い、ブロック内の乗数または被乗数の他方を分離的な最小項で表すことで、乗算部分積に相当するand項を作り、ブロック内を一括してorして論理的に1つに集約し、ブロック内の部分積を1つの乗算器の部分積と同程度の数に削減し、またブロック内の積和演算の乗算後の加算を無くして、ブロック間の総和をとり、積和演算結果を出力する。またTタップ数のデジタルフィルタを、2タップ単位で係数と入力データの関係をクロスした形で加算し、加算した結果を1つの乗算器で計算することで、乗算器の個数を半分にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、積和演算器およびデジタルフィルタに関し、特に高速の並列積和演算器およびサンプリングが高速であるFIR(finite impulse response:有限インパルス応答)フィルタのリアルタイム処理回路に関するものである。
【背景技術】
【0002】
従来のMタップ並列積和演算器は、M個の乗算器と乗算器出力の総和を加算する総和器とからなるのが一般的である。そのためDSP(Digital Signal Processor)では処理ができないような高速リアルタイム処理では、図1に示すような積和演算器14とシフトレジスタ10とにより構成されるFIRフィルタ11が用いられる。図1は高速処理用トランスバーサルFIRデジタルフィルタの一般的構成図である。シフトレジスタ10に取り込まれた入力データX、・・・Xt−T+1は、係数C0,・・・・,CT−1とともに積和演算器14により計算される構成である。この積和演算器14はタップ数分の乗算器12により乗算され、総和器13により、演算結果Yを計算する。
【0003】
なお、従来のFIRフィルタの例は例えば特許文献1に開示されている。
【特許文献1】特開2001−285030号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
図1の従来型デジタルフィルタの場合、T個の乗算器12が必要であり、また総和器13もタップ数Tに応じ回路規模が大きくなるという問題があった。その結果として消費電力が大きい問題もあった。
【0005】
本発明は、前述の問題点を解決するためになされたもので、回路規模、消費電力の削減を実現する積和演算器およびFIRデジタルフィルタを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の請求項1に係わる積和演算器は、Mタップの積和演算に対して1つまたは複数のブロック分けを行い、予め乗数または被乗数の一方であるブロック内タップ数の入力データからブロック加算回路で加算を行い、ブロック内の乗数または被乗数の他方を分離的な最小項で表すことで、ブロック内の乗算部分積(and項)を作り、これらが同時に1にならない性質を利用しブロック内を一括してorで論理的和をとるブロック部分積生成回路で1つの項に集約し、このことでブロック内のタップ分の部分積を1つの乗算器の部分積と同程度の数に削減し、ブロック部分積加算回路で部分積の総和を求め、各ブロック部分積加算回路の出力を全体総和回路で加算することで最終的な積和演算結果を出力することを可能にする。
【0007】
本発明の請求項2に係わるデジタルフィルタは、Tタップ数のデジタルフィルタを、2タップ単位で係数と入力データの関係をクロス加算した形で乗算結果を算出するクロス乗算器と、クロス乗算器の出力の総和を算出する暫定積和演算回路と、本来の計算結果と一致させるための修正を行うため入力データから計算する逐次修正値計算回路と、係数修正入力部と、最終計算結果算出部を具備し、逐次計算部ではクロックに同期して入力データに依存した修正値を算出し、係数修正入力部の値とともに最終計算結果計算回路で暫定積和演算器の出力から減算し、最終計算結果を出力することを可能する。
【0008】
本発明の請求項3に係わるデジタルフィルタは、先ずクロス加算器で計算し、その後乗算を行う構成でクロス乗算器を実現するデジタルフィルタである。
【0009】
本発明の請求項4に係わるデジタルフィルタは、係数修正値計算部を内蔵することで、外部より従来型の係数を与えることを可能としたデジタルフィルタを実現する。
【0010】
本発明の請求項5に係わるデジタルフィルタは、請求項1の積和演算器を請求項2のデジタルフィルタに適用する構成であり、クロス加算器と、クロス加算器の出力の一方を入力とするブロック加算回路と、クロス加算器の出力の他方を入力とする最小項論理回路とから構成するブロック内最小項論理回路と、ブロック加算回路の出力とブロック内最小項論理回路の出力から計算されるブロック部分積生成回路と、ブロック部分積加算回路と、全体総和回路とを具備し、請求項1記載の積和演算器により計算することを特徴とする請求項2記載のデジタルフィルタを実現する。
【0011】
本発明の請求項6に係わるデジタルフィルタは、Tタップのフィルタ係数に対称性を有する場合の回路構成に関し、入力データ用シフトレジスタと、対称タップ加算部とを具備し、偶数タップではT/2個の係数、奇数タップでは(T−1)/1個の係数および対称点入力データ加算器を積和演算対象とし、請求項1の積和演算器により計算することで対称係数に対応したデジタルフィルタを実現する。
【0012】
本発明の請求項7に係わるデジタルフィルタは、Tタップのフィルタ係数に対称性を有する場合の回路構成に関し、入力データ用シフトレジスタと、対称タップ加算部と、ブロック係数加算結果入力部とを具備し、偶数タップではT/2個の係数、奇数タップでは(T−1)/1個の係数および対称点入力データ加算器を積和演算対象とし、請求項1の積和演算器におけるブロック加算回路を無くした構成の積和演算器により計算することで対称係数に対応したデジタルフィルタを実現する。
【発明の効果】
【0013】
本発明の積和演算器およびデジタルフィルタによれば、積和演算器およびデジタルフィルタを構成する回路規模が大幅に削減され、結果として消費電力の削減にも繋がる。
【発明を実施するための最良の形態】
【0014】
本発明の実施形態に係る積和演算器およびデジタルフィルタについて図面を参照しながら説明する。
【0015】
図2は、本発明の請求項1の実施形態1に係る積和演算器の構成を示す図である。
【0016】
図2において、Xt,・・・・,Xt−T+1はデータを受け取る入力データ線、ブロック加算回路20はL個の入力データ、例えばXt,・・・・,Xt−L+1の組合せ分の加算を行う演算器でり、ブロック部分積生成回路21はL個の係数C、・・・CL−1の各桁のビット毎の最小項とブロック加算回路20の出力の各桁のビット毎の積和項を算出する回路、ブロック部分積加算回路22は、ブロック部分積生成回路21の出力を部分積とみなし桁を考慮して計算する回路、全体総和回路23は、L個毎にブロック部分積加算回路で計算された値を全て加算し、演算結果Yを計算する演算回路である。以上の構成全体が積和演算器24になる。
【0017】
図3は、本発明の請求項1の実施の形態2に係る積和演算器の構成を示す図である。図2においては本発明の請求項4記載のデジタルフィルタへの適用の場合の説明も含め、入力データ線の添え字に時間変数(クロック変数)tを含めたが、本発明の請求項1は必ずしも時間変数を含む必要はない。
【0018】
図3においては、
Y=C×X+C×X+・・・+CM−1×XM−1 (1)
なる請求項1のタップ数Mを偶数となる場合の積和演算器24で説明する。またデータが2の補数の場合にも本質的差はないので、ここでは入力データおよび係数データをnビットの非負整数としその他の条件も具体化した説明を行う。
【0019】
図3ではタップ数Mの入力データX,・・・・,XM―1を2タップ毎にブロック加算回路30に入れる。
【0020】
図3の左端のブロック加算回路30には例えばX,Xが入る。
【0021】
以下では本発明の請求項1に基づく計算方法で2タップの積和演算C×X+C×Xの具体的な計算で説明する。ブロック加算回路30には、2タップ単位では1つの加算器32を含むが、3タップ以上を単位とする場合には組合せ分の個数の加算器32が入る。
【0022】
添え字の混乱を防ぐ為、X,XをX,Yに、係数31のC,CをC,Dと置き換え説明する。
【0023】
先ずブロック加算回路30では1つの加算X+Y=Zだけが加算器32で計算され、X,Y、Zが出力される。X,Y,C,Dがそれぞれnビットの非負整数であるので、X=(xn−1,・・・,x),Y=(yn−1,・・・,y),C=(cn−1,・・・,c),D=(dn−1,・・・,d)とする。
【0024】
C×X+D×Yの2つの乗算の部分積は、乗算C×Xではn個の部分積があり、例えば2桁では、c,cの2つのand項がある。乗算D×Yでも同様にn個の部分積があり、例えばd,dのand項がある。この時、例えば
+d=c(d+d’)x+d(c+c’)y
=c(x+y)+cd’+dc’(2)
なる変形がなりたつ。(ここにc’,d’は,c,dの否定を表すとした。)
【0025】
ブロック内最小項論理回路35で係数31である2変数c,dの最小項c,cd’,c’を求め、またx+yがブロック加算回路30でz1を計算し、c,cd’,c’は同時に1にならないブール値であることから、セレクタ34により、c∪cd’∪dc’(3)なるブール値を求め(2)式の代わりの使うことができる。ここに∪はブール論理のORを表す記号とした。
【0026】
このようにC×X+D×Yの計算は従来はn個の部分積を加算することを行う乗算器が2個必要であり、また2つの乗算結果の加算が必要であるが、図3の構成では、C×X側の部分積とD×Y側の部分積を(3)式で代表される形の1ビットに集約できる結果として部分積を約半分に減らすことができる。
【0027】
図3では、ブロック部分積生成回路33は、このようにブロック内最小項論理回路35とセレクタ34の構成により実現したが、等価な論理式による実現は多様である。
【0028】
図3の1番目のブロック部分積加算回路36は、C×X+D×Yに関係する全ての(2)式で代表される積和項を計算する回路である。
【0029】
ブロック部分積生成回路33の出力である(3)で代表される部分積をブロック部分積加算回路36で加算した結果は、C×X+D×Yの計算結果と一致する。したがってブロック部分積加算回路36の出力を全体総和回路37で加算したものが、(1)式のMタップの積和演算結果39であるYに一致する。
【0030】
図4は本発明の請求項2の実施の形態1に係るデジタルフィルタの構成を示す図である。Y=C×X+C×Xt−1+・・・+CT−1×Xt−T+1 (4)で表されるTタップのFIRフィルタとして説明する。
【0031】
図4のシフトレジスタ40にはクロックに同期し入力データが逐次取り込まれる。例えば(4)の最初の2タップの積和演算C×X+C×Xt−1は、
×X+C×Xt−1=(C+Xt−1)×(C+X)−C×C−Xt−1×X(5)
と変形できる。このことを利用し本発明の請求項2のデジタルフィルタでは、(5)式の右辺の第1項に相当するものを、Tが偶数ならT/2個、Tが奇数なら(T−1)/2個
を次のように計算する。
【0032】
図4の例えば左端のクロス乗算器41では、入力データと係数入力部47とから(C+Xt−1)×(C+X)計算する。その計算結果を用い暫定積和演算回路42は、暫定計算結果48を出力する。この暫定計算結果48(4)式と異なり上付きの添え字のYと置くと、Tが偶数の時は
=(C+Xt−1)×(C+X)+・・・+(CT−2+Xt−T+1)×(CT−1+Xt―T+2)(6)
と表される計算を行う。Tが奇数のときは最後の1タップだけは個別計算し、残りを(6)式で計算する。
【0033】
図4の逐次修正値計算回路43では、クロックに同期して次の式に相当する計算を行う。
=X×Xt−1+・・・・+Xt―T+2×Xt−T+1 (7)
(7)式の計算は計算量が大きいため、逐次修正値計算部43では実際には
even =Sevent−1+X×Xt−1−Xt―T×Xt−T―1(8)
odd =Soddt−1+X×Xt−1−Xt―T×Xt−T―1 (9)
のようにクロックに関して偶数と奇数を個別に(8)式、(9)式に基づき、累積加算器により計算し、クロック毎に切り替えてXとして使う。
【0034】
図4の係数修正値入力部45は、係数修正値
C=C×C+C×C+・・・・・+CT−2×CT−1(10)
の計算を外部ブロックで先に計算したものを入力するインターフェースである。
【0035】
図4の最終結果計算回路44は
=Y−C−X(11)
をクロックに同期して計算する。
【0036】
以上の構成により計算した(11)式のYは(4)式のYと完全に一致する。
【0037】
暫定積和演算回路42の計算には(C+Xt−1)×(C+X)のように、本来の積和演算の計算対象とは異なり、クロスした関係の加算を行ったものを乗算する構造であることから、クロス乗算器と呼ぶことにした。
【0038】
従ってクロス乗算器を具備することは、本発明の請求項2の必須用件になる。本発明の請求項3は、請求項2の1実施形態として、このクロス乗算器をクロス加算器の後に乗算器を置く形で実現する。
【0039】
本発明の請求項4の実施形態1は(10)式で表される係数修正値Cを、外で計算するのではなく、デジタルフィルタの内部に置く構成であり、デジタルフィルタ内部に係数修正値計算回路50を具備し、係数修正値入力部51に接続したものが図5である。
【0040】
図5は、本発明の請求項4の実施の形態1に係るデジタルフィルタの構成を示す図である。
【0041】
例えば係数入力を1クロックあたり2係数が入って来る構成の場合、乗算器1個により(10)式中の例えばC×Cを計算し、T/2サイクルでCを計算する。計算された結果はレジスタに格納され、係数修正値として最終結果算出部で利用される。図5における図4と同一構成の回路52は、図5が係数修正値計算回路50以外は図4と同じ構成であることを示す。
【0042】
図6は、本発明の請求項5の実施の形態1に係るデジタルフィルタの構成を示す図である。請求項3記載のクロス加算器61を具備し、クロス加算器の出力の一方を入力とするブロック加算回路62と、ブロック加算回路62からの出力とクロス加算器61の出力の他方とを入力とするブロック部分積生成回路63とを、具備することを特徴とする請求項1記載の積和演算器により計算することを特徴とする請求項2記載のデジタルフィルタを実現した1つの構成である。総和回路(暫定積和演算回路)65までのデータフローを記載しているが、最終結果計算回路や逐次修正値計算回路および係数修正に関係した処理フローは、図4または図5の場合と変わらないので省略してある。
【0043】
図7は、本発明の請求項6の実施の形態1のデジタルフィルタの構成を示す図である。係数に対称性がある場合に、本発明の請求項1を適用した1つの構成を示すものである。タップ数をTとして
T=2T’ なる偶数の場合の実施例で、具体的には
=C×(X+Xt−T+1)+・・・+CT’−1×(Xt−T+2+Xt−T+1) (12)
なる式に従いシフトレジスタ70の構成は従来型の対称型係数に対するデジタルフィルタのものと同様の構成である。
【0044】
図7中の対称タップ加算部71は従来型のものと同様にXとXt−T+1のような対称タップ点の入力データを加算する部分で、この加算結果が請求項1の積和演算器のである図3と同一構成の回路72の入力に入る構成である。
【0045】
図8は、本発明の請求項7の実施の形態1のデジタルフィルタの構成を示す図である。請求項6と同じく係数に対称性がある場合に、本発明の請求項1を適用した1つの構成である点も同じである。
【0046】
シフトレジスタ80と対称タップ加算部81を具備する点は、図7と同じであり、請求項6との違いは、図3と同一構成の回路からブロック加算回路を除く構成の回路82と、ブロック係数加算回路84を具備する点である。
【図面の簡単な説明】
【0047】
【図1】従来型のデジタルフィルタの構成ブロック図である。
【図2】本発明の実施の形態1の積和演算器の構成を示す図である。
【図3】本発明の実施の形態2に係る積和演算器の構成を示す図である。
【図4】本発明の実施の形態1に係るデジタルフィルタの構成を示す図である。
【図5】本発明の実施の形態1に係るデジタルフィルタの構成を示す図である。
【図6】本発明の実施の形態1に係るデジタルフィルタの構成を示す図である。
【図7】本発明の実施の形態1のデジタルフィルタの構成を示す図である。
【図8】本発明の実施の形態1のデジタルフィルタの構成を示す図である。
【符号の説明】
【0048】
10,40,60,70, シフトレジスタ
11 FIRフィルタ
12 乗算器
13 総和器
14,24 積和演算器
15,25 演算結果
20,30,62 ブロック加算回路
21,33,63 ブロック部分積生成回路
22,36,64 ブロック部分積加算回路
23,37 全体総和回路
12,32 加算回路
35 ブロック内最小項論理回路
34 セレクタ
31 係数
38 ブロック入力データ
39 積和演算結果
41 クロス乗算器
42 暫定積和演算回路
43 逐次修正値計算回路
44 最終結果計算回路
45,51 係数修正値入力部
46,53,73,83 最終結果
47 係数入力部
50 係数修正値計算回路
52 図4と同一構成の回路
61 クロス加算器
65 総和回路(暫定積和演算回路)
71,81 対称タップ加算部
72 図3と同一構成の回路
82 図3と同一構成の回路からブロック加算回路を除く構成の回路
84 ブロック係数加算結果入力部

【特許請求の範囲】
【請求項1】
Mタップの積和演算を1つまたは複数のブロックに分解し、各ブロック内の積和演算結果を加算して積和演算結果を求める積和演算器であって、各ブロック内の積和演算の乗数側(または被乗数側)を入力としたブロック加算回路と、被乗算側(または乗数側)の変数からブロック内最小項を作るブロック内最小項論理回路と、ブロック内加算回路の出力とブロック内最小項論理回路の出力から積和項(and−or項)を作るブロック部分積生成回路と、ブロック部分積生成回路の出力を加算するブロック部分積加算回路と、各ブロック部分積加算回路の出力を入力とした全体総和回路とを、具備することを特徴とする積和演算器。
【請求項2】
クロックに同期して入力される入力データに対するTタップのデジタルフィルタであって、入力データを取り込むシフトレジスタと、Tタップを2タップ単位にクロスして計算するクロス乗算器と、暫定積和演算結果を算出する暫定積和演算回路と、入力データから計算される逐次修正値計算回路と、係数入力部と、係数修正値入力部と、最終結果計算回路とを、具備したことを特徴とするデジタルフィルタ。
【請求項3】
クロス加算器と乗算器から構成されるクロス乗算器を、具備したことを特徴とする請求項2記載のデジタルフィルタ。
【請求項4】
係数入力部と、係数入力部から係数修正値を算出する係数修正値計算回路とを具備し、係数修正値計算回路の出力を係数修正値入力部に接続したことを特徴とする請求項2ないし請求項3記載のデジタルフィルタ。
【請求項5】
クロス加算器と、クロス加算器の出力の一方を入力とするブロック加算回路と、ブロック加算回路からの出力とクロス加算器の出力の他方とを入力とするブロック部分積生成回路とを、具備することを特徴とする請求項1記載の積和演算器により計算することを特徴とする請求項2記載のデジタルフィルタ。
【請求項6】
対称係数のTタップのデジタルフィルタに関し、入力データ用シフトレジスタと、対称タップ加算部とを具備し、偶数タップではT/2個の係数、奇数タップでは(T−1)/1個の係数および対称タップ加算部を積和演算対象とし、請求項1の積和演算器により計算することを特徴とするデジタルフィルタ。
【請求項7】
対称係数のTタップのデジタルフィルタに関し、入力データ用シフトレジスタと、対称タップ加算部と、ブロック係数加算結果入力部とを具備し、偶数タップではT/2個の係数、奇数タップでは(T−1)/1個の係数および対称タップ加算部を積和演算対象とし、請求項1の積和演算器により計算することを特徴とするデジタルフィルタ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−124306(P2009−124306A)
【公開日】平成21年6月4日(2009.6.4)
【国際特許分類】
【出願番号】特願2007−294219(P2007−294219)
【出願日】平成19年11月13日(2007.11.13)
【出願人】(301073163)マセマテック株式会社 (6)
【Fターム(参考)】