JP3965805B2 - Code sequence generator - Google Patents

Code sequence generator Download PDF

Info

Publication number
JP3965805B2
JP3965805B2 JP32527798A JP32527798A JP3965805B2 JP 3965805 B2 JP3965805 B2 JP 3965805B2 JP 32527798 A JP32527798 A JP 32527798A JP 32527798 A JP32527798 A JP 32527798A JP 3965805 B2 JP3965805 B2 JP 3965805B2
Authority
JP
Japan
Prior art keywords
code sequence
stage
shift register
matrix
sequence generator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP32527798A
Other languages
Japanese (ja)
Other versions
JP2000151367A (en
Inventor
孝之 青野
隆文 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP32527798A priority Critical patent/JP3965805B2/en
Publication of JP2000151367A publication Critical patent/JP2000151367A/en
Application granted granted Critical
Publication of JP3965805B2 publication Critical patent/JP3965805B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は符号系列生成器に係り、詳しくは、最長系列(M系列)やゴールド(Gold)系列などの符号系列を生成する符号系列生成器に関するものである。
【0002】
【従来の技術】
ディジタル符号系列は、ディジタル情報の秘匿や、スぺクトラム拡散通信における信号帯域拡大のための拡散符号など、広い分野で利用されている。特に、M系列は、その周期が非常に長い上に、自己相関特性がインパルス的なため、ランダム符号や雑音源などとして利用されている。
【0003】
図4は、M系列を生成するために従来より一般に使用されている符号系列生成器101の概略構成を表すブロック図である。
M系列の符号系列生成器101は、初期値設定部102,シフトレジスタ103,排他的論理和演算回路104から構成されている。
【0004】
n+1ビット長のシフトレジスタ103は、各フリップフロップD0〜Dnがn+1段シリーズに接続されて構成されている。
排他的論理和演算回路104は、シフトレジスタ103における最後段(n+1段目)のフリップフロップDnの出力と、生成すべき符号系列に対応した任意の段のフリップフロップ(例えば、3段目フリップフロップD2)の出力との排他的論理和をとり、その結果を初段のフリップフロップD0に帰還する。
【0005】
ユーザが初期値設定部102を用いて設定した初期値C(=c0,c1,c2…,cn−1,cn)は、それぞれ各フリップフロップD0〜Dnにセットされる。そして、各フリップフロップD0〜Dnにクロック(図示略)を与えて、その内容を順次次段のフリップフロップにシフトさせることにより、周期2n+1−1のM系列の符号系列が生成され、その符号系列はクロックに従ってフリップフロップDnから順次出力される。
【0006】
このように構成された符号系列生成器101において、任意の初期値Cをセットした後に任意の個数のクロックを与えると、そのクロック数分だけシフトされた符号系列が生成される。つまり、与えるクロック数を変更することにより、そのクロック数に対応した任意の位相から符号系列を生成することができる。これを利用して、符号系列生成器101を2つ用いることにより、任意のクロック数分だけ位相のずれた2つの符号系列を同時に生成する方法が提案されている。
【0007】
図5は、任意のクロック数分だけ位相のずれた2つのM系列符号を生成することが可能な符号系列生成器201の概略構成を表すブロック図である。
符号系列生成器201は、初期値設定部102を共有する2つの符号系列生成器101(以下、2つを区別するため「101a」「101b」と符号を付す)から構成されている。
【0008】
図6は、符号系列生成器201の動作を表すタイミングチャートである。
符号系列生成器201を動作させるには、まず、各符号系列生成器101a,101bを構成する各フリップフロップD0〜Dnに対して、ユーザが初期値設定部102を用いて設定した同じ初期値C(=c0,c1,c2…,cn−1,cn)をセットする。次に、符号系列生成器101bの各フリップフロップD0〜Dnに任意の個数のクロックを予め与えておき、その内容を順次次段のフリップフロップにシフトさせておく。その後、各符号系列生成器101a,101bの各フリップフロップD0〜Dnに同一のクロックを与える。その結果、符号系列生成器101aの生成する符号系列αに対して、符号系列生成器101bからは予め与えておいたクロック数分だけ位相が進んだ符号系列βが生成される。つまり、各符号系列生成器101a,101bの生成する各符号系列α,βには、符号系列生成器101bに予め与えておいたクロック数分のオフセット量が生じることになる。
【0009】
ここで、各符号系列生成器101a,101bの各符号系列α,βのオフセット量を大きくするには、符号系列生成器101bに予め与えておくクロック数を多くしなければならず、初期値Cをセットしてから各符号系列生成器101a,101bから位相のずれた符号系列α,βが生成開始されるまでの間に、非常に長い時間を要する。
【0010】
ところで、符号系列生成器101から任意の位相の符号系列を生成する場合においても、周期が非常に長い符号系列における任意の位相から符号系列を生成するには、予め与えておくクロック数を多くしなければならず、初期値Cをセットしてから所望の符号系列が生成開始されるまでの間に非常に長い時間を要する。
【0011】
【発明が解決しようとする課題】
そこで、特開平8−18550号公報に開示されるように、レジスタに格納されたnビット長のデータXに(n+1)×(n+1)行列Aで規定された線形変換を繰り返して実行することにより、符号系列Y=AmX(mは正の整数)を生成する符号系列生成器が提案されている。この符号系列生成器は、予め定めたt+1個の正の整数pj(j=0,1,2…,t)のそれぞれについて行列Aのpj乗(Apj)を記憶する記憶手段と、前記整数mを前記整数pjの一次式m=k0+k1p1+k2p2+…ktpt(k0,k1,k2…,ktは0または整数)の形に分解する手段と、前記k0,k1,k2…,ktの内でゼロでないものについて前記記憶手段から対応する行列を順次選択する選択手段と、前記k0,k1,k2…,ktの内でゼロでないものについて行列演算Y=(Ap0)(Ap1k1(Ap2k2…(AptktXを実行する演算手段とを備えている。そのため、選択手段により選択された複数の行列を組み合わせて使用することにより、高速にレジスタ状態を設定し、任意の位相から符号系列を生成することができる。
【0012】
しかし、同公報に記載の符号系列生成器では、前記選択手段により前記記憶手段から対応する行列を組み合わせて順次選択させるための制御が複雑であり、その制御を行うために大規模な回路構成の制御回路を要するという問題があった。本発明は上記問題点を解決するためになされたものであって、その目的は、任意のオフセット量が設定された同一系列の複数の符号系列を生成する際に、符号系列の生成開始までに要する時間を短縮することが可能で回路規模の小さな符号系列生成器を提供することにある。また、本発明の別の目的は、任意の位相から符号系列を生成する際に、符号系列の生成開始までに要する時間を短縮することが可能で回路規模の小さな符号系列生成器を提供することにある。
【0013】
【課題を解決するための手段】
かかる目的を達成するためになされた第1の発明は、第1符号系列生成器、第2符号系列生成器、演算手段を備えている。第1符号系列生成器は、第1シフトレジスタと、当該第1シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記第1シフトレジスタの初段に帰還する第1排他的論理和回路とを備え、第1シフトレジスタの各段に初期値をセットし、第1シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第1符号系列を生成し、当該第1符号系列をクロックに従って第1シフトレジスタの最終段から順次出力する。第2符号系列生成器は、第2シフトレジスタと、当該第2シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記第2シフトレジスタの初段に帰還する第2排他的論理和回路とを備え、第2シフトレジスタの各段に初期値をセットし、第2シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第2符号系列を生成し、当該第2符号系列をクロックに従って第2シフトレジスタの最終段から順次出力する。演算手段は、前記第2シフトレジスタの各段にセットされる初期値と、前記第1符号系列と前記第2符号系列とのオフセット量に対応して予め設定された行列要素から成る行列との行列演算を行い、その行列演算結果を前記第1シフトレジスタの各段の初期値としてセットする。
【0014】
従って、第1の発明によれば、第1符号系列と第2符号系列とのオフセット量を設定するために第1符号系列生成器にのみ予めクロックを与えておく必要がない。また、演算手段における行列演算に要する時間は、従来の符号系列生成器において第1,第2符号系列のオフセット量を設定するために第1符号系列生成器に予め与えておくクロック数分に相当する時間に比べればごく短い。そのため、第1の発明によれば、初期値をセットしてから任意のオフセット量が設定された第1,第2符号系列の生成開始までに要する時間を短縮することができる。
【0015】
次に、第2の発明は、第1符号生成器および演算手段を備えている。第1符号生成器は、第1シフトレジスタと、当該第1シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記第1シフトレジスタの初段に帰還する第1排他的論理和回路とを備え、第1シフトレジスタの各段に初期値をセットし、第1シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第1符号系列を生成し、当該第1符号系列をクロックに従って第1シフトレジスタの最終段から順次出力する。演算手段は、前記第1シフトレジスタの各段に対応する初期値と、前記第1符号系列の任意の位相に対応して予め設定された行列要素から成る行列との行列演算を行い、その行列演算結果を前記第1シフトレジスタの各段の初期値としてセットする。
【0016】
従って、第2の発明によれば、任意の位相の符号系列を生成する際に、第1符号系列生成器に予めクロックを与えておく必要がない。また、演算手段における行列演算に要する時間は、従来の符号系列生成器において任意の位相の符号系列を生成する際に第1符号系列生成器に予め与えておくクロック数分に相当する時間に比べればごく短い。そのため、第2の発明によれば、初期値をセットしてから任意の位相の符号系列の生成開始までに要する時間を短縮することができる。
【0017】
ところで、第3の発明のように、第1または第2発明において、前記演算手段は前記第1シフトレジスタの各段にそれぞれ対応する複数の演算器を備え、当該各演算器はそれぞれ前記第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算を行うようにしてもよい。
【0018】
このようにすれば、第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算がそれぞれ別個の演算器にて同時に算出されるため、初期値をセットしてから任意の位相の符号系列の生成開始までに要する時間をさらに短縮することができる。
【0019】
また、第4の発明のように、第1または第2発明において、前記演算手段は、前記第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算を各段毎に順次行う演算器と、前記演算器が順次算出する前記第1シフトレジスタの各段毎の行列演算結果を、前記第1シフトレジスタの各段の初期値として当該各段毎に切り替えてセットする切替手段とを備えるようにしてもよい。
【0020】
このようにすれば、1つの演算器を設けるだけで、第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算を行い、その行列演算結果を第1シフトレジスタの各段の初期値として当該各段毎に切り替えてセットすることができる。従って、第1シフトレジスタの各段にそれぞれ対応する複数の演算器を設ける場合に比べて、演算器の数を減らせる分だけ全体の回路規模を小さくすることができる。
【0021】
次に、第5の発明は、符号生成器および演算手段を備えている。符号生成器は、シフトレジスタと、当該シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記シフトレジスタの初段に帰還する排他的論理和回路とを備え、シフトレジスタの各段に初期値をセットし、シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第1符号系列を生成し、当該第1符号系列をクロックに従ってシフトレジスタの最終段から順次出力する。演算手段は、前記シフトレジスタの各段の出力を初期値とし、当該初期値と、前記第1符号系列と第2符号系列とのオフセット量に対応して予め設定された行列要素から成る行列との行列演算を行うことにより、第2符号系列を生成する。
【0022】
従って、第5の発明によれば、第1符号系列と第2符号系列とのオフセット量を設定するために符号系列生成器に予めクロックを与えておく必要がない。また、演算手段における行列演算に要する時間は、従来の符号系列生成器において第1,第2符号系列のオフセット量を設定するために符号系列生成器に予め与えておくクロック数分に相当する時間に比べればごく短い。そのため、第1の発明によれば、初期値をセットしてから任意のオフセット量が設定された第1,第2符号系列の生成開始までに要する時間を短縮することができる。また、演算手段においては、演算器を1つ設けるだけで第2符号系列を生成することができる。そして、シフトレジスタおよび排他的論理和回路を備えた符号系列生成器を1つ設けるだけで、第1,第2符号系列を生成することができる。そのため、第1の発明のように第1,第2符号系列生成器を設ける場合に比べて、全体の回路規模を小さくすることができる。
【0023】
ところで、第6の発明のように、第1〜第5のいずれかの発明において、前記行列を設定するための設定手段を備え、前記演算手段は当該設定手段により設定された任意の行列の対応する行列要素と前記初期値との行列演算を行うようにしてもよい。
【0024】
このようにすれば、第1,第2符号系列のオフセット量を変更する際や符号系列の位相を変更する際に、設定手段を用いて設定する行列の各行列要素を適宜変更して容易に対応することができる。つまり、第1,第2符号系列のオフセット量に対応して離散的に離れた第1シフトレジスタのレジスタ状態を表す行列を予め設定するのが簡単になるため、オフセット量の大きな第1,第2符号系列を生成する場合や、周期が非常に長い符号系列における任意の位相から符号系列を生成する場合に特に有効である。
【0025】
尚、以下に述べる発明の実施の形態において、特許請求の範囲または課題を解決するための手段に記載の「第1符号系列生成器」は符号系列生成器101bに相当し、同じく「第2符号系列生成器」は符号系列生成器101aに相当し、同じく「第1符号系列」は符号系列βに相当し、同じく「第2符号系列」は符号系列αに相当し、「演算手段」は演算器群3または演算器14および切替回路15から構成され、同じく「設定手段」は行列要素設定部2またはメモリ12および読出回路13から構成される。
【0026】
【発明の実施の形態】
(第1実施形態)
以下、本発明を具体化した第1実施形態を図面と共に説明する。尚、本第1実施形態において、図5に示した従来の形態と同じ構成部材については符号を等しくしてその詳細な説明を省略する。
【0027】
図1は、第1実施形態の符号系列生成器1の概略構成を表すブロック図である。
符号系列生成器1は、初期値設定部102、符号系列生成器101a,101b、行列要素設定部2、演算器群3から構成されている。
【0028】
演算器群3は、n+1個の演算器P0〜Pnから構成されている。
ユーザが初期値設定部102を用いて設定した初期値C(=c0,c1,c2…,cn−1,cn)は、符号系列生成器101aのシフトレジスタ103を構成する各フリップフロップD0〜Dnにセットされると共に、演算器群3の各演算器P0〜Pnにセットされる。すなわち、初期値c0はフリップフロップD0にセットされ、初期値c1はフリップフロップD1にセットされ………、初期値cnはフリップフロップDnにセットされるといった具合に、n+1段シリーズに接続された各フリップフロップD0〜Dnに対し、そのフリップフロップの段数の昇順(符号の昇順)に対応した各初期値c0〜cnが昇順に1つずつセットされる。また、各演算器P0〜Pnには初期値C(全ての初期値c0〜cn)がセットされる。
【0029】
ユーザが行列要素設定部2を用いて設定した(n+1)×(n+1)行列Aの行列要素a0,a1,a2…,an−1,anは、演算器群3の各演算器P0〜Pnにセットされる。すなわち、行列要素a0は演算器P0にセットされ、行列要素a1は演算器P1にセットされ………、行列要素anは演算器Pnにセットされるといった具合に、各演算器P0〜Pnに対し、その演算器の符号の昇順に対応した各行列要素a0〜anが昇順に1つずつセットされる。
【0030】
各演算器P0〜Pnはそれぞれ、セットされた初期値C(=c0〜cn)と行列要素a0〜anとの行列演算を行い、各行列演算結果c’0〜c’nを算出する。すなわち、演算器P0は初期値Cと行列要素a0との行列演算結果c’0を算出し、演算器P1は初期値Cと行列要素a1との行列演算結果c’1を算出し………、演算器Pnは初期値Cと行列要素anとの行列演算結果c’nを算出するといった具合に、各演算器P0〜Pnはそれぞれ各行列演算結果c’0〜c’nを算出する。
【0031】
その各行列演算結果c’0〜c’nが初期値として、符号系列生成器101bのシフトレジスタ103を構成する各フリップフロップD0〜Dnにセットされる。すなわち、行列演算結果c’0はフリップフロップD0にセットされ、行列演算結果c’1はフリップフロップD1にセットされ………、行列演算結果c’nはフリップフロップDnにセットされるといった具合に、n+1段シリーズに接続された各フリップフロップD0〜Dnに対し、そのフリップフロップの段数の昇順(符号の昇順)に対応した各行列演算結果(初期値)c’0〜c’nが昇順に1つずつセットされる。
【0032】
このように、符号系列生成器101aの各フリップフロップD0〜Dnにそれぞれ各初期値c0〜cnがセットされると共に、符号系列生成器101bの各フリップフロップD0〜Dnにそれぞれ各初期値c’0〜c’nがセットされた状態で、各符号系列生成器101a,101bの各フリップフロップD0〜Dnに同一のクロックを与える。その結果、符号系列生成器101aから周期2n+1−1のM系列の符号系列αが生成されるのと同時に、符号系列生成器101bから周期2n+1−1のM系列の符号系列βが生成される。
【0033】
ここで、各符号系列α,βに所望のオフセット量を生じさせるには、各初期値c0〜cnと各初期値c’0〜c’nとに当該オフセット量を設定しておけばよい。それには、各初期値c0,c’0に当該オフセット量が設定されるように行列要素a0を設定し、各初期値c1,c’1に当該オフセット量が設定されるように行列要素a1を設定し………、各初期値cn,c’nに当該オフセット量が設定されるように行列要素anを設定するといった具合に、当該オフセット量に対応した各行列要素a0〜anから成る行列Aを設定しておけばよい。
【0034】
つまり、図5に示す従来の符号系列生成器201においては、符号系列生成器101bの各フリップフロップD0〜Dnにのみ予め任意の個数のクロックを与えておき、その後で各符号系列生成器101a,101bの各フリップフロップD0〜Dnに同一のクロックを与えることにより、符号系列生成器101bに予め与えておいたクロック数分のオフセット量が各符号系列α,βに生じるようにしている。そのため、図6に示すように、初期値Cをセットしてから各符号系列生成器101a,101bからオフセット量を有した符号系列α,βが生成開始されるまでの間に、符号系列生成器101bに予め与えておくクロック数分に相当する時間を要することになる。
【0035】
それに対して、本第1実施形態の符号系列生成器1においては、各符号系列α,βのオフセット量に対応した各行列要素a0〜anから成る行列Aを行列要素設定部2を用いて予め設定しておき、符号系列生成器101aに与える初期値Cと各行列要素a0〜anとの行列演算結果を各演算器P0〜Pnにて算出し、その行列演算結果を符号系列生成器101bの初期値c’0〜c’nとして与えている。
【0036】
そのため、符号系列生成器1では、各符号系列α,βのオフセット量を設定するために符号系列生成器101bにのみ予めクロックを与えておく必要がない。また、各演算器P0〜Pnにおける行列演算に要する時間は、従来の符号系列生成器201において各符号系列α,βのオフセット量を設定するために符号系列生成器101bに予め与えておくクロック数分に相当する時間に比べればごく短い。
【0037】
従って、符号系列生成器1によれば、初期値Cをセットしてから任意のオフセット量が設定された各符号系列α,βの生成開始までに要する時間を短縮することができる。
そして、各符号系列α,βのオフセット量を変更するには、行列要素設定部2を用いて設定する行列Aの各行列要素a0〜anを適宜変更すればよい。つまり、各符号系列α,βのオフセット量に対応して離散的に離れたシフトレジスタ103のレジスタ状態(各フリップフロップD0〜Dnの内容)を表す行列Aを予め設定しておけばよい。従って、符号系列生成器1は、オフセット量の大きな各符号系列α,βを生成する場合に特に有効である。
【0038】
また、符号系列生成器1の制御動作は、従来の符号系列生成器201の制御動作とほぼ同じであり、その制御を行うための制御回路(図示略)の回路規模が増大することはない。
(第2実施形態)
次に、本発明を具体化した第2実施形態を図面と共に説明する。尚、本第2実施形態において、第1実施形態と同じ構成部材については符号を等しくしてその詳細な説明を省略する。
【0039】
図2は、第2実施形態の符号系列生成器11の概略構成を表すブロック図である。
符号系列生成器11は、初期値設定部102、符号系列生成器101a,101b、メモリ12、読出回路13、演算器14、切替回路15から構成されている。
【0040】
ユーザが初期値設定部102を用いて設定した初期値C(=c0〜cn)は、符号系列生成器101aのシフトレジスタ103を構成する各フリップフロップD0〜Dnにセットされると共に、演算器14にセットされる。
メモリ12には、各行列要素a0〜anから成る(n+1)×(n+1)行列Aが記憶されている。
【0041】
読出回路13は、メモリ12に記憶されている各行列要素a0〜anを符号の昇順に順次読み出し、その読み出した行列要素am(m=0,1,2…,n)を演算器14にセットする。
演算器14は、セットされた行列要素amと初期値C(=c0〜cn)との行列演算を行い、各行列演算結果c’0〜c’nを順次算出する。すなわち、演算器14は、まず、初期値Cと行列要素a0との行列演算結果c’0を算出し、次に、初期値Cと行列要素a1との行列演算結果c’1を算出し………、最後に、初期値Cと行列要素anとの行列演算結果c’nを算出するといった具合に、各行列演算結果c’0〜c’nを順次算出する。
【0042】
切替回路15は、演算器14の算出した各行列演算結果c’0〜c’nを1つずつ選択切替し、その選択切替した行列演算結果を初期値として、符号系列生成器101bのシフトレジスタ103を構成する各フリップフロップD0〜Dnにセットする。すなわち、行列演算結果c’0はフリップフロップD0にセットされ、行列演算結果c’1はフリップフロップD1にセットされ………、行列演算結果c’nはフリップフロップDnにセットされるといった具合に、n+1段シリーズに接続された各フリップフロップD0〜Dnに対し、そのフリップフロップの段数の昇順(符号の昇順)に対応した各行列演算結果(初期値)c’0〜c’nが昇順に1つずつ順次セットされる。
【0043】
このように、符号系列生成器101aの各フリップフロップD0〜Dnにそれぞれ各初期値c0〜cnがセットされると共に、符号系列生成器101bの各フリップフロップD0〜Dnにそれぞれ各初期値c’0〜c’nがセットされた状態で、各符号系列生成器101a,101bの各フリップフロップD0〜Dnに同一のクロックを与える。その結果、符号系列生成器101aから周期2n+1−1のM系列の符号系列αが生成されるのと同時に、符号系列生成器101bから周期2n+1−1のM系列の符号系列βが生成される。
【0044】
従って、本第2実施形態の符号系列生成器11によれば、第1実施形態の符号系列生成器1と同様の作用・効果を得ることができる。
但し、符号系列生成器11においては、メモリ12に記憶された行列Aの各行列要素a0〜anを読出回路13により順次読み出して演算器14にセットし、演算器14の算出した各行列演算結果(初期値)c’0〜c’nを切替回路15により選択切替して符号系列生成器101bの各フリップフロップD0〜Dnにセットするようにしている。つまり、読出回路13を設けることにより、1つの演算器14のみでn+1ビットの初期値c’0〜c’nを生成することが可能になる。そして、切替回路15を設けることにより、1つの演算器14の算出した各初期値c’0〜c’nを符号系列生成器101bの各フリップフロップD0〜Dnにそれぞれセットすることが可能になる。
【0045】
それに対して、第1実施形態の符号系列生成器1においては、各初期値c’0〜c’nをそれぞれ別個に算出し、その各初期値c’0〜c’nを符号系列生成器101bの各フリップフロップD0〜Dnにそれぞれセットするため、n+1個の演算器P0〜Pnを設けている。
【0046】
従って、符号系列生成器11によれば、符号系列生成器1に比べて、演算器の数を減らせる分だけ全体の回路規模を小さくすることができる。
但し、符号系列生成器11では、まず、メモリ12に記憶された各行列要素a0〜anを読出回路13により順次読み出し、次に、その行列要素に基づいて演算器14により初期値c’0〜c’nを順次算出し、続いて、その初期値を切替回路15により符号系列生成器101bの各フリップフロップD0〜Dnに順次セットしている。そのため、これらの動作(読出回路13,演算器14,切替回路15の動作)に要する時間分だけ、符号系列生成器1に比べて、任意のオフセット量が設定された各符号系列α,βの生成開始までに要する時間が長くなる。
【0047】
しかし、前記動作(読出回路13,演算器14,切替回路15の動作)に要する時間は、従来の符号系列生成器201において各符号系列α,βのオフセット量を設定するために符号系列生成器101bに予め与えておくクロック数分に相当する時間に比べればごく短い。従って、符号系列生成器11においても、従来の符号系列生成器201に比べれば、任意のオフセット量が設定された各符号系列α,βの生成開始までに要する時間を短縮することができる。
【0048】
また、読出回路13および切替回路15の動作は予め定められた手順を順次行うだけであり、その動作の制御は単純であるため、その制御を行うための制御回路(図示略)の回路規模は、前記公報(特開平8−18550号)に記載の符号系列生成器の制御回路の回路規模に比べて小さくなる。従って、符号系列生成器11によれば、前記公報に記載の符号系列生成器に比べて、前記制御回路の回路規模が小さくなる分だけ全体の回路規模を縮小することができる。
【0049】
(第3実施形態)
次に、本発明を具体化した第3実施形態を図面と共に説明する。尚、本第2実施形態において、第2実施形態と同じ構成部材については符号を等しくしてその詳細な説明を省略する。
【0050】
図3は、第3実施形態の符号系列生成器21の概略構成を表すブロック図である。
符号系列生成器21は、初期値設定部102、符号系列生成器101、メモリ12、読出回路13、演算器14、切替回路15から構成されている。
【0051】
ユーザが初期値設定部102を用いて設定した初期値C(=c0〜cn)は、符号系列生成器101のシフトレジスタ103を構成する各フリップフロップD0〜Dnにセットされる。そして、各フリップフロップD0〜Dnにクロック(図示略)を与えて、その内容を順次次段のフリップフロップにシフトさせることにより、周期2n+1−1のM系列の符号系列αが生成され、その符号系列はクロックに従ってフリップフロップDnから順次出力される。このとき、各フリップフロップD0〜Dnの出力は初期値Cとして演算器14にセットされる。
【0052】
メモリ12には、各行列要素a0〜anから成る(n+1)×(n+1)行列Aが記憶されている。
読出回路13は、メモリ12に記憶されている各行列要素a0〜anを符号の昇順に順次読み出し、その読み出した行列要素am(m=0,1,2…,n)を演算器14にセットする。
【0053】
演算器14は、セットされた行列要素amと初期値C(各フリップフロップD0〜Dnの出力)との行列演算を行い、各行列演算結果c’0〜c’nを順次算出することにより、各行列演算結果c’0〜c’nから成る符号系列βを生成する。
【0054】
このように、本第3実施形態の符号系列生成器21において、メモリ12,読出回路13,演算器14の動作については、第2実施形態の符号系列生成器11と同じである。
つまり、符号系列生成器11においては、メモリ12,読出回路13,演算器14,切替回路15を用いて各初期値c’0〜c’nを生成した後に、その各初期値c’0〜c’nを符号系列生成器101bの各フリップフロップD0〜Dnにセットすることにより、符号系列生成器101bから符号系列βを生成している。
【0055】
それに対して、符号系列生成器21においては、符号系列生成器101の各フリップフロップD0〜Dnの出力を初期値Cとして演算器14にセットし、演算器14の算出した各行列演算結果c’0〜c’nを符号系列βとしている。
従って、符号系列生成器21において、符号系列生成器11と異なるのは、初期値Cの生成方法だけであるため、その他の点については符号系列生成器11と同様の作用・効果を得ることができる。そして、符号系列生成器21によれば、2つの符号系列生成器101a,101bを設ける符号系列生成器11に比べて、1つの符号系列生成器101を設けるだけでよいため、全体の回路規模を小さくすることができる。
【0056】
尚、本発明は上記各実施形態に限定されるものではなく、以下のように変更してもよく、その場合でも、上記各実施形態と同様の作用および効果を得ることができる。
(1)第1実施形態において、符号系列生成器1から符号系列生成器101aを省き、符号系列生成器101bから任意の位相の符号系列βを生成するように変更してもよい。この場合は、行列要素設定部2を用いて、任意の位相に対応した各行列要素a0〜anから成る行列Aを予め設定しておく。このようにすれば、周期が非常に長い符号系列における任意の位相から符号系列を生成する場合でも、初期値Cをセットしてから所望の符号系列βが生成開始されるまでの時間を短縮することが可能であり、周期が長い符号系列を生成する場合に特に有効である。
【0057】
(2)第2実施形態において、符号系列生成器11から符号系列生成器101aを省き、符号系列生成器101bから任意の位相の符号系列βを生成するように変更してもよい。この場合は、任意の位相に対応した各行列要素a0〜anから成る行列Aをメモリ12に記憶させておく。このようにすれば、周期が非常に長い符号系列における任意の位相から符号系列を生成する場合でも、初期値Cをセットしてから所望の符号系列βが生成開始されるまでの時間を短縮することが可能であり、周期が長い符号系列を生成する場合に特に有効である。
【0058】
(3)第2,第3実施形態において、メモリ12に1種類の行列Aを記憶させておくだけでなく、各符号系列α,βのオフセット量に対応して各行列要素が適宜設定された複数の行列を記憶させておき、読出回路13により任意の行列の行列要素を読み出すようにしてもよい。すなわち、オフセット量xに対応した行列Xと、オフセット量yに対応した行列Yとをメモリ12に記憶させておき、各符号系列α,βにオフセット量xが必要な場合は読み出し回路13により行列Xの各行列要素を読み出し、各符号系列α,βにオフセット量yが必要な場合は読み出し回路13により行列Yの各行列要素を読み出すようにする。このようにすれば、オフセット量が異なる各符号系列α,βを任意に生成することができる。
【0059】
(4)第1実施形態において、行列要素設定部2,演算器群3,符号系列生成器101bを複数組設け、それら各組を異なる行列要素から成る行列を用いて並列動作させることにより、相互にオフセット量が設定された3つ以上の符号系列を同時に生成可能にしてもよい。
【0060】
(5)第2実施形態において、読出回路13,演算器14,切替回路15,符号系列生成器101bを複数組設け、それら各組を異なる行列要素から成る行列を用いて並列動作させることにより、相互にオフセット量が設定された3つ以上の符号系列を同時に生成可能にしてもよい。
【0061】
(6)第3実施形態において、読出回路13および演算器14を複数組設け、それら各組を異なる行列要素から成る行列を用いて並列動作させることにより、相互にオフセット量が設定された3つ以上の符号系列を同時に生成可能にしてもよい。
【0062】
(7)本発明はM系列ではなくゴールド系列の符号系列生成器に適用してもよい。
図7は、ゴールド系列を生成するために従来より一般に使用されている符号系列生成器301の概略構成を表すブロック図である。
【0063】
ゴールド系列の符号系列生成器301は、初期値設定部102、符号系列生成器101c,101d、排他的論理和302から構成されている。
符号系列生成器101cの排他的論理和回路104は、シフトレジスタ103における最終段のフリップフロップDnの出力と、生成すべき符号系列に対応したx段目(x=0,1,2…,n)のフリップフロップDxの出力との排他的論理和をとり、その結果を初段のフリップフロップD0に帰還する。また、符号系列生成器101dの排他的論理和回路104は、シフトレジスタ103における最終段のフリップフロップDnの出力と、生成すべき符号系列に対応したy段目(y=0,1,2…,n、y≠x)のフリップフロップDyの出力との排他的論理和をとり、その結果を初段のフリップフロップD0に帰還する。
【0064】
排他的論理和302は、符号系列生成器101cから生成された符号系列αと、符号系列生成器101dから生成された符号系列βとの排他的論理和をとり、ゴールド系列の符号系列を生成する。
第1実施形態において、M系列ではなくゴールド系列の符号系列を生成するには、図1に示す各符号系列生成器101a,101bをそれぞれ符号系列生成器301に置き換えればよい。
【0065】
また、第2実施形態において、M系列ではなくゴールド系列の符号系列を生成するには、図2に示す各符号系列生成器101a,101bをそれぞれ符号系列生成器301に置き換えればよい。
また、第3実施形態において、M系列ではなくゴールド系列の符号系列を生成するには、図3に示す符号系列生成器101を符号系列生成器301に置き換えればよい。
【図面の簡単な説明】
【図1】本発明を具体化した第1実施形態の概略構成を表すブロック図。
【図2】本発明を具体化した第2実施形態の概略構成を表すブロック図。
【図3】本発明を具体化した第3実施形態の概略構成を表すブロック図。
【図4】従来の形態の概略構成を表すブロック図。
【図5】従来の形態の概略構成を表すブロック図。
【図6】従来の形態の動作を表すタイミングチャート。
【図7】従来の形態の概略構成を表すブロック図。
【符号の説明】
2…行列要素設定部 3…演算器群 P0〜Pn,14…演算器
12…メモリ 13…読出回路 15…切替回路
101…符号系列生成器 101a…第2符号系列生成器
101b…第1符号系列生成器 103…シフトレジスタ
104…排他的論理和回路
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a code sequence generator, and more particularly to a code sequence generator that generates a code sequence such as a longest sequence (M sequence) or a Gold sequence.
[0002]
[Prior art]
Digital code sequences are used in a wide range of fields such as concealing digital information and spreading codes for signal band expansion in spread spectrum communication. In particular, the M-sequence is used as a random code or a noise source because its period is very long and the autocorrelation characteristics are impulse-like.
[0003]
FIG. 4 is a block diagram illustrating a schematic configuration of a code sequence generator 101 that has been conventionally used to generate an M sequence.
The M-sequence code sequence generator 101 includes an initial value setting unit 102, a shift register 103, and an exclusive OR operation circuit 104.
[0004]
The shift register 103 having an n + 1 bit length is configured by connecting flip-flops D0 to Dn in an n + 1 stage series.
The exclusive OR operation circuit 104 outputs the output of the last stage (n + 1 stage) flip-flop Dn in the shift register 103 and any stage flip-flop (for example, the third stage flip-flop corresponding to the code sequence to be generated). The exclusive OR with the output of D2) is taken, and the result is fed back to the first flip-flop D0.
[0005]
Initial values C (= c0, c1, c2,..., Cn−1, cn) set by the user using the initial value setting unit 102 are set in the flip-flops D0 to Dn, respectively. Then, a clock (not shown) is given to each of the flip-flops D0 to Dn, and the contents are sequentially shifted to the flip-flops of the next stage, so that the cycle 2 n + 1 −1 M-sequence code sequences are generated, and the code sequences are sequentially output from the flip-flop Dn according to the clock.
[0006]
In the code sequence generator 101 configured in this manner, when an arbitrary number of clocks are given after setting an arbitrary initial value C, a code sequence shifted by the number of clocks is generated. That is, by changing the number of clocks to be given, a code sequence can be generated from an arbitrary phase corresponding to the number of clocks. Using this, a method has been proposed in which two code sequences having a phase shift by an arbitrary number of clocks are simultaneously generated by using two code sequence generators 101.
[0007]
FIG. 5 is a block diagram showing a schematic configuration of a code sequence generator 201 capable of generating two M-sequence codes whose phases are shifted by an arbitrary number of clocks.
The code sequence generator 201 includes two code sequence generators 101 that share the initial value setting unit 102 (hereinafter referred to as “101a” and “101b” to distinguish the two).
[0008]
FIG. 6 is a timing chart showing the operation of the code sequence generator 201.
In order to operate the code sequence generator 201, first, the same initial value C set by the user using the initial value setting unit 102 for each of the flip-flops D0 to Dn constituting the code sequence generators 101a and 101b. (= C0, c1, c2... Cn-1, cn) is set. Next, an arbitrary number of clocks are given in advance to the flip-flops D0 to Dn of the code sequence generator 101b, and the contents are sequentially shifted to the next flip-flop. Thereafter, the same clock is applied to the flip-flops D0 to Dn of the code sequence generators 101a and 101b. As a result, with respect to the code sequence α generated by the code sequence generator 101a, the code sequence generator 101b generates a code sequence β whose phase has been advanced by a predetermined number of clocks. That is, an offset amount corresponding to the number of clocks previously given to the code sequence generator 101b is generated in the code sequences α and β generated by the code sequence generators 101a and 101b.
[0009]
Here, in order to increase the offset amount of the code sequences α and β of the code sequence generators 101a and 101b, it is necessary to increase the number of clocks given in advance to the code sequence generator 101b, and the initial value C It takes a very long time to start generation of code sequences α and β whose phases are shifted from the respective code sequence generators 101a and 101b.
[0010]
By the way, even when a code sequence having an arbitrary phase is generated from the code sequence generator 101, in order to generate a code sequence from an arbitrary phase in a code sequence having a very long period, the number of clocks given in advance is increased. It takes a very long time from the setting of the initial value C to the start of generation of a desired code sequence.
[0011]
[Problems to be solved by the invention]
Therefore, as disclosed in Japanese Patent Application Laid-Open No. 8-18550, by repeatedly performing linear transformation defined by (n + 1) × (n + 1) matrix A on n-bit data X stored in a register. A code sequence generator for generating a code sequence Y = AmX (m is a positive integer) has been proposed. The code sequence generator generates a matrix A raised to the power of pj (A) for each of predetermined t + 1 positive integers pj (j = 0, 1, 2,..., T). pj ), Means for decomposing the integer m into the form of the primary expression m = k0 + k1p1 + k2p2 +... Ktpt (k0, k1, k2..., Kt is 0 or an integer), k0, k1, Selection means for sequentially selecting a corresponding matrix from the storage means for non-zero among k2..., kt, and matrix operation Y = (A for non-zero among k0, k1, k2,. p0 (A p1 ) k1 (A p2 ) k2 ... (A pt ) kt Computing means for executing X. Therefore, by using a plurality of matrices selected by the selection means in combination, it is possible to set the register state at high speed and generate a code sequence from an arbitrary phase.
[0012]
However, in the code sequence generator described in the publication, the control for making the selection means sequentially select a combination of corresponding matrices from the storage means is complicated, and a large-scale circuit configuration is used for the control. There was a problem of requiring a control circuit. The present invention has been made to solve the above problems, and its purpose is to generate a plurality of code sequences of the same sequence with an arbitrary offset amount before the start of code sequence generation. An object of the present invention is to provide a code sequence generator with a small circuit scale that can shorten the time required. Another object of the present invention is to provide a code sequence generator with a small circuit scale that can reduce the time required to start generation of a code sequence when generating a code sequence from an arbitrary phase. It is in.
[0013]
[Means for Solving the Problems]
Made to achieve this goal First The invention includes a first code sequence generator, a second code sequence generator, and an arithmetic means. The first code sequence generator takes an exclusive OR of the first shift register and the output of the final stage of the first shift register and the output of an arbitrary stage, and the exclusive OR is calculated as the first shift register. A first exclusive OR circuit that feeds back to the first stage of the first shift register, sets an initial value to each stage of the first shift register, provides a clock to each stage of the first shift register, and sequentially describes the contents of each stage. A first code sequence is generated by shifting to the next stage, and the first code series is sequentially output from the last stage of the first shift register according to the clock. The second code sequence generator takes an exclusive OR of the second shift register and the output of the final stage of the second shift register and the output of an arbitrary stage, and the exclusive OR is calculated as the second shift register. And a second exclusive OR circuit that feeds back to the first stage, sets initial values to each stage of the second shift register, provides a clock to each stage of the second shift register, and sequentially describes the contents of each stage. A second code sequence is generated by shifting to the next stage, and the second code series is sequentially output from the last stage of the second shift register according to the clock. The computing means includes an initial value set in each stage of the second shift register, and a matrix composed of matrix elements set in advance corresponding to an offset amount between the first code sequence and the second code sequence. Matrix operation is performed, and the matrix operation result is set as an initial value of each stage of the first shift register.
[0014]
Therefore, First According to this invention, it is not necessary to give a clock to only the first code sequence generator in advance in order to set the offset amount between the first code sequence and the second code sequence. Further, the time required for matrix calculation in the calculation means corresponds to the number of clocks given in advance to the first code sequence generator in order to set the offset amounts of the first and second code sequences in the conventional code sequence generator. It is very short compared to the time to do. for that reason, First According to this invention, it is possible to reduce the time required from the initial value to the generation start of the first and second code sequences in which an arbitrary offset amount is set.
[0015]
next, Second The invention includes a first code generator and an arithmetic means. The first code generator takes an exclusive OR of the first shift register and the output of the last stage of the first shift register and the output of an arbitrary stage, and the exclusive OR is obtained from the first shift register. A first exclusive OR circuit that feeds back to the first stage, sets an initial value to each stage of the first shift register, applies a clock to each stage of the first shift register, and sequentially follows the contents of each stage. The first code sequence is generated by shifting to the stage, and the first code series is sequentially output from the last stage of the first shift register according to the clock. The calculation means performs a matrix calculation of an initial value corresponding to each stage of the first shift register and a matrix composed of matrix elements set in advance corresponding to an arbitrary phase of the first code sequence, and the matrix An operation result is set as an initial value of each stage of the first shift register.
[0016]
Therefore, Second According to this invention, when generating a code sequence of an arbitrary phase, it is not necessary to give a clock to the first code sequence generator in advance. Further, the time required for the matrix calculation in the calculation means is compared with the time corresponding to the number of clocks given in advance to the first code sequence generator when generating a code sequence of an arbitrary phase in the conventional code sequence generator. Very short. for that reason, Second According to this invention, it is possible to reduce the time required from the setting of the initial value to the start of generation of a code sequence having an arbitrary phase.
[0017]
by the way, Third Like the invention of First Or Second of invention The computing means includes a plurality of computing units respectively corresponding to the respective stages of the first shift register, and each of the computing units includes a matrix element of the matrix corresponding to each stage of the first shift register and the initial stage. You may make it perform matrix operation with a value.
[0018]
In this way, since the matrix operation of the matrix element of the matrix corresponding to each stage of the first shift register and the initial value are simultaneously calculated by the separate arithmetic units, the initial value is set. It is possible to further reduce the time required to start generating a code sequence having an arbitrary phase.
[0019]
Also, 4th Like the invention of First Or Second of invention The computing means includes a computing unit that sequentially performs matrix computation of the matrix elements of the matrix corresponding to each stage of the first shift register and the initial value for each stage, and the computing unit sequentially calculates the computing unit. There may be provided switching means for switching and setting the matrix operation result for each stage of the first shift register as the initial value of each stage of the first shift register for each stage.
[0020]
In this way, the matrix operation of the matrix element of the matrix corresponding to each stage of the first shift register and the initial value is performed only by providing one arithmetic unit, and the matrix operation result is obtained as the first shift register. The initial value of each stage can be switched and set for each stage. Therefore, as compared with the case where a plurality of arithmetic units corresponding to the respective stages of the first shift register are provided, the overall circuit scale can be reduced by the amount that the number of arithmetic units can be reduced.
[0021]
next, 5th The invention includes a code generator and an arithmetic means. The code generator takes an exclusive OR of the shift register and the output of the last stage of the shift register and the output of an arbitrary stage, and returns the exclusive OR to the first stage of the shift register. A first code sequence is generated by setting an initial value to each stage of the shift register, supplying a clock to each stage of the shift register, and sequentially shifting the contents of each stage to the next stage, The first code sequence is sequentially output from the last stage of the shift register according to the clock. The computing means uses the output of each stage of the shift register as an initial value, and a matrix composed of the initial value and a matrix element set in advance corresponding to the offset amount between the first code sequence and the second code sequence. The second code sequence is generated by performing the matrix operation.
[0022]
Therefore, 5th According to this invention, it is not necessary to give a clock to the code sequence generator in advance in order to set the offset amount between the first code sequence and the second code sequence. Further, the time required for matrix calculation in the calculation means is a time corresponding to the number of clocks given in advance to the code sequence generator in order to set the offset amounts of the first and second code sequences in the conventional code sequence generator. It is very short compared to. for that reason, First According to this invention, it is possible to reduce the time required from the initial value to the generation start of the first and second code sequences in which an arbitrary offset amount is set. Further, the computing means can generate the second code sequence by providing only one computing unit. The first and second code sequences can be generated only by providing one code sequence generator including a shift register and an exclusive OR circuit. for that reason, First Compared with the case where the first and second code sequence generators are provided as in the present invention, the overall circuit scale can be reduced.
[0023]
by the way, 6th Like the invention of 1st to 5th Any of Invention In the above, a setting means for setting the matrix may be provided, and the calculation means may perform a matrix calculation of a matrix element corresponding to an arbitrary matrix set by the setting means and the initial value.
[0024]
In this way, when changing the offset amount of the first and second code sequences or changing the phase of the code sequence, each matrix element of the matrix set using the setting means can be changed as appropriate to facilitate the change. Can respond. That is, since it becomes easy to set in advance a matrix representing the register states of the first shift registers that are discretely separated corresponding to the offset amounts of the first and second code sequences, This is particularly effective when two code sequences are generated or when a code sequence is generated from an arbitrary phase in a code sequence having a very long period.
[0025]
In the embodiments of the invention described below, the “first code sequence generator” described in the claims or the means for solving the problem corresponds to the code sequence generator 101b, and similarly “second code sequence”. The “sequence generator” corresponds to the code sequence generator 101a, the “first code sequence” corresponds to the code sequence β, the “second code sequence” corresponds to the code sequence α, and the “calculation means” calculates The device group 3 or the arithmetic unit 14 and the switching circuit 15 are configured. Similarly, the “setting means” includes the matrix element setting unit 2 or the memory 12 and the reading circuit 13.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
Hereinafter, a first embodiment of the present invention will be described with reference to the drawings. In the first embodiment, the same constituent members as those of the conventional embodiment shown in FIG. 5 are denoted by the same reference numerals, and detailed description thereof is omitted.
[0027]
FIG. 1 is a block diagram illustrating a schematic configuration of a code sequence generator 1 according to the first embodiment.
The code sequence generator 1 includes an initial value setting unit 102, code sequence generators 101a and 101b, a matrix element setting unit 2, and a computing unit group 3.
[0028]
The computing unit group 3 is composed of n + 1 computing units P0 to Pn.
Initial values C (= c0, c1, c2,..., Cn−1, cn) set by the user using the initial value setting unit 102 are the flip-flops D0 to Dn that constitute the shift register 103 of the code sequence generator 101a. And set to each of the calculators P0 to Pn of the calculator group 3. That is, the initial value c0 is set in the flip-flop D0, the initial value c1 is set in the flip-flop D1,..., And the initial value cn is set in the flip-flop Dn. For the flip-flops D0 to Dn, initial values c0 to cn corresponding to the ascending order of the number of stages of the flip-flops (ascending order of the signs) are set one by one in ascending order. Further, initial values C (all initial values c0 to cn) are set in the respective arithmetic units P0 to Pn.
[0029]
The matrix elements a0, a1, a2,..., An−1, an of the (n + 1) × (n + 1) matrix A set by the user using the matrix element setting unit 2 are assigned to the calculators P0 to Pn of the calculator group 3, respectively. Set. That is, the matrix element a0 is set in the computing unit P0, the matrix element a1 is set in the computing unit P1,..., And the matrix element an is set in the computing unit Pn. The matrix elements a0 to an corresponding to the ascending order of the arithmetic unit are set one by one in ascending order.
[0030]
Each of the arithmetic units P0 to Pn performs a matrix operation on the set initial value C (= c0 to cn) and the matrix elements a0 to an, and calculates each matrix operation result c′0 to c′n. That is, the calculator P0 calculates the matrix calculation result c′0 of the initial value C and the matrix element a0, and the calculator P1 calculates the matrix calculation result c′1 of the initial value C and the matrix element a1. The calculators Pn calculate the matrix calculation results c′n of the initial values C and the matrix elements an, and the calculators P0 to Pn calculate the matrix calculation results c′0 to c′n, respectively.
[0031]
The matrix calculation results c′0 to c′n are set as initial values in the flip-flops D0 to Dn constituting the shift register 103 of the code sequence generator 101b. That is, the matrix operation result c′0 is set in the flip-flop D0, the matrix operation result c′1 is set in the flip-flop D1,..., And the matrix operation result c′n is set in the flip-flop Dn. , For each flip-flop D0 to Dn connected to the n + 1 stage series, the matrix operation results (initial values) c′0 to c′n corresponding to the ascending order (sign ascending order) of the flip-flops are in ascending order. Set one by one.
[0032]
As described above, the initial values c0 to cn are set in the flip-flops D0 to Dn of the code sequence generator 101a, and the initial values c′0 are set in the flip-flops D0 to Dn of the code sequence generator 101b. In the state where .about.c'n is set, the same clock is given to each flip-flop D0 to Dn of each code sequence generator 101a, 101b. As a result, the cycle 2 from the code sequence generator 101a. n + 1 −1 M-sequence code sequence α is generated at the same time as a cycle 2 from the code sequence generator 101b. n + 1 −1 M-sequence code sequence β is generated.
[0033]
Here, in order to generate a desired offset amount in each of the code sequences α and β, the offset amount may be set for each of the initial values c0 to cn and each of the initial values c′0 to c′n. For this purpose, the matrix element a0 is set so that the offset amount is set to each initial value c0, c′0, and the matrix element a1 is set so that the offset amount is set to each initial value c1, c′1. Set ..... matrix A including matrix elements a0 to an corresponding to the offset amount, such as setting the matrix element an so that the offset amount is set to the initial values cn and c'n. Should be set.
[0034]
That is, in the conventional code sequence generator 201 shown in FIG. 5, an arbitrary number of clocks are given in advance only to the flip-flops D0 to Dn of the code sequence generator 101b, and then each code sequence generator 101a, By giving the same clock to each of the flip-flops D0 to Dn of 101b, an offset amount corresponding to the number of clocks previously given to the code sequence generator 101b is generated in each of the code sequences α and β. Therefore, as shown in FIG. 6, the code sequence generator is set between the time when the initial value C is set and the generation of the code sequences α and β having offset amounts from the code sequence generators 101 a and 101 b. A time corresponding to the number of clocks previously given to 101b is required.
[0035]
On the other hand, in the code sequence generator 1 of the first embodiment, a matrix A composed of the matrix elements a0 to an corresponding to the offset amounts of the code sequences α and β is previously stored using the matrix element setting unit 2. The matrix calculation result of the initial value C to be given to the code sequence generator 101a and each matrix element a0 to an is calculated by each of the calculators P0 to Pn, and the matrix calculation result of the code sequence generator 101b is set. The initial values c′0 to c′n are given.
[0036]
Therefore, the code sequence generator 1 does not need to provide a clock only to the code sequence generator 101b in advance in order to set the offset amount of each code sequence α, β. In addition, the time required for matrix calculation in each of the calculators P0 to Pn is the number of clocks that are given in advance to the code sequence generator 101b in order to set the offset amounts of the code sequences α and β in the conventional code sequence generator 201. It is very short compared to the time equivalent to minutes.
[0037]
Therefore, according to the code sequence generator 1, it is possible to shorten the time required from the setting of the initial value C to the start of generation of the code sequences α and β for which an arbitrary offset amount is set.
In order to change the offset amounts of the code sequences α and β, the matrix elements a0 to an of the matrix A set using the matrix element setting unit 2 may be changed as appropriate. That is, a matrix A that represents the register states (contents of the flip-flops D0 to Dn) of the shift registers 103 that are discretely separated corresponding to the offset amounts of the code sequences α and β may be set in advance. Therefore, the code sequence generator 1 is particularly effective when generating each code sequence α, β having a large offset amount.
[0038]
The control operation of the code sequence generator 1 is almost the same as the control operation of the conventional code sequence generator 201, and the circuit scale of a control circuit (not shown) for performing the control does not increase.
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to the drawings. In the second embodiment, the same components as those in the first embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
[0039]
FIG. 2 is a block diagram illustrating a schematic configuration of the code sequence generator 11 of the second embodiment.
The code sequence generator 11 includes an initial value setting unit 102, code sequence generators 101 a and 101 b, a memory 12, a reading circuit 13, a computing unit 14, and a switching circuit 15.
[0040]
The initial value C (= c0 to cn) set by the user using the initial value setting unit 102 is set in each of the flip-flops D0 to Dn constituting the shift register 103 of the code sequence generator 101a and the arithmetic unit 14 Set to
The memory 12 stores an (n + 1) × (n + 1) matrix A composed of matrix elements a0 to an.
[0041]
The reading circuit 13 sequentially reads the matrix elements a0 to an stored in the memory 12 in ascending order of the signs, and sets the read matrix elements am (m = 0, 1, 2,..., N) in the arithmetic unit 14. To do.
The computing unit 14 performs a matrix operation on the set matrix element am and the initial value C (= c0 to cn), and sequentially calculates each matrix operation result c′0 to c′n. That is, the computing unit 14 first calculates a matrix operation result c′0 between the initial value C and the matrix element a0, and then calculates a matrix operation result c′1 between the initial value C and the matrix element a1. ... Finally, the matrix calculation results c′0 to c′n are sequentially calculated such that the matrix calculation result c′n between the initial value C and the matrix element an is calculated.
[0042]
The switching circuit 15 selects and switches one by one the matrix calculation results c′0 to c′n calculated by the calculator 14, and uses the matrix calculation result that has been switched as an initial value as a shift register of the code sequence generator 101b. 103 is set in each flip-flop D0 to Dn. That is, the matrix operation result c′0 is set in the flip-flop D0, the matrix operation result c′1 is set in the flip-flop D1,..., And the matrix operation result c′n is set in the flip-flop Dn. , For each flip-flop D0 to Dn connected to the n + 1 stage series, the matrix operation results (initial values) c′0 to c′n corresponding to the ascending order (sign ascending order) of the flip-flops are in ascending order. One by one is set sequentially.
[0043]
As described above, the initial values c0 to cn are set in the flip-flops D0 to Dn of the code sequence generator 101a, and the initial values c′0 are set in the flip-flops D0 to Dn of the code sequence generator 101b. In the state where .about.c'n is set, the same clock is given to each flip-flop D0 to Dn of each code sequence generator 101a, 101b. As a result, the cycle 2 from the code sequence generator 101a. n + 1 −1 M-sequence code sequence α is generated at the same time as a cycle 2 from the code sequence generator 101b. n + 1 −1 M-sequence code sequence β is generated.
[0044]
Therefore, according to the code sequence generator 11 of the second embodiment, the same operation and effect as the code sequence generator 1 of the first embodiment can be obtained.
However, in the code sequence generator 11, the matrix elements a 0 to an of the matrix A stored in the memory 12 are sequentially read out by the reading circuit 13 and set in the calculator 14, and the matrix calculation results calculated by the calculator 14 are set. (Initial value) c′0 to c′n are selected and switched by the switching circuit 15 and set in the flip-flops D0 to Dn of the code sequence generator 101b. That is, by providing the readout circuit 13, it is possible to generate the n + 1-bit initial values c′0 to c′n with only one arithmetic unit 14. By providing the switching circuit 15, the initial values c′0 to c′n calculated by one arithmetic unit 14 can be set in the flip-flops D0 to Dn of the code sequence generator 101b, respectively. .
[0045]
On the other hand, in the code sequence generator 1 of the first embodiment, the initial values c′0 to c′n are calculated separately, and the initial values c′0 to c′n are calculated as the code sequence generator. In order to set the flip-flops D0 to Dn of the 101b, n + 1 computing units P0 to Pn are provided.
[0046]
Therefore, according to the code sequence generator 11, as compared with the code sequence generator 1, the entire circuit scale can be reduced by the amount that the number of arithmetic units can be reduced.
However, in the code sequence generator 11, first, the matrix elements a0 to an stored in the memory 12 are sequentially read out by the reading circuit 13, and then the initial values c'0 to 0 are calculated by the computing unit 14 based on the matrix elements. c′n is sequentially calculated, and then the initial value is sequentially set by the switching circuit 15 in each of the flip-flops D0 to Dn of the code sequence generator 101b. Therefore, compared to the code sequence generator 1, the code sequences α and β each having an arbitrary offset amount are set by the time required for these operations (operations of the readout circuit 13, the arithmetic unit 14, and the switching circuit 15). The time required to start generation becomes longer.
[0047]
However, the time required for the operations (operations of the readout circuit 13, the arithmetic unit 14, and the switching circuit 15) is determined by the code sequence generator in order to set the offset amounts of the code sequences α and β in the conventional code sequence generator 201. Compared with the time corresponding to the number of clocks given in advance to 101b, it is very short. Therefore, the code sequence generator 11 can also shorten the time required to start generating the code sequences α and β in which arbitrary offset amounts are set, as compared with the conventional code sequence generator 201.
[0048]
In addition, the operations of the readout circuit 13 and the switching circuit 15 simply perform predetermined procedures in sequence, and the control of the operation is simple. Therefore, the circuit scale of the control circuit (not shown) for performing the control is as follows. This is smaller than the circuit scale of the control circuit of the code sequence generator described in the above publication (Japanese Patent Laid-Open No. 8-18550). Therefore, according to the code sequence generator 11, as compared with the code sequence generator described in the publication, it is possible to reduce the overall circuit scale by an amount corresponding to a reduction in the circuit scale of the control circuit.
[0049]
(Third embodiment)
Next, a third embodiment of the present invention will be described with reference to the drawings. In the second embodiment, the same components as those in the second embodiment are denoted by the same reference numerals, and detailed description thereof is omitted.
[0050]
FIG. 3 is a block diagram illustrating a schematic configuration of the code sequence generator 21 of the third embodiment.
The code sequence generator 21 includes an initial value setting unit 102, a code sequence generator 101, a memory 12, a reading circuit 13, a computing unit 14, and a switching circuit 15.
[0051]
The initial value C (= c0 to cn) set by the user using the initial value setting unit 102 is set in each flip-flop D0 to Dn constituting the shift register 103 of the code sequence generator 101. Then, a clock (not shown) is given to each of the flip-flops D0 to Dn, and the contents are sequentially shifted to the flip-flops of the next stage, so that the cycle 2 n + 1 −1 M-sequence code sequence α is generated, and the code sequence is sequentially output from the flip-flop Dn according to the clock. At this time, the outputs of the flip-flops D0 to Dn are set in the computing unit 14 as the initial value C.
[0052]
The memory 12 stores an (n + 1) × (n + 1) matrix A composed of matrix elements a0 to an.
The reading circuit 13 sequentially reads the matrix elements a0 to an stored in the memory 12 in ascending order of the signs, and sets the read matrix elements am (m = 0, 1, 2,..., N) in the arithmetic unit 14. To do.
[0053]
The computing unit 14 performs a matrix operation on the set matrix element am and the initial value C (output of each flip-flop D0 to Dn), and sequentially calculates each matrix operation result c′0 to c′n. A code sequence β including the matrix operation results c′0 to c′n is generated.
[0054]
Thus, in the code sequence generator 21 of the third embodiment, the operations of the memory 12, the readout circuit 13, and the computing unit 14 are the same as those of the code sequence generator 11 of the second embodiment.
That is, in the code sequence generator 11, the initial values c′0 to c′n are generated using the memory 12, the reading circuit 13, the arithmetic unit 14, and the switching circuit 15, and then the initial values c′0 to c′0 are generated. The code sequence β is generated from the code sequence generator 101b by setting c′n to each flip-flop D0 to Dn of the code sequence generator 101b.
[0055]
On the other hand, in the code sequence generator 21, the outputs of the flip-flops D0 to Dn of the code sequence generator 101 are set as the initial value C in the calculator 14, and each matrix calculation result c ′ calculated by the calculator 14 is set. The code sequence β is 0 to c′n.
Therefore, the code sequence generator 21 differs from the code sequence generator 11 only in the method of generating the initial value C. Therefore, the other functions and effects similar to those of the code sequence generator 11 can be obtained. it can. Then, according to the code sequence generator 21, it is only necessary to provide one code sequence generator 101 as compared with the code sequence generator 11 provided with two code sequence generators 101a and 101b. Can be small.
[0056]
In addition, this invention is not limited to said each embodiment, You may change as follows, Even in that case, the effect | action and effect similar to said each embodiment can be acquired.
(1) In the first embodiment, the code sequence generator 101a may be omitted from the code sequence generator 1, and the code sequence β having an arbitrary phase may be generated from the code sequence generator 101b. In this case, using the matrix element setting unit 2, a matrix A including matrix elements a0 to an corresponding to an arbitrary phase is set in advance. In this way, even when a code sequence is generated from an arbitrary phase in a code sequence having a very long period, the time from when the initial value C is set until the generation of a desired code sequence β is started is shortened. This is particularly effective when generating a code sequence having a long period.
[0057]
(2) In the second embodiment, the code sequence generator 101a may be omitted from the code sequence generator 11, and the code sequence β having an arbitrary phase may be generated from the code sequence generator 101b. In this case, a matrix A composed of matrix elements a0 to an corresponding to an arbitrary phase is stored in the memory 12. In this way, even when a code sequence is generated from an arbitrary phase in a code sequence having a very long period, the time from when the initial value C is set until the generation of a desired code sequence β is started is shortened. This is particularly effective when generating a code sequence having a long period.
[0058]
(3) In the second and third embodiments, not only one type of matrix A is stored in the memory 12, but also each matrix element is appropriately set corresponding to the offset amount of each code sequence α, β. A plurality of matrices may be stored, and a matrix element of an arbitrary matrix may be read by the reading circuit 13. That is, a matrix X corresponding to the offset amount x and a matrix Y corresponding to the offset amount y are stored in the memory 12, and when the offset amount x is required for each code sequence α, β, the readout circuit 13 performs the matrix. Each matrix element of X is read, and when the offset amount y is required for each code sequence α, β, the matrix element of the matrix Y is read by the reading circuit 13. In this way, it is possible to arbitrarily generate code sequences α and β having different offset amounts.
[0059]
(4) In the first embodiment, a plurality of sets of matrix element setting unit 2, operator group 3, code sequence generator 101b are provided, and each set is operated in parallel using a matrix composed of different matrix elements. It may be possible to simultaneously generate three or more code sequences in which an offset amount is set.
[0060]
(5) In the second embodiment, by providing a plurality of sets of the readout circuit 13, the arithmetic unit 14, the switching circuit 15, and the code sequence generator 101 b and operating each of these groups in parallel using a matrix composed of different matrix elements, It may be possible to simultaneously generate three or more code sequences in which offset amounts are set.
[0061]
(6) In the third embodiment, a plurality of sets of readout circuits 13 and computing units 14 are provided, and each set is operated in parallel using a matrix composed of different matrix elements. The above code sequences may be generated simultaneously.
[0062]
(7) The present invention may be applied to a code sequence generator of a Gold sequence instead of an M sequence.
FIG. 7 is a block diagram showing a schematic configuration of a code sequence generator 301 that is generally used conventionally to generate a Gold sequence.
[0063]
The gold sequence code sequence generator 301 includes an initial value setting unit 102, code sequence generators 101 c and 101 d, and an exclusive OR 302.
The exclusive OR circuit 104 of the code sequence generator 101c outputs the output of the final flip-flop Dn in the shift register 103 and the x-th stage (x = 0, 1, 2,..., N corresponding to the code sequence to be generated. And the output of the flip-flop Dx is fed back to the first flip-flop D0. Further, the exclusive OR circuit 104 of the code sequence generator 101d outputs the output of the final flip-flop Dn in the shift register 103 and the y-th stage (y = 0, 1, 2,...) Corresponding to the code sequence to be generated. , N, y ≠ x) and an exclusive OR with the output of the flip-flop Dy, and the result is fed back to the first flip-flop D0.
[0064]
The exclusive OR 302 calculates the exclusive OR of the code sequence α generated from the code sequence generator 101c and the code sequence β generated from the code sequence generator 101d, and generates a Gold sequence code sequence. .
In the first embodiment, in order to generate a gold-sequence code sequence instead of an M-sequence, the code sequence generators 101a and 101b shown in FIG.
[0065]
Further, in the second embodiment, in order to generate a Gold-sequence code sequence instead of an M-sequence, the code sequence generators 101a and 101b shown in FIG.
In the third embodiment, the code sequence generator 101 shown in FIG. 3 may be replaced with the code sequence generator 301 in order to generate a gold sequence code sequence instead of an M sequence.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a schematic configuration of a first embodiment embodying the present invention.
FIG. 2 is a block diagram showing a schematic configuration of a second embodiment embodying the present invention.
FIG. 3 is a block diagram showing a schematic configuration of a third embodiment embodying the present invention.
FIG. 4 is a block diagram showing a schematic configuration of a conventional form.
FIG. 5 is a block diagram showing a schematic configuration of a conventional form.
FIG. 6 is a timing chart showing the operation of a conventional form.
FIG. 7 is a block diagram showing a schematic configuration of a conventional form.
[Explanation of symbols]
2 ... Matrix element setting unit 3 ... Operator group P0 to Pn, 14 ... Operator
12 ... Memory 13 ... Reading circuit 15 ... Switching circuit
101: Code sequence generator 101a: Second code sequence generator
101b: first code sequence generator 103: shift register
104: Exclusive OR circuit

Claims (4)

第1シフトレジスタと、当該第1シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記第1シフトレジスタの初段に帰還する第1排他的論理和回路とを備え、第1シフトレジスタの各段に初期値をセットし、第1シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第1符号系列を生成し、当該第1符号系列をクロックに従って第1シフトレジスタの最終段から順次出力する第1符号系列生成器と、
第2シフトレジスタと、当該第2シフトレジスタの最終段の出力と任意の段の出力との排他的論理和をとり、当該排他的論理和を前記第2シフトレジスタの初段に帰還する第2排他的論理和回路とを備え、第2シフトレジスタの各段に初期値をセットし、第2シフトレジスタの各段にクロックを与えて、その各段の内容を順次次段にシフトさせることにより第2符号系列を生成し、当該第2符号系列をクロックに従って第2シフトレジスタの最終段から順次出力する第2符号系列生成器と、前記第2シフトレジスタの各段にセットされる初期値と、前記第1符号系列と前記第2符号系列とのオフセット量に対応して予め設定された行列要素から成る行列との行列演算を行い、その行列演算結果を前記第1シフトレジスタの各段の初期値としてセットする演算手段とを備えた
ことを特徴とする符号系列生成器。
First exclusive OR of the first shift register and the output of the final stage of the first shift register and the output of any stage is taken, and the exclusive OR is fed back to the first stage of the first shift register And an initial value is set to each stage of the first shift register, a clock is applied to each stage of the first shift register, and the contents of each stage are sequentially shifted to the next stage. A first code sequence generator that generates one code sequence and sequentially outputs the first code sequence from the last stage of the first shift register according to a clock;
A second exclusive-OR that takes the exclusive OR of the second shift register and the output of the final stage of the second shift register and the output of an arbitrary stage and feeds back the exclusive OR to the first stage of the second shift register And an initial value is set to each stage of the second shift register, a clock is applied to each stage of the second shift register, and the contents of each stage are sequentially shifted to the next stage. A second code sequence that generates two code sequences and sequentially outputs the second code sequence from the last stage of the second shift register according to a clock; an initial value set in each stage of the second shift register; Matrix calculation is performed on a matrix composed of matrix elements set in advance corresponding to the offset amount between the first code sequence and the second code sequence, and the matrix calculation result is stored at the initial stage of each stage of the first shift register. As value Code sequence generator characterized by comprising calculating means for Tsu bets.
請求項1に記載の符号系列生成器において、
前記演算手段は前記第1シフトレジスタの各段にそれぞれ対応する複数の演算器を備え、当該各演算器はそれぞれ前記第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算を行う
ことを特徴とする符号系列生成器。
The code sequence generator according to claim 1, wherein
The computing means includes a plurality of computing units corresponding to the respective stages of the first shift register, and the computing units correspond to the matrix elements of the matrix and the initial values corresponding to the respective stages of the first shift register. A code sequence generator characterized by performing a matrix operation.
請求項1に記載の符号系列生成器において、
前記演算手段は、前記第1シフトレジスタの各段に対応する前記行列の行列要素と前記初期値との行列演算を各段毎に順次行う演算器と、前記演算器が順次算出する前記第1シフトレジスタの各段毎の行列演算結果を、前記第1シフトレジスタの各段の初期値として当該各段毎に切り替えてセットする切替手段とを備えた
ことを特徴とする符号系列生成器。
The code sequence generator according to claim 1, wherein
The computing means sequentially performs a matrix operation of the matrix elements corresponding to the respective stages of the first shift register and the initial value for each stage, and the arithmetic unit sequentially calculates the first. A code sequence generator, comprising: switching means for switching and setting a matrix operation result for each stage of the shift register for each stage as an initial value of each stage of the first shift register.
請求項1〜のいずれか1項に記載の符号系列生成器において、
前記行列を設定するための設定手段を備え、前記演算手段は当該設定手段により設定された任意の行列の対応する行列要素と前記初期値との行列演算を行う
ことを特徴とする符号系列生成器。
The code sequence generator according to any one of claims 1 to 3 ,
A code sequence generator comprising: setting means for setting the matrix, wherein the calculation means performs a matrix calculation of a matrix element corresponding to an arbitrary matrix set by the setting means and the initial value .
JP32527798A 1998-11-16 1998-11-16 Code sequence generator Expired - Fee Related JP3965805B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32527798A JP3965805B2 (en) 1998-11-16 1998-11-16 Code sequence generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32527798A JP3965805B2 (en) 1998-11-16 1998-11-16 Code sequence generator

Publications (2)

Publication Number Publication Date
JP2000151367A JP2000151367A (en) 2000-05-30
JP3965805B2 true JP3965805B2 (en) 2007-08-29

Family

ID=18175025

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32527798A Expired - Fee Related JP3965805B2 (en) 1998-11-16 1998-11-16 Code sequence generator

Country Status (1)

Country Link
JP (1) JP3965805B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499460B2 (en) 1999-02-25 2004-02-23 松下電器産業株式会社 Spreading code generating circuit and spreading code generating method
JP2002084257A (en) 2000-07-05 2002-03-22 Sanyo Electric Co Ltd Orthogonal code generating device, scramble code generating device, and mobile wireless terminal using them

Also Published As

Publication number Publication date
JP2000151367A (en) 2000-05-30

Similar Documents

Publication Publication Date Title
JP3773263B2 (en) Circuit device including permutation unit and method for processing a set of items
JP3022439B2 (en) Pseudo random number generation method and apparatus
KR101402392B1 (en) Bit sequence generator
JPH11340799A (en) Circuit and method for generating m sequence and circuit for generating pn sequence
US5596516A (en) Code sequence generator
KR19990029425A (en) Pien code generator and mobile wireless communication system
JPH11265276A (en) Phase shift coefficient calculation system for m sequence
JP3965805B2 (en) Code sequence generator
KR0175416B1 (en) Device and method for generating pseudorandom noise sequence
KR100871221B1 (en) Pseudorandom binary sequence generation method and apparatusin a communication system using linear feedback shift register
KR100327856B1 (en) Circuit and method for arbitrarily shifting M series
KR19990000778A (en) Pseudo-noise code generation device and method
JPH10117128A (en) Controller for phase of pseudo noise series code
JP3618554B2 (en) Code generation method and code generation apparatus
CN106603085A (en) Method and device for generating BCH code generator polynomial, encoder, controller, and electronic device
KR100308887B1 (en) Layered orthogonal code generator and generating method
JPH114144A (en) Device for generating code group
SU614435A1 (en) Counting device
JP2002342072A (en) Random data generator, data randomizer, random data generation method and program
JP3425163B2 (en) Random number generator
JP2000047853A (en) Code sequence generator
JP2000278099A (en) M-sequencies generating circuit and pn code generating circuit
SU1425628A1 (en) Function generator
JPH07162337A (en) Pseudo noise code generating circuit and code division multiple access communication system
SU1010622A1 (en) Generator of pseudo-random numbers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070521

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100608

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110608

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110608

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120608

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130608

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees