説明

信号処理装置、信号処理方法、ならびに、プログラム

【課題】通信路の伝搬状況が時間変動する場合にも環境雑音や他のユーザからの干渉を抑制する適応的な線形フィルタを算出する信号処理装置等を提供する。
【解決手段】信号処理装置において、Nチップのシグネチャを正逆に反転させて1ビットを伝送する送信局の信号を得るための適応線形フィルタを得るため、所望局のシグネチャs[1]および振幅初期値A[1]と、干渉局のシグネチャ推定値s[2],…,s[J]および振幅推定値A[2],…,A[J]と、から、2次計量行列Qを求めて、線形フィルタh[1]を求める。計量行列Qは、s[・],A[・]から求められる線形フィルタ推定値h*と、現在の線形フィルタの値h[1]と、の差に直交行列Uを乗じて微少量δを加算したものを対角成分とする行列であり、必要に応じて更新される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信路の伝搬状況が時間変動する場合にも環境雑音や他のユーザからの干渉を抑制する適応的な線形フィルタを算出するのに好適な信号処理装置、信号処理方法、ならびに、これをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、CDMA(Code Division Multiple Access)無線通信方式が広く利用されている。直接符号拡散を利用する場合には、送信局を区別するための拡散符号をその送信局のシグネチャとして用いる。送信局から1ビットを送信する場合、当該1ビットは、−1と+1のいずれかにより表現し、これに対して、長さNのシグネチャ(各要素が−1/N1/2もしくは1/N1/2のN次元ベクトル)を乗じることで、拡散符号の位相を正逆に反転させて、情報を伝送するのが典型的であり、また、このように仮定しても、一般性を失わない。以下、理解を容易にするため、上記の前提にて説明する。
【0003】
1ビットの情報を伝送するのに要する時間をN分割したものをチップと呼ぶ。ビット値にシグネチャを乗じたN次元ベクトルは、Nチップ時間で送信され、1,2,…,N番目のチップでは、当該N次元ベクトルの1,2,…,N番目の要素の値が送信される。
【0004】
受信側では、チップ時間間隔でアンテナで観測される受信値を取得し、ウィンドウスライド法等によりシグネチャとの相関が最大となる場所を探すことで同期をとると、当該送信局と1ビット(Nチップ)単位の同期をとることが可能である。このとき、同じ通信システムによる複数の送信局がある場合には、各送信局の処理は、1ビット単位(Nチップ単位)では非同期であるが、1チップ単位では同期することとなる。
【0005】
そして、ある送信局が送信したi番目のビットに対して受信されたNチップの受信観測値からなるN次元縦ベクトルr[i]から、関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
と、行列やベクトルの転置演算(・)を用いて、伝送されたビット情報の推定値b[i]を、
b[i] = sgn(hr[i])
のように推定する。このN次元縦ベクトルhを「線形フィルタ」と呼ぶ。
【0006】
本願発明者らは、線形フィルタのうち、平均自乗誤差を最小にする最適線形フィルタについて研究を進め、その成果を以下の文献に開示している。
【特許文献1】特開2002−330060号公報
【非特許文献1】M.Yukawa,R.L.G.Cavalcante and I.Yamada, Efficient blind MAI suppression in DS/CDMA systems by embedded constraint parallel projection techniques, IEICE Transactions on Fundamentals,vol.E88-A,no.8,pp.2062-2071, 2005年8月
【非特許文献2】M.Yukawa and I.Yamada, Pairwise optimal weight realization ― Acceleration technique for set-theoretic adaptive parallel subgradient projection algorithm, IEEE Transactions on Signal Processing, vol.54,no.12,pp.4557-4571, 2006年12月
【非特許文献3】M.Yukawa,K.Slavakis and I.Yamada, Adaptive parallel quadratic-metric projection algorithms, IEEE Transaction on Audio,Speech and Language Processing, vol.15,no.5,pp.1665-1680, 2007年7月
【0007】
ここで、[特許文献1][非特許文献1]では、最適線形フィルタを求める基本技術が開示されている。
【0008】
[非特許文献2]では、[特許文献1]に開示される技術に対して、戦略的に重みを決定して最適線形フィルタの係数の収束を高速化する技術が開示されている。
【0009】
[非特許文献3]では、[特許文献1]に開示される技術に対して、エコーキャンセラに対して適当な2次計量を用いることで、最適線形フィルタの算出に必要な繰り返し回数を低減する技術が開示されている。
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、CDMA通信において、収束速度を改善する適切な2次計量を利用して、高速な計算を行って線形フィルタを求めたい、との要望は大きい。
【0011】
また、通信路の伝搬状況が時刻によって変化する場合には、この線形フィルタを時刻に応じて適応的に変化させて、適切に受信ができるようにしたい、との要望もある。
【0012】
さらに、訓練信号を用いずに、現在までに受信された信号(現在までに観測された受信値)によって線形フィルタを求めるブラインド方式で算出したいとの要望も強い。
【0013】
本発明は、以上のような課題を解決するためのもので、通信路の伝搬状況が時間変動する場合にも環境雑音や他のユーザからの干渉を抑制する適応的な線形フィルタを算出するのに好適な信号処理装置、信号処理方法、ならびに、これをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の第1の観点に係る信号処理装置は、±1により表現される1ビットの情報を、要素±1/N1/2のNチップからなるシグネチャを正逆に反転させて送信するJ個の送信局から送信された信号を、分散σ2の雑音環境下で受信した受信値を処理する信号処理装置であって、記憶部、受信部、V計算部、h*計算部、U計算部、Λ計算部、Q計算部、P計算部、Π計算部、繰り返し制御部、制御数列取得部、重み取得部、ステップ幅取得部、振幅更新部、ビット情報推定部、τ計算部、η計算部、vp計算部、α計算部、β計算部、M計算部、フィルタ更新部、出力部を備え、以下のように構成する。
【0015】
すなわち、記憶部には、当該J個の送信局のそれぞれの振幅の推定値A[1],A[2],…,A[J]と、当該J個の送信局のうち、所望の送信局のシグネチャを表すN次元縦ベクトルs[1]と、当該所望の送信局以外の送信局のシグネチャの推定値を表すN次元縦ベクトルs[2],…,s[J]と、J個の送信局のうち、当該所望の送信局に対する線形フィルタの推定値ベクトルh[1]と、が記憶される。
【0016】
一方、受信部は、所望の送信局から送信されたi番目のビットのそれぞれのチップに対応する時刻に観測されるN個の受信値からなるN次元縦ベクトルr[i]を取得する。
【0017】
さらに、V計算部は、N次元縦ベクトルA[1]s[1],A[2]s[2],…,A[J]s[J]を順に列として並べたVN行J列の行列
V = 〔A[1]s[1],A[2]s[2],…,A[J]s[J]〕
を計算する。
【0018】
そして、h*計算部は、N行N列の単位行列I、および、行列の転置(・)により、最適線形フィルタの推定値ベクトル
h* = s[1] - V(σ2I + VV)-1Vs[1]
を計算する。
【0019】
一方、U計算部は、行列Vを正規直交化して得られる互いに線形独立なK (1≦K≦J)個の単位ベクトルを1列目からK列目までの列とするN行N列の直交行列Uを計算する。
【0020】
さらに、Λ計算部は、ベクトルU(h* - h[1])の各要素に正定数δを加算したものを対角成分とする対角行列
Λ = diag(U(h* - h[1])) + δI
を計算する。
【0021】
そして、Q計算部は、N行N列の計量行列
Q = UΛ-1U
を計算する。
【0022】
一方、P計算部は、射影行列
P = I - (s[1]Q-1s[1])-1Q-1s[1]s[1]
を計算する。
【0023】
さらに、Π計算部は、N行N列の行列
Π = PQ-1
を計算する。
【0024】
そして、繰り返し制御部は、記憶部に記憶されるA[1]を0に、h[1]をs[1]に、それぞれ初期化してから、受信部により、N個の受信値が観測されるごとに、現在までに取得された縦ベクトルr[1],r[2],…,r[n]の一部または全部を参照して、処理を繰り返す制御を行う。
【0025】
一方、制御数列取得部は、現在の取得済個数nから、所定のq[n] (1≦q[n]≦n)個の所定の1以上n以下の整数ι[1,n]<ι[2,n]< … <ι[q[n],n]からなる所定の集合
I[n] = {ι[1,n],ι[2,n],…,ι[q[n],n]}⊂{1,2,…,n}
からなる制御数列を取得する。
【0026】
さらに、重み取得部は、現在の取得済個数nと、整数ι∈I[n]と、のそれぞれに対する所定の正の重みw[ι,n]であって、
Σι∈I[n] w[ι,n] = 1
を満たす重みを取得する。
【0027】
一方、ステップ幅取得部は、現在の取得済個数nから、0以上2以下の所定の更新ステップ幅λ[n]を取得する。
【0028】
さらに、振幅更新部は、0以上1未満の忘却係数γにより、記憶部に記憶される振幅A[1]を、
A[1] + γ(|h[1]r[n]| - A[1])
に更新する。
【0029】
そして、ビット情報推定部は、関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
により、当該所望の送信局から送信されたι∈I[n]番目のビットの情報の推定値
b[1,ι] = sgn(h[1]r[ι])
を計算する。
【0030】
一方、τ計算部は、整数ι∈I[n]のそれぞれに対するパラメータ
τ[ι] = h[1]r[ι] - A[1]b[1,ι]
を計算する。
【0031】
さらに、η計算部は、整数ι∈I[n]のそれぞれに対するパラメータ
η[ι] = r[ι]Πr[ι]
を計算する。
【0032】
そして、vp計算部は、現在の取得済個数nに対応付けられる所定の正定数ρ[n]により、整数ι∈I[n]のそれぞれに対するベクトルパラメータ
p[ι] = h[1] - (τ[ι] - ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]>ρ[n]1/2);
p[ι] = h[1] - (τ[ι] + ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]<-ρ[n]1/2);
p[ι] = h[1], (上記以外)
を計算する。
【0033】
一方、α計算部は、ベクトルa,bに対して行列Qに誘導される内積
〈a,b〉Q = aQb
およびノルム
‖a‖Q = 〈a,a〉Q1/2
により、パラメータ
α = Σι∈I[n] w[ι,n]‖p[ι] - h[1]‖Q2
を計算する。
【0034】
さらに、β計算部は、パラメータ
β = ‖Σι∈I[n] w[ι,n]p[ι] - h[1]‖Q2
を計算する。
【0035】
そして、M計算部は、パラメータ
M = α/β (β≠0);
M = 1 (β=0)
を計算する。
【0036】
一方、フィルタ更新部は、記憶部に記憶される線形フィルタの推定値ベクトルh[1]を、
h[1] + λ[n]M(Σι∈I[n] w[ι,n]p[ι] - h[1])
に更新する。
【0037】
そして、出力部は、当該h[1]が更新されると、
b[1,n] = sgn(h[1]r[n])
を当該所望の送信局からn番目に送信されたビットの情報として出力する。
【0038】
さらに、繰り返し制御部により繰り返される処理は、制御数列取得部から出力部までによる処理である。
【0039】
また、本発明の信号処理装置において、出力部は、当該b[1,n]を出力するのにかえて、もしくは、当該b[1,n]を出力するのに加えて、記憶部に記憶されるA[1]を、当該所望の送信局からn番目のビットが送信された時点の振幅として出力し、および/または、記憶部に記憶されるh[1]を、当該所望の送信局からn番目のビットが送信された時点の線形フィルタとして出力する。
【0040】
また、本発明の信号処理装置は、相手先交換部をさらに備え、相手先交換部は、所望の送信局が1番目の送信局からj番目の送信局に替わると、記憶部に記憶されるA[1]とA[j]、s[1]とs[j]、h[1]とh[j]を交換するように構成することができる。
【0041】
また、本発明の信号処理装置において、所定の正の整定数Cと、2つの数x,yのいずれか小さい方を返す関数min(x,y)により、
q[n] = min(n,C);
I[n] = {n-q[n]+1,n-q[n]+2,…,n-1,n};
w[ι,n] = 1/q[n];
と定め、
ρ[n] = 0,
ρ[n] = σ2,もしくは,
ρ[n] = (1+21/22
と定めるように構成することができる。
【0042】
本発明のその他の観点に係る信号処理方法は、±1により表現される1ビットの情報を、要素±1/N1/2のNチップからなるシグネチャを正逆に反転させて送信するJ個の送信局から送信された信号を、分散σ2の雑音環境下で受信した受信値を処理する信号処理装置にて実行される。
【0043】
ここで、当該信号処理装置は、記憶部、受信部、V計算部、h*計算部、U計算部、Λ計算部、Q計算部、P計算部、Π計算部、繰り返し制御部、制御数列取得部、重み取得部、ステップ幅取得部、振幅更新部、ビット情報推定部、τ計算部、η計算部、vp計算部、α計算部、β計算部、M計算部、フィルタ更新部、出力部を有する。
【0044】
そして、信号処理方法は、受信工程、V計算工程、h*計算工程、U計算工程、Λ計算工程、Q計算工程、P計算工程、Π計算工程、繰り返し制御工程、制御数列取得工程、重み取得工程、ステップ幅取得工程、振幅更新工程、ビット情報推定工程、τ計算工程、η計算工程、vp計算工程、α計算工程、β計算工程、M計算工程、フィルタ更新工程、出力工程を備え、以下のように構成する。
【0045】
ここで、記憶部には、当該J個の送信局のそれぞれの振幅の推定値A[1],A[2],…,A[J]と、当該J個の送信局のうち、所望の送信局のシグネチャを表すN次元縦ベクトルs[1]と、当該所望の送信局以外の送信局のシグネチャの推定値を表すN次元縦ベクトルs[2],…,s[J]と、J個の送信局のうち、当該所望の送信局に対する線形フィルタの推定値ベクトルh[1]と、が記憶される。
【0046】
一方、受信工程では、受信部が、所望の送信局から送信されたi番目のビットのそれぞれのチップに対応する時刻に観測されるN個の受信値からなるN次元縦ベクトルr[i]を取得する。
【0047】
さらに、V計算工程では、V計算部が、N次元縦ベクトルA[1]s[1],A[2]s[2],…,A[J]s[J]を順に列として並べたVN行J列の行列
V = 〔A[1]s[1],A[2]s[2],…,A[J]s[J]〕
を計算する。
【0048】
そして、h*計算工程では、h*計算部が、N行N列の単位行列I、および、行列の転置(・)により、最適線形フィルタの推定値ベクトル
h* = s[1] - V(σ2I + VV)-1Vs[1]
を計算する。
【0049】
一方、U計算工程では、U計算部が、行列Vを正規直交化して得られる互いに線形独立なK (1≦K≦J)個の単位ベクトルを1列目からK列目までの列とするN行N列の直交行列Uを計算する。
【0050】
さらに、Λ計算工程では、Λ計算部が、ベクトルU(h* - h[1])の各要素に正定数δを加算したものを対角成分とする対角行列
Λ = diag(U(h* - h[1])) + δI
を計算する。
【0051】
そして、Q計算工程では、Q計算部が、N行N列の計量行列
Q = UΛ-1U
を計算する。
【0052】
一方、P計算工程では、P計算部が、射影行列
P = I - (s[1]Q-1s[1])-1Q-1s[1]s[1]
を計算する。
【0053】
さらに、Π計算工程では、Π計算部が、N行N列の行列
Π = PQ-1
を計算する。
【0054】
そして、繰り返し制御工程では、繰り返し制御部が、記憶部に記憶されるA[1]を0に、h[1]をs[1]に、それぞれ初期化してから、受信部により、N個の受信値が観測されるごとに、現在までに取得された縦ベクトルr[1],r[2],…,r[n]の一部または全部を参照して、処理を繰り返す制御を行う。
【0055】
さらに、制御数列取得工程では、制御数列取得部が、現在の取得済個数nから、所定のq[n] (1≦q[n]≦n)個の所定の1以上n以下の整数ι[1,n]<ι[2,n]< … <ι[q[n],n]からなる所定の集合
I[n] = {ι[1,n],ι[2,n],…,ι[q[n],n]}⊂{1,2,…,n}
からなる制御数列を取得する。
【0056】
一方、重み取得工程では、重み取得部が、現在の取得済個数nと、整数ι∈I[n]と、のそれぞれに対する所定の正の重みw[ι,n]であって、
Σι∈I[n] w[ι,n] = 1
を満たす重みを取得する。
【0057】
さらに、ステップ幅取得工程では、ステップ幅取得部が、現在の取得済個数nから、0以上2以下の所定の更新ステップ幅λ[n]を取得する。
【0058】
そして、振幅更新工程では、振幅更新部が、0以上1未満の忘却係数γにより、記憶部に記憶される振幅A[1]を、
A[1] + γ(|h[1]r[n]| - A[1])
に更新する。
【0059】
一方、ビット情報推定工程では、ビット情報推定部が、関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
により、当該所望の送信局から送信されたι∈I[n]番目のビットの情報の推定値
b[1,ι] = sgn(h[1]r[ι])
を計算する。
【0060】
さらに、τ計算工程では、τ計算部が、整数ι∈I[n]のそれぞれに対するパラメータ
τ[ι] = h[1]r[ι] - A[1]b[1,ι]
を計算する。
【0061】
そして、η計算工程では、η計算部が、整数ι∈I[n]のそれぞれに対するパラメータ
η[ι] = r[ι]Πr[ι]
を計算する。
【0062】
一方、vp計算工程では、vp計算部が、現在の取得済個数nに対応付けられる所定の正定数ρ[n]により、整数ι∈I[n]のそれぞれに対するベクトルパラメータ
p[ι] = h[1] - (τ[ι] - ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]>ρ[n]1/2);
p[ι] = h[1] - (τ[ι] + ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]<-ρ[n]1/2);
p[ι] = h[1], (上記以外)
を計算する。
【0063】
さらに、α計算工程では、α計算部が、ベクトルa,bに対して行列Qに誘導される内積
〈a,b〉Q = aQb
およびノルム
‖a‖Q = 〈a,a〉Q1/2
により、パラメータ
α = Σι∈I[n] w[ι,n]‖p[ι] - h[1]‖Q2
を計算する。
【0064】
そして、β計算工程では、β計算部が、パラメータ
β = ‖Σι∈I[n] w[ι,n]p[ι] - h[1]‖Q2
を計算する。
【0065】
一方、M計算工程では、M計算部が、パラメータ
M = α/β (β≠0);
M = 1 (β=0)
を計算する。
【0066】
さらに、フィルタ更新工程では、フィルタ更新部が、記憶部に記憶される線形フィルタの推定値ベクトルh[1]を、
h[1] + λ[n]M(Σι∈I[n] w[ι,n]p[ι] - h[1])
に更新する。
【0067】
一方、出力工程では、当該h[1]が更新されると、出力部が、
b[1,n] = sgn(h[1]r[n])
を当該所望の送信局からn番目に送信されたビットの情報として出力する。
【0068】
そして、繰り返し制御工程にて繰り返される処理は、制御数列取得工程から出力工程までによる処理である。
【0069】
また、本発明の信号処理方法において、出力工程では、当該b[1,n]を出力するのにかえて、もしくは、当該b[1,n]を出力するのに加えて、記憶部に記憶されるA[1]を、当該所望の送信局からn番目のビットが送信された時点の振幅として出力し、および/または、記憶部に記憶されるh[1]を、当該所望の送信局からn番目のビットが送信された時点の線形フィルタとして出力するように構成することができる。
【0070】
また、本発明の信号処理方法であって、信号処理装置は、相手先交換部をさらに有し、相手先交換工程では、所望の送信局が1番目の送信局からj番目の送信局に替わると、相手先交換部が、記憶部に記憶されるA[1]とA[j]、s[1]とs[j]、h[1]とh[j]を交換するように構成することができる。
【0071】
また、本発明の信号処理方法は、所定の正の整定数Cと、2つの数x,yのいずれか小さい方を返す関数min(x,y)により、
q[n] = min(n,C);
I[n] = {n-q[n]+1,n-q[n]+2,…,n-1,n};
w[ι,n] = 1/q[n];
と定め、
ρ[n] = 0,
ρ[n] = σ2,もしくは,
ρ[n] = (1+21/22
と定めるように構成することができる。
【0072】
本発明のその他の観点に係るプログラムは、コンピュータを上記の信号処理装置の各部として機能させるように構成する。
【0073】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0074】
上記プログラムは、プログラムが実行されるコンピュータやディジタル信号プロセッサとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータやディジタル信号プロセッサとは独立して配布・販売することができる。
【発明の効果】
【0075】
本発明によれば、通信路の伝搬状況が時間変動する場合にも環境雑音や他のユーザからの干渉を抑制する適応的な線形フィルタを算出するのに好適な信号処理装置、信号処理方法、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0076】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0077】
図1は、本実施形態に係る信号処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0078】
本図に示すように、本実施形態に係る信号処理装置101は、記憶部102、受信部103、V計算部104、h*計算部105、U計算部106、Λ計算部107、Q計算部108、P計算部109、Π計算部110、繰り返し制御部111、制御数列取得部112、重み取得部113、ステップ幅取得部114、振幅更新部115、ビット情報推定部116、τ計算部117、η計算部118、vp計算部119、α計算部120、β計算部121、M計算部123、フィルタ更新部124、出力部125、相手先交換部126を備える。
【0079】
本信号処理装置101は、J個の送信局から信号が送信された信号が分散σ2の雑音環境下で伝搬してくることを想定している。
【0080】
そして、各送信局では、±1により表現される1ビットの情報を、要素±1/N1/2のNチップからなるシグネチャを正逆に反転させて送信する。本実施形態では、このシグネチャは、拡散符号に相当するものであり、位相を180度変化させる直接拡散を行うこととしている。
【0081】
したがって、信号処理装置101が通信する送信局が複数ある場合には、そのそれぞれに対応付けられたシグネチャを、信号処理装置101で知っていることとなる。
【0082】
また、雑音の分散σ2は、適当な推測値を利用することもできるのが典型的であるが、実測しても良い。すなわち、各送信局に対して本実施形態を適用することで、各送信局からの振幅と伝送されたビットが判明するから、受信値における各送信局の成分が判明する。そこで、これを除去した残りが雑音成分となるから、この雑音成分から、σ2を求めることができる。
【0083】
以下の説明では、理解を容易にするため、信号処理装置101は、所望の送信局を1番目、それ以外の送信局を2番目〜J番目として区別して取り扱うものとする。(なお、これらの順序に特段の制約はないから、所望の送信局が変われば、当該順序を変更して、同じ処理を行えば良いこととなる。この変更処理を行うのが、後述する相手先交換部126である。)
【0084】
また、以下の説明では、一般的なコンピュータ(CPU(Central Processing Unit)の制御下で、RAM(Random Access Memory)を一時記憶とし、ハードディスクを不揮発記憶とし、入出力ポートで外部機器とのやりとりを行うのが典型的である。)等の情報処理装置にてプログラムを動作させることで信号処理装置101を実現する典型例を説明するが、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、その他の電子回路によって実現することも可能である。
【0085】
記憶部102は、RAMによって実現され、以下の情報を記憶する。
J個の送信局のそれぞれの振幅の推定値A[1],A[2],…,A[J]。
J個の送信局のうち、所望の送信局のシグネチャを表すN次元縦ベクトルs[1]。
J個の送信局のうち、所望の送信局以外の送信局のシグネチャの推定値を表すN次元縦ベクトルs[2],…,s[J]。
J個の送信局のうち、所望の送信局に対する線形フィルタの推定値ベクトルh[1]。
【0086】
このほか、以下の情報を記憶することとするのが典型的である。
J個の送信局のうち、所望の送信局以外の送信局に対する線形フィルタの推定値ベクトルh[2],…,s[J]。
雑音の分散の推定値σ2
所望の送信局が送信した各ビットに対して観測されたNチップの受信値を要素とするN次元ベクトルの列r[1],r[2],…。カウンタ変数nを用いて、現在までに、r[1],r[2],…,r[n]が取得されたものとする。
そのほか、後述する各計算処理の途中結果。
【0087】
ベクトルや行列、集合等の数学的実体の情報は、配列の形式で実装するのが典型的であるが、スタックやキュー、ハッシュ、ビット集合などで実装することとしても良い。また、過去すべての値ではなく、直近何個かの値で十分な場合には、リングバッファ等を組み合わせても良い。
【0088】
また、下記の制御では、ある推定値を最新の値に上書きすることが行われているが、配列に履歴を記録することとして、ある時点での推定値が後の各種の処理で利用できるようにしても良い。
【0089】
図2は、当該信号処理装置にて実行される信号処理方法の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0090】
まず、繰り返し制御部111は、記憶部102に記憶される情報を初期化する(ステップS201)。具体的には、以下のような処理を行う。
【0091】
すなわち、
A[1]←0;
h[1]←s[1];
n←0
のように代入を行う。
【0092】
なお、A[1]について、過去の処理等によりすでに推定値が得られていれば、0のかわりにそれを利用することが望ましい。このほか、A[2],…,A[J]は、過去の処理等によって推定値が得られていると想定して、これを初期値とする。また、推定値が得られていない場合には、適当な乱数を与えるものとする。
【0093】
また、s[2],…,s[J]については、同じチップ長の拡散符号として採用されうるものをランダムに代入することとしても良いし、過去の処理等によって拡散符号が判明しているものについては、それをそのまま利用しても良い。また、単なる乱数を代入する、という手法もありうる。このとき、s[1],s[2],…,s[J]は、互いに異なる値とする。
【0094】
h[2],…,h[J]は、所望の送信局以外の送信局の線形フィルタであり、所望の送信局が交換されない限り、初期化の必要はない。また、所望の送信局の交換が起きる場合には、以前の値をそのまま採用するか、上記のs[2],…,s[J]を代入するなどの手法が考えられる。
【0095】
ついで、V計算部104は、N次元縦ベクトルA[1]s[1],A[2]s[2],…,A[J]s[J]を順に列として並べたVN行J列の行列
V = 〔A[1]s[1],A[2]s[2],…,A[J]s[J]〕
を計算し(ステップS202)、h*計算部105は、N行N列の単位行列I、および、行列の転置(・)により、最適線形フィルタの推定値ベクトル
h* = s[1] - V(σ2I + VV)-1Vs[1]
を計算する(ステップS203)。これらの計算は、通常の行列計算を行うことで可能となる。なお、正則でないために逆行列が求められない場合には、A[1],…,A[J]の値をそれぞれランダムに増減させるなどして、再試行を行う。
【0096】
ついで、U計算部106は、行列Vを正規直交化して得られる互いに線形独立なK (1≦K≦J)個の単位ベクトルを1列目からK列目までの列とするN行N列の直交行列Uを計算する(ステップS204)。直交行列Uを得る計算法としては、グラム・シュミットの直交化など、公知の技術を適用することができる。
【0097】
具体的には、以下のような処理である。すなわち、
(1)行列Uの1列目には、行列Vの1列目を、単位ベクトルにしたものを設定し、
(2)行列Vの(k+1) (k≧1)列目は、
(2a)行列Vの(k+1)列目から、行列Uの1列目成分,…,k列目成分を減算したものが零ベクトルでなければ、これを単位ベクトル化したものを設定し、
(2b)零ベクトルであれば、行列Uの1列目成分,…,k列目と直交する単位ベクトルを適当に選択して設定し、
(3)一旦減算結果が0となって以降は、行列Uのすでに定まった列と直交するもので残りの列を補充する。
【0098】
さらに、Λ計算部107は、ベクトルU(h* - h[1])の各要素に正定数δを加算したものを対角成分とする対角行列
Λ = diag(U(h* - h[1])) + δI
を計算する(ステップS205)。
【0099】
そして、Q計算部108は、N行N列の計量行列
Q = UΛ-1U
を計算する(ステップS206)。
【0100】
ここで計算される計量行列Qが、本願の特徴の一つである。すなわち、[非特許文献1]においては、Q = IとするBPCP(Blind Parallel Constrained Projection)技術が開示されている。本願では、上記のような計量行列Qを採用することで、収束の高速化を図るのである。
【0101】
さらに、P計算部109は、射影行列
P = I - (s[1]Q-1s[1])-1Q-1s[1]s[1]
を計算し(ステップS207)、Π計算部110は、N行N列の行列
Π = PQ-1
を計算する(ステップS208)。
【0102】
ステップS202〜ステップS208の処理は、信号受信前に行うことが可能な処理であるが、信号受信を開始した後に適宜適当なタイミングで実行しても良い。特に、ある程度受信が行われ、各送信局からの振幅A[1],…,A[J]やシグネチャs[1],…,s[J]が判明した後に実行すると、より良い計量行列Qを得ることができる。
【0103】
さて、以下では、信号受信を開始してからの繰り返し処理を説明する。すなわち、受信部103は、所望の送信局から送信されたNチップ分の受信値を取得する(ステップS211)。ここでは、通常のCDMAの技術が利用される。すなわち、1チップ時間長単位でアンテナの電位を取得し、アナログ・ディジタル変換して数列とした後、これに対してシグネチャs[1]をスライドさせて相関をとり、1ビット単位での同期をとる。一旦同期がとれたら、Nチップ単位で受信値を取得するのである。
【0104】
受信部103は、上記のようなCMDAのアンテナから同期機構までの処理を行う機器をコンピュータの入出力ポートに接続することによって実現しても良いし、得られた受信情報がハードディスク等に記録されることとしても良い。
【0105】
そして、カウンタ変数nを1増やして(ステップS212)、取得されたN個の受信値をベクトル変数r[n]に代入する(ステップS213)。すなわち、カウンタ変数nは、処理を開始してからの「経過時間」に相当する値を格納するものであり、記憶部102に、r[1],…,r[n]が記憶されていることになる。
【0106】
一方、制御数列取得部112は、現在の取得済個数nから、所定のq[n] (1≦q[n]≦n)個の所定の1以上n以下の整数ι[1,n]<ι[2,n]< … <ι[q[n],n]からなる所定の集合
I[n] = {ι[1,n],ι[2,n],…,ι[q[n],n]}⊂{1,2,…,n}
からなる制御数列を取得する(ステップS214)。
【0107】
ここで、制御数列I[n]に含まれる整数の個数q[n]は、適当な正の整定数C、および、値x,yのいずれか小さい方を返す関数min(x,y)を用いて、
q[n] = min(n,C)
とするのが典型的である。Cの値としては、1,8,16,32,128等、種々の値を利用することができる。
【0108】
また、制御数列I[n]は、
I[n] = {n-q[n]+1,n-q[n]+2,…,n-1,n}
とするのが典型的である。制御数列I[n]は、r[1],…,r[n]のうち、いずれを参照して計算を行うかを決めるものである。すなわち、I[n]に含まれる整数ιから、r[ι]を参照することが定められるのである。
【0109】
上記の例では、直近の(多くとも)C個の受信値ベクトル
r[n-q[n]+1],r[n-q[n]+2],…,r[n-1],r[n]
を参照して、以降の掲載を行うのである。したがって、r[]の記憶には、長さCのリングバッファを利用することとしても良い。
【0110】
さらに、重み取得部113は、現在の取得済個数nと、整数ι∈I[n]と、のそれぞれに対する所定の正の重みw[ι,n]であって、
Σι∈I[n] w[ι,n] = 1
を満たす重みを取得する(ステップS215)。
【0111】
具体的には、直近の値が重要視されるようにするため、
w[ι[1,n]]≦w[ι[2,n]]≦…≦w[ι[q[n],n]]
が成立するようにすることが望ましいが、単純かつ典型的には、
w[ι,n] = 1/q[n]
とする。
【0112】
一方、ステップ幅取得部114は、現在の取得済個数nから、0以上2以下の所定の更新ステップ幅λ[n]を取得する(ステップS216)。更新ステップ幅λ[n]としては、上記の条件を満たす適当な定数を採用するのが典型的である。
【0113】
さらに、振幅更新部115は、0以上1未満の忘却係数γにより、記憶部102に記憶される振幅A[1]を、
A[1] + γ(|h[1]r[n]| - A[1])
に更新する(ステップS217)。忘却係数は、上記の条件を満たす適当な定数である。
【0114】
この更新値は、所望の送信局(1番目の送信局)の最新の(時点nの)振幅の推定値であるので、記憶部102に記憶されるA[1]の値は、常に最新の値で上書きされることになる。
【0115】
そして、ビット情報推定部116は、関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
により、当該所望の送信局から送信されたι∈I[n]番目のビットの情報の推定値
b[1,ι] = sgn(h[1]r[ι])
を計算する(ステップS218)。これは、ιについてのループ計算によって実現することができる。図中では、このループ計算を、「∀ι∈I[n]」のように表記している。
【0116】
b[1,・]をRAM内の配列に記憶する場合には、過去に推定したビット値が、ステップS218における処理で上書きされることになる。また、I[n]がnの直近のもののみを利用する場合には、b[1,・]もリングバッファとすることができる。これは、以下の、ιを添字とする各種のパラメータも同様である。
【0117】
一方、τ計算部117は、整数ι∈I[n]のそれぞれに対するパラメータ
τ[ι] = h[1]r[ι] - A[1]b[1,ι]
を計算し(ステップS219)、η計算部118は、整数ι∈I[n]のそれぞれに対するパラメータ
η[ι] = r[ι]Πr[ι]
を計算する(ステップS220)。
【0118】
そして、vp計算部119は、現在の取得済個数nに対応付けられる所定の正定数ρ[n]により、整数ι∈I[n]のそれぞれに対するベクトルパラメータ
p[ι] = h[1] - (τ[ι] - ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]>ρ[n]1/2);
p[ι] = h[1] - (τ[ι] + ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]<-ρ[n]1/2);
p[ι] = h[1], (上記以外)
を計算する(ステップS221)。
【0119】
ここで、ρ[n]は、典型的には、
ρ[n] = 0,
ρ[n] = σ2,もしくは,
ρ[n] = (1+21/22
のような値を用いる。最終的なビットエラーレートや信号雑音比など、伝搬状況が悪い場合には大きくし、良い場合には小さくするなど、種々の態様を採用することができる。また、nが大きくなっていくと次第に一定値に収束するように設定しても良い。
【0120】
一方、α計算部120は、ベクトルa,bに対して行列Qに誘導される内積
〈a,b〉Q = aQb
および行列Qに誘導されるノルム
‖a‖Q = 〈a,a〉Q1/2
により、パラメータ
α = Σι∈I[n] w[ι,n]‖p[ι] - h[1]‖Q2
を計算し(ステップS222)、β計算部121は、パラメータ
β = ‖Σι∈I[n] w[ι,n]p[ι] - h[1]‖Q2
を計算する(ステップS223)。
【0121】
そして、M計算部123は、パラメータ
M = α/β (β≠0);
M = 1 (β=0)
を計算する(ステップS224)。
【0122】
τ[・],η[・],p[・],α,β,Mは、一時的な変数であるので、RAM内に確保された配列領域、変数領域に記憶するのが典型的である。
【0123】
一方、フィルタ更新部124は、記憶部102に記憶される線形フィルタの推定値ベクトルh[1]を、
h[1] + λ[n]M(Σι∈I[n] w[ι,n]p[ι] - h[1])
に更新する(ステップS225)。これによって、線形フィルタの推定値ベクトルが、n-1番目のビットを受信した直後の時点での推定値からn番目のビットを受信した直後の時点での推定値に更新されることになる。
【0124】
したがって、出力部125は、当該h[1]が更新されると、
b[1,n] = sgn(h[1]r[n])
を当該所望の送信局からn番目に送信されたビットの情報として出力する(ステップS226)。
【0125】
また、この出力の際に、記憶部102に記憶されるA[1]を、当該所望の送信局からn番目のビットが送信された時点の振幅として出力し、および/または、記憶部102に記憶されるh[1]を、当該所望の送信局からn番目のビットが送信された時点の線形フィルタとして出力することとしても良い。
【0126】
そして、b[1,h]が出力されると、繰り返し制御部111は、ステップS211に制御を戻す。なお、ステップS211〜ステップS226の処理の途中で、振幅A[1]が更新されるから、適当なタイミングで(たとえば、繰り返しが所定回数起きるごと、A[1]の変化量(各要素の変化量の自乗の総和等)が一定値を超えるごと、あるいは、毎回等)、ステップS211に戻るのにかえてステップS202に戻ることとしても良い(図中破線矢印)。
【0127】
上記の説明では、所望の送信局を1番目の送信局であると考えて、s[1]を既知とし、A[1],h[1]が次第に更新されていくこととしているが、所望の送信局を適宜替えたい場合には、相手先交換部126が機能する。
【0128】
すなわち、相手先交換部126は、所望の送信局が1番目の送信局からj番目の送信局に替わると、記憶部102に記憶されるA[1]とA[j]、s[1]とs[j]、h[1]とh[j]を交換する。
【0129】
その上で、上記の処理を適当な回数行うことにより、複数の送信局についても、振幅A[・]、線形フィルタh[・]、シグネチャs[・]が次第に収束していくこととなる。
【0130】
また、各送信局iについて、振幅A[i]、線形フィルタh[i]、シグネチャs[i]、および、送信されたビットb[i,n]が得られれば、受信値r[n]における全送信局の有効な信号成分が判明する。したがって、それ以外の成分が雑音成分ということとなる。そこで、その雑音成分の分散の時間経過を求めて、σ2を適宜更新することとしても良い。
【0131】
上記各部の計算処理は、CPUがRAMと共働して行う。また、出力部125の出力先は、入出力ポートを介して他の機器(たとえば、通信機器における音声出力機構)に接続することとしても良いし、RAMやハードディスク内に蓄積することとしても良い。
【0132】
さて、上記のように、本発明と[非特許文献2]との差異の一つは、計量行列Qの定め方にあり、このような定め方を採用することで、収束が速くなる。以下では、これをシミュレーション実験によって確認する。シミュレーションは、以下の諸元で行った。
信号雑音比(SNR;Signal (or bit energy to) Noise Ratio)は、15dBで一定。これは、10 log10A[1]22に等しい。
干渉局の数S = 7。本発明では上り回線を想定しており、送信局が一斉に同期をとって電波を送信することは一般にない非同期システムである。一つの干渉波のシグネチャが所望波のシグネチャと時間的にずれるため、仮想的に2つの干渉波として効いてくることになり、受信側で効いてくる干渉波の数J-1は、最大で2Sとなる。
所望の信号の振幅A[1] = 1であるが、干渉局の振幅A[2],…,A[J]は、その10倍以上。
シグネチャとして、31チップ長のゴールド符号を各送信局にランダムに割り当てる。したがって、N = 31。
忘却係数γ = 0.01。
微小な正定数δ = 0.02。
【0133】
また、[非特許文献2]による手法(BPCP)と、本手法(Proposed)では、以下の2通りを実験した。
(1)q[n] = 1,λ[n] = 0.6,ρ[n] = 0。(図中の「q=1」)。
(2)q[n] = 16,λ[n] = 0.15,ρ[n] = 0.01。(図中の「q=16」)。
【0134】
シミュレーションのために、それぞれ300回の独立試行を行った。
【0135】
図3は、本実施形態と、既存技術との実験結果を対比して示すグラフである。以下、本図を参照して説明する。
【0136】
本図横軸(Iteration number)は、nに相当する数である。本図縦軸(Output SINR)は、その段階での適応フィルタの性能を表す。
【0137】
いずれの手法も、nが増えると、理想状態(Optimal)に近付きつつ、10dB前後で収束しているが、本手法(Proposed)は、q=16の場合には、500回の繰り返しで略収束し、q=1の場合でも、1000回の繰り返しで略収束している。一方、従来手法(BPCP)では、q=16の場合には、収束までに1500回の繰り返しを要し、q=1の場合でも、収束までに2000回の繰り返しを要している。
【0138】
すなわち、本手法の収束が格段に高速であることがわかる。
【産業上の利用可能性】
【0139】
上記のように、本発明によれば、通信路の伝搬状況が時間変動する場合にも環境雑音や他のユーザからの干渉を抑制する適応的な線形フィルタを算出するのに好適な信号処理装置、信号処理方法、ならびに、これをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0140】
【図1】本実施形態に係る信号処理装置の概要構成を示す模式図である。
【図2】本実施形態に係る信号処理装置にて実行される信号処理方法の制御の流れを示すフローチャートである。
【図3】実験結果を示すグラフである。
【符号の説明】
【0141】
101 信号処理装置
102 記憶部
103 受信部
104 V計算部
105 h*計算部
106 U計算部
107 Λ計算部
108 Q計算部
109 P計算部
110 Π計算部
111 繰り返し制御部
112 制御数列取得部
113 重み取得部
114 ステップ幅取得部
115 振幅更新部
116 ビット情報推定部
117 τ計算部
118 η計算部
119 vp計算部
120 α計算部
121 β計算部
123 M計算部
124 フィルタ更新部
125 出力部
126 相手先交換部

【特許請求の範囲】
【請求項1】
±1により表現される1ビットの情報を、要素±1/N1/2のNチップからなるシグネチャを正逆に反転させて送信するJ個の送信局から送信された信号を、分散σ2の雑音環境下で受信した受信値を処理する信号処理装置であって、
当該J個の送信局のそれぞれの振幅の推定値A[1],A[2],…,A[J]と、当該J個の送信局のうち、所望の送信局のシグネチャを表すN次元縦ベクトルs[1]と、当該所望の送信局以外の送信局のシグネチャの推定値を表すN次元縦ベクトルs[2],…,s[J]と、J個の送信局のうち、当該所望の送信局に対する線形フィルタの推定値ベクトルh[1]と、が記憶される記憶部、
所望の送信局から送信されたi番目のビットのそれぞれのチップに対応する時刻に観測されるN個の受信値からなるN次元縦ベクトルr[i]を取得する受信部、
N次元縦ベクトルA[1]s[1],A[2]s[2],…,A[J]s[J]を順に列として並べたN行J列の行列
V = 〔A[1]s[1],A[2]s[2],…,A[J]s[J]〕
を計算するV計算部、
N行N列の単位行列I、および、行列の転置(・)により、最適線形フィルタの推定値ベクトル
h* = s[1] - V(σ2I + VV)-1Vs[1]
を計算するh*計算部、
行列Vを正規直交化して得られる互いに線形独立なK (1≦K≦J)個の単位ベクトルを1列目からK列目までの列とするN行N列の直交行列Uを計算するU計算部、
ベクトルU(h* - h[1])の各要素に正定数δを加算したものを対角成分とする対角行列
Λ = diag(U(h* - h[1])) + δI
を計算するΛ計算部、
N行N列の計量行列
Q = UΛ-1U
を計算するQ計算部、
射影行列
P = I - (s[1]Q-1s[1])-1Q-1s[1]s[1]
を計算するP計算部、
N行N列の行列
Π = PQ-1
を計算するΠ計算部、
前記記憶部に記憶されるA[1]を0に、h[1]をs[1]に、それぞれ初期化してから、前記受信部により、N個の受信値が観測されるごとに、現在までに取得された縦ベクトルr[1],r[2],…,r[n]の一部または全部を参照して、処理を繰り返す制御を行う繰り返し制御部、
現在の取得済個数nから、所定のq[n] (1≦q[n]≦n)個の所定の1以上n以下の整数ι[1,n]<ι[2,n]< … <ι[q[n],n]からなる所定の集合
I[n] = {ι[1,n],ι[2,n],…,ι[q[n],n]}⊂{1,2,…,n}
からなる制御数列を取得する制御数列取得部、
現在の取得済個数nと、整数ι∈I[n]と、のそれぞれに対する所定の正の重みw[ι,n]であって、
Σι∈I[n] w[ι,n] = 1
を満たす重みを取得する重み取得部、
現在の取得済個数nから、0以上2以下の所定の更新ステップ幅λ[n]を取得するステップ幅取得部、
0以上1未満の忘却係数γにより、前記記憶部に記憶される振幅A[1]を、
A[1] + γ(|h[1]r[n]| - A[1])
に更新する振幅更新部、
関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
により、当該所望の送信局から送信されたι∈I[n]番目のビットの情報の推定値
b[1,ι] = sgn(h[1]r[ι])
を計算するビット情報推定部、
整数ι∈I[n]のそれぞれに対するパラメータ
τ[ι] = h[1]r[ι] - A[1]b[1,ι]
を計算するτ計算部、
整数ι∈I[n]のそれぞれに対するパラメータ
η[ι] = r[ι]Πr[ι]
を計算するη計算部、
現在の取得済個数nに対応付けられる所定の正定数ρ[n]により、整数ι∈I[n]のそれぞれに対するベクトルパラメータ
p[ι] = h[1] - (τ[ι] - ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]>ρ[n]1/2);
p[ι] = h[1] - (τ[ι] + ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]<-ρ[n]1/2);
p[ι] = h[1], (上記以外)
を計算するvp計算部、
ベクトルa,bに対して行列Qに誘導される内積
〈a,b〉Q = aQb
およびノルム
‖a‖Q = 〈a,a〉Q1/2
により、パラメータ
α = Σι∈I[n] w[ι,n]‖p[ι] - h[1]‖Q2
を計算するα計算部、
パラメータ
β = ‖Σι∈I[n] w[ι,n]p[ι] - h[1]‖Q2
を計算するβ計算部、
パラメータ
M = α/β (β≠0);
M = 1 (β=0)
を計算するM計算部、
前記記憶部に記憶される線形フィルタの推定値ベクトルh[1]を、
h[1] + λ[n]M(Σι∈I[n] w[ι,n]p[ι] - h[1])
に更新するフィルタ更新部、
当該h[1]が更新されると、
b[1,n] = sgn(h[1]r[n])
を当該所望の送信局からn番目に送信されたビットの情報として出力する出力部
を備え、
前記繰り返し制御部により繰り返される処理は、前記制御数列取得部から前記出力部までによる処理である
ことを特徴とする信号処理装置。
【請求項2】
請求項1に記載の信号処理装置であって、
前記出力部は、当該b[1,n]を出力するのにかえて、もしくは、当該b[1,n]を出力するのに加えて、
前記記憶部に記憶されるA[1]を、当該所望の送信局からn番目のビットが送信された時点の振幅として出力し、および/または、前記記憶部に記憶されるh[1]を、当該所望の送信局からn番目のビットが送信された時点の線形フィルタとして出力する
ことを特徴とする信号処理装置。
【請求項3】
請求項1または2に記載の信号処理装置であって、
所望の送信局が1番目の送信局からj番目の送信局に替わると、前記記憶部に記憶されるA[1]とA[j]、s[1]とs[j]、h[1]とh[j]を交換する相手先交換部
をさらに備えることを特徴とする信号処理装置。
【請求項4】
請求項1から3のいずれか1項に記載の信号処理装置であって、所定の正の整定数Cと、2つの数x,yのいずれか小さい方を返す関数min(x,y)により、
q[n] = min(n,C);
I[n] = {n-q[n]+1,n-q[n]+2,…,n-1,n};
w[ι,n] = 1/q[n]
と定め、
ρ[n] = 0,
ρ[n] = σ2,もしくは,
ρ[n] = (1+21/22
と定める
ことを特徴とする信号処理装置。
【請求項5】
±1により表現される1ビットの情報を、要素±1/N1/2のNチップからなるシグネチャを正逆に反転させて送信するJ個の送信局から送信された信号を、分散σ2の雑音環境下で受信した受信値を処理する信号処理装置にて実行される信号処理方法であって、当該信号処理装置は、記憶部、受信部、V計算部、h*計算部、U計算部、Λ計算部、Q計算部、P計算部、Π計算部、繰り返し制御部、制御数列取得部、重み取得部、ステップ幅取得部、振幅更新部、ビット情報推定部、τ計算部、η計算部、vp計算部、α計算部、β計算部、M計算部、フィルタ更新部、出力部を有し、前記記憶部には、当該J個の送信局のそれぞれの振幅の推定値A[1],A[2],…,A[J]と、当該J個の送信局のうち、所望の送信局のシグネチャを表すN次元縦ベクトルs[1]と、当該所望の送信局以外の送信局のシグネチャの推定値を表すN次元縦ベクトルs[2],…,s[J]と、J個の送信局のうち、当該所望の送信局に対する線形フィルタの推定値ベクトルh[1]と、が記憶され、
前記受信部が、所望の送信局から送信されたi番目のビットのそれぞれのチップに対応する時刻に観測されるN個の受信値からなるN次元縦ベクトルr[i]を取得する受信工程、
前記V計算部が、N次元縦ベクトルA[1]s[1],A[2]s[2],…,A[J]s[J]を順に列として並べたVN行J列の行列
V = 〔A[1]s[1],A[2]s[2],…,A[J]s[J]〕
を計算するV計算工程、
前記h*計算部が、N行N列の単位行列I、および、行列の転置(・)により、最適線形フィルタの推定値ベクトル
h* = s[1] - V(σ2I + VV)-1Vs[1]
を計算するh*計算工程、
前記U計算部が、行列Vを正規直交化して得られる互いに線形独立なK (1≦K≦J)個の単位ベクトルを1列目からK列目までの列とするN行N列の直交行列Uを計算するU計算工程、
前記Λ計算部が、ベクトルU(h* - h[1])の各要素に正定数δを加算したものを対角成分とする対角行列
Λ = diag(U(h* - h[1])) + δI
を計算するΛ計算工程、
前記Q計算部が、N行N列の計量行列
Q = UΛ-1U
を計算するQ計算工程、
前記P計算部が、射影行列
P = I - (s[1]Q-1s[1])-1Q-1s[1]s[1]
を計算するP計算工程、
前記Π計算部が、N行N列の行列
Π = PQ-1
を計算するΠ計算部工程、
前記繰り返し制御部が、前記記憶部に記憶されるA[1]を0に、h[1]をs[1]に、それぞれ初期化してから、前記受信部により、N個の受信値が観測されるごとに、現在までに取得された縦ベクトルr[1],r[2],…,r[n]の一部または全部を参照して、処理を繰り返す制御を行う繰り返し制御工程、
前記制御数列取得部が、現在の取得済個数nから、所定のq[n] (1≦q[n]≦n)個の所定の1以上n以下の整数ι[1,n]<ι[2,n]< … <ι[q[n],n]からなる所定の集合
I[n] = {ι[1,n],ι[2,n],…,ι[q[n],n]}⊂{1,2,…,n}
からなる制御数列を取得する制御数列取得工程、
前記重み取得部が、現在の取得済個数nと、整数ι∈I[n]と、のそれぞれに対する所定の正の重みw[ι,n]であって、
Σι∈I[n] w[ι,n] = 1
を満たす重みを取得する重み取得工程、
前記ステップ幅取得部が、現在の取得済個数nから、0以上2以下の所定の更新ステップ幅λ[n]を取得するステップ幅取得工程、
前記振幅更新部が、0以上1未満の忘却係数γにより、前記記憶部に記憶される振幅A[1]を、
A[1] + γ(|h[1]r[n]| - A[1])
に更新する振幅更新工程、
前記ビット情報推定部が、関数
sgn(x) = 1, (x≧0);
sgn(x) = -1, (x<0)
により、当該所望の送信局から送信されたι∈I[n]番目のビットの情報の推定値
b[1,ι] = sgn(h[1]r[ι])
を計算するビット情報推定工程、
前記τ計算部が、整数ι∈I[n]のそれぞれに対するパラメータ
τ[ι] = h[1]r[ι] - A[1]b[1,ι]
を計算するτ計算工程、
前記η計算部が、整数ι∈I[n]のそれぞれに対するパラメータ
η[ι] = r[ι]Πr[ι]
を計算するη計算工程、
前記vp計算部が、現在の取得済個数nに対応付けられる所定の正定数ρ[n]により、整数ι∈I[n]のそれぞれに対するベクトルパラメータ
p[ι] = h[1] - (τ[ι] - ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]>ρ[n]1/2);
p[ι] = h[1] - (τ[ι] + ρ[n]1/2)Πr[ι]/η[ι], (τ[ι]<-ρ[n]1/2);
p[ι] = h[1], (上記以外)
を計算するvp計算工程、
前記α計算部が、ベクトルa,bに対して行列Qに誘導される内積
〈a,b〉Q = aQb
およびノルム
‖a‖Q = 〈a,a〉Q1/2
により、パラメータ
α = Σι∈I[n] w[ι,n]‖p[ι] - h[1]‖Q2
を計算するα計算工程、
前記β計算部が、パラメータ
β = ‖Σι∈I[n] w[ι,n]p[ι] - h[1]‖Q2
を計算するβ計算工程、
前記M計算部が、パラメータ
M = α/β (β≠0);
M = 1 (β=0)
を計算するM計算工程、
前記フィルタ更新部が、前記記憶部に記憶される線形フィルタの推定値ベクトルh[1]を、
h[1] + λ[n]M(Σι∈I[n] w[ι,n]p[ι] - h[1])
に更新するフィルタ更新工程、
当該h[1]が更新されると、前記出力部が、
b[1,n] = sgn(h[1]r[n])
を当該所望の送信局からn番目に送信されたビットの情報として出力する出力工程
を備え、
前記繰り返し制御工程にて繰り返される処理は、前記制御数列取得工程から前記出力工程までによる処理である
ことを特徴とする信号処理方法。
【請求項6】
請求項5に記載の信号処理方法であって、
前記出力工程では、当該b[1,n]を出力するのにかえて、もしくは、当該b[1,n]を出力するのに加えて、
前記記憶部に記憶されるA[1]を、当該所望の送信局からn番目のビットが送信された時点の振幅として出力し、および/または、前記記憶部に記憶されるh[1]を、当該所望の送信局からn番目のビットが送信された時点の線形フィルタとして出力する
ことを特徴とする信号処理方法。
【請求項7】
請求項5または6に記載の信号処理方法であって、前記信号処理装置は、相手先交換部をさらに有し、
所望の送信局が1番目の送信局からj番目の送信局に替わると、前記相手先交換部が、前記記憶部に記憶されるA[1]とA[j]、s[1]とs[j]、h[1]とh[j]を交換する相手先交換工程
をさらに備えることを特徴とする信号処理方法。
【請求項8】
請求項5から7のいずれか1項に記載の信号処理方法であって、所定の正の整定数Cと、2つの数x,yのいずれか小さい方を返す関数min(x,y)により、
q[n] = min(n,C);
I[n] = {n-q[n]+1,n-q[n]+2,…,n-1,n};
w[ι,n] = 1/q[n];
と定め、
ρ[n] = 0,
ρ[n] = σ2,もしくは,
ρ[n] = (1+21/22
と定める
ことを特徴とする信号処理方法。
【請求項9】
コンピュータを、請求項1から4のいずれか1項に記載の信号処理装置の各部として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2009−27548(P2009−27548A)
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2007−189874(P2007−189874)
【出願日】平成19年7月20日(2007.7.20)
【出願人】(503359821)独立行政法人理化学研究所 (1,056)
【出願人】(304021417)国立大学法人東京工業大学 (1,821)
【出願人】(304001545)株式会社カオスウェア (28)
【Fターム(参考)】