(57)【特許請求の範囲】
【請求項１】
ＭＳＫ信号に同相成分のキャリア信号と直交成分のキャリア信号を掛け合わせて直交同期検波を行ない、その結果得られる同相成分のベースバンド信号（Ｉ信号）および直交成分のベースバンド信号（Ｑ信号）から符号区間における位相差を検出し、この位相差に基づいてＭＳＫ信号を復調するとともに、前記位相差に基づいて前記キャリア信号の周波数を補正するＭＳＫ復調装置において、
正弦波の１周期におけるｎポイントのサンプリング点のそれぞれに対応して振幅値が記憶されたテーブルを備え、このテーブルから所定間隔でｍポイントを抽出して各ポイントに対応する振幅値を読み出すことにより前記キャリア信号を生成するとともに、粗調レベルの補正値と微調レベルの補正値に応じて前記正弦波の１周期の最後におけるサンプリング点のポイントを増減することにより、前記キャリア信号の周波数を補正することを特徴とするＭＳＫ復調装置。
【請求項２】
ポイントの増減をキャリア信号の毎周期単位で行なうことにより粗調レベルの補正を行ない、ポイントの増減をキャリア信号の所定周期単位で行なうことにより微調レベルの補正を行なう請求項１に記載のＭＳＫ復調装置。
【請求項３】
粗調レベルの補正時に、微調レベルの補正値を順次償却して微調レベルの補正をあわせて行なう請求項２に記載のＭＳＫ復調装置。
【請求項４】
ＭＳＫ信号に同相成分のキャリア信号と直交成分のキャリア信号を掛け合わせて直交同期検波を行ない、その結果得られる同相成分のベースバンド信号（Ｉ信号）および直交成分のベースバンド信号（Ｑ信号）から符号区間における位相差を検出し、この位相差に基づいてＭＳＫ信号を復調するとともに、前記位相差に基づいて前記キャリア信号の周波数を補正するＭＳＫ復調装置において、
正弦波の１周期におけるｎポイントのサンプリング点のそれぞれに対応して振幅値が記憶されたテーブルを備え、このテーブルから所定間隔でｍポイントを抽出して各ポイントに対応する振幅値を読み出すことにより前記キャリア信号を生成するとともに、前記正弦波の１周期の最後におけるサンプリング点のポイントを増減することにより、当該キャリア信号の周波数を補正することを特徴とするＭＳＫ復調装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＳＫ（Minimum Shift Keying）信号を復調するためのＭＳＫ復調装置に関する。
【０００２】
【従来の技術】
ＭＳＫ変調は、無線通信におけるデジタル変調方式の１つである。デジタル変調において、送信データの１、０を表すのに正弦波の周波数を変調する方式がＦＳＫ（Frequency Shift Keying）変調であるが、ＭＳＫ変調はこのＦＳＫ変調の一形態をなす。また、ＭＳＫは符号の変化点で位相の連続性が保持されることから、連続位相ＦＳＫ（Continuous Phase Frequency Shift Keying）の一種であるとされる。ＭＳＫの特徴は、１、０の符号に対応する２つの信号周波数の差を最小にしながら、信号区間の最後において最大の位相差（±９０°）が得られることにあり、この特性を利用して復調処理を行う。
【０００３】
ＭＳＫ復調の原理を、図１１および図１２を参照して説明する。図１１はＭＳＫ変調された信号（以下、ＭＳＫ信号という）の波形図を示している。図において、▲１▼、▲４▼、▲５▼は送信データのビットが０の符号区間、▲２▼、▲３▼、▲６▼は送信データのビットが１の符号区間である。ここで、ビットレートがたとえば２００ｂｐｓの場合には、キャリア（搬送波）の周波数を１ＫＨｚとして、ビット０の符号区間▲１▼、▲４▼、▲５▼ではＭＳＫ信号の周波数は９５０Ｈｚ、ビット１の符号区間▲２▼、▲３▼、▲６▼ではＭＳＫ信号の周波数は１０５０Ｈｚに選定されている。すなわち、キャリア周波数に対して信号周波数を±５０Ｈｚだけ偏移させている。
【０００４】
上記のようなＭＳＫ信号は、符号区間の最後における位相が、符号区間の最初の位相に比べて９０°（π／２）変化する。そして、この変化の方向（＋方向、−方向）は、ビットの符号が０の区間では−方向、ビットの符号が１の区間では＋方向となる。たとえば、符号区間▲１▼はビットが０であるから、位相は−方向へ０°から−９０°まで変化する。一方、符号区間▲２▼はビットは１であるから、位相は＋方向へ−９０°から０°まで変化する。
【０００５】
また、ある符号区間から次の符号区間にかけてビットが反転する場合は、次の符号区間での位相の変化方向は、前の符号区間での位相の変化方向と逆方向となり、ある符号区間から次の符号区間にかけて同じビットが連続する場合は、次の符号区間での位相の変化方向は、前の符号区間での位相の変化方向と同方向となる。たとえば、符号区間▲１▼から符号区間▲２▼に移る場合は、ビットの符号が０から１へ反転するが、符号区間▲１▼では位相が−方向へ変化しているため、符号区間▲２▼では位相は＋方向へ変化し、−９０°から０°へ＋９０°変化する。一方、符号区間▲２▼から符号区間▲３▼に移る場合は、ビットの符号は１のままで変化しないので、符号区間▲３▼では符号区間▲２▼と同様に位相は＋方向へ変化し、０°から＋９０°へ＋９０°変化する。しかし、符号区間▲３▼から符号区間▲４▼に移る場合は、再びビットの符号が１から０へ反転するため、符号区間▲４▼では位相は−方向へ変化し、＋９０°から０°へ−９０°変化する。同様にして、符号区間▲５▼では位相が０°から−９０°へ−９０°変化し、符号区間▲６▼では位相が−９０°から０°へ＋９０°変化する。
【０００６】
以上のような各符号区間における位相の変化を表したのが図１２である。実線はビットが０である符号区間▲１▼、▲４▼、▲５▼の位相変化を表し、変化の方向（矢印方向）が−方向となっている。点線はビットが１である符号区間▲２▼、▲３▼、▲６▼の位相変化を表し、変化の方向が＋方向となっている。また、ビットが反転する▲１▼→▲２▼、▲３▼→▲４▼、▲５▼→▲６▼では変化の方向が反転しており、同じビットが連続する▲２▼→▲３▼、▲４▼→▲５▼では変化の方向は同じになっていることがわかる。
【０００７】
このようなＭＳＫ信号の特性を用いると、変調前の送信データを復調して取り出すことができる。すなわち、各符号区間について、位相が＋と−のいずれの方向に９０°変化したかを検出し、＋の方向に９０°変化した区間については符号「１」を、−の方向に９０°変化した区間については符号「０」をそれぞれ割当てればよい。
【０００８】
以上のような原理に従ってＭＳＫ信号を復調するに際しては、変調側で用いたキャリアと周波数および位相が同じキャリアを復調側でも生成する必要がある。この方法として、変調波（ＭＳＫ信号）に基づいて復調側でキャリアを生成する方法があるが、これによると、周波数の同期をとる必要がない反面、変調波に重畳しているノイズの影響を直接受けるため、Ｓ／Ｎが悪くなって信頼性が低下するという問題がある。そこでこの対策として、復調側のキャリアを変調波から生成するのではなく、ＶＣＯ（電圧制御発振器）を用いて内部的にキャリアを生成する方法が考えられる。
【０００９】
図１３は、このようなＶＣＯを用いたＭＳＫ復調装置の基本的な構成を示すブロック図である。図において、２１はＭＳＫ信号が入力される入力端子、２２および２３は後述するキャリア信号とＭＳＫ信号とを掛け合わせて直交同期検波を行なう乗算器、２４および２５は同期検波された信号から高周波成分を除去するローパスフィルタ、２６は符号区間での位相を検出する位相検出器、２７はキャリア信号を発生するデジタルＶＣＯ、２８はＶＣＯ２７からのキャリア信号を９０°移相する９０°移相器である。
【００１０】
次に、図１３の復調装置の動作を説明する。入力端子２１にはＡ／Ｄ変換されたＭＳＫ信号が入力される。一方、ＶＣＯ２７からの出力信号は、同相成分のキャリア信号として乗算器２２に与えられるとともに、９０°移相器２８によって位相が９０°遅れた直交成分のキャリア信号として乗算器２３に与えられる。乗算器２２は端子２１に入力されたＭＳＫ信号と、ＶＣＯ２７からの同相成分のキャリア信号とを掛け合わせ、符号区間における位相検出に必要な同相成分のＩ（in-phase）信号を生成する。また、乗算器２３は端子２１に入力されたＭＳＫ信号と、９０°移相器２８からの直交成分のキャリア信号とを掛け合わせ、符号区間における位相検出に必要なＱ（quadrature）信号を生成する。
【００１１】
これらの２系統の信号は、それぞれローパスフィルタ２４および２５によって高周波成分が除かれ、位相検出器２６に与えられる。位相検出器２６ではＩ信号とＱ信号とに基づいて各符号区間ごとに位相を検出し、前述した原理にしたがって位相の変化方向から元のデータを再生して、復調出力として送出する。
【００１２】
また、位相検出器２６の出力はＶＣＯ２７へ与えられ、位相検出の結果に応じてＶＣＯ２７の発振周波数を制御する。すなわち、ＭＳＫ信号の周波数が変動してＶＣＯ２７の発振周波数からずれると、正しい位相検出ができなくなるので、ＭＳＫ信号の周波数のずれを位相のずれから検出し、ＶＣＯ２７の発振周波数をＭＳＫ信号の周波数変動に追従するように補正する。この場合、ＰＬＬ（Phase Locked Loop）の動作によってＶＣＯ２７の発振周波数がＭＳＫ信号の周波数に近づいてゆき、２つの周波数が一致するといわゆるロック状態となる。
【００１３】
【発明が解決しようとする課題】
上述したＭＳＫ復調装置においては、ＶＣＯ２７によりキャリアを生成するようにしているので、従来のように変調波からキャリアを生成する場合に比べて、ノイズの影響を受けにくくなってＳ／Ｎが改善される。しかし、その一方で、ＶＣＯ２７のキャリア周波数と変調波のキャリア周波数とがずれてくると、変調波を正確に復調することができなくなり、ビット誤りが増える。このため両キャリアの周波数を細かく同期させる必要がある。
【００１４】
しかるに、位相検出器２６の出力によるＶＣＯ２７の発振周波数の制御をたとえば１Ｈｚ単位で行なうと、ＭＳＫ信号のキャリア周波数がたとえば０．３Ｈｚ程度ずれただけでは、ＶＣＯ２７のキャリア周波数は補正されず、この状態をそのままにしておくと、ビットの周期がだんだんとずれてきて誤り率が増え、データを正確に再生できなくなってしまう。
【００１５】
本発明は上記のような問題を解決するものであって、ＭＳＫ信号の微細な周波数変動に対しても、周波数を細かく制御して正確にデータを再生できるＭＳＫ復調装置を提供することを課題としている。
【００１６】
【課題を解決するための手段】
上記課題を解決するために本発明は、復調側で生成するキャリア信号の周波数を、粗調レベルの補正値と微調レベルの補正値とに基づいて補正するようにしたものである。ここで、粗調レベルとはたとえば１Ｈｚ単位で補正を行うことをいい、微調レベルとはたとえば０．１Ｈｚ単位で補正を行うことをいう。
【００１７】
このような２つのレベルの補正値を用いることで、キャリア周波数を細かく補正することが可能となり、周波数を精度よく調整できるので、変調波の周波数が細かく変動しても、容易に同期をとることができて誤り率が減少する。
【００１８】
また、本発明は、上記課題を解決するために、正弦波の１周期におけるｎポイントのサンプリング点のそれぞれに対応して振幅値が記憶されたテーブルを設け、このテーブルから所定間隔でｍポイントを抽出して各ポイントに対応する振幅値を読み出すことにより信号を生成するとともに、正弦波の１周期の最後におけるサンプリング点のポイントを増減することにより、信号の周波数を補正するようにしたものである。
【００１９】
このようにすれば、テーブルのポイントを参照してソフトウエア処理によって、粗調レベルの補正と微調レベルの補正とを容易に実現することができる。たとえば、ポイントの増減をキャリア信号の毎周期単位で行なうことにより粗調レベルの補正を行ない、ポイントの増減をキャリア信号の所定周期単位で行なうことにより微調レベルの補正を行なうことができる。そして、粗調レベルの補正時に、微調レベルの補正値を順次償却して、微調レベルの補正をあわせて行なうようにすれば、位相を滑らかに変化させることが可能となる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態につき、図を参照しながら説明する。図１は、本発明の実施形態に係るＭＳＫ復調装置のブロック図である。図１の各ブロックの機能は、ソフトウエアで実現されるものであり、実際には図１はＤＳＰ（Digital Signal Processor）として構成されるが、ここでは便宜上ハードウエア回路で表している。
【００２１】
図１において、１はＭＳＫ信号が入力される入力端子、２は入力されたＭＳＫ信号をサンプリング処理によってデジタル信号に変換するＡ／Ｄコンバータ、３はデジタル変換されたＭＳＫ信号の帯域を制限する帯域フィルタ、４および５は後述するキャリア信号とＭＳＫ信号とを掛け合わせて、直交同期検波を行なう乗算器、６および７は同期検波された信号から高周波成分を除去するローパスフィルタ、８および９は位相検出に必要なサンプルデータを生成するサンプリング回路、１０は符号区間での位相を検出して、元の信号を取り出す位相検出器である。
【００２２】
１１は位相検出器１０の位相検出結果に基づきビットの変化点を検出して、サンプリング周期の同期をとるビット同期回路、１２は位相検出器１０の位相検出結果に基づき周波数の補正値を算出して、キャリア信号の周波数を制御する周波数制御回路、１３はデジタルＶＣＯ（電圧制御発振器）から構成され、キャリア信号を生成する信号生成回路、１４は信号生成回路１３からのキャリア信号を９０°移相する９０°移相器、１５はキャリア信号の生成に必要なデータを記憶した信号テーブル、１６は周波数制御回路１２、信号生成回路１３および信号テーブル１５により構成される信号周波数制御装置である。
【００２３】
次に、図１のＭＳＫ復調装置の動作を説明する。入力端子１には図２のａに示すようなＭＳＫ信号が入力される。このＭＳＫ信号は図１１で示したものと同じであり、１ＫＨｚのキャリア周波数を、符号０の区間では９５０Ｈｚ、符号１の区間では１０５０Ｈｚとなるように変調している。入力されたＭＳＫ信号は、Ａ／Ｄコンバータ２においてサンプリング処理され、図２のｂに示すようなデジタル信号に変換される。ここでは、サンプリング周波数を１０ＫＨｚとしている。デジタル信号に変換されたＭＳＫ信号は、帯域フィルタ３において８００〜１２００Ｈｚに帯域を制限された後、乗算器４、５に与えられる。
【００２４】
一方、信号生成回路１３は、ＭＳＫ信号のキャリアと同じ周波数（１ＫＨｚ）をもつキャリア信号を生成する。図３はキャリア信号の波形図を示している。１ＫＨｚの正弦波を１ＭＨｚでサンプリングすると、１サイクルにおけるサンプリング点は１０００ポイントとなる。この１０００ポイントのそれぞれの振幅値を、図４に示す信号テーブル１５にあらかじめ記憶させておく。信号テーブル１５は、たとえばＲＯＭに設定される。
【００２５】
図４において、ＰＮＴはポイント位置であり、１〜１０００のそれぞれに対して、正弦波の振幅値Ａ１、Ａ２、Ａ３、…Ａ１０００が記憶されている。したがって、サンプリングごとにポイントを１００ずつ進めてゆくことにより、１０ＫＨｚでサンプリングした１ＫＨｚのキャリア信号を生成することができる。なお、このキャリア信号の生成にあたっては、周波数を粗調レベルと微調レベルの２段階に分けて調整するが、その詳細については後述する。
【００２６】
このようにして生成されたキャリア信号は、乗算器４に同相成分のキャリア信号として与えられるとともに、９０°移相器１４によって位相が９０°遅れた直交成分のキャリア信号として乗算器５に与えられる。図４のテーブルの読込み位置ＰＮＴを用いて、同相成分のキャリア信号を
ｃａｒｒｉｅｒＩ＝ｃａｒ［ＰＮＴ］            （１）
と表すと、直交成分のキャリア信号はこれより位相が９０°、つまり４分の１周期遅れており、この遅れは１０００×１／４＝２５０ポイントに相当するから、
ｃａｒｒｉｅｒＱ＝ｃａｒ［ＰＮＴ＋２５０］    （２）
で表される。
【００２７】
乗算器４はＭＳＫ信号と、信号生成回路１３からの同相成分のキャリア信号とを掛け合わせ、符号区間における位相検出に必要な同相成分のＩ（in-phase）信号を生成する。また、乗算器５はＭＳＫ信号と、９０°移相器１４からの直交成分のキャリア信号とを掛け合わせ、符号区間における位相検出に必要なＱ（quadrature）信号を生成する。これらのＩ信号およびＱ信号は、それぞれ、低周波のベースバンド信号の同相成分および直交成分である。
【００２８】
こうして生成されたＩ信号およびＱ信号は、それぞれローパスフィルタ６および７によって２ＫＨｚの高周波成分が除かれ、サンプリング回路８、９に与えられる。サンプリング回路８、９では、Ｉ信号とＱ信号のそれぞれに対し、１周期において１０個のサンプリング点でサンプリングを行なう。すなわち、サンプリング回路８、９に入力されるＩ信号とＱ信号は、１０ＫＨｚでサンプリングされた２００ｂｐｓの信号であるため、サンプリング点は５０個存在するが、サンプリング回路８、９ではサンプリング周波数を２ＫＨｚとして、５０個のサンプリング点を１０個に間引いている。こうしてサンプリングされたＩ信号、Ｑ信号は、それぞれ図２のｃ、ｄのような信号となる。この２系統の信号は、位相検出器１０に与えられる。
【００２９】
位相検出器１０では、Ｉ信号とＱ信号のサンプルデータに基づいて、各符号区間ごとにＭＳＫ信号の位相を検出する。図５は位相検出の原理を示している。図２のｃ、ｄにおいて任意のサンプリング点ｊをとり、このサンプリング点ｊにおけるI信号の振幅をＩｊ、Ｑ信号の振幅をＱｊとすると、このサンプリング点ｊにおける位相θｊは図５より、
θｊ＝ｔａｎ−１  （Ｉｊ／Ｑｊ）×（３６０／２π）    （３）
で表される。このθｊの値は、Ｉｊ＝０〜６３、Ｑｊ＝０〜６３のそれぞれにつき、２次元配列のテーブル（図示省略）にあらかじめ記憶されている。
【００３０】
したがって、各符号区間につき、１０個のサンプリング点ごとにテーブルから位相を求め、今回の位相値θｊと前回の位相値θｊ−1との差を求めれば、この位相差が位相の変化値となる。そして、この位相差を符号区間にわたって１０回累積すれば、この累積値から位相が＋−どちらの方向へ何度変化しているかが判別できる。この判別の結果、位相が＋方向へ９０°変化しておれば、図１１および図１２において説明したように、その区間の符号は「１」であり、位相が−方向へ９０°変化しておれば、その区間の符号は「０」となる。このようにして、位相検出器１０は、符号区間の位相変化を判別して元のデータの再生を行ない、復調出力として送出する。
【００３１】
一方、位相検出器１０で検出された位相データは、ビット同期回路１１へ与えられる。キャリア周波数の変動やノイズの影響などによって、変調波のサンプリング点は常に変化するが、サンプリング点がずれるとビット誤りが増える。これを図６で説明すると、同図（ａ）は正規状態におけるビット波形である。ｔ０、ｔ１、ｔ２は位相の変化点であり、これらはサンプリング点と一致している。いま、変調波のキャリア周波数が増加すると、同図（ｂ）のように位相の変化点が符号周期（ｔ０〜ｔ１）の終了時点ｔ１よりも早く出現するため、ビットの符号周期がΔｔａだけ短くなり、ビット反転のタイミングが左方向にずれてくる。また、キャリア周波数が減少すると、同図（ｃ）のように位相の変化点が符号周期の終了時点ｔ１よりも遅く出現するため、ビットの符号周期がΔｔｂだけ長くなり、ビット反転のタイミングが右方向にずれてくる。このように、ビットの変化点（位相の変化点）がずれてくると、サンプリング点と変化点とが一致しなくなり、データを正しく再生できなくなるので、ビット同期回路１１によりサンプリング点の同期をとるようにしている。
【００３２】
ビット同期回路１１では、まず最初に、符号周期の開始位置を求める。このために、位相検出器１０で検出された今回の位相θｊが前回の位相θｊ−1より進んでいる場合には「＋」を、遅れている場合には「−」を、同じ場合には「０」を、それぞれサンプリング点ごとにメモリへ記憶する。そして、「＋」「＋」「−」「−」、「−」「−」「＋」「＋」、あるいは「０」「０」「＋／−」という変化のパターンを検索する。なお、「＋」や「−」等を２つ連続させたのは、ノイズによる変化と区別するためであり、原理的には１つでもよい。上記３つのパターンのいずれかに該当する場合は、位相方向が反転する場合であるから、この変化点を符号周期開始位置とする。
【００３３】
続いてビット同期回路１１は、上記のようなパターン検索を継続してビットの変化点を監視し、図６（ｂ）のように変化点が符号周期の終了時点ｔ１よりも早く出現した場合には「−１」を累積し、図６（ｃ）のように符号周期の終了時点ｔ１よりも遅く出現した場合には「＋１」を累積する。ここで、ΔｔａやΔｔｂはたとえば符号周期の２０％以内に設定される。また、図６（ａ）のように、変化点が符号周期の終了時点ｔ１と一致している場合は累積を行なわず、上記パターンが存在しない場合も累積は行なわない。そして累積をたとえば２５６回行ない、その結果が「−」であれば、位相の変化点は図６で左方向にずれていることになるので、これに合わせるためにサンプル周期をたとえば１０％短くするようサンプリング回路８、９に指令を与える。また、累積結果が「＋」であれば、位相の変化点は図６で右方向にずれているので、これに合わせるためにサンプル周期をたとえば１０％伸ばすようサンプリング回路８、９に指令を与える。
【００３４】
このようにして、基準となるサンプリング点と実際の位相の変化点とを比較し、位相変化点の検出タイミングに基づいてサンプル周期を伸縮させることによって、位相の変化点とサンプリング点とを一致させ、ビット同期をとることができる。
【００３５】
ところで、位相検出器１０で検出された位相データは、信号周波数制御装置１６へも与えられる。信号周波数制御装置１６は、正弦波信号の生成に必要なデータを記憶した信号テーブル１５と、この信号テーブル１５のデータに基づいて正弦波信号を生成する信号生成回路１３と、制御入力に基づいて信号生成回路１３の信号周波数を制御する周波数制御回路１２とからなる。周波数制御回路１２は位相検出器１０からの位相データを制御入力として周波数の補正値Ａ、Ｂを演算し、これを制御信号として信号生成回路１３へ与え、信号生成回路１３で生成される信号の周波数を制御する。
【００３６】
図１の装置では、位相差に基づいてデータを復調しているため、変調波（ＭＳＫ信号）のキャリア周波数と信号生成回路１３のキャリア周波数とがずれてくると、ビット誤りが増える。そこで、信号周波数制御装置１６によりキャリア信号の周波数を制御して、ＭＳＫ信号の周波数変動に対して信号生成回路１３のキャリア周波数が追従するようにしている。この周波数制御の詳細については後述する。
【００３７】
また、位相検出器１０においては、各符号区間における位相差（変化値）の絶対値を求め、これが５０°〜９０°の範囲にある場合には「＋１」を累積する。これをたとえば６４回行ない、「＋１」の累積が２５％（すなわち１６回）以上あれば、ノイズが多くてもデータ検出が可能なレベルとみなして、ロック状態とする。ロック状態に至ると、前述したように位相検出器１０は、符号区間での位相変化を判別してデータ検出を行ない、復調出力として送出する。
【００３８】
一方、「＋１」の累積が２５％以下の場合は、データ検出が可能なレベルに至っていないとみなして、ビットレートを変化させる。ビットレートとは１秒間に伝送できるビット数のことをいい、ここでは２００ｂｐｓ、１００ｂｐｓ、５０ｂｐｓの３段階のビットレートが設定されている。そして、２００→１００→５０ｂｐｓの順番で自動的にビットレートを変化させ、それぞれのレートにつき上述した累積を行なってロック状態になるまでこれを繰り返す。なお、２００ｂｐｓの場合はサンプリング周波数が２ＫＨｚ、１００ｂｐｓの場合はサンプリング周波数が１ＫＨｚ、５０ｂｐｓの場合はサンプリング周波数が０．５ＫＨｚとなっていて、どのビットレートに対しても、１周期区間で常に１０点のサンプリング点が得られるようになっている。
【００３９】
図７は、以上説明した一連の動作を表すフローチャートである。端子１に入力されたＭＳＫ信号をＡ／Ｄコンバータ２でサンプリングしてデジタル信号に変換し（Ｓ１）、帯域フィルタ３を通してフィルタリングする（Ｓ２）。そして、信号生成回路１３において生成（Ｓ３）したキャリア信号とＭＳＫ信号とを乗算器４、５において掛け合わせて直交同期検波を行ない、ベースバンド信号の同相成分をなすＩ信号と直交成分をなすＱ信号とを生成して、ローパスフィルタ６、７を通した後、サンプリング回路８、９でサンプリング処理する（Ｓ４）。
【００４０】
ついで、復調周期が経過したかどうかをみる（Ｓ５）。復調周期とは、１０回のサンプリングにおけるサンプリング間隔のことで、２００ｂｐｓの場合は、前述のように２ＫＨｚでサンプリングするので、復調周期は０．５ｍｓとなる。復調周期が経過してなければ終了し、経過すればサンプリングしたＩ信号とＱ信号に基づいて、位相差を位相検出器１０で検出する（Ｓ６）。続いて、この位相差から位相の変化点を検出し（Ｓ７）、この検出結果に基づいてビット同期回路１１によりビット同期を行なう（Ｓ８）。
【００４１】
続いて、符号周期が経過したかどうかをみる（Ｓ９）。符号周期とは１つの符号区間の時間であり、換言すればＩ信号、Ｑ信号の１０回目のサンプリングが終了するまでの時間である。符号周期が経過してなければ何もせずに終了し、経過すれば周波数制御回路１２により周波数同期を行なう（Ｓ１０）。そして位相検出器１０でロック状態の検出およびビットレートの変更を行ない（Ｓ１１）、ロック状態になればデータを検出して出力する（Ｓ１２）。以上で１符号区間の動作は終了し、その後は次の符号区間につき、Ｓ１〜Ｓ１２のステップを順次繰り返す。
【００４２】
図８は、図７におけるＳ３（キャリア信号生成）の詳細を示すフローチャートであって、信号生成回路１３の動作を表したものである。以下、これについて説明する。図４で説明したように、キャリアの振幅値は１０００ポイント分が信号テーブル１５に設定されている。キャリアの読込み位置をＰＮＴとして、まずＰＮＴが１０００を越えていないかを判断する（Ｓ２１）。１０００を越えていれば（Ｓ２１ＮＯ）、ＰＮＴ値から１０００を引いた値をＰＮＴとする（Ｓ３４）。したがって、ＰＮＴ値が１００１であれば、ＰＮＴ＝１となってテーブルの最初に戻ることになる。１０００を越えていなければ（Ｓ２１ＹＥＳ）、図４のテーブルからそのＰＮＴに対応する振幅値を読込む（Ｓ２２）。これは前述した（１）式からわかるように、同相成分キャリア信号の振幅となる。
【００４３】
続いて、ＰＮＴを２５０進めてこの値をｐとし（Ｓ２３）、ｐが１０００を越えていないかを判断する（Ｓ２４）。１０００を越えていれば（Ｓ２４ＮＯ）、ｐから１０００を引いた値をｐとする（Ｓ３５）。１０００を越えていなければ（Ｓ２４ＹＥＳ）、図４のテーブルからそのｐに対応する振幅値を読込む（Ｓ２５）。これは前述した（２）式からわかるように、直交成分キャリア信号の振幅となる。
【００４４】
次に、ＰＮＴを１００進めてその値をＰＮＴとし（Ｓ２６）、また粗調レベルカウンタＣＮＴ１に１を加算して（Ｓ２７）、ＣＮＴ１が１０になったか否かを判断する（Ｓ２８）。ＰＮＴを１００進めるのは、前述のように１０００個のデータの中からサンプル値を１０個抽出するためである。ＣＮＴ１が１０になっていなければ（Ｓ２８ＮＯ）、何もせずに終了し、図７のＳ４へ移行する。ＣＮＴ１が１０になれば（Ｓ２８ＹＥＳ）、サンプリングが１０回行なわれて１周期の最後まで来たことになるので、その時点でキャリア周波数の粗調レベルの補正を行なう。すなわち、周波数制御回路１２において算出された補正値Ａを用いて、ＰＮＴにＡを加えた値をＰＮＴとし、同時にＣＮＴ１を０にリセットする（Ｓ２９）。ここで、Ａは−１０〜＋１０の値をとり、Ａ＜０の場合はＰＮＴがＡだけ減少してキャリア周波数が減少し、０＜Ａの場合はＰＮＴがＡだけ増加してキャリア周波数が増加する。この補正値Ａの算出方法については後述する。
【００４５】
上記の場合において、Ａの値とキャリア周波数の変化との関係を、図１０を参照して説明する。図１０（ａ）は、周波数が１ＫＨｚのキャリア信号波形であり、図３に示したものと同じ正弦波信号である。この場合、前述のようにサンプリング点を１００ポイントおきに１０個とっているので、１周期の最後のポイントはＰＮＴ＝１０００となっている。また、周波数が１ＫＨｚであるから、１周期はＴ＝１ｍｓとなり、１ポイント分の周期は１ｍｓ／１０００＝１μｓとなる。
【００４６】
次に、同図（ｂ）のように、１周期の最後においてサンプリング点のポイントを１０００から１だけ進めてＰＮＴ＝１００１（実際にはＰＮＴ＝１）にすると、１サイクルの周期Ｔ＋１は
Ｔ＋１＝１ｍｓ−１μｓ＝９９９μｓ＝０．０００９９９（ｓ）
となる。このときキャリア信号の周波数ｆｃ＋１は、
ｆｃ＋１＝１／Ｔ＋１＝１÷０．０００９９９＝１００１．００１００１
≒１００１（Ｈｚ）
となり、約１Ｈｚだけ周波数が増加したことになる。
【００４７】
一方、同図（ｃ）のように、１周期の最後においてサンプリング点のポイントを１０００から１だけ遅らせてＰＮＴ＝９９９にすると、１サイクルの周期Ｔ−１は
Ｔ−１＝１ｍｓ＋１μｓ＝１．００１ｍｓ＝０．００１００１（ｓ）
となる。このときキャリア信号の周波数ｆｃ−１は、
ｆｃ−１＝１／Ｔ−１＝１÷０．００１００１＝９９９．０００９９９
≒９９９（Ｈｚ）
となり、約１Ｈｚだけ周波数が減少したことになる。
【００４８】
すなわち、ＰＮＴを１増減するとキャリア周波数はそれに応じて約１Ｈｚ増減することになる。従って、ＰＮＴをＡ増減した場合のキャリア周波数ｆｃは
ｆｃ≒１０００±Ａ（Ｈｚ）
となる。なお、ＰＮＴの±１の変化によりキャリア信号の周波数が正確に±１Ｈｚ変化するわけではないが、信号処理の間にはキャリア周波数は常に増減しているので、正確な周波数変化値は必要とされない。
【００４９】
以上のようにして、キャリア信号の１周期の最後（１０個目のサンプリング時点）においてポイントを１０００から増減することにより、補正値Ａによる１Ｈｚ単位での粗調レベルの補正を行なう。この粗調レベルの補正は、毎周期ごとに行われる。たとえばＡ＝１の場合は、１０回のサンプリングごとにポイントを１０１進め、その他のサンプリング点では１００ポイントずつ進める。
【００５０】
再び図８へ戻って、上記の粗調レベルの補正（Ｓ２９）を実行した後、微調レベルｌｅｖｅｌが０より大きいか否かを判断する（Ｓ３０）。微調レベルｌｅｖｅｌは、キャリア周波数を０．１Ｈｚ単位で補正する場合に用いられる補正値であって、たとえばキャリア周波数を９９９．５Ｈｚに調整する場合は、粗調レベルの補正値はＡ＝−１、微調レベルの補正値はｌｅｖｅｌ＝＋５となる。このｌｅｖｅｌの値は、周波数制御回路１２において算出されるが、その算出方法については後述する。
【００５１】
粗調レベルの補正が１周期単位で行われる補正であるのに対し、微調レベルの補正は、所定周期、たとえば１０周期単位で行われる補正であって、ｌｅｖｅｌの値は、１０周期にわたってポイントを何点補正するかを表している。たとえば、ｌｅｖｅｌ＝１であれば、キャリア信号の１０周期にわたって１ポイント（１Ｈｚ）が補正されることになり、これはＡ＝１（１Ｈｚ）の粗調レベルの補正に比べて１／１０（０．１Ｈｚ）単位の補正に相当する。
【００５２】
さて、Ｓ３０でｌｅｖｅｌが０より大きい場合は（Ｓ３０ＹＥＳ）、微調レベルの補正が必要な場合であり、ｌｅｖｅｌから１を減算してＰＮＴを１加算する（Ｓ３６）。その後、微調レベルカウンタＣＮＴ２を１進める（Ｓ３１）。一方、Ｓ３０でｌｅｖｅｌが０以下の場合は（Ｓ３０ＮＯ）、微調レベルの補正が必要でない場合であり、Ｓ３１へ移行してＣＮＴ２を１進める。
【００５３】
なお、微調レベルの補正は１０周期単位で行なう補正であるから、原理的には、図１０（ｂ）、（ｃ）で述べたようなポイントの増減を、１０周期目の最後で行なえばよいが、こうすると補正時に急激な位相の変化が生じるという問題がある。たとえば、微調レベルがｌｅｖｅｌ＝５の場合には、最初の９周期はキャリア信号は１０００Ｈｚの波形となるが、最後の１周期だけ５Ｈｚずれた波形となる。このため、最後にまとめて補正をするのではなく、Ｓ３６において、粗調レベルの補正（Ｓ２９）とあわせて、微調レベルの補正を前倒しで行なうことで、位相ができるだけ滑らかに変化するようにしている。
【００５４】
すなわち、Ｓ３６においては、ｌｅｖｅｌの値から１を引いて、代わりにＰＮＴに１を加算することで、微調レベルの補正のうちの１ポイント分がこの段階で前倒し補正される。この１ポイント分の補正は、実質的には粗調レベルの補正と同じである。そして、Ｓ３６での補正は毎周期ごとに行われるから、微調レベルの補正値は、ｌｅｖｅｌ＝０になるまで、１周期ごとに１ずつ償却されてゆく。
【００５５】
次に、ＣＮＴ２が１０になったか否かを判断する（Ｓ３２）。ＣＮＴ２が１０になっていなければ（Ｓ３２ＮＯ）、何もせずに終了し、図７のＳ４へ移行する。ＣＮＴ２が１０になれば（Ｓ３２ＹＥＳ）、１０周期の最後（１００個目のサンプリング点）まで来たことになるので、次の１０周期における微調レベルの補正値の設定を行なう。すなわち、周波数制御回路１２において算出された補正値Ｂを用いて、これを新たな微調レベルの補正値ｌｅｖｅｌとして設定し、同時にＣＮＴ２を０にリセットする（Ｓ３３）。ここで、Ｂは０〜＋９の値をとる。この補正値Ｂの算出方法については後述する。
【００５６】
図９は、図７におけるＳ１０（周波数同期）の詳細を示すフローチャートであって、周波数制御回路１２の動作を表したものである。以下、これについて説明する。位相検出器１０で検出された符号区間における位相差をＤとし、Ｄの正負を判定する（Ｓ４１）。Ｄが正であれば（Ｓ４１ＮＯ）、Ｄから９０を引いた値をＤとし（Ｓ５５）、Ｄが負であれば（Ｓ４１ＹＥＳ）、Ｄに９０を足した値をＤとする（Ｓ４２）。正常状態（周波数同期がとれている状態）ではＤは±９０°であるから、Ｓ４２とＳ５５のいずれにおいてもＤ＝０となるが、周波数がずれてくるとＤは±にシフトする。
【００５７】
たとえば、正常状態で−９０°となるべきところ、−１００°の位相差が検出された場合は、Ｓ４２で
Ｄ＝−１００＋９０＝−１０
となり、Ｄは−方向にシフトしている。また、正常状態で＋９０°となるべきところ、＋１００°の位相差が検出された場合は、Ｓ５５で
Ｄ＝＋１００−９０＝＋１０
となり、Ｄは＋方向にシフトしている。このＤの値を累積して位相ずれの累積値ＳＵＭを求める（Ｓ４３）。また、同時に累積カウンタＣＮＴを１加算する（Ｓ４４）。
【００５８】
続いて累積カウンタＣＮＴの値が６４になったか否かを判定する（Ｓ４５）。この６４という値は一例であって、この数値自体に特に意味はない。カウンタ値が６４になっていなければ（Ｓ４５ＮＯ）、何もせずに終了し、図７のＳ１１へ移行する。カウンタ値が６４になれば（Ｓ４５ＹＥＳ）、カウンタＣＮＴを０にリセットして（Ｓ４６）、位相ずれの累積値ＳＵＭが０より大きいか否かを判定する（Ｓ４７）。
【００５９】
Ｓ４７において、０＜ＳＵＭの場合は、位相は＋方向にシフトしていることになり、これは図６（ｂ）に対応する状態であって、周波数に着目すると周波数が増加している状態であるから、キャリア周波数をそれに合わせて増加させるよう補正を行なう。
【００６０】
すなわち、まずＢを１加算する（Ｓ４８）。Ｂは最初０からスタートし、６４回ＳＵＭを累計するたびに、１つずつプラスしてゆく。Ｂの値が１０になれば（Ｓ４９ＹＥＳ）、Ａに１を加算してＢを０にクリアした後（Ｓ５０）、ＳＵＭを０にクリアする（Ｓ５１）。Ｂの値が１０未満であれば（Ｓ４９ＮＯ）、そのままＳＵＭを０にクリアする（Ｓ５１）。この結果、Ｓ４９でＢが１０のときは、次の１０周期におけるＢの値（図８のＳ３３参照）は０となり、Ｓ４９でＢが１０未満のときは、そのときのＢの値が次の１０周期におけるＢの値となる。また、Ａについては、最初０からスタートし、Ｓ５０で算出された値が、各周期の終り（１０回目のサンプリング）の時点での補正値（図８のＳ２９参照）となる。
【００６１】
一方、Ｓ４７においてＳＵＭ＜０の場合は、位相は−方向にシフトしていることになり、これは図６（ｃ）に対応する状態であって、周波数に着目すると周波数が減少している状態であるから、キャリア周波数をそれに合わせて減少させるよう補正を行なう。
【００６２】
すなわち、まずＢを１減算する（Ｓ５２）。この場合もＢは最初０からスタートし、６４回ＳＵＭを累計するたびに、１つずつマイナスしてゆく。Ｂの値が０未満になれば（Ｓ５３ＹＥＳ）、Ａから１を減算してＢを９にセットした後（Ｓ５４）、ＳＵＭを０にクリアする（Ｓ５１）。Ｂの値が０以上であれば（Ｓ５３ＮＯ）、そのままＳＵＭを０にクリアする（Ｓ５１）。この結果、Ｓ５３でＢが０未満のときは、次の１０周期におけるＢの値は９となり、Ｓ５３でＢが０以上のときは、そのときのＢの値が次の１０周期におけるＢの値となる。また、Ａについては、上記の場合と同様に最初０からスタートし、Ｓ５４で算出された値が各周期の終りの時点での補正値となる。
【００６３】
また、Ｓ４７においてＳＵＭ＝０の場合は、何もせずに終了する。この場合は位相のシフトがない正常な状態であり、補正の必要がないからである。
【００６４】
以上述べた図８および図９の動作を、キャリアの周波数をたとえば１ＫＨｚから９９９．５Ｈｚに補正する場合にあてはめてみると、次のようになる。この場合は位相が−方向にずれている場合の補正であって、図９のＳ４７での判定がＳＵＭ＜０の場合に該当する。
【００６５】
最初は、Ｓ５２での結果はＢ＝０−１＝−１となる。したがって、Ｓ５３での判定はＹＥＳとなり、Ａ＝０−１＝−１、Ｂ＝９となる。すなわち、キャリア周波数は９９９．９Ｈｚとなる。次の周期での位相変化をみてＳＵＭ＜０であれば、Ｓ５２での結果はＢ＝９−１＝８となるので、Ｓ５３での判定はＮＯとなり、Ａの値は変わらずＡ＝−１であり、Ｂの値はＢ＝８となる。すなわち、キャリア周波数は９９９．８Ｈｚとなる。さらに次の周期での位相変化をみてＳＵＭ＜０であれば、Ｓ５２での結果はＢ＝８−１＝７となるので、Ｓ５３での判定はＮＯとなり、Ａの値は変わらずＡ＝−１であり、Ｂの値はＢ＝７となる。すなわち、キャリア周波数は９９９．７Ｈｚとなる。このようにして、１周期ごとに周波数を０．１Ｈｚずつずらしてキャリアの周波数を補正する。そして、Ａ＝−１、Ｂ＝５になったときが周波数を９９９．５Ｈｚに補正する場合である。
【００６６】
信号生成回路１３では、上記補正値Ａ、Ｂを参照してキャリア周波数の補正を行なう。すなわち、図８のＳ２９において、Ａ＝−１であるからＰＮＴ＝ＰＮＴ−１となる。しかし、Ｓ３０での判定はＹＥＳ（ｌｅｖｅｌ＝５）であるから、Ｓ３６においてＰＮＴ＝ＰＮＴ＋１となり、ＰＮＴの値はもとに戻る。つまり、結果的に補正は行なわれない。また、Ｓ３６でｌｅｖｅｌの値をマイナス１する。最初から５周期目までの間は、Ｓ３０の判定がＹＥＳとなるので、上記動作が繰り返され、ｌｅｖｅｌの値が５ポイント分償却される。
【００６７】
６周期目になると、Ｓ３０の判定がＮＯ（ｌｅｖｅｌ＝０）となるため、Ｓ３６の処理は行なわれなくなる。一方、Ｓ２９での処理はそのまま継続される。したがって、６周期目から１０周期目までは、Ｓ２９においてＡ＝−１による補正が行なわれ、毎周期ごとに−１ポイントずつ補正が行なわれる。その結果、６〜１０周期の間で合計−５ポイントの補正が行なわれることになる。この−５ポイントは、１０周期にわたって補正すべきポイントの数であるから、１０周期で周波数が５Ｈｚ減少することを意味する。したがって、１周期についてみると、周波数は０．５Ｈｚ減少することになり、結果的に、周波数は１ＫＨｚから９９９．５Ｈｚに補正されたことになる。
【００６８】
ここで、Ａ＝−１の補正を毎周期毎に１０回行ない、Ｂ＝５の補正を１０周期の最後で１回だけ行なっても、トータルの補正ポイントは−１０＋５＝―５となって、上記の場合と同じ結果となる。しかし、一度に５ポイントを補正するよりも、５回に分けて１ポイントずつ補正したほうが、前述したように位相の急激な変化を回避できる。位相が急激に変動すると、位相シフトした部分にたまたまノイズが入った場合に、そのノイズの影響が助長されるおそれがあるが、位相を徐々に変化させればそのような影響も少なく、Ｓ／Ｎ改善の点からみて有利である。
【００６９】
以上のようにして、上記実施形態においては、信号テーブル１５からサンプリング点を抽出して正弦波信号を生成するとともに、１周期の最後におけるサンプリング点のポイントを増減することにより信号周波数を制御する信号周波数制御装置１６を設け、ポイントの増減を毎周期および１０周期単位で行なうことで、キャリア周波数を粗調レベルと微調レベルの２段階で補正している。したがって、周波数を０．１Ｈｚ単位で補正することができるため、ＭＳＫ信号のキャリア周波数が１Ｈｚ未満の範囲で微細に増減した場合でも、復調側のキャリア周波数をそれに追従させて補正することが可能となり、容易に周波数同期をとることができる。その結果、ビット誤りが減少してデータを正確に復調することができる。
【００７０】
また、上記実施形態においては、周波数同期のほかにビット同期の処理をあわせて行なっているため、ビットの誤り率がより一層減少し、信頼性の高い装置となっている。
【００７１】
なお、本発明は以上述べた実施形態のみに限定されるものではなく、他にも種々の形態を採用することが可能である。たとえば、図１のＭＳＫ復調装置としてはＤＳＰにより構成されるものに限らず、図１の各ブロックの機能を備えたハードウエアの回路で構成してもよい。
【００７２】
また、上記実施形態では、微調レベルの補正を１０周期単位のみで行なったが、微調レベルの補正をさらに２段階に分け、たとえば１０周期単位で行なう補正と１００周期単位で行なう補正とを併用すれば、０．０１Ｈｚ単位での一層きめ細かい周波数制御を行なうことが可能となる。
【００７３】
また、上記実施形態では、信号テーブル１５に１０００ポイントのデータを記憶させたが、これは一例であって、ポイント数ｎは任意に設定することができる。また、上記実施形態では、信号生成にあたって信号テーブル１５から１０個のポイントを抽出したが、このポイント数ｍも任意に設定することができる。
【００７４】
また、信号周波数制御装置１６は、周波数の細かい制御をソフトウエア処理によって簡単に実現できるため、ＭＳＫ復調以外の用途にも利用することができる。
【００７５】
【発明の効果】
本発明によれば、キャリア信号の周波数の補正において、粗調レベルの補正値と微調レベルの補正値とを用いたことにより、キャリア信号の周波数を精度よく調整することができるので、ＭＳＫ信号の細かな周波数変動に対しても容易に同期をとることができ、誤り率の低い高性能な装置が実現できる。
【００７６】
また、正弦波のサンプリング点に対応して振幅値が記憶されたテーブルを設け、サンプリング点のポイントの増減により周波数を補正することにより、粗調レベルの補正と微調レベルの補正とを、ソフトウエア処理を用いて容易に実現することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るＭＳＫ復調装置のブロック図である。
【図２】図１の各部の波形図である。
【図３】キャリア信号の波形図である。
【図４】キャリア信号の振幅値を記憶したテーブルの図である。
【図５】位相検出の原理を示すベクトル図である。
【図６】ビットの符号周期のずれを説明する図である。
【図７】復調装置の一連の動作を表すフローチャートである。
【図８】キャリア信号生成の詳細を示すフローチャートである。
【図９】周波数同期の詳細を示すフローチャートである。
【図１０】周波数の補正を説明するための波形図である。
【図１１】ＭＳＫ信号の波形図である。
【図１２】符号区間における位相の変化を表した図である。
【図１３】従来のＭＳＫ復調装置の基本的構成を示すブロック図である。
【符号の説明】
１    入力端子
２    Ａ／Ｄコンバータ
３    帯域フィルタ
４    乗算器
５    乗算器
６    ローパスフィルタ
７    ローパスフィルタ
８    サンプリング回路
９    サンプリング回路
１０  位相検出器
１１  ビット同期回路
１２  周波数同期回路
１３  信号生成回路
１４  ９０°移相器
１５  信号テーブル
１６  信号周波数制御装置
Ａ    周波数補正値（粗調レベル）
Ｂ    周波数補正値（微調レベル）
【図１】
0004010709.tif 000002
【図２】
0004010709.tif 000003
【図３】
0004010709.tif 000004
【図４】
0004010709.tif 000005
【図５】
0004010709.tif 000006
【図６】
0004010709.tif 000007
【図７】
0004010709.tif 000008
【図８】
0004010709.tif 000009
【図９】
0004010709.tif 000010
【図１０】
0004010709.tif 000011
【図１１】
0004010709.tif 000012
【図１２】
0004010709.tif 000013
【図１３】
0004010709.tif 000014