[go: up one dir, main page]

JP5142457B2 - コード制御装置 - Google Patents

コード制御装置 Download PDF

Info

Publication number
JP5142457B2
JP5142457B2 JP2005055621A JP2005055621A JP5142457B2 JP 5142457 B2 JP5142457 B2 JP 5142457B2 JP 2005055621 A JP2005055621 A JP 2005055621A JP 2005055621 A JP2005055621 A JP 2005055621A JP 5142457 B2 JP5142457 B2 JP 5142457B2
Authority
JP
Japan
Prior art keywords
code
state
jump
hierarchy
amount
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
JP2005055621A
Other languages
English (en)
Other versions
JP2006242616A (ja
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.)
Furuno Electric Co Ltd
Original Assignee
Furuno Electric Co Ltd
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 Furuno Electric Co Ltd filed Critical Furuno Electric Co Ltd
Priority to JP2005055621A priority Critical patent/JP5142457B2/ja
Priority to PCT/JP2006/302932 priority patent/WO2006092973A1/ja
Priority to US11/885,578 priority patent/US8295422B2/en
Publication of JP2006242616A publication Critical patent/JP2006242616A/ja
Application granted granted Critical
Publication of JP5142457B2 publication Critical patent/JP5142457B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/70756Jumping within the code, i.e. masking or slewing

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Description

この発明は、測位信号をコード変調する疑似雑音コードに対する装置内の基準コードを生成するコード制御装置、特に、GPSのL2CMコードおよびL2CLコードのような長い循環コードを部分的に切り取って用いたコードに対する基準コードを生成するコード制御装置に関するものである。
GPSを含むGNSS測位信号を受信して測位等を行うGNSS受信機では、測位信号を受信するために疑似雑音コード生成装置(本発明のコード制御装置に相当。以下、「コード制御装置」と称す。)が設置されている。
コード制御装置は、コード位相計算部、コードステート設定部、コードNCO、およびコード発生器を備える。コード位相計算部で算出されたコード位相のチップ単位未満の位相量はコードNCOに入力され、コードNCOはコードイネーブル信号を生成してコード発生器に出力する。コード位相計算部で算出されたコード位相のチップ単位の位相量はコードステート設定部に入力され、コードステート設定部は入力された位相量から所望のコードステートを設定してコード発生器に出力する。
コード発生器は、コードステート設定部から入力されたコードステートを用い、コードNCOから入力されたコードイネーブル信号に準じてコードを出力する。
このような構成において、コードステート設定部は、予め全てのコードステートを記憶しておき、入力された位相量から適用するコードステートを検出することによりコードステートを設定する。
しかしながら、従来のコード制御装置では、予め全てのコードステートを記憶しておかなければならないが、コードステート数はコードの長さに依存することから、長いコードの場合に膨大な記憶容量を要する。例えば、37個のL2CMコードとL2CLコードとのコードステートを全て記憶するには、L2CMコードが10230チップ、L2CLコードが10230×75チップで形成されることから、109.74Mバイトが必要となる。
この問題を解決する方法として、非特許文献1には、全てのコードステートの内、所定間隔の複数のコードステートのみを予め記憶しておき、位相量に基づき、記憶したコードステートのうちの所望のコードステートに近い適当なコードステートを選択する方法が開示されている。この方法では、適当なコードステートは、所望のコードステートよりも前側(遅延処理方向と反対側)のステートであり、この適当なコードステートに設定した後に、シフトレジスタの状態を1状態ずつコードステートが進む方向(遅延処理方向)に変化させることで所望のコードステートを演算する。例えば、1024ステート毎にコードステートを記憶する場合を前述のL2CMコード、L2CLコードに適用すると、109.7kバイトの記憶容量となり、代わりに1ステート単位で遅延させる処理の演算量が最大で1023回となる。
岡田,内田,尾上,白川,「次世代衛星航法システム受信機のための疑似雑音符号生成器の構成」,信学技報CAS2002-29,社団法人電子情報通信学会
しかしながら、非特許文献1に記載のコード制御装置では、制御する位相量毎に応じて設定する複数のコードステートを各測位信号、すなわち、各測位衛星に対して記憶しなければならない。従って、対象とする測位衛星数が多くなると、その増加量に応じて記憶するコードステート量が増加して記憶容量が増加してしまう。
また、設定したコードステートから目的とするコードステートまでは、遅延処理により1状態ずつ遷移させていくため、設定された2つのコードステート間で後側(遅延側)に近いコードステートほど遅延処理演算量が増加しCPUの負荷が大きくなる。これは設定するコードステート間隔が広がるほど問題となる。すなわち、1024ステートの間隔があれば最大で1023回の演算処理が必要になる。ここで、コードステート間隔が狭くなれば解消されるが、コードステート間隔を狭くすると、その分記憶するコードステート量が増加して記憶容量が増加してしまう。すなわち、記憶容量抑圧のためにコードステート間隔を広く取りたいが、広く取りすぎると演算負荷が増加してしまう。
したがって、この発明の目的は、対象とするコード数によらず略一定で且つ従来よりも少ない記憶容量で、さらにコードステートの状態領域におけるどの位置に目的とするコードステートが存在しても略一定の演算処理量でコードステートを設定してコードを発生するコード制御装置を提供することにある。
この発明は、コード位相におけるチップ単位未満の位相量に基づいてコードイネーブル信号を生成するコードNCOと、チップ単位の位相量に基づいて決定される複数ビットのデータ列からなるコードステートを設定するコードステート設定手段と、コードイネーブル信号に同期してコードステートに基づくコードを発生するコード発生器と、を備えたコード制御装置において、コードステート設定手段に、コードステートの全ステートを複数の部分的なステート領域に分割する境界のコードステートのうちコード発生器に与えるコードステートに近い境界のコードステートを、チップ単位の位相量とステート領域のステート数を用いた演算処理で算出し、該算出したコードステートに遷移させるジャンプ処理と、該ジャンプ処理により遷移した境界のコードステートがコード発生器に与えるコードステートよりも小さければコードステートを1状態ずつ前進させ、ジャンプ処理により遷移した境界のコードステートがコード発生器に与えるコードステートよりも大きければコードステートを1状態ずつ後退させるステップ処理と、を組み合わせてコード発生器に与えるコードステートを演算するステート演算手段を備えたことを特徴としている。
この構成では、コードステート設定手段のステート演算手段は、チップ単位の位相量に基づいて、コードステートの状態領域における所望のコードステートに最も近いコードステートへジャンプ処理を行う。このジャンプ処理とは、位相量を算出する際に用いたイニシャルステートに対して、コードステートを所定数の状態だけ先に遷移させる演算処理である。次に、ステート演算手段は、この演算されたコードステートに対して、1状態ずつコードステートが前後に遷移するステップ処理を行って所望のコードステートを演算する。この際、コードステートをシフトレジスタの遅延方向に1状態遷移させるステップフォワード処理と、前記遅延方向と反対方向に1状態遷移させるステップバック処理とが設定されている。そして、ジャンプ処理により設定されるコードステートと所望のコードステートとの状態空間上の位置関係により、ステップフォワード処理かステップバック処理のいずれかが選択されて実行される。
また、この発明のコード制御装置のコードステート設定手段はコードステートの遷移演算に用いる状態遷移行列を記憶する記憶手段を備え、ステート演算手段は、状態遷移行列を用いてジャンプ処理を行うことを特徴としている。
この構成では、コードステートを所定数の状態だけ先に遷移させる演算処理に状態遷移行列を用いる。状態遷移行列はコードステートのビット数の行と列を備える行列であり、遷移させる状態数にのみ行列の各要素が依存する。すなわち、異なるコードステートに、同じ状態遷移行列を演算すれば、同じ数だけ状態が遷移する。このため、全てのコードにおけるジャンプ処理に対して1組の状態遷移行列を記憶しておけばよい。
また、この発明のコード制御装置の記憶手段は、状態遷移行列の行データまたは列データを1変数として記憶することを特徴としている。
この構成では、状態遷移行列の各コードステートにビット演算を行う列を「0」,「1」からなるビット列で記憶するのではなく、行単位または列単位のビット列を例えば16進数で表す変数のような1つの変数として記憶する。このような処理を行うことで、例えば、27ビットのビット列が4バイト変数に変換される。
また、この発明のコード制御装置のステート演算手段は、全コードステートを階層的に分割し、上層階層から順に下層階層へ階層別ジャンプ処理を繰り返すことでジャンプ処理を構成することを特徴としている。
この構成では、全コードステート領域を所定間隔で複数の部分領域に分割する(第1階層)。そして、分割された部分領域をより細かい間隔で複数の部分領域に分割する(第2階層)。さらに、このような分割処理を繰り返すことで、コードステート領域を階層化する。そして、ステート演算手段は、まず第1階層において前述のジャンプ処理を行い、次に第2階層において、第1階層とは異なる間隔のジャンプ処理を行う、さらに下の階層、すなわち第2階層を分割する第3階層、第3階層を分割する第4階層等が存在すれば、順次、第3階層でのジャンプ処理、第4階層でのジャンプ処理等を順次行っていく。
この際、各階層でのジャンプ間隔は同じであるので、各層に対して状態遷移行列を記憶しておけば良く、各層でそれぞれジャンプ位置に対して個別にコードステートを記憶するよりも、記憶する情報量が少なくなる。
また、この発明のコード制御装置のステート演算手段は、全コードステート領域を第1ステート間隔で分割した第1階層ステート領域毎にジャンプする第1階層ジャンプ処理を行った後に、第1階層ステート領域を第2ステート間隔で分割した第2階層ステート領域毎にジャンプする第2階層ジャンプ処理を行うことで、ジャンプ処理を構成することを特徴としている。
この構成では、前述の階層構造の具体例として、3層に階層化された場合を示す。この場合、まず、第1階層で大まかなジャンプ処理を行い、第2階層で細かいジャンプ処理を行う。そして、これら2つのジャンプ処理により所望のコードステートに近づけた後にステップ処理を行って所望のコードステートを演算する。例えば、L2CMコードは10230ステートからなり、第1階層で4096ステートのジャンプ処理を行い、第2階層で64ステートのジャンプ処理を行う。このように、階層数を3つにすることで、ジャンプ処理に利用する状態遷移行列の記憶容量と、ステップ処理での演算量とのバランスが適当になる。
また、この発明のコード制御装置のコードステート設定手段は、予め設定されたジャンプ位置のコードステートを記憶する記憶手段を備え、ステート演算手段は、ジャンプ位置のコードステートと状態遷移行列とを用いてジャンプ処理を行うことを特徴としている。
この構成では、いずれかの階層にコードステートを用いたジャンプ処理を用いる。例えば、階層全体でのジャンプ数が少ない第1階層でコードステートを用いたジャンプ処理を行う。これにより、若干の記憶容量の増加があってもジャンプ処理演算数が減少するので演算処理での負荷が低減する。
この発明によれば、所望のコードステートを演算するのに、まずジャンプ処理で所望のコードステートに最も近い予め設定されたコードステートに状態移動し、ステップフォワード処理またはステップバック処理で細かく状態移動することで、従来のようにジャンプとステップフォワードを用いた場合よりコードステートの全状態領域で最適な処理演算量を実現することができる。
また、この発明によれば、状態遷移行列を記憶して用いることで、従来のようにジャンプ先のコードステートを記憶する場合よりも記憶容量を低減することができる。特に、コードが長くなりジャンプ処理の設定数が増加すれば、より一層、記憶容量の低減効果が大きくなる。
また、この発明によれば、状態遷移行列の行または列を変数化することで、さらに記憶容量を低減することができる。
また、この発明によれば、コードステートの演算処理を階層化することで、ジャンプ処理も階層化されてコードステート演算効率が向上する。ここで、ジャンプ処理に状態遷移行列を用いれば、各階層に対して1組の状態遷移行列を記憶しておけばよいので、従来のジャンプ先のコードステートを記憶する場合よりも記憶容量を低減することができる。
また、この発明によれば、特に、L2C信号のLC2MコードやL2CLコードでは、3階層で処理することで、処理演算量と記憶容量とのバランスが良くなり、効率良くコードステートを演算することができる。
また、この発明によれば、状態遷移行列を用いるジャンプ処理とコードステートを用いるジャンプ処理との併用する、すなわち、階層毎にこれらの処理を適当に振り分けることで、より効率良くコードステートを演算することができる。
本発明の実施形態に係るコード制御装置について図1〜図6を参照して説明する。
図1は本実施形態のコード制御装置の概略構成を示すブロック図である。
本実施形態のコード制御装置は、コードステート設定部1、コード発生器2、コードNCO3、コード位相計算部4を備える。
コード位相計算部4は、図示しない前段から入力され、所定の復調処理が行われたL2C信号のコード(L2CMコード、L2CLコード)と、予め設定した初期コードとを相関処理して、コード位相を検出する。このコード位相は、コードを形成する最小単位であるチップ単位の位相量Kと、チップ単位未満の位相量Dkとからなり、チップ単位の位相量Kがコードステート設定部1に出力され、チップ単位未満の位相量Dkがスケール変換されてコードNCO3に出力される。
コードステート設定部1は、ステート演算部11、状態遷移行列テーブル12、および、ステートテーブル13を備える。
状態遷移行列テーブル12には後述するジャンプ処理を行う際に用いる状態遷移行列TFが記憶されている。ここで、状態遷移行列TFは各列データをそれぞれ1つの複数バイトの変数として記憶している。L2C信号に用いるL2CMコードやL2CLコードは27ビットのシフトレジスタ演算により形成されるので、状態遷移行列は27×27の行列となる。したがって、列を4バイト(32ビット)の変数として記憶する。この例では、各列データを1変数として記憶したが、各行データを1変数として記憶してもよい。
ステートテーブル13には、測位衛星毎に設定されたイニシャルステートIsおよびエンドステートEsが予め記憶されている。これら測位衛星毎のイニシャルステートIsおよびエンドステートEsは公開されており、この公開されたデータが予め記憶されている。ステート演算部11は、状態遷移行列テーブル12から状態遷移行列TFを読み出し、ステートテーブル13からイニシャルステートIsおよびエンドステートEsを読み出して、チップ単位の位相量Kに基づいて後述する方法で、L2C信号を変調したコードに対応するコードステートCsを演算してコード発生器2に出力する。
コードNCO3は、チップ単位未満の位相量Dkと別途入力されるクロック信号CLOCKとに基づいて、コードイネーブル信号Ceを生成して、コード発生器2に出力する。
コード発生器2は、コードステート設定部1から入力されるコードステートCsと、コードNCO3から入力されるコードイネーブル信号Ceと、別途入力されるクロック信号CLOCKとに基づいて、L2CMコードやL2CLコードに対応する基準コードを生成して出力する。
そして、このコード制御装置を含む図示しないGPS受信機は、このように生成された基準コードを用いて受信したL2C信号を解析して、L2C信号に重畳された情報を取得する。また、コード発生器2から出力された基準コードは、再度コード位相計算部4に入力され、コード位相が計算される。そして、このコード位相に基づきコードを調整し続けることで、コードの捕捉および追尾を実現する。
次に、コードステート設定部1でのコードステートの演算方法について、図を用いて、より詳細に説明する。
図2はコードステートの演算方法を示すフローチャートである。また、図3、図4はコードステート演算時の状態遷移を模式的に表した説明図である。ここで、図3は最終階層(第3階層)でステップフォワード処理を行う場合を示し、図4は最終階層(第3階層)でステップバック処理を行う場合を示す。
ステート演算部11は、コード位相計算部4からチップ単位の位相量Kを取得するとともに、ステートテーブル13に記憶されているイニシャルステートIsを読み出す(S1→S2)。この際、読み出されるイニシャルステートIsは、このコード制御装置がコードの捕捉、追尾を行おうとする測位衛星に設定されたコードに対応するものである。
ここで、ステート演算部11は、チップ単位の位相量Kが「0」であることを検出する、すなわち、入力されたコードがイニシャルステートIsにより実現されるコードであると検出すると、コードステートCsをイニシャルステートIsに設定してコード発生器2に出力する(S3→S18)。
ステート演算部11は、チップ単位の位相量Kが「0」でないと検出すると、第1階層ジャンプ量m1を演算する(S4)。第1階層とは、図3、図4に示すように、イニシャルステートIsからエンドステートEsまでの全ステート数Lからなる状態空間を所定ステート間隔N1で分割してM1個の部分領域を形成した状態の階層である。そして、第1階層ジャンプ量m1は、分割されたM1個の部分領域の境界となるコードステートのうちで、設定コードステートCsに近いコードステートにステートをジャンプさせるための演算値である。第1階層ジャンプ量m1は、整数化演算をINTとすると、
m1=INT(K/N1)
により与えられる。
ステート演算部11は、演算された第1階層ジャンプ量m1が「0」であれば、前進ステップ数Sfを演算する(S5→S14)。この場合の前進ステップ数Sfは、Sf=Kにより与えられる。
そして、ステップ演算部11は、算出された前進ステップ数Sfを用いて、コードステートを遅延させる方向(コード発生用シフトレジスタにおけるシフト方向)のステート遷移演算、すなわち、ステップフォワード処理を行い、所望のコードステートCsを設定する(S15→S18)。
ステート演算部11は、演算された第1階層ジャンプ量m1が「0」でなければ、算出された第1階層ジャンプ量m1に対応する状態遷移行列TF1を状態遷移行列テーブル12から読み出す(S5→S6)。状態遷移行列テーブル12には、それぞれの第1階層ジャンプ量m1に対応する状態遷移行列TF1が記憶されている。具体的には、これら状態遷移行列TF1は、コードステートを遅延方向に1ステップ状態遷移させる演算を行う基本状態遷移行列TF0を、第1階層ジャンプ量m1個乗算してなる行列であり、各第1階層ジャンプ量m1に対して設定されている。
ステート演算部11は、読み出した状態遷移行列TF1を用いて、第1階層ジャンプ処理を行う(S7)。第1階層のジャンプ処理とは、状態遷移行列TF1とイニシャルステートIsとを乗算することで、第2階層の初期ステートIs1に対応するコードステートを算出する演算処理である。これを行列演算式で表すと、
Is1=TF1・Is
となる。
このようなジャンプ処理は状態遷移量に演算処理量が依存しない。図5はジャンプ処理およびステップ処理の演算処理量の状態遷移量依存性を示すグラフである。このグラフは、27ビットのシフトレジスタ演算により設定されるL2C信号のコードに対する状態遷移演算を示したものである。図5に示すように、状態遷移行列を用いたジャンプ処理は一回当たりの演算処理量は多いものの、状態遷移量に依存せずに常時一定である。一方、ステップ処理は、1ステップに対する演算処理量が少ないものの、状態遷移量(状態遷移ステップ数)に依存して演算処理量が線形に増加していく。このため、図5のような条件ではステップ数が30を超えれば、状態遷移行列を用いたジャンプ処理の方が演算処理量を少なくすることができる。
次に、ステート演算部11は、算出された第2階層の初期ステートIs1を基準に、第2階層ジャンプ量m2を演算する(S8)。第2階層とは、図3、図4に示すように、初期ステートIs1から始まるステート数N1からなる状態空間を所定ステート間隔N2で分割してM2個の部分領域を形成した状態の階層である。そして、第2階層ジャンプ量m2は、分割されたM2個の部分領域の境界となるコードステートのうちで、設定コードステートCsに近いコードステートにステートをジャンプさせるための演算値である。第2階層ジャンプ量m2は、整数化演算をINTとし、剰余演算をMODとすると、
M1=MOD(K/N1)として、
m2=INT(M1/N2) ( M1−m2・N2<N2/2 ) −(1)
または、
m2=INT(M1/N2)+1 ( M1−(m2−1)・N2>N2/2 )
−(2)
により与えられる。
すなわち、所望のコードステートCsを状態空間上で挟む、2つの第2階層の境界のコードステートを比較して、所望のコードステートCsに近い側のコードステートにジャンプするような第2階層ジャンプ量m2が選択される。例えば、最も近い境界のコードステートが所望のコードステートCsよりも小さい図3(C)に示すような場合には、式(1)から第2階層ジャンプ量m2が演算される。一方、最も近い境界のコードステートが所望のコードステートCsよりも大きい図4(C)に示すような場合には、式(2)から第2階層ジャンプ量m2(TF2またはTF’2に相当)が演算される。
ステージ演算部11は、第2階層ジャンプ量m2が「0」であれば、前進ステップ数Sfを演算する(S9→S14)。この場合の前進ステップ数Sfは、Sf=M1により与えられる。そして、ステップ演算部11は、算出された前進ステップ数Sfを用いて、コードステートを遅延させる方向(コード発生用シフトレジスタにおけるシフト方向)のステート遷移演算を行い、所望のコードステートCsを設定する(S15→S18)。
ステート演算部11は、演算された第2階層ジャンプ量m2が「0」でなければ、算出された第2階層ジャンプ量m2に対応する状態遷移行列TF2(またはTF’2)を状態遷移行列テーブル12から読み出す(S9→S10)。状態遷移行列テーブル12には、それぞれの第2階層ジャンプ量m2に対応する状態遷移行列TF2(またはTF’2)が記憶されている。具体的には、これら状態遷移行列TF2(またはTF’2)は、コードステートを遅延方向に1ステップ状態遷移させる演算を行う基本状態遷移行列TF0を、第2階層ジャンプ量m2個乗算してなる行列であり、各第2階層ジャンプ量m2に対して設定されている。
ステート演算部11は、読み出した状態遷移行列TF2(またはTF’2)を用いて、第2階層ジャンプ処理を行う(S11)。第2階層のジャンプ処理とは、状態遷移行列TF2(またはTF’2)と第2階層の初期ステートIs1とを乗算することで、第3階層の初期ステートIs2に対応するコードステートを算出する演算処理である。これを行列演算式で表すと、
Is2=TF2・Is1 または、 Is2=TF’2・Is1
となる。
次に、ステート演算部11は、算出された第3階層の初期ステートIs2を基準に、ステップフォワード処理かステップバック処理かのいずれかを選択する。具体的には、式(1)で算出された第2階層ジャンプ量m2により初期ステートIs2が得られた場合にはステップフォワード処理を選択し、式(2)で算出された第2階層ジャンプ量m2により初期ステートIs2が得られた場合にはステップバック処理を選択する(S13)。
ステート演算部11は、ステップフォワード処理を選択すると、前進ステップ数Sfを演算する(S14)。この場合の前進ステップ数Sfは、Sf=M1−m2・N2により与えられる。そして、ステップ演算部11は、算出された前進ステップ数Sfを用いて、コードステートを遅延させる方向(コード発生用シフトレジスタにおけるシフト方向)のステート遷移演算を行い、所望のコードステートCsを設定する(S15→S18)。
ステート演算部11は、ステップバック処理を選択すると、後退ステップ数Sbを演算する(S16)。この場合の後退ステップ数Sbは、Sb=M1−(m2−1)・N2により与えられる。そして、ステップ演算部11は、算出された後退ステップ数Sbを用いて、コードステートを遅延させる方向と逆の方向(コード発生用シフトレジスタにおけるシフトと反対方向)のステート遷移演算を行い、所望のコードステートCsを設定する(S15→S18)。
以上の処理を、図3、図4を用いて具体的な例で説明する。
まず、図3の場合、ステート演算部11は、コード位相Kが入力されると、全ステート数LをイニシャルステートIsからエンドステートEsまでを順にステート間隔N1で分割してなる第1階層で、そのステート位置を検出する。そして、第1階層ジャンプ量m1を演算して、これに対応する状態遷移行列TF1を読み出す。ステート演算部11は、この状態遷移行列TF1とイニシャルステートIsからジャンプステート位置2*N1のコードステートIs1を演算し、このコードステートIs1を、第2階層の初期ステートに設定する。ステート演算部11は、第1階層の各部分領域をステート間隔N1よりも細かいステート間隔N2で分割してなる第2階層で、コード位相Kに対応するステート位置を検出する。そして、第2階層ジャンプ量m2を演算して、これに対応する状態遷移行列TF2を読み出す。ステート演算部11は、この状態遷移行列TF2と第2階層の初期ステートIs1からジャンプステート位置3*N2のコードステートIs2を演算し、このコードステートIs2を、第3階層の初期ステートに設定する。ステート演算部11は、設定した第3階層の初期ステートIs2と、算出した前進ステップ数Sfとを用いてステップフォワード処理を行って、所望のコードステートCsを設定する。
一方、図4の場合、ステート演算部11は、コード位相Kが入力されると、第1階層で、このコード位相Kに対応するステート位置を検出する。そして、第1階層ジャンプ量m1を演算して、これに対応する状態遷移行列TF’1を読み出す。ステート演算部11は、この状態遷移行列TF’1とイニシャルステートIsからジャンプステート位置2*N1のコードステートIs1を演算し、このコードステートIs1を、第2階層の初期ステートに設定する。ステート演算部11は、第2階層で、コード位相Kに対応するステート位置を検出する。そして、第2階層ジャンプ量m2を演算して、これに対応する状態遷移行列TF2’を読み出す。
ステート演算部11は、この状態遷移行列TF’1とイニシャルステートIsからジャンプステート位置2*N1のコードステートIs1を演算し、このコードステートIs1を、第2階層の初期ステートに設定する。ステート演算部11は、第2階層で、コード位相Kに対応するステート位置を検出する。そして、第2階層ジャンプ量m2を演算して、これに対応する状態遷移行列TF’2を読み出す。ステート演算部11は、この状態遷移行列TF’2と第2階層の初期ステートIs1からジャンプステート位置4*N2のコードステートIs2を演算し、このコードステートIs2を、第3階層の最終ステートに設定する。ステート演算部11は、設定した第3階層の最終ステートIs2と、算出した後退ステップ数Sbとを用いてステップバック処理を行って、所望のコードステートCsを設定する。
ここで、図3、図4に示した階層処理を具体的にL2C信号に適用した場合の記憶容量および演算処理量について説明する。図3、図4に示した階層処理では、L2C信号の各コードのイニシャルステートから任意のコードステートを演算には最大の計算量は162 +162+5.5×N2/2の演算回数が必要である。また、第1階層のジャンプ処理では(M1−1)個の状態遷移行列TF1、第2階層のジャンプ処理では(M2−1)個の状態遷移行列TF2を予め計算して記憶しておく必要があり、必要とする記憶容量は108×(M1+M2−2)バイトである。
例えば、N1=4096、N2=64とする。L2CMコードはコード長が10230チップ、つまり全状態空間のステート数が10230なので、M1が3、M2が64となる。この場合、必要記憶容量は7020バイトとなり、最大演算処理量は500となる。L2CLコードは、コード長が10230×75チップ、つまり全状態空間のステート数が10230×75なので、M1が188、M2が64なる。この場合、必要記憶容量は27000バイトとなり、最大演算処理量はL2CMコードと同じ500となる。CMコードとCLコードは同一の疑似雑音コードから切り出されたものなので、状態遷移行列は同じになる。また、測位衛星数に対応する37個のCMコードとCLコードを発生するにはそれぞれのイニシャルステートとエンドステートとを記録しておく必要がある。これらのことを考慮すると、N1=4096、N2=64の3階層構造でL2C信号のコードステートを演算する際に、必要記憶容量は約27KByteとなり、最大演算処理量は500となる。このように、本実施形態の構成および処理を用いることで、従来よりも記憶容量、最大演算処理量ともに低減される。
以上のような処理を行うことで、状態遷移量に演算処理量が依存することなく所定のコードステートが得られるジャンプ処理と、状態遷移量により演算処理量が依存するものの1ステート毎にコードステートが得られるステップフォワード処理およびステップバック処理とを、適当に用いることで、従来のように全てのステートを記憶するよりも記憶容量を大幅に低減することができる。また、イニシャルステートからステップフォワード処理でコードステートを演算する方法よりも最大演算処理量を、大幅に低減することができる。
さらには、ステップフォワード処理とステップバック処理とを所望とするコードステートの位置によって選択して用いることで、非特許文献1のようにジャンプ処理した後に所望のコードステートをステップ演算する場合と比較して、このステップ演算を行う階層での演算処理量を半減することができる。
また、ジャンプ処理の状態遷移行列を用いることで、非特許文献1のようなジャンプ位置のコードステートを記憶しておいてジャンプ処理する場合よりも、ジャンプ処理のための記憶容量を低減することができる。これは、状態遷移行列が遷移させるステップ数のみに依存し、状態空間のコードステートの位置によって異ならないため、イニシャルステートと各階層でのジャンプ量に応じた状態遷移行列とだけを記憶しておけばよいからである。そして、この効果は、コードに対する状態空間が広くなる、すなわちコードが長くなるほど有効となり、L2C信号に利用されるL2CMコードやL2CLコードに有効に活用することができる。さらに、コードは測位衛星毎に設定されているが、本実施形態の構成を用いることで、各コードのイニシャルステートと全ての共通の状態遷移行列とのみを記憶しておけばよい。これにより、従来では、測衛星が増加すれば大幅に記憶容量が増加したが、前述の構成ではイニシャルステートとエンドステートが増加するだけで状態遷移行列を新たに記憶する必要がない。この結果、記憶容量の低減効果がより発揮される。
また、コードステートの演算を階層化することで、階層毎に状態遷移行列が記憶されるが、その階層内のどのステート位置であっても状態遷移量にのみ依存して状態遷移行列が用いられる。このため、階層毎に1組ずつの状態遷移行列を記憶しておけばよく、各階層でそれぞれのジャンプ位置に対してコードステート全てを記憶しておくよりも、記憶容量を低減させることができる。
さらには、状態遷移行列の列データを所定複数バイトの一変数として記憶することで、単に列データを記憶するよりも記憶容量を低減させることができる。
以上のように、本実施形態の構成および処理を用いることで、生成するコード数やコード長に影響されることなく略一定で且つ従来よりも少ない記憶容量で、所望のコードを生成することができる。さらに、コードステートの状態空間におけるどのステート位置に所望のコードステートが存在しても略一定の演算処理量でコードステートを設定してコードを発生することができる。
なお、前述の実施形態では、第1階層、第2階層共にジャンプ処理を行う場合について説明したが、ジャンプするステート間隔が広い、すなわち、ジャンプ処理により得られるステート位置が少ない第1階層については、ジャンプ位置のコードステートを記憶しておき、コードステート読み出してジャンプ処理を行ってもよい。
図6はコードステート演算時の状態移動を模式的に表した説明図である。
この構成では、図6に示すように、第1階層のジャンプ位置のコードステート(STn11,STn12,STn13,・・・)が予め記憶されており、入力されたコード位相Kとステート間隔N1とから適当なコードステートを検出する。そして、第2階層以下の処理は前述の実施形態と同じ処理を行う。図6はコードステート演算時の状態遷移を模式的に表した説明図である。
このような構成とすることで、ジャンプ処理のすべてを状態遷移行列で演算する場合よりも、第1階層に対する記憶容量が若干増加するが、状態遷移行列を用いた演算を行わずに、読み出したコードステートをそのまま適用すればよいため、処理演算量を低減させることができる。これにより、必要とする装置仕様に応じて最適な記憶容量および処理演算量を設定することができる。
本発明のコード制御装置の概略構成を示すブロック図 コードステートの演算方法を示すフローチャート コードステート演算時の状態遷移を模式的に表した説明図 コードステート演算時の状態遷移を模式的に表した説明図 ジャンプ処理およびステップ処理の演算処理量の状態遷移量依存性を示すグラフ コードステート演算時の状態遷移を模式的に表した説明図
符号の説明
1−コードステート設定部
11−ステート演算部
12−状態遷移行列テーブル
13−ステートテーブル
2−コード発生器
3−コードNCO
4−コード位相計算部

Claims (6)

  1. コード位相におけるチップ単位未満の位相量に基づいてコードイネーブル信号を生成するコードNCOと、
    前記コード位相におけるチップ単位の位相量に基づいて決定される複数ビットのデータ列からなるコードステートを設定するコードステート設定手段と、
    前記コードイネーブル信号に同期して前記コードステートに基づくコードを発生するコード発生器と、を備えたコード制御装置において、
    前記コードステート設定手段は、コードステートの全ステートを複数の部分的なステート領域に分割する境界のコードステートのうち前記コード発生器に与えるコードステートに近い境界のコードステートを、前記チップ単位の位相量と前記ステート領域のステート数を用いた演算処理で算出し、該算出したコードステートに遷移させるジャンプ処理と、該ジャンプ処理により遷移した境界のコードステートが前記コード発生器に与えるコードステートよりも小さければコードステートを1状態ずつ前進させ、前記ジャンプ処理により遷移した境界のコードステートが前記コード発生器に与えるコードステートよりも大きければコードステートを1状態ずつ後退させるステップ処理と、を組み合わせて前記コード発生器に与えるコードステートを演算するステート演算手段を備えたことを特徴とするコード制御装置。
  2. 前記コードステート設定手段はコードステートの遷移演算に用いる状態遷移行列を記憶する記憶手段を備え、
    前記ステート演算手段は、状態遷移行列を用いて前記ジャンプ処理を行う請求項1に記載のコード制御装置。
  3. 前記記憶手段は、前記状態遷移行列の行データまたは列データを1変数として記憶する請求項2に記載のコード制御装置。
  4. 前記ステート演算手段は、全コードステートを階層的に分割し、上層階層から順に下層階層へ階層別ジャンプ処理を繰り返すことで前記ジャンプ処理を構成する請求項1〜3のいずれかに記載のコード制御装置。
  5. 前記ステート演算手段は、全コードステート領域を第1ステート間隔で分割した第1階層ステート領域毎にジャンプする第1階層ジャンプ処理を行った後に、前記第1階層ステート領域を第2ステート間隔で分割した第2階層ステート領域毎にジャンプする第2階層ジャンプ処理を行うことで、前記ジャンプ処理を構成する請求項4に記載のコード制御装置。
  6. 前記コードステート設定手段は、予め設定されたジャンプ位置のコードステートを記憶する記憶手段を備え、
    前記ステート演算手段は、前記ジャンプ位置のコードステートと前記状態遷移行列とを用いて前記ジャンプ処理を行う請求項2〜請求項5のいずれかに記載のコード制御装置。
