以下、図面に従って実施の形態について説明する。
[一般的な畳込みフィルタおよびシンボル間干渉]
図4は、一般的な畳込みフィルタ22の一例を示すブロック図である。例えば、畳込みフィルタ22は、タップ数が2N+1のシフトレジスタと2N+1個の係数乗算器と1個の加算器を有する。図4に示す畳込みフィルタ22は、N=4の場合であってタップ数9個のレジスタreg1〜reg9を有するシフトレジスタ101と、9個の係数乗算器41〜49と、加算器102を有する。
シフトレジスタ101は、図示しないタイミングクロックに同期して入力データDinをレジスタreg1〜reg9に順番に格納する。例えば、レジスタreg1、2に格納されたデータは、次のクロックタイミングでレジスタreg2、3にシフトされ、新たな入力データDinがレジスタreg1に格納される。また、レジスタreg9に格納されたデータは、次のクロックタイミングで消滅する。
係数乗算器41〜49は、それぞれ各レジスタreg1〜reg9に対応する係数値a1〜a9を与えられ、各レジスタreg1〜reg9に格納されたデータにそれら係数値a1〜a9を乗算した値を出力する。この係数値a1〜a9は、フィルタとしての機能を実現するための値であり、本畳込みフィルタ22がローパスフィルタとして機能するように、各係数値a1〜a9は所定の値に設定されている。この係数a1〜a9は、例えば中心の係数が大きく、両端の係数は小さく、その結果、この演算により高周波成分が除去される。
加算器102は、各係数乗算器41〜49の出力の総和を求め、畳込み演算の結果である出力データDoutとして出力する。
このように、畳込みフィルタ22は、レジスタreg5に格納されているデータに対する畳込み演算をそのデータの前後の連続する9つのレジスタreg1〜reg9に格納された入力データDinに対して行う。の結果が出力データDoutに対応している。言い換えれば、畳込みフィルタ22は、レジスタ5に格納されている入力データDinを、レジスタreg1〜reg4およびレジスタreg6〜reg9に格納されたデータとともに畳込み演算し、その演算結果を出力データDoutとして出力する。
次に、畳込みフィルタ22の動作例を示す。図1に示すように、本畳込みフィルタ22には、入力データDinとして、アップサンプリング部21において0点が挿入されたOFDMシンボルXの信号データが順次入力される。
図5は、畳込みフィルタ22に入力されるOFDMシンボルXのデータ列を示す図である。図5のOFDMシンボルX1のデータ列はサイクリックプレフィックスXc1のデータ列と有効シンボルXt1のデータ列を有する。そして、サイクリックプレフィックスXc1は、m個のデータXc1(1)〜Xc1(m)を有し、有効シンボルXt1は、n個のデータXt1(1)〜Xt1(n)を有するものとする。ここで、各データを示す符号Xc1(d)の記載は、サイックリックプレフィックスXc1の先頭からd番目のデータを示す。すなわち、符号の括弧内の数字「d」は先頭からの順番を示す。同様に、符号Xt1(d)の記載は、有効データXt1の先頭からd番目のデータを示す。
これらのデータは、図3(c)に示す0点挿入後のOFDMシンボルXのデータ列と同様に、時系列的に並んでいる。そして、各データは、Xc1(1)から順番に所定のクロックタイミングで、入力データDinとして図4に示す畳込みフィルタ内のシフトレジスタ101のレジスタreg1に格納される。また、OFDMシンボルX2のデータ列もOFDMシンボルX1と同様のデータ列であり、OFDMシンボルX1に続き畳込みフィルタ22に順次入力される。
以下、アップサンプリング部21は、入力されるOFDMシンボルXの各サンプリング点の間に追加のサンプリング点として0点を1つ挿入することを想定して説明する。すなわち、アップサンプリング処理部2は、OFDMシンボルXのサンプリング周波数を2倍に上げる。
その0点挿入後の結果は、図3(c)に示すOFDMシンボルXのデータ列と対応している。また、図5のOFDMシンボルX1のデータ列においては、サイクリックプレフィックスのデータXc1(d)は、先頭からの順番を表す括弧内のdが奇数の場合には0点挿入前のサイクリックプレフィクスXc1の信号データであり、偶数の場合には0(0点)である。以降、これらを適宜区別する場合は、それぞれ「0点データ」および「信号データ」と称する。
また、サンプリング点は2倍になるため、「m」は偶数であり、Xc1(m)は、0点データであり、Xc1(m-1)は、0点挿入前のサイクリックプレフィックスXc1の後端の信号データである。すなわち、Xc1(1)、Xc1(3)、・・Xc(m-1)は信号データであり、Xc1(2)、Xc1(4)、・・Xc(m)は0点データである。
同様に、有効シンボルのデータXt1(d)は、括弧内のdが奇数の場合には信号データであり、偶数の場合には0点データである。また、「n」は偶数であり、Xc1(n-1)は、有効シンボルXt1の後端の信号データである。
このように、図5に示す0点挿入後のOFDMシンボルX1のデータには信号データと0点データが交互に現れる。
図6は、図4のシフトレジスタ101に所定のクロックタイミング毎に格納されるデータを示す図である。シフトレジスタ101には、上述の図5に示したOFDMシンボルX1、X2・・のデータが、入力データDinとして順次入力される。図6の上段に示すレジスタreg1〜reg9は、それぞれ図4のレジスタreg1〜reg9に対応している。そして、各クロックCLK=1〜11毎にレジスタreg1〜reg9に格納されるデータが示されている。また、上述したようにレジスタreg5に格納されたデータが畳込み演算の対象となるデータである。
クロックCLK=1では、先にレジスタreg1〜reg8に格納されていたデータはレジスタreg2〜reg9にシフトされ、レジスタreg1にOFDMシンボルX1の最後端の信号データXt1(n-1)が入力される。そして、信号データXt1(n-5)に対する畳込み演算が行われる。
クロックCLK=2では、同様にデータがシフトされ、レジスタreg1にOFDMシンボルX1の最後端の0点データXt1(n)が入力される。そして、0点データXt1(n-4)に対する畳込み演算が行われる。
ここで、クロックCLK=1、2における畳込み演算対象の信号データXt1(n-5)と0点データXt1(n-4)は、共にOFDMシンボルX1のデータであり、レジスタreg1〜reg4とレジスタreg6〜reg9に格納されたデータも同じOFDMシンボルX1のデータである。そのため、信号データXt1(n-5)と0点データXt1(n-4)は、ともに適切に畳込み演算され、0点データXt1(n-4)は、図3(d)に示すように畳込み演算後のデータ間を適切に補間する。
クロックCLK=3では、OFDMシンボルX2のサイクリックプレフィックスXc2の先頭信号データXc2(1)が入力され、信号データXt1(n-3)に対する畳込み演算が行われる。ここで、畳込み演算対象の信号データXt1(n-3)は、OFDMシンボルX1のデータであるが、それとは異なるOFDMシンボルX2の信号データXc2(1)とともに畳込み演算される。すなわち、畳込みフィルタ22における畳込み演算の過程でシンボル間のデータが干渉(以降、シンボル間干渉と称する。)する。OFDMシンボルX1、X2の間で各信号データは、相関はない。よって、信号データXt1(n-3)を畳込み演算したデータは、信号データXc2(1)が影響して適切に畳込み演算されず、畳込み演算後のOFDMシンボルXの他のデータと連続にならない。
クロックCLK=4では、0点データXc2(2)が入力され、0点データXt1(n-2)に対する畳込み演算が行われる。ここでも、クロックCLK=3の場合と同様に畳込み演算対象の0点データXt1(n-2)は、それとは異なるOFDMシンボルX2の信号データXc2(1)および0点データXc2(2)とともに畳込み演算される。よって、0点データXt1(n-2)に対する畳込み演算結果は、データXc2(1)、Xc2(2)が影響して、畳込み演算後のデータ間を適切に補間しない。
クロックCLK=5では、信号データXc2(3)が入力され、信号データXt1(n-1)に対する畳込み演算が行われる。よって、信号データXt1(n-1)に対する畳込み演算は、レジスタreg1〜reg3に格納されたOFDMシンボルX2のデータXc2(1)、Xc2(2)、Xc2(3)の影響を受ける。
クロックCLK=6では、0点データXc2(4)が入力され、OFDMシンボルX1の最後端の0点データXt1(n)に対する畳込み演算が行われる。そして、0点データXt1(n)に対する畳込み演算は、レジスタreg1〜reg4に格納されたOFDMシンボルX2のデータXc2(1)〜Xc2(4)の影響を受ける。
クロックCLK=7では、信号データXc2(5)が入力され、OFDMシンボルX2の先端の信号データXc2(1)に対する畳込み演算が行われる。信号データXc2(1)に対する畳込み演算は、レジスタreg6〜reg9に格納されたOFDMシンボルX1のデータXt1(n)〜Xt1(n-3)の影響を受ける。
クロックCLK=8では、0点データXc2(6)が入力され、0点データXc2(2)に対する畳込み演算が行われる。そして、0点データXc2(2)に対する畳込み演算は、レジスタreg7〜reg9に格納されたOFDMシンボルX1のデータXt1(n)〜Xt1(n-2)の影響を受ける。
同様に、クロックCLK=9では、信号点データXc2(3)に対する畳込み演算は、レジスタreg8、reg9に格納されたOFDMシンボルX1のデータXt1(n)、Xt1(n-1)の影響を受ける。
クロックCLK=10では、レジスタreg9にOFDMシンボルX1の0点データXt1(n)が格納されているため、シンボル間干渉している。
クロックCLK=11では、レジスタreg1〜9に格納されたデータは位相が一致した連続性のある同じOFDMシンボルX2のデータである。よって、信号データXc2(5)は、シンボル間干渉を伴わず、適切に畳込み演算される。
以上のように、OFDMシンボルX1、X2において、OFDMシンボルX1の後端のデータ列Xt1(n-3)〜Xt1(n)とOFDMシンボルX2の先端のデータ列Xc2(1)〜Xc2(4)でシンボル間干渉が発生する。そして、以降、OFDMシンボルX2は、同一シンボルのデータで順次適切に畳込み演算され、OFDMシンボルX3とのシンボル境界において、同様のシンボル間干渉が発生する。
図7は、シンボル間干渉ISIを示す図である。順次生成される各OFDMシンボルX1、X2・・の境界の畳込み演算において、シンボル間干渉が発生している。すなわち、ローパスフィルタとして機能する畳込み演算フィルタ22がOFDMシンボルX1、X2・・のデータ列を順次畳込み演算することにより、各OFDMシンボル間の境界端部の信号波形が劣化する。
ただし、上述したようにシンボル間干渉は、OFDMシンボルX1の後端のデータ列とOFDMシンボルX2の先端のデータ列で発生するが、OFDMシンボルX2の先端のデータ列はサイクリックプレフィックスXpに含まれるデータ列である。サイクリックプレフィックスXpは、マルチパス伝送における干渉を低減させるために付加された冗長信号であり、受信側で除去される。そのため、OFDMシンボルX2の先端のデータ列がシンボル間干渉しても、通信状態には影響しないため、許容される。よって、OFDMシンボルX1の後端のデータ列のシンボル間干渉が問題となる。
また、畳込みフィルタのタップ数は、所望のフィルタ機能実現のためには一定数以上が必要になる。そのため、シフトレジスタ101が有するレジスタ数が多いほど、シンボル境界において異なるOFDMシンボルのデータによる畳込み演算が増え、シンボル間干渉の影響は大きくなる。
[第1の実施の形態]
図8は、第1の実施の形態における畳込みフィルタ22を示すブロック図である。図4に示す一般的な畳込みフィルタ22との違いは、シフトレジスタ201内の構成にある。その他の同一又は対応する構成要素には同一符号を付している。本第1の実施の形態について、既述した説明を除き、以下に説明する。
シフトレジスタ201は、中心のレジスタreg5の前段に交互に切り替えられるレジスタ群rega1〜rega4およびレジスタ群regb1〜regb4と、後段のレジスタ群reg6〜rega9と、セレクタSELとを有する。セレクタSELは、切換え制御信号S1に従い、レジスタ群rega1〜rega4またはレジスタ群regb1〜regb4を選択する。係数乗算器41〜44は、セレクタSELにより選択されたレジスタ群rega1〜rega4またはレジスタ群regb1〜regb4のいずれかに格納されたデータにそれら係数値a1〜a4を乗算した値を出力する。
また、シフトレジスタ201は、2系統の入力を有し、入力データDin_aはレジスタ群rega1〜rega4に、入力データDin_bはレジスタ群regb1〜regb4にクロックタイミングでシフト入力される。また、レジスタrega5には、切換え制御信号S1に従いセレクタSELが選択しているレジスタrega4、regb4に格納されたデータが格納される。例えば、セレクタSELが、レジスタ群rega1〜rega4を選択している場合には、レジスタrega4に格納されていたデータが、次のクロックタイミングでレジスタreg5に格納される。
そして、畳込みフィルタ22内の係数乗算器41〜49と加算器102は、セレクタSELにより選択されたレジスタ群rega1〜rega4またはレジスタ群regb1〜regb4のいずれかに格納されたデータと、レジスタ群reg5〜reg9に格納されたデータについて畳込み演算を行い、レジスタreg5のデータに対する畳込み演算の結果が出力データDoutとして出力される。
図9は、図8の畳込みフィルタ22に入力されるOFDMシンボルに対する処理手順を示す図である。図4の畳込みフィルタ22において、図6に示したOFDMシンボルX1の後端のデータ列でシンボル間干渉が発生する原因は、OFDMシンボルX1のデータに続いてシフトレジスタ22に入力されるそれとは異なるOFDMシンボルX2のデータ列とともに畳込み演算が行われることにある。そこで、第1の実施の形態の畳込みフィルタ22は、シンボル境界においても同一のOFDMシンボルのデータ列で畳込み演算を行う。
図9には、畳込みフィルタ22に順次入力されるOFDMシンボルX1、X2・・が示されている。OFDMシンボルX1の最後端のデータが畳込みフィルタ22に入力された後には、OFDMシンボルX2の先端のデータ列に代えてOFDMシンボルX1の有効シンボルXt1の先端のデータ列が拡張データXs1として順次入力され、畳込み演算が行われる。
図2(b)に示したように、有効シンボルXtの両端の信号データDe1、De2は位相が一致するサイクリックな関係にあるため、OFDMシンボルX1の後端のデータ列に付加する拡張データXs1は、後端のデータ列と連続性を有する。よって、クロック期間TL1において、畳込みフィルタ22に入力されるシンボルX2の先端のデータ列の代わりに、拡張データXs1を用いて畳込み演算を行えば、OFDMシンボルX1の後端のデータ列におけるシンボル間干渉を回避することができる。
以降、OFDMシンボルX2、X3のシンボル境界におけるクロック期間TL2においても同様に、畳込みフィルタ22には、有効シンボルXt2の先端のデータ列が拡張データXs2として入力され、拡張データXs2を用いて畳込み演算が行われる。
次に、畳込みフィルタ22の動作の具体例を示す。
図10は、図8のシフトレジスタ201に所定のクロックタイミング毎に格納されるデータを示す図である。ここで、シフトレジスタ201に順次入力されるデータは、上述の図5に示した0点挿入後のOFDMシンボルXのデータである。図10の上段に示すシフトレジスタ201のレジスタ群rega1〜rega4とレジスタ群regb1〜regb4とレジスタ群reg5〜rega9は、それぞれ図8のレジスタ群rega1〜rega4とレジスタ群regb1〜regb4とレジスタ群reg5〜rega9に対応している。そして、各クロックCLK=1〜11毎に各レジスタに格納されるデータが示されている。さらに、切換え制御信号S1=AまたはBも示されている。また、上述したようにレジスタreg5に格納されたデータが畳込み演算の対象となるデータである。
クロックCLK=1では、レジスタrega1とレジスタregb1の両方にOFDMシンボルX1のデータXt1(n-1)が入力される。そして、セレクタSELで選択されたレジスタ群regb1〜regb4とレジスタ群reg5〜reg9に格納されたデータに基づいてデータXt1(n-5)に対する畳込み演算が行われる。
このように、畳込みフィルタ22は、通常モードでは、同一の入力データDin_a、Din_bをレジスタrega1、regb1に同時に格納する。そして、セレクタSELは、切換え制御信号S1に従い、レジスタ群regb1〜regb4を選択している。また、各データの入力タイミングは、図6で示したタイミングと一致している。つまり、クロックCLK=1では、データXt1(n-1)が入力される。
クロックCLK=2では、レジスタrega1、regb1にOFDMシンボルX1の最後端のデータXt1(n)が入力される。そして、データXt1(n-4)に対する畳込み演算が行われる。
ここで、クロックCLK=1、2における畳込み演算の結果は、図4に示す畳込みフィルタ22の図6のクロックCLK=1、2での畳込み演算の結果と同じであり、連続性のある同じOFDMシンボルX1のデータが畳込み演算される。よって、シンボル間干渉は発生していない。
クロックCLK=3では、OFDMシンボルX2のサイクリックプレフィックスXc2の先頭データであるデータXc2(1)がレジスタregb1に入力され、同時に予め複写された有効シンボルのデータXt1(1)が拡張データXsとしてレジスタrega1に入力される。さらに、切換え制御信号S1が切換わり、セレクタSELはレジスタ群rega1〜rega4を選択する。そして、レジスタ群rega1〜rega4とレジスタ群reg5〜reg9に格納されたデータに基づいてデータXt1(n-3)に対する畳込み演算が行われる。
ここで、クロックCLK=3は、図9のクロック期間TL1の最初のクロックタイミングに相当する。上述したように、拡張データXs1は、OFDMシンボルX1の後端のデータ列と位相が一致し、連続性を有する。そのため、データXt1(n-3)の畳込み演算ではシンボル間干渉が生じない。
クロックCLK=4〜6では、同様にレジスタrega1に拡張データXs1が順次入力され、レジスタregb1にはOFDMシンボルX2のサイクリックプレフィックスXc2の先頭データ列が順次入力される。このクロック期間には、セレクタSELはレジスタ群rega1〜rega4を選択しており、レジスタ群rega1〜rega4とレジスタ群reg5〜reg9に格納されたデータに基づいて畳込み演算が行われる。よって、各クロックCLKにおける畳込み演算対象であるデータXt1(n-2)、Xt1(n-1)、Xt1(n)は、位相が連続性を有する同一OFDMシンボルの拡張データXsとともに畳込み演算されるため、畳込み演算でシンボル間干渉は生じない。また、以上のクロックCLK=3〜6は、図9のクロック期間TL1に相当する。
クロックCLK=7では、畳込みフィルタ22は、再び、クロックCLK=1、2における動作状態に戻る。つまり、畳込みフィルタ22は、同一の入力データDin_a、Din_bをレジスタrega1、regb1に同時に取り込む。そして、セレクタSELは、レジスタ群regb1〜regb4を選択する。
クロックCLK=7で、レジスタrega1、regb1にOFDMシンボルX2のサイクリックプレフィックスXc2のデータXc2(5)が入力される。そして、レジスタ群regb1〜regb4とレジスタ群reg5〜reg9に格納されたデータに基づいてデータXc2(1)に対する畳込み演算が行われる。ここで、データXc2(1)は、レジスタ群reg6〜reg9に格納された異なるOFDMシンボルX1のデータとともに畳込み演算されるため、シンボル間干渉する。
同様にクロックCLK=7〜10までは、シンボル間干渉が発生する。ここで、各クロックCLK=7〜10における畳込み演算の結果は、図4に示す畳込みフィルタ22の図6の対応するクロックの畳込み演算の結果と同じである。
クロックCLK=11では、レジスタreg1〜9に格納されたデータは位相が一致した連続性のある同じOFDMシンボルX2のデータである。よって、データXc2(5)は、シンボル間干渉を伴わず、適切に畳込み演算される。
図11は、第1の実施の形態における畳込みフィルタ22を用いた場合のシンボル間干渉ISIを示す図である。図7に示すシンボル間干渉ISIと比較するとその違いが明確であり、順次生成される各OFDMシンボルX1、X2・・の先端のデータ列であるサイクリックプレフィックスXc内でのみシンボル間干渉が発生する。上述したように、サイクリックプレフィックスXcは、受信側で除去されるため、そのデータがシンボル間干渉しても通信状態には影響しない。
以上のように、第1の実施の形態における畳込みフィルタ22には、OFDMシンボルの最後端のデータが入力された後、OFDMシンボルX2の先端のデータ列と共に、予め複写した拡張データXs1が入力される。そして、拡張データXs1は、OFDMシンボルX1の有効シンボルXtの先端のデータ列であり、OFDMシンボルX1の後端のデータ列と位相が一致し、連続性を有する。そして、畳込みフィルタ22は、クロック期間TL1において、シンボルX2の先端のデータ列の代わりに、この拡張データXs1に基づいて畳込み演算を行うため、OFDMシンボルX1の後端のデータ列におけるシンボル間干渉を回避できる。
[第2の実施の形態]
図12は、第2の実施の形態における畳込みフィルタ22を示すブロック図である。図8に示す第1の実施の形態における畳込みフィルタ22との違いは、タップ数(レジスタ数)を2k+1と一般化した構成であること、さらに、拡張データXsを入力するための具体的構成を有することにある。
はじめに、図12に示す畳込みフィルタ22の基本的な構成および動作について説明する。畳込み演算されるシンボルXのデータ列は、入力データDinとして順次入力される。通常、入力データDinは、レジスタ群rega1〜rega(k)およびレジスタ群regb1〜regb(k)に入力データDin_a、Din_bとして順次シフト入力される。そして、レジスタ群regb1〜regb(k)およびレジスタ群reg(k+1)〜reg(2k+1)に格納されたデータが乗算器u1〜u(2k+1)で係数a1〜a(2k+1)と乗算され加算器102で加算されて畳込み演算され、出力データDoutとして出力される。
また、入力データDinが拡張データXsの場合には、ゲート回路GATEが開き、拡張データXsは、シフトレジスタ313のレジスタ群regs1〜regs(k)にもシフト入力され、一時的に記憶される。その後、入力データDinとしてOFDMシンボルの後端のデータ列が入力された後は、シフトレジスタ313に記憶されていた拡張データXsがレジスタ群rega1〜rega(k)に順次シフト入力される。それと平行して、次のOFDMシンボルの先頭のデータ列は入力データDin_bとしてレジスタ群regb1〜regb(k)にシフト入力される。その場合、レジスタ群rega1〜rega(k)およびレジスタ群reg(k+1)〜reg(2k+1)に格納されたデータが畳込み演算される。
そして、レジスタ群regs1〜regs(k)の拡張データが全てレジスタ群rega1〜rega(k)に入力された後は、前述の通常状態の動作に戻り、レジスタ群regb1〜regb(k)およびレジスタ群reg(k+1)〜reg(2k+1)に格納されたデータが畳込み演算される。
次に、図12に示す畳込みフィルタ22の具体的な構成について説明する。
畳込みフィルタ22は、畳込み演算部302と拡張データ記憶部303とを有する。
畳込み演算部302は、シフトレジスタ301と、2k+1個の係数乗算器u1〜u(2k+1)と、加算器102を有する。シフトレジスタ201は、中心のレジスタreg(k+1)の前段にk個のレジスタ群rega1〜rega(k)およびk個のレジスタ群regb1〜regb(k)と、後段にk個のレジスタ群reg(k+2)〜reg(2k+1)とを有し、さらにセレクタSEL2、SEL3を有する。
セレクタSEL3は、入力される切換え制御信号S1が「A」を示す場合にはレジスタ群rega1〜rega(k)を、「B」を示す場合にはレジスタ群regb1〜regb(k)を選択する。
係数乗算器u1〜u(k)は、セレクタSEL3により選択されたレジスタrega1〜rega(k)またはレジスタregb1〜regb(k)のいずれかに格納されたデータに既定の係数値a1〜a(k)を乗算した値を出力する。また、入力データDin_aはレジスタ群rega1〜rega(k)に、入力データDin_bはレジスタ群regb1〜regb(k)にクロックタイミングでシフト入力される。
セレクタSEL2は、入力される切換え制御信号S1が「A」を示す場合にはレジスタ群rega1〜rega(k)を、「B」を示す場合にはレジスタ群regb1〜regb(k)を選択する。そして、セレクタSEL2が選択したレジスタ群のレジスタrega(k)、regb(k)に格納されたデータがクロックタイミングでレジスタreg(k+1)にシフト入力される。
そして、畳込みフィルタ22は、セレクタSEL3により選択されたレジスタ群rega1〜rega(k)またはレジスタ群regb1〜regb(k)のいずれかとレジスタ群reg(k+1)〜reg(2k+1)に格納されたk+1個のデータに基づいて図4の畳込みフィルタ22と同様の畳込み演算を行う。そして、中心のレジスタreg(k+1)に格納されているデータに対する畳込み演算の結果が、出力データDoutとして出力される。
このように、畳込み演算部302は、図8に示す第1の実施の形態における畳込みフィルタ22のタップ数(レジスタ数)を2k+1個に一般化した構成である。なお、セレクタSEL2は、図8に示す第1の実施の形態における畳込みフィルタ22には図示していない。
拡張データ記憶部303は、シフトレジスタ313と、セレクタSEL1と、ゲート回路GATEを有する。シフトレジスタ313は、k個のレジスタ群regs1〜regs(k)を有し、このレジスタ群regs1〜regs(k)には、拡張データXsが格納される。セレクタSEL1は、切換え制御信号S1に従い、レジスタrega1に順次入力するデータDin_aを選択する。具体的には、セレクタSEL1は、切換え制御信号S1が「A」を示す場合にはレジスタregs(k)に格納された拡張データXsを、「B」を示す場合には入力データDinを、データDin_aとして選択する。ゲート回路GATEは、拡張データ入力制御信号S2に従い、入力データDinのシフトレジスタ313への入力を制御する。具体的には、拡張データ入力制御信号S2が「NoGate」を示す場合には、入力データDinがレジスタregs1に入力され、「Gate」を示す場合には、入力されない。
また、レジスタ群regs1〜regs(k)の個数は、レジスタrega1〜rega(k)の個数と一致している。上述したようにOFDMシンボルの後端のデータ列が畳込み演算部302に入力されて畳込み演算されるときは、レジスタ群regs1〜regs(k)に記憶された拡張データXsがレジスタ群rega1〜rega(k)に順次入力される。よって、OFDMシンボルの最後端のデータがレジスタreg(k+1)に格納されて畳込み演算されるときは、k個のレジスタrega1〜rega(k)のそれぞれに拡張データXsが格納される。そのため、少なくともk個の拡張データXsを記憶するため、k個のレジスタ群regs1〜regs(k)が必要である。
制御信号生成部304は、上述した切換え制御信号S1と拡張データ入力制御信号S2を生成する。制御信号生成部304は、図示しないタイミングカウンタを有し、さらにOFDMシンボルの信号データ数やデータ構成等を記憶している。これにより、制御信号生成部304は、例えば畳込み演算部302に入力されるデータ数をカウントして、各信号S1、S2を適切なタイミングで切換える。
次に、第2の実施の形態における畳込みフィルタ22の動作の具体例を示す。
図13は、入力されるOFDMシンボルに対する処理の過程を示すタイミングチャートである。欄XL1には、順次送信されるOFDMシンボルX1、X2・・のデータ列が示されている。また、欄XL2には、畳込み演算部302に順次入力データDinとして入力される各OFDMシンボルX1、X2・・のデータ列が示されている。。例えば、OFDMシンボルX1の有効シンボルXt1の先端のk個のデータが拡張データXs1として記憶される。そして、拡張データXs1は、次のOFDMシンボルX2の先端のデータとともに畳込み演算部302に入力される。さらに、図13には、制御信号生成部304が生成する切換え制御信号S1と拡張データ入力制御信号S2が示されている。
図14は、図12のシフトレジスタ301、313にクロックタイミング毎に格納されるデータを示す図である。また、図15は、図14に続く、図12のシフトレジスタ301、313にクロックタイミング毎に格納されるデータを示す図である。ここで、シフトレジスタ301に順次入力される入力データDinは、図5に示したサイクリックプレフィックスXcとしてm個、有効シンボルXtとしてn個のデータを有するOFDMシンボルXとする。
図14の上段に示すシフトレジスタ301のk個のレジスタ群rega1〜rega(k)とk個のレジスタ群regb1〜regb(k)とk+1個のレジスタ群reg(k+1)〜reg(2k+1)は、それぞれ図12のレジスタ群に対応している。また、シフトレジスタ313のk個のレジスタ群regs1〜regs(k)は、図12の拡張データ記憶部303が有するレジスタ群に対応している。
そして、図13に示す各時間T1〜T10およびそれらに対応するクロック毎に、各レジスタに格納されるデータが示されている。さらに、切換え制御信号S1=AまたはBも示されている。
以下、図12〜図15を参照し、本第2の実施の形態の畳込みフィルタ回路22の各時間T1〜T10における動作について説明する。
図13、図14の時間T1では、OFDMシンボルX1の最後端のデータXt1(n)が入力データDinとして畳込みフィルタ22に入力される。切換え制御信号S1は「B」であり、図12の畳込みフィルタ回路22において、セレクタSEL2、SEL3はレジスタ群regb1〜regb(k)を選択し、セレクタSEL1は、入力データDinを選択している。以降、切換え制御信号S1が「B」である場合の畳込みフィルタ22の状態を「Bモード」と称する。
よって、図14の時間T1(クロックCLK=0)において、レジスタrega1とレジスタregb1の両方に入力データDin(Din_a、Din_b)としてデータXt1(n)が入力される。そして、セレクタSEL3で選択されたレジスタ群regb1〜regb(k)とレジスタ群reg(k+1)〜reg(2k+1)に格納されたデータに基づいてデータXt1(n-k)に対する畳込み演算が行われる。また、時間T1では、拡張データXs1であるXt1(1)〜Xt1(k)が、既にレジスタregs1〜regs(k)に格納されている。
図13、図14の時間T2(クロックCLK=1)では、OFDMシンボルX2の最先端のデータXc2(1)が畳込みフィルタ22に入力される。切換え制御信号S1は「A」に切替わり、図12の畳込みフィルタ回路22において、セレクタSEL2、SEL3はレジスタ群rega1〜rega(k)を選択し、セレクタSEL1は、レジスタregs(k)に格納された拡張データXs1を選択している。以降、切換え制御信号S1が「A」である場合の畳込みフィルタ22の状態を「Aモード」と称する。
よって、図14の時間T2(クロックCLK=1)において、レジスタrega1には、レジスタregs(k)に格納されていた拡張データXs1のXt(1)が、レジスタregb1には、入力データDinであるデータXc2(1)が入力される。また、レジスタreg(k+1)にはレジスタrega(k)に格納されていたデータXt1(n-(k-1))が入力される。そして、セレクタSEL3で選択されたレジスタ群rega1〜rega(k)とレジスタ群reg(k+1)〜reg(2k+1)に格納されたデータに基づいてデータXt1(n-(k-1))に対する畳込み演算が行われる。また、時間T2では、拡張データXt1(2)〜Xt1(k)はレジスタregs(k)〜regs2にシフトされる。一方で、拡張データ入力制御信号S2は、「Gate」であり、入力データDinであるOFDMシンボルX2の最先端のデータXc2(1)は、レジスタregs1には格納されない。
そして、図14に示すように、次のクロックCLK=2から時間T3(クロックCLK=k)までは、同様にモードAでの畳込み演算処理が行われる。つまり、シフトレジスタ313内の拡張データXs1がレジスタrega1に、レジスタ群rega1〜rega(k)内のデータがレジスタ群reg(k+1)〜reg(2k+1)に、入力データDinのOFDMシンボルXc2がレジスタregb1に順次入力される。そして、レジスタreg(k+1)に格納されたデータに対する畳込み演算が順次行われる。
図13、図14の時間T3(クロックCLK=k)では、OFDMシンボルX1の最後の拡張データXs1であるXt1(k)が畳込み演算部302に入力される。よって、図14の時間T3(クロックCLK=k)では、拡張データXt1(k)がレジスタrega1に、入力データXc2(k)がレジスタregb1に入力される。ここで、レジスタ群rega1〜rega(k)に格納されたデータは全て拡張データXs1である。そして、これらを用いてレジスタreg(k+1)に格納されたOFDMシンボルX1の最後端のデータXt1(n)に対する畳み込み演算が行われる。
このように、期間T2〜T3では、OFDMシンボルX1の後端のデータ列にサイクリックに付加した拡張データXs1を用いて畳込み演算が行われる。上述したように、拡張データXs1は、OFDMシンボルX1の後端のデータ列と位相が一致し、連続性を有する。そのため、期間T2〜T3におけるOFDMシンボルX1の後端のデータ列に対する畳込み演算では、シンボル間干渉が生じない。
図13、図14の時間T4(クロックCLK=k+1)では、畳込みフィルタ22は、モードBに切換わる。よって、図14の時間T4(クロックCLK=k+1)において、レジスタrega1とレジスタregb1の両方に入力データDin(Din_a、Din_b)としてデータXc2(k+1)が入力される。そして、OFDMシンボルX2の最先端のデータXc2(1)に対する畳込み演算が行われる。ここで、データXc2(1)は、レジスタ群reg(k+2)〜reg(2k+1)に格納された、それとは異なるOFDMシンボルX1のデータとともに畳込み演算されるため、シンボル間干渉する。だが、データXc2(1)はサイクリックプレフィックスXc2であり、上述したように、受信側で除去されるため、このシンボル間干渉は許容される。
そして、図14に示すように、次のクロックCLK=k+2以降も同様に、畳込みフィルタ22はモードBで動作し、レジスタrega1とレジスタregb1の両方にサイクリックプレフィックスXc2が順次入力される。そして、レジスタreg(k+1)に格納されたデータに対する畳込み演算が順次行われる。このとき、クロックCLK=2kまでは、レジスタ群reg(k+2)〜reg(2k+1)にOFDMシンボルX1のデータが含まれるため、シンボル間干渉が生じる。
図14に示すクロックCLK=2k+1では、OFDMシンボルX2の最先端のデータXc2(1)がレジスタreg(2k+1)に格納される。そして、レジスタreg(k+1)に格納されたデータXc2(k+1)は、レジスタ群regb1〜regb(k)およびレジスタ群reg(k+2)〜reg(2k+1)に格納された同じOFDMシンボルX2のデータを用いて畳込み演算される。そのため、データXc2(k+1)は、畳込み演算でシンボル間干渉しない。以降、同様にOFDMシンボルX2のデータに対する畳み込み演算では、シンボル間干渉は生じない。
以上のように、OFDMシンボルX1、X2の境界において、OFDMシンボルX2のサイクリックプレフィックスXc2の先端のk個のデータ列にシンボル間干渉が発生する。ただし、上述したようにサイクリックプレフィックスXpは、受信側で除去される冗長信号であり、このシンボル間干渉は通信状態には影響しないため、許容される。
続いて、拡張データ記憶部303のシフトレジスタ313への拡張データXcの格納について説明する。
図13、図15の時間T5(クロックCLK=m)では、OFDMシンボルX2のサイクリックプレフィックスXc2の最後端のデータXc2(m)が畳込みフィルタ22に入力される。よって、図15の時間T5(クロックCLK=m)において、レジスタrega1とレジスタregb1の両方にサイクリックプレフィックスXc2(m)が入力される。
図13、図15の時間T6(クロックCLK=m+1)では、OFDMシンボルX2の有効シンボルXt2の最先端のデータXt2(1)が畳込みフィルタ22に入力される。ここで、拡張制御信号S1は「NoGate」に切換わる。よって、図15の時間T6(クロックCLK=m+1)において、入力データDinである拡張データXt2(1)がレジスタregs1に格納される。さらに、畳込みフィルタ22は、Bモードで動作しているため、レジスタrega1、regb1にも拡張データXt2(1)が格納される。
そして、図15に示すように、次のクロックCLK=m+2から時間T7(クロック=m+k)までは、同様に有効シンボルXt2が順次レジスタregs1、rega1、regb1にシフト入力される。
図13、図15の時間T7(クロックCLK=m+k)では、OFDMシンボルX2の有効シンボルXt2(k)が畳込みフィルタ22に入力される。よって、図15の時間T7(クロックCLK=m+k)に示すように、OFDMシンボルX2のシンボル境界における畳込み演算で拡張データXc2として使用されるk個のデータ列がシフトレジスタ313に格納される。つまり、畳込みフィルタ22は、拡張データXc2の記憶を完了する。
図13、図15の時間T8(クロックCLK=m+k+1)では、拡張制御信号S1は「Gate」に切換わる。よって、対応する図15の時間T8(クロックCLK=m+k+1)に示すように、OFDMシンボルX2の有効シンボルXt2(k+1)は、シフトレジスタ313のregs1には格納されず、レジスタrega1、regb1に格納される。
以降、同様に畳込みフィルタ22はBモードで動作しているため、図13の時間T9まで、レジスタrega1、regb1にOFDMシンボルX2のデータがシフト入力される。
図13、図15の時間T9(クロックCLK=m+n)では、OFDMシンボルX2の最後端のデータXt2(n)が畳込みフィルタ22に入力される。そして、時間T10(クロックCLK=m+n+1)では、OFDMシンボルX3の最先端のデータXc3(1)が畳込みフィルタ22に入力される。これらの時間T9、T10におけるOFDMシンボルX2、X3の入力に対する畳込みフィルタ22の処理は、時間T1、T2におけるOFDMシンボルX1、X2の入力に対する処理と同様である。図15の時間T9(クロックCLK=m+n)、T10(クロックCLK=m+n+1)に、各レジスタ群に格納されたデータを示す。
以上のように、第2の実施の形態における畳込みフィルタ22は、順次入力されるOFDMシンボルXから、その有効シンボルXtの先端のデータ列を予め拡張データXcとして記憶する。そして、当OFDMシンボルXの最後端のデータが畳込みフィルタ22に入力された後には、畳込みフィルタ22は、OFDMシンボルXの最後端のデータにその記憶した拡張データXcを順次付加したデータ列を畳込み演算する。これらは、シンボルXの最後端のデータに対する畳込み演算が実行されるまで繰り返される。これにより、図11に示すように、シンボルX後端のデータ列におけるシンボル間干渉が回避される。
[第3の実施の形態]
上述したように、冗長信号であるサイクリックプレフィックスCPは、有効シンボルXtの先端に付加されている。しかし、通信分野においては、この冗長信号を有効シンボルXtの後端に付加する場合もある。この場合、この冗長信号はサイクリックポストフィックスと称される。以下に示すように、本実施の形態は、サイックリックポストフィックスが付加されたOFDMシンボルXのシンボル間干渉にも対応可能である。
図16は、サイクリックポストフィックスが付加されたOFDMシンボルXに対する処理手順を示す図である。図16には、畳込みフィルタ22に順次入力されるサイクリックポストフィックスXc1、Xc2、Xc3が付加されたOFDMシンボルX1、X2、X3が示されている。そして、各OFDMシンボルX1、X2、X3の先端のデータ列が畳込み演算される場合には、各有効シンボルXt1、Xt2、Xt3の後端のデータ列が、拡張データXs1、Xs2、Xs3として、そのOFDMシンボルX1、X2、X3の先端に連続に付加される。上述したように、この拡張データXs1は、OFDMシンボルX1の先端のデータ列と位相が一致し、連続性を有する。そして、これら拡張データXs1、Xs2、Xs3を用いて畳込み演算が行われることで、OFDMシンボルX1、X2、X3の先端のデータ列における畳込み演算でのシンボル間干渉は回避される。
図17は、第3の実施の形態における畳込みフィルタ22を示すブロック図である。本畳込みフィルタ22は、図8で示した第1の実施の形態の変形例である。そして、サイクリックポストフィックスXc1、Xc2、Xc3が付加されたOFDMシンボルX1、X2、X3を上述の手順で畳込み演算する。第1の実施の形態の畳込フィルタ22との違いは、シフトレジスタ401内の構成にある。
図17に示す畳込みフィルタ22のシフトレジスタ401は、中心のレジスタreg5の後段に交互に切換えられるレジスタ群rega6〜rega9およびレジスタ群regb6〜regb9と、前段のレジスタ群reg1〜rega4と、セレクタSELとを有する。セレクタSELは、切換え制御信号S1に従い、レジスタ群rega6〜rega9またはレジスタ群regb6〜regb9を選択する。そして、第1の実施の形態と同様に、畳込みフィルタ22は、セレクタSELにより選択されたレジスタ群rega6〜rega9またはレジスタ群regb6〜regb9のいずれかに格納されたデータと、レジスタ群reg1〜reg5に格納されたデータについて畳込み演算を行う。そして、畳込みフィルタ22は、レジスタreg5のデータに対する畳込み演算の結果を出力データDoutとして出力する。
入力データDinは、レジスタreg1に順次シフト入力される。切換え制御信号S1は、通常、「B」を示しており、レジスタreg5に格納されたデータは、クロックタイミングでレジスタregb6にシフト入力される。また、切換え制御信号S1が「A」を示す場合には、レジスタreg5に格納されたデータは、クロックタイミングで両方のレジスタrega6、regb6にシフト入力される。以下、切換え制御信号S1が「A」および「B」を示す場合の畳込みフィルタ22の状態をそれぞれ「Aモード」、「Bモード」と称する。さらに、レジスタrega6〜rega9には、切換え制御信号S1に関わらず、別途拡張データXsがシフト入力される。
以下に、図17の第3の実施の形態のフィルタ回路22がOFDMシンボルX1、X2、X3を順次畳込み演算する場合について簡単に説明する。ここで、シフトレジスタ401には、上述の図5に示したOFDMシンボルX1、X2、X3のサイクリックプレフィックXc1、Xc2、Xc3を有効シンボルXt1、Xt2、Xt3の後端にサイクリックポストフィックスとして付加したデータが、入力データDinとして順次入力される。
図16に示すように、畳込み演算において、拡張データXs1、Xs2、、Xs3は、OFDMシンボルX1、X2、X3の先端のデータ列にそれぞれ連続して付加される。そして、その先端のデータ列は、それらの拡張データXs1、Xs2、、Xs3を用いて、畳込み演算される。そこで、本第3の実施の形態の畳込みフィルタ22は、OFDMシンボルX2の先端のデータをレジスタreg5に格納して畳込み演算する前に、拡張データXs2をレジスタrega6〜rega9に記憶させる。なお、拡張データとして、例えば、図1のCP付加部12において有効シンボルXtの後端のデータ列が一時的に記憶されている。
入力されるOFDMシンボルX1、X2のデータの境界において、畳込みフィルタ22は、Bモードで動作しており、レジスタ群reg1〜reg5とレジスタ群regb6〜regb9格納されたデータについて順次畳込み演算を行う。OFDMシンボルX1の最後端のデータXc1(m)が入力データDinとしてレジスタreg1に入力された後、続いて、それとは異なるOFDMシンボルX2の先端のデータ列Xt2(1)〜が入力データDinとしてレジスタreg1に順次シフト入力される。よって、まず、OFDMシンボルX1の最後端のデータXc1(m)がレジスタreg2に格納された場合に、レジスタreg5に格納された畳込演算対象であるデータXc1(m-3)がシンボル間干渉する。その後、同様にOFDMシンボルX2のデータがシフト入力され、レジスタreg5に格納されたデータXc1(m)が畳込み演算されるまでシンボル間干渉が発生する。つまり、サイクリックポストフィックスXc1(m-3)〜Xc1(m)は、シンボル間干渉する。
そして、次のクロックタイミングでレジスタreg5に次のOFDMシンボルX2の先端のデータXt2(1)が格納された後、畳込みフィルタ22はAモードに切換わる。そして、畳込みフィルタ22は、レジスタ群reg1〜reg5に格納されたOFDMシンボルXt2(5)〜Xt2(1)と上述のレジスタ群rega6〜rega9に記憶された拡張データXs2について畳込み演算を行う。これらのデータは、同一OFDMシンボルX2であって連続性があるため、レジスタreg5の畳込み演算対象であるデータXt2(1)はシンボル間干渉しない。
そして、畳込みフィルタ22は同様にAモードで動作し、次のクロックタイミングで、データXt2(1)は、レジスタrega6、regb6のそれぞれにシフト入力され、レジスタreg5に格納されたデータXt2(2)に対して畳込み演算が行われる。ここで、同様にデータXt2(2)もシンボル間干渉しない。以降、畳込みフィルタ22は、OFDMシンボルX2の最先端のデータXt2(1)がレジスタrega9に格納されるまで、Aモードで動作する。
その後、畳込みフィルタ22は、Bモードに切換わるが、レジスタ群reg1〜reg5およびレジスタ群regb6〜regb9に格納されたデータは、同一のOFDMシンボルX2の先端のデータ列Xt2(1)〜Xt(9)である。よって、レジスタreg5に格納された畳込み演算対象のデータXt2(5)は、シンボル間干渉しない。
以降、畳込みフィルタ22は、OFDMシンボルX2、X3のシンボル境界まで同様にBモードで動作する。そして、この間、OFDMシンボルX2の有効シンボルXtはシンボル間干渉しない。また、OFDMシンボルX3に対するの畳込み演算が開始される前に、拡張データXs3が、レジスタ群rega6〜rega9に記憶される。
図18は、サイクリックポストフィックスが付加されたOFDMシンボルX1、X2・・が畳込み演算された場合のシンボル間干渉ISIを示す図である。順次生成される各OFDMシンボルX1、X2・・のサイクリックポストフィックスXcの後端のデータ列でのみシンボル間干渉が発生する。サイクリックポストフィックスXcは、サイクリックプレフィックと同様に受信側で除去されるため、そのデータがシンボル間干渉しても通信状態には影響しない。
図19は、第1〜3の実施の形態における畳込み演算の効果を示す図である。図1のIFFT部11に入力される複数の周波数領域の信号Sfが生成される前段で、ビット系列の送信データは、位相とパワー(振幅)で決まる信号点にマッピングされる。そして、図19は、BPSK(Binary Phase Shift Keying)およびQPSK(Quadrature Phase Shift Keying)によりマッピングされた送信データを受信側でデマッピングした場合の位相図である。
図19(a)は図4に示す従来の畳込みフィルタ22を用いた場合で、図19(b)は図12等に示す本実施の形態の畳込みフィルタ22を用いた場合であって、それぞれタップ数(レジスタ数)=41でのシミュレーション結果である。また、図19は、シミュレーションの結果であるため、マルチパス送信による干渉等の影響は含まず、畳込みフィルタ22におけるシンボル間干渉の影響のみによる信号の劣化を示している。
デマッピングされた信号点は、それぞれ振幅rと位相θの情報を有するが、図19(a)および図19(b)の信号点を比較すると、図19(b)に示す本実施の形態の畳込みフィルタ22を用いた場合の方が収束していることが分かる。さらに、これらの信号点の分散をRCE(Relative Constellation Error)で示すと、図19(a)はRCE=-49.47[dB]、図19(b)はRCE=-310.88[dB]であり、送信側の畳込みフィルタ22での処理による信号の劣化が改善されていることが分かる。
以上のとおり、本実施の形態の送信装置によれば、サイクリックプレフィックスを先頭に付加された有効シンボルの後端のデータ列の畳込み演算をする場合に、当該後端のデータ列に有効シンボルの先頭端の拡張データを加えて畳込み演算するので、後続のシンボルのデータ列による干渉を回避することができる。また、サイクリックポストフィックスを後端に付加された有効シンボルの先頭端のデータ列の畳込み演算をする場合には、当該先頭端のデータ列に有効シンボルの後端の拡張データを加えて畳込み演算するので、同様に、手前のシンボルのデータ列による干渉を回避することができる。