(57)【要約】【課題】  漸化式で表されるデジタル信号処理を効率的に行う。【解決手段】  漸化式（Ａ）は、デジタル信号処理の計算式を示している。積和演算式（Ｂ）は、漸化式（Ａ）を積和の形に展開した式である。プロセッサ１は、積和演算に特化したプロセッサである。プロセッサ１は、メモリ２を有している。メモリ２は、領域２ａ，２ｂを有し、領域２ａには、積和演算式（Ｂ）の係数ａ，ａｂ，ａｂ2，…，ａｂN-1，ｂNが格納される。領域２ｂには、デジタル信号処理されるデジタル信号ＸN-1，ＸN-2，ＸN-3，…，Ｘ0，Ｙ0が格納される。積和演算手段４は、読み出し手段３によって読み出されるメモリ２の領域２ａに格納されている係数と、領域２ｂに格納されているデジタル信号とを積和演算式（Ｂ）に従うように積和演算する。【選択図】  図１
2005267125.tif 000002
【特許請求の範囲】
【請求項１】
積和演算を行うプロセッサでのデジタル信号処理方法において、
漸化式で表されるデジタル信号処理の計算式が積和演算の形の積和演算式に展開され、前記積和演算式の係数を格納したメモリから読み出し手段によって前記係数を読み出し、
積和演算手段によって前記係数と前記デジタル信号処理されるデジタル信号とを積和演算する、
ことを特徴とするデジタル信号処理方法。
【請求項２】
前記漸化式の漸化式係数が変化する度に前記係数を算出しなおすことを特徴とする請求項１記載のデジタル信号処理方法。
【請求項３】
前記漸化式は、無線通信のチャネル推定を行うための式であることを特徴とする請求項１記載のデジタル信号処理方法。
【請求項４】
前記積和演算式は、異なる複数の項数において展開され、前記メモリには、各項数における係数が格納されることを特徴とする請求項１記載のデジタル信号処理方法。
【請求項５】
積和演算を行うプロセッサにおいて、
漸化式で表されるデジタル信号処理の計算式が積和演算の形の積和演算式に展開され、前記積和演算式の係数を格納したメモリから前記係数を読み出す係数読み出し手段と、
前記係数と前記デジタル信号処理されるデジタル信号とを積和演算する積和演算手段と、
を有することを特徴とするプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル信号処理方法およびプロセッサに関し、特に積和演算を行うプロセッサでのデジタル信号処理方法および積和演算を行うプロセッサに関する。
【背景技術】
【０００２】
通信や画像処理などで行われるデジタル信号処理は、積和演算することが多い。この積和演算に特化したプロセッサにデジタルシグナルプロセッサ（ＤＳＰ：Digital Signal Processor）がある。ＤＳＰには、ハードウェア構成を工夫（中位アキュムレータの付加、乗算器と中央演算処理装置の一体化、セレクタの配置）することによって、積和演算そのものの高速化を図っているものがある（例えば、特許文献１〜３参照）。
【０００３】
図９は、ＤＳＰの構成を示したブロック図である。
図に示すようにＤＳＰは、Ｔレジスタ１０１、掛け算器１０２、Ｐレジスタ１０３、足し算器（アキュムレータ）１０４、データバス１０５、およびデータメモリ１０６を有している。
【０００４】
Ｔレジスタ１０１は、ＬＴ命令によって、データメモリ１０６のデータがロードされるテンポラリレジスタである。
掛け算器１０２は、ＭＰＹ命令によって、データメモリ１０６から読み出されるデータと、Ｔレジスタ１０１に格納されたデータとを掛け算する掛け算器である。
【０００５】
Ｐレジスタ１０３は、掛け算器１０２の結果が出力されるレジスタである。
足し算器１０４は、Ｐレジスタ１０３に格納されているデータを、ＰＡＣ命令によって累積して加算する足し算器である。
【０００６】
データバス１０５は、Ｔレジスタ１０１、掛け算器１０２、足し算器１０４、およびデータメモリ１０６と接続されたデータバスである。
データメモリ１０６には、デジタル信号処理されるデジタル信号およびデジタル信号にデジタル信号処理を施すための係数が記憶されている。
【０００７】
デジタル信号は、次の式（１）に示す漸化式によってデジタル信号処理がされることがある。
ＹN＝ａ＊ＸN-1＋ｂ＊ＹN-1……（１）
図に示すＤＳＰでは、式（１）のＮ＝３の場合のデジタル信号処理を行うのに、次の式（２ａ）〜（２ｃ）に示すように逐次的に行う。
Ｙ1＝ａ＊Ｘ0＋ｂ＊Ｙ0……（２ａ）
Ｙ2＝ａ＊Ｘ1＋ｂ＊Ｙ1……（２ｂ）
Ｙ3＝ａ＊Ｘ2＋ｂ＊Ｙ2……（２ｃ）
なお、Ｙ0，Ｘ0，Ｘ1，Ｘ2はデジタル信号処理がされるデジタル信号で、ａ，ｂは係数である。
【０００８】
式（２ａ）〜（２ｃ）に示すように、漸化式では、前回の計算値（ＹN-1）を利用して今回の計算値（ＹN）を求め、これを繰り返していく。
ここで、式（２ｃ）のＹ3が求まるまでにかかるサイクル数について説明する。
【０００９】
図１０は、漸化式で表されるデジタル信号処理にかかるサイクル数を説明する説明図である。
図９に示すような構造を持つＤＳＰにおいては、通常、ＬＴ命令によってデータメモリ１０６のデータをＴレジスタ１０１にロードするのに１サイクルかかる。また、ＭＰＹ命令によってＴレジスタ１０１のデータにデータメモリ１０６の係数を掛け算するのに通常１サイクルかかる。また、ＰＡＣ命令によってＰレジスタ１０３に出力された掛け算結果を、足し算器１０４で累積加算するのに通常１サイクルかかる。図１０には、以上の命令サイクルでのＹ3の算出にかかるサイクル数が示してある。
【００１０】
図に示す欄の最上欄には、命令の種類が示してある。命令の種類の下方の欄には、その命令の各サイクルにおける処理の内容が示してある。例えば、２サイクル目では、ＭＰＹ命令により、データメモリ１０６に記憶されている係数ａと、１サイクル目にＴレジスタ１０１にロードされたＸ0とを掛け算する。そして、ＬＴ命令により、データメモリ１０６に記憶されているデータＹ0をＴレジスタ１０１にロードしている。
【００１１】
このようにし、Ｙ3を求めるのに１０サイクルを必要とする。なお、ＹNを求めるには３Ｎ＋１サイクルを必要とする。
【特許文献１】特開平６−３０１７１０号公報（段落番号〔００２４〕〜〔００２８〕、図１）
【特許文献２】特開平９−３１１７７９号公報（段落番号〔０００９〕〜〔００１２〕、図１，２）
【特許文献３】特開平３−７８０８３号公報（第５，６頁、図１〜３）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、漸化式で表されるデジタル信号処理は、計算式が積和演算の形になっておらず、また、前回計算した計算値を利用して今回の計算値を求める計算を繰り返していくため、積和演算を行うプロセッサで効率的に処理されないという問題点があった。
【００１３】
本発明はこのような点に鑑みてなされたものであり、漸化式で表されるデジタル信号処理を効率的に行うことができるデジタル信号処理方法およびプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明では上記問題を解決するために、図１に示すような積和演算を行うプロセッサ１でのデジタル信号処理方法において、漸化式（Ａ）で表されるデジタル信号処理の計算式が積和演算の形の積和演算式（Ｂ）に展開され、積和演算式（Ｂ）の係数を格納したメモリ２から読み出し手段３によって係数を読み出し、積和演算手段４によって係数とデジタル信号処理されるデジタル信号とを積和演算する、ことを特徴とするデジタル信号処理方法が提供される。
【００１５】
このようなデジタル信号処理方法によれば、漸化式（Ａ）で表されるデジタル信号処理の計算式を展開した積和演算式（Ｂ）の係数が格納されたメモリ２から係数を読み出し、デジタル信号と効率的に積和演算する。
【発明の効果】
【００１６】
本発明のデジタル信号処理方法では、漸化式で表されるデジタル信号処理の計算式が積和演算の形の積和演算式に展開され、その展開された積和演算式の係数が格納されたメモリから係数を読み出す。そして、読み出した係数とデジタル信号とを積和演算するようにした。これによって、積和演算をするプロセッサにおいて、漸化式で表されるデジタル信号処理を効率的に行うことができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の原理を図面を参照して詳細に説明する。
図１は、本発明のデジタル信号処理方法の原理を説明する原理図である。
図に示す漸化式（Ａ）は、デジタル信号処理の計算式を示している。積和演算式（Ｂ）は、漸化式（Ａ）を積和の形に展開した式である。積和演算式（Ｂ）は、漸化式（Ａ）のＹN-1にＹN-1＝ａ＊ＸN-2＋ｂ＊ＹN-2を代入し、ＹN-1の式のＹN-2にＹN-2＝ａ＊ＸN-3＋ｂ＊ＹN-3を代入し、以下同様にＹ1まで代入していくと求まる。
【００１８】
図には本発明のデジタル信号処理方法を実行するプロセッサ１が示してある。プロセッサ１は、積和演算を繰り返して行う処理に特化したプロセッサであり、例えば、ＤＳＰである。プロセッサ１は、内部にメモリ２を有している。
【００１９】
メモリ２は、領域２ａ，２ｂに分けられている。領域２ａには、積和演算式（Ｂ）の係数ａ，ａｂ，ａｂ2，…，ａｂN-1，ｂNが格納される。領域２ｂには、デジタル信号処理されるデジタル信号ＸN-1，ＸN-2，ＸN-3，…，Ｘ0，Ｙ0が格納される。
【００２０】
読み出し手段３は、メモリ２の領域２ａに格納されている係数を読み出す。
積和演算手段４は、読み出し手段３によって読み出された係数と領域２ｂに格納されているデジタル信号とを積和演算式（Ｂ）に従うように積和演算する。すなわち、プロセッサ１が得意とする積和演算によって、漸化式（Ａ）で表されるデジタル信号処理が実行されることになる。
【００２１】
具体的には、読み出し手段３は、メモリ２の領域２ａから、係数ａ，ａｂ，ａｂ2，…，ａｂN-1，ｂNを順に読み出す。積和演算手段４は、読み出し手段３より順に読み出される係数ａ，ａｂ，ａｂ2，…，ａｂN-1，ｂNに、メモリ２の領域２ｂに格納されているデジタル信号ＸN-1，ＸN-2，ＸN-3，…，Ｘ0，Ｙ0を順に掛け算して加算し、積和演算式（Ｂ）に従った計算を行う。
【００２２】
このように、漸化式（Ａ）で表されるデジタル信号処理の計算式が積和の形の積和演算式（Ｂ）に展開され、その展開された積和演算式の係数が格納されたメモリ２から係数を読み出す。そして、読み出した係数とデジタル信号とを積和演算するようにした。よって、積和演算をするプロセッサ１において、漸化式（Ａ）で表されるデジタル信号処理を効率的に行うことができる。
【００２３】
なお、メモリ２は、プロセッサ１の内部に含まれているが、プロセッサ１の外部に構成するようにしてもよい。
次に、本発明の実施の形態を図面を参照して詳細に説明する。
【００２４】
図２は、本発明の実施の形態に係るＤＳＰの構成を示したブロック図である。
図に示すようにＤＳＰは、Ｔレジスタ１１、掛け算器１２、Ｐレジスタ１３、足し算器１４、データバス１５、およびデータメモリ１６を有している。
【００２５】
Ｔレジスタ１１は、ＬＴ命令によって、データメモリ１６のデータがロードされるテンポラリレジスタである。
掛け算器１２は、ＭＰＹ命令によって、Ｔレジスタ１１にロードされたデータとデータメモリ１６から読み出されるデータとを掛け算する掛け算器である。
【００２６】
Ｐレジスタ１３は、掛け算器１２の結果が出力されるレジスタである。
足し算器１４は、Ｐレジスタ１３に出力されたデータを、ＰＡＣ命令によって累積して加算する足し算器である。
【００２７】
データバス１５は、Ｔレジスタ１１、掛け算器１２、足し算器１４、およびデータメモリ１６と接続されたデータバスである。
データメモリ１６には、デジタル信号処理されるデジタル信号が記憶されている。また、漸化式で表されるデジタル信号処理の式を、積和の形に展開した式の係数が格納されている。データメモリ１６は、例えば、ＲＡＭ（Random Access Memory）である。なお、係数は、ＤＳＰ外部のメモリに格納するようにしてもよい。
【００２８】
図３は、図２のＤＳＰのＬＴ命令とＭＰＹ命令における処理の流れを示した図である。
図３において、図２と同じものには同じ符号を付し、その説明を省略する。
ＬＴ＿Ｘ1命令が実行されると、図に示すようにデータメモリ１６からＴレジスタ１１にデータＸ1がロードされる。
【００２９】
ＭＰＹ＿ａ1命令が実行されると、図に示すようにデータメモリ１６からデータａ1が読み出され、掛け算器１２において、Ｔレジスタ１１のデータＸ1と掛け算がされる。
図４は、図２のＤＳＰのＰＡＣ命令における処理の流れを示した図である。
【００３０】
図４において、図２と同じものには同じ符号を付し、その説明を省略する。
Ｐレジスタ１３には、データａ1＊Ｘ1が格納されているとする。また、足し算器１４には、データａ0＊Ｘ0が格納されているとする。
【００３１】
ＰＡＣ命令が実行されると、足し算器１４に格納されているデータａ0＊Ｘ0に、Ｐレジスタ１３のデータａ1＊Ｘ1が加算される。
なお、ＰＡＣ命令が実行されるとき、同時にＬＴ命令とＭＰＹ命令を実行することができる。図では、ＬＴ＿Ｘ2命令とＭＰＹ＿ａ2命令が実行された状態が示してある。
【００３２】
ＷＣＤＭＡ（Wideband Code Division Multiple Access）方式の基地局（Node-B）では、各パスのフェージング変動に起因する端末からの受信信号の位相、および振幅の変動を推定する必要がある。ＷＣＤＭＡ方式においては、位相誤差信号を算出するためにチャネル推定と呼ばれる方法が用いられている。受信信号にはパイロットシンボルと呼ばれるデータが内挿されており、その基準となるパイロットシンボルの位相から、現在の電波伝送路のフェージングによる位相回転αを推定し、α分位相補正を行うものである。実際は、チャネル推定の精度を上げるために、受信されたパイロットシンボルの平均をとり、最大ドップラー周波数に従って重み係数を掛け加算しチャネル推定を得る。
【００３３】
ここで、重み係数をλ、Ｎ番目のパイロットシンボルをＰNとすると、Ｎ個のパイロットシンボルの平均ＡＣＣNは、次の式（３）で示される。
ＡＣＣN＝（１−λ）＊ＰN＋λ＊ＡＣＣN-1……（３）
基地局は、受信信号の位相および振幅の変動を推定するためにこの演算をスロット（０．６６ｍｓ）ごとに行っている。また、Ｎの値は３〜８を使用している。
【００３４】
式（３）は漸化式である。よって以下では、式（３）を一般化した次の式（４）を用いて説明する。
ＹN＝ａ＊ＸN-1＋ｂ＊ＹN-1……（４）
式（４）を展開すると、次の式（５ａ），（５ｂ）に示すようになる。
【００３５】
【数１】
2005267125.tif 000003
【００３６】
Ｘi，Ｙ0の係数は、数式（５ｂ）より、予め計算しておくことができることがわかる。そこで、予め計算した係数の値をテーブルにしてデータメモリ１６に保持しておく。
図５は、漸化式を展開した式の係数のテーブルを示した図である。
【００３７】
図のテーブル２１には、式（５ｂ）のＮ＝３〜８までの係数が示してある。図の最上欄のｋ0はＹ0における係数を示す。ｋ1はＸ0における係数を示す。順に、ｋlはＸl-1における係数を示し、ｋ8はＸ7における係数を示す。
【００３８】
ＹNを求めるには、式（５ａ）の右辺の第一項より順に、（テーブル２１に保持された係数の値）＊Ｘiを足していくことにより求めることができる。これは、ＤＳＰにおいてもっとも効率的に計算される積和演算の形である。例えば、Ｎ＝３のときの式は、図のＮ＝３のときの係数を参照して、次の式（６）に示すようになる。
Ｙ3＝ａ＊Ｘ2＋ａｂ＊Ｘ1＋ａｂ2＊Ｘ0＋ｂ3＊Ｙ0……（６）
なお、データメモリ１６には、目的とするデジタル信号処理に適合する、Ｎの値に対応する係数のみを格納すればよい。もちろん、複数種類の項数における係数（例えば図示するＮ＝３〜８の係数）を格納して、状況に応じて係数を使い分けるようにしてもよい。
【００３９】
ここで、Ｙ3が算出されるまでの図２のＤＳＰのサイクル数を求める。
図６は、Ｙ3の算出にかかるサイクル数を説明する説明図である。
図２に示すような構造のＤＳＰにおいては、通常、ＬＴ命令によってデータメモリ１６からＴレジスタ１１にデータをロードするのに１サイクルかかる。また、ＭＰＹ命令によってＴレジスタ１１のデータとデータメモリ１６の係数を掛け算するのに通常１サイクルかかる。また、ＰＡＣ命令によってＰレジスタ１３に出力された掛け算結果を、足し算器１４に累積加算するのに通常１サイクルかかる。図６には、以上の命令サイクルにおけるＹ3の算出にかかるサイクル数が示してある。
【００４０】
図に示す欄の最上欄には、命令の種類が示してある。命令の種類の下方の各欄には、その命令の各サイクルにおける処理の内容が示してある。例えば、２サイクル目では、ＭＰＹ命令により、データメモリ１６に記憶されている係数ｋ0と、１サイクル目にＴレジスタ１１にロードされたＹ0とを掛け算する。そして、ＬＴ命令により、データメモリ１６に記憶されているデータＸ0をＴレジスタ１１に読み出す。
【００４１】
図に示すように、Ｙ3を求めるのに６サイクルを必要とする。これを一般化するとＹNを求めるにはＮ＋３サイクルを必要とする。従来においては、図１０で説明したようにＹnを算出するのに３Ｎ＋１サイクルかかっていた。よって、本発明ではＮ≧１において、２Ｎ−２サイクル削減することができる。
【００４２】
また、従来においては、Ｙnを求めるたびに、Ｙnをデータメモリに格納する必要があった。
図７は、図１０の説明図に計算結果をデータメモリに格納するときのサイクル数も含めた説明図である。
【００４３】
図に示すように、漸化式では、Ｙ1，Ｙ2，…が求まると、一旦データメモリ１６に退避する必要がある。これは、漸化式では、今回の計算値を求めるのに、前回の計算値を利用するためである。図７の例では、４サイクル目で求まったＹ1をデータメモリ１６に一時退避した後、５サイクル目でＬＴ命令によりＹ1をＴレジスタ１１にロードしている。
【００４４】
すなわち、従来の漸化式で表されたデジタル信号処理を実行するには、ＤＳＰの構造上、計算結果を足し算器１４より一旦データメモリ１６に退避する処理が必要となってくる。
【００４５】
図８は、図６の説明図に計算結果をデータメモリに格納するときのサイクル数も含めた説明図である。
漸化式を展開して積和の式の形にし、係数の値を予め求めてデータメモリ１６に格納しておくことにより、積和演算に特化したＤＳＰで効率的な計算が行える。すなわち、従来のように、前回計算した計算値を、今回の計算に利用するためにデータメモリ１６に格納する必要がなく、図に示すように、最終結果のＹ3のみをデータメモリ１６に格納すればよい。従って、データメモリ１６にデータを格納するサイクル分、本発明では、効率的にデジタル信号処理を実行することができる。
【００４６】
上記で説明したＷＣＤＭＡ方式におけるチャネル推定では、Ｎ＝３〜８の値が使われる。この場合、処理にかかるサイクル数を、データメモリへのデータ格納におけるサイクル数を無視し、従来の手法のサイクル数と比較すると、３３％〜５４％のサイクル数の削減になる。そして、実際はＹNを求める際の途中の過程でデータメモリに結果を格納する処理を必要としないという効果により、更なるサイクル数の削減がなされている。なお、従来の手法による、処理にかかるサイクル数を３Ｎとし、本発明の手法による、処理にかかるサイクル数をＮ＋３として上記削減率を算出した。
【００４７】
このように、漸化式で表されるでデジタル信号処理の計算式を積和の形に展開して、その展開した式の係数をデータメモリに格納する。そして、データメモリに格納した係数を読み出し、デジタル信号処理されるデジタル信号と積和演算するようにした。これによって、積和演算をするＤＳＰにおいて、漸化式で表されるデジタル信号処理を効率的に行うことができる。
【００４８】
ところで、漸化式の係数が変化する場合、ＤＳＰにおいて漸化式を展開し、係数を算出しなおすこともできる。しかし、漸化式の係数が毎回変わる場合は、係数の計算にサイクル数がかさんでしまい、サイクル数削減の効果が少なくなる場合がある。ところが、上記のチャネル推定の係数（重み係数）は、チャネル推定の計算回数に比較して無視できるくらい少ない割合で変化する。このような場合においては、係数の再計算に必要なサイクル数は、削減されたサイクル数に比べて無視できる程度のサイクル数であり、漸化式の係数の値が変化する場合においても効率的な信号処理を行うことができる。
【図面の簡単な説明】
【００４９】
【図１】本発明のデジタル信号処理方法の原理を説明する原理図である。
【図２】本発明の実施の形態に係るＤＳＰの構成を示したブロック図である。
【図３】図２のＤＳＰのＬＴ命令とＭＰＹ命令における処理の流れを示した図である。
【図４】図２のＤＳＰのＰＡＣ命令における処理の流れを示した図である。
【図５】漸化式を展開した式の係数のテーブルを示した図である。
【図６】Ｙ3の算出にかかるサイクル数を説明する説明図である。
【図７】図１０の説明図に計算結果をデータメモリに格納するときのサイクル数も含めた説明図である。
【図８】図６の説明図に計算結果をデータメモリに格納するときのサイクル数も含めた説明図である。
【図９】ＤＳＰの構成を示したブロック図である。
【図１０】漸化式で表されるデジタル信号処理にかかるサイクル数を説明する説明図である。
【符号の説明】
【００５０】
１  プロセッサ
２  メモリ
３  読み出し手段
４  積和演算手段
１１  Ｔレジスタ
１２  掛け算器
１３  Ｐレジスタ
１４  足し算器
１５  データバス
１６  データメモリ
【図１】
2005267125.tif 000004
【図２】
2005267125.tif 000005
【図３】
2005267125.tif 000006
【図４】
2005267125.tif 000007
【図５】
2005267125.tif 000008
【図６】
2005267125.tif 000009
【図７】
2005267125.tif 000010
【図８】
2005267125.tif 000011
【図９】
2005267125.tif 000012
【図１０】
2005267125.tif 000013