JP2005055621A 2005-03-01 2005-03-01 コード制御装置 Expired - Fee Related JP5142457B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005055621A JP5142457B2 (ja) 2005-03-01 2005-03-01 コード制御装置
PCT/JP2006/302932 WO2006092973A1 (ja) 2005-03-01 2006-02-20 コード制御装置
US11/885,578 US8295422B2 (en) 2005-03-01 2006-02-20 Code controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005055621A JP5142457B2 (ja) 2005-03-01 2005-03-01 コード制御装置

Publications (2)

Publication Number Publication Date
JP2006242616A JP2006242616A (ja) 2006-09-14
JP5142457B2 true JP5142457B2 (ja) 2013-02-13

Family

ID=36941008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005055621A Expired - Fee Related JP5142457B2 (ja) 2005-03-01 2005-03-01 コード制御装置

Country Status (3)

Country Link
US (1) US8295422B2 (ja)
JP (1) JP5142457B2 (ja)
WO (1) WO2006092973A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8031115B2 (en) * 2009-01-21 2011-10-04 O2Micro Inc. Navigation system with a signal processor

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2620069B2 (ja) * 1986-10-09 1997-06-11 クラリオン株式会社 スペクトラム拡散通信方式
JP3477827B2 (ja) * 1993-08-10 2003-12-10 ソニー株式会社 拡散符号発生方法及び装置
KR100345969B1 (ko) * 1993-08-10 2002-10-25 소니 가부시끼 가이샤 확산부호발생방법및장치
JPH11259276A (ja) * 1998-03-11 1999-09-24 Kokusai Electric Co Ltd Gold系列発生回路
JP4027520B2 (ja) * 1998-12-24 2007-12-26 富士通株式会社 コード位相設定方法及び装置
JP2000350262A (ja) * 1999-06-07 2000-12-15 Yozan Inc 符号生成方法および符号生成回路
JP4445338B2 (ja) * 2004-07-23 2010-04-07 日本無線株式会社 スペクトラム拡散信号受信装置

Also Published As

Publication number Publication date
US8295422B2 (en) 2012-10-23
WO2006092973A1 (ja) 2006-09-08
JP2006242616A (ja) 2006-09-14
US20080298526A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
US5931893A (en) Efficient correlation over a sliding window
EP1102408A2 (en) Viterbi decoder
JP2000349592A (ja) デジタルマッチドフィルタ
US20210081489A1 (en) Arithmetic method
US9130588B2 (en) Redundant delay digital-to-time converter
JP5142457B2 (ja) コード制御装置
US9397671B2 (en) Delay locked loop and semiconductor apparatus
US9568890B1 (en) All-digital delay-locked loop circuit based on time-to-digital converter and control method thereof
JP2005184832A (ja) Ddsパルス発生装置
US11757437B2 (en) Monotonic and glitch-free phase interpolator and communication device including the same
JP2000252862A (ja) 拡散符号発生回路および拡散符号発生方法
US20030193995A1 (en) Digital matched filter
JP3902464B2 (ja) 周波数ジッターシステムクロックを発生するためのクロック発生器
EP1193645A1 (en) Method and circuit for calculating and storing the membership degrees of a fuzzy set
JP4806341B2 (ja) 符号生成装置及びスペクトラム拡散信号受信システム
JP2004032732A (ja) Pwm制御回路、マイクロコンピュータ、及び電子機器
JP4491587B2 (ja) データ発生装置
KR100732183B1 (ko) 트렐리스 다이아그램의 아날로그적 구현 및 순환적 연결에 의한 고속 비터비 디코딩 방법
US20050231243A1 (en) Clock doubler
US7099381B2 (en) De-spreading method and de-spreading apparatus
JP4453753B2 (ja) フラクショナルnpllシンセサイザ、フラクショナルnpllシンセサイザの発振周波数帯域制限方法
JP2007226664A (ja) 半導体集積回路の論理合成方法
US20030086484A1 (en) Receiver and inverse-spreading code generating method
US20120112824A1 (en) Filter circuit and integrated circuit including the same
JP2006237983A (ja) パス検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121008

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: 20121106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121120

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5142457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees