(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】音場再現装置及びプログラム
(51)【国際特許分類】
H04R 3/00 20060101AFI20250108BHJP
H04R 1/40 20060101ALI20250108BHJP
H04S 7/00 20060101ALI20250108BHJP
【FI】
H04R3/00 310
H04R1/40 310
H04S7/00 300
(21)【出願番号】P 2021019629
(22)【出願日】2021-02-10
【審査請求日】2024-01-04
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100121119
【氏名又は名称】花村 泰伸
(72)【発明者】
【氏名】佐々木 陽
【審査官】堀 洋介
(56)【参考文献】
【文献】国際公開第2018/008395(WO,A1)
【文献】特開2011-124724(JP,A)
【文献】特開2010-045432(JP,A)
【文献】FIRTHA, Gergely and FIALA, Peter,Sound Field Synthesis of Uniformly Moving Virtual Monopoles,Journal of Audio Engineering Society,2015年01月06日,Vol.63, No.1/2,p.46-53
(58)【調査した分野】(Int.Cl.,DB名)
H04R 3/00- 3/14
H04R 1/40
H04S 1/00- 7/00
(57)【特許請求の範囲】
【請求項1】
複数のスピーカユニットからなるスピーカアレイを用いて、移動する点音源によって形成される音場を再現するための駆動信号を生成する音場再現装置において、
前記スピーカアレイが、xyz空間上のz=z
0のy=y
0上に配置されているものとし、
時間サンプルをn、所定のバッファ区間0≦n≦N-1における時間サンプルn毎の音源信号をs(n)及び仮想音源座標を(x
s(n),y
s(n))、再現境界をy=y
ref、サンプリング周波数をf
s、スピーカユニット数をM(Mは自然数)、スピーカユニット間隔をΔx、前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))が格納されるバッファのバッファ長をN、角周波数をω、前記角周波数ωを音速cで除算することで得られる波数をk、x軸方向の波数をk
x、m=0~M-1(mは整数)、第2種0次ハンケル関数をH
0
(2)、前記駆動信号の角度スペクトルをD^(k
x,y
0,z
0,ω)として、
予め設定された前記スピーカユニット数M及び前記スピーカユニット間隔Δx、並びに前記mを用いて、式:k
x=2πm/(ΔxM)により、前記波数k
xを算出し、
前記所定のバッファ区間0≦n≦N-1における前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))、予め設定された前記再現境界y
ref、前記サンプリング周波数f
s、前記波数k及び前記値y
0,z
0、並びに前記波数k
x及び前記角周波数ωを用いて、以下の式:
の演算を行うことで、前記駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)を求め
、
前記駆動信号の角度スペクトルD^(k
x
,y
0
,z
0
,ω)に対して空間周波数領域で逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号を求め、
前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号に対して時間周波数領域で逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間領域の駆動信号を求める、ことを特徴とする音場再現装置。
【請求項2】
複数のスピーカユニットからなるスピーカアレイを用いて、移動する点音源によって形成される音場を再現するための駆動信号を生成する音場再現装置において、
前記スピーカアレイが、xyz空間上におけるz=z
0のy=y
0上に配置されているものとし、
時間サンプルをn、所定のバッファ区間0≦n≦N-1における時間サンプルn毎の音源信号をs(n)及び仮想音源座標を(x
s(n),y
s(n))、再現境界をy=y
ref、サンプリング周波数をf
s、スピーカユニット数をM(Mは自然数)、スピーカユニット間隔をΔx、前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))が格納されるバッファのバッファ長をN、角周波数をω、前記角周波数ωを音速cで除算することで得られる波数をk、x軸方向の波数をk
x、m=0~M-1(mは整数)、第2種0次ハンケル関数をH
0
(2)、前記駆動信号の角度スペクトルをD^(k
x,y
0,z
0,ω)として、
予め設定された前記スピーカユニット数M及び前記スピーカユニット間隔Δx、並びに前記mを用いて、式:k
x=2πm/(ΔxM)により、前記波数k
xを算出する波数算出部と、
前記波数kの2乗値から、前記波数算出部により算出された前記波数k
xの2乗値を減算し、当該減算結果の平方根を求め、前記再現境界y
refから前記値y
0を減算し、当該減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算し、当該乗算結果の前記第2種0次ハンケル関数H
0
(2)を演算することで、再現音場角度スペクトルを求める再現音場角度スペクトル算出部と、
前記時間サンプルn毎に、前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))を入力し、前記所定のバッファ区間0≦n≦N-1におけるN個の前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))をバッファに格納し、
前記所定のバッファ区間0≦n≦N-1について、
前記波数kの2乗値から、前記波数算出部により算出された前記波数k
xの2乗値を減算し、当該減算結果の平方根を求め、前記再現境界y
refから前記仮想音源座標の値y
s(n)を減算し、当該減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算し、当該乗算結果の前記第2種0次ハンケル関数H
0
(2)を演算し、
前記角周波数ω及び当該時間サンプルnの乗算結果を前記サンプリング周波数f
sで除算して除算結果を求め、前記波数k
x及び前記仮想音源座標の値x
s(n)を乗算し、当該乗算結果から前記除算結果を減算し、当該減算結果を偏角θとし、複素数平面上における前記偏角θの複素数e
jθを算出し、
前記第2種0次ハンケル関数H
0
(2)の演算結果、前記音源信号s(n)及び前記複素数e
jθを乗算することで、当該時間サンプルnの角度スペクトルを求め、前記角度スペクトルをメモリに格納し、
前記メモリから、前記所定のバッファ区間0≦n≦N-1における前記時間サンプルnのそれぞれの前記角度スペクトルを読み出し、前記時間サンプルnのそれぞれの前記角度スペクトルを加算し、当該加算結果を前記サンプリング周波数f
sで除算することで、所望音場角度スペクトルを求める所望音場角度スペクトル算出部と、
前記所望音場角度スペクトル算出部により求めた前記所望音場角度スペクトルを、前記再現音場角度スペクトル算出部により求めた前記再現音場角度スペクトルで除算することで、前記駆動信号の角度スペクトルを求める除算部と、
前記除算部により求めた前記駆動信号の角度スペクトルに対して空間周波数領域で離散逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号を求める空間周波数領域離散逆フーリエ変換部と、
前記空間周波数領域離散逆フーリエ変換部により求めた前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号に対して時間周波数領域で離散逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間領域の駆動信号を求める時間周波数領域離散逆フーリエ変換部と、
を備えたことを特徴とする音場再現装置。
【請求項3】
コンピュータを、請求項1または2に記載の音場再現装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スピーカアレイを用いて、移動する音源によって形成される音場を再現する音場再現装置及びプログラムに関する。
【背景技術】
【0002】
従来、多数のスピーカを用いて、ある空間に任意の音場を形成する音場再現技術に関する研究が進められている。音場再現の主要な技術としては、波面合成法(WFS:Wave Field Synthesis)、境界音場制御(BoSC:Boundary Surface Control)、高次アンビソニックス(HOA:Higher Order Ambisonics)、スペクトル除算法(SDM:Spectral Division Method)等が知られている。
【0003】
図8は、波面合成法(WFS)におけるスピーカアレイの配置例を示す図である。WFSは、レイリー積分に基づいた手法であり、直線状または平面状に配置されたスピーカアレイを用いて、所望音場の境界平面上の音圧または音圧勾配を再現することで、境界外部から到来する音源による波面を形成するものである。
【0004】
図9は、境界音場制御(BoSC)におけるスピーカアレイの配置例を示す図である。BoSCは、キルヒホッフ・ヘルムホルツ積分方程式に基づいた手法である。BoSCは、音場を再現したい領域の外部に、領域内部に向けて聴取者を囲むようにスピーカアレイを配置し、逆システムを用いてその領域の境界面上の音圧及び音圧勾配を制御することで、領域内部に所望音場を再現するものである。
【0005】
図10は、高次アンビソニックス(HOA)におけるスピーカアレイの配置例を示す図である。HOAは、球面調和関数を用いて所望音場を表現し、球面内部に向けて聴取者を囲むように配置した球面スピーカアレイを用いて、再現音場の球面調和係数を所望音場の球面調和係数とマッチングさせることで、音場を再現する手法である。
【0006】
図11は、スペクトル除算法(SDM)におけるスピーカアレイの配置例を示す図である。SDMは、角度スペクトルを用いて所望音場を表現し、直線状または平面状に配置されたスピーカアレイを用いて、再現音場の角度スペクトルを所望音場の角度スペクトルとマッチングさせることで、音場を再現する手法である。SDMの詳細については、例えば非特許文献1を参照されたい。
【0007】
〔SDMにおける駆動信号の算出方法〕
以下、一般的なSDMにおける駆動信号の算出方法について説明する。
図12は、一般的なSDMを説明する図である。
【0008】
xyz空間上のy=y
0,z=z
0に配置された無限直線音源101上の座標r0=(x
0, y
0,z
0)の点において、角周波数ωの駆動信号をD(r0,ω)とする。この場合の座標r=(x,y
ref,z
0)の点における音圧P(r,ω)は、以下の式にて表される。
【数1】
【0009】
ここで、G(r-r0,ω)は、ベクトル(r-r0)で表現される方向及び距離の伝達関数であり、再現音場として自由音場を想定した場合、3次元の自由音場グリーン関数で表現され、以下の式にて表される。
【数2】
kは波数である。
【0010】
音圧P(r,ω)は、駆動信号D(r0,ω)及び伝達関数G(r-r0,ω)の空間上の畳み込みによって得られるものと解釈でき、y=y
refにおいてx軸の方向に沿ってフーリエ変換することにより、以下の角度スペクトル表現P^(k
x,y
ref,z
0,ω)が得られる。
【数3】
【0011】
P^(kx,yref,z0,ω)は、音圧P(r,ω)をy=yrefで空間フーリエ変換することにより得られる角度スペクトルである。また、D^(kx,y0,z0,ω)は、駆動信号D(r0,ω)をy=y0で空間フーリエ変換することにより得られる角度スペクトルである。さらに、G^(kx,yref-y0,z0,ω)は、伝達関数G(r-r0,ω)をy=yrefで空間フーリエ変換することにより得られる角度スペクトルである。kxはx軸方向の波数である。
【0012】
ここで、波面を再現したい所望音場のy=y
refにおける音圧分布を空間フーリエ変換することにより得られる角度スペクトルをP^
d(k
x,y
ref,z
0,ω)とすると、所望音場の波面を再現するための駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)は、以下の式にて表される。
【数4】
【0013】
座標r
s=(x
s,y
s,z
0)に配置された点音源が周波数ωにおいてS(ω)で駆動された場合、所望音場のy=y
refでの角度スペクトルP^
d(k
x,y
ref,z
0,ω)は、以下の式にて表される。
【数5】
【0014】
ここで、H0
(2)は第2種0次ハンケル関数であり、K0は0次変形ベッセル関数である。また、0≦k2-kx
2の場合の音波は、遠方まで伝搬する音波を示し、0>k2-kx
2の場合の音波はエバネッセント波と呼ばれ、振幅が急速に減衰する遠方まで伝搬しない音波を示す。
【0015】
同様に、角度スペクトルG^(k
x,y
ref-y
0,z
0,ω)は、以下の式にて表される。
【数6】
ただし、0>k
2-k
x
2のときは、音源近傍のみに伝搬するエバネッセント波を表しており、エバネッセント波の再現は数値的に不安定になり易いため、一般には省かれることが多い。
【0016】
したがって、駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)は、以下の式にて表す。
【数7】
以下、特に断りなく0>k
2-k
x
2の場合はD^(k
x,y
0,z
0,ω)=0とし、0≦k
2-k
x
2の場合についてのみ説明するものとする。
【0017】
図13は、再現領域及び再現境界を説明する図である。直線状に配置されたスピーカアレイ100が無限直線音源である場合、当該無限直線音源を、前記式(7)の駆動信号を用いて駆動することにより、y≧y
refの領域において音場を再現することができる。このため、ここではy=y
refを再現境界、y≧y
refの領域を再現領域と呼ぶこととする。
【0018】
前記式(7)の駆動信号の角度スペクトルD^(kx,y0,z0,ω)は、無限直線音源を用いて波面合成を行うことを想定しているが、実際には、直線状に配置した有限個のスピーカユニットからなるスピーカアレイ100を用いて実現する。
【0019】
このため、前記式(7)の駆動信号の角度スペクトルD^(kx,y0,z0,ω)において、周波数、角度スペクトルを離散化すると共に、有限長で打ち切り、さらに離散逆フーリエ変換(IDFT:Inverse Discrete Fourier Transform)を行うことで、スピーカユニット毎の時間周波数領域の駆動信号を算出する必要がある。
【0020】
スピーカアレイ100を構成するスピーカユニット数をM(自然数)、スピーカユニットの間隔をΔx、スピーカアレイ長をL(=(M-1)Δx)とする。前記式(7)の駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)に対し、離散逆フーリエ変換を行うことで、xに配置されたスピーカユニットの時間周波数領域の駆動信号D~(x,ω)は、以下の式で表される。
【数8】
ここで、mは、0~M-1(mは整数)であり、k
x
m=2πm/(ΔxM)は、x軸方向の波数である。尚、スピーカアレイ100は、xyz空間において、予め設定されたy=y
0,z=z
0のx軸上に配置される。
【0021】
そして、スピーカアレイ100を構成するスピーカユニット毎に、時間領域の駆動信号が算出される。
【0022】
このようなSDM等の音場再現技術を用いることにより、ユーザが指定する座標に配置される点音源によって形成される音場を再現することができる。しかし、従来のスピーカ駆動信号算出方法によれば、静止した音源によって形成される音場を再現することは可能であるものの、音源が連続的に移動する状況は考慮されていない。
【0023】
計算機を用いて音声信号処理を行う場合、バッファリングされた信号に対して処理を行うことが一般的であり、静止した音源の座標をバッファ毎に移動させることで、断続的に移動する音源によって音場を再現することができる。しかし、この場合に再現される音場は、連続的に移動する音源によって形成される音場とは異なるため、所望音場とは音色が異なるという課題がある。
【0024】
この課題を解決するために、非特許文献2には、SDMをベースとし、移動する音源によって形成される音場の再現方法が提案されている。この音場再現方法では、時刻t=0のときに音源がr
s=(x
s,y
s)に位置する。そして、時刻が-∞≦t≦∞のときに、x軸に対してφ方向に速度vで進行する音源により、y=y
refで形成される音場を再現するための駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)は、以下の式にて表される。
【数9】
ここで、k^=(ω-ω
0)/c、k^
t
2=k^
2-(ω/c)
2である。ω
0は音源の角周波数であり、cは音速である。
【先行技術文献】
【非特許文献】
【0025】
【文献】J.Ahrens, and S.Spors,“Sound field reproduction using planar and linear arrays of loudspeakers”, IEEE Trans. Audio, Speech, Lang. Process., vol.18, no.8, pp.2038-2050, Nov.2010.
【文献】Firtha Gergely and Fiala Peter,“Sound Field Synthesis of Uniformly Moving Virtual Monopoles”,JAES Volume 63 Issue 1/2 pp. 46-53, January 2015
【発明の概要】
【発明が解決しようとする課題】
【0026】
しかしながら、前述の移動する音源によって形成される音場の再現方法における前記式(9)の駆動信号の角度スペクトルでは、音源が無限遠(t=-∞)から無限遠(t=∞)まで等速直線運動が行われることが想定されている。
【0027】
このため、前記式(9)の駆動信号の角度スペクトルにおいて、単純に空間方向に周波数を離散化すると共に、有限長で周波数の打ち切りを行うと、無限個の点音源が、異なる座標に時間エイリアスとして出現してしまう。
【0028】
本来は、1つの移動する音源によって形成される音場を再現するものであるが、同じ速度で移動する等間隔に整列した無限個の点音源によって形成される音場が再現されてしまう。
【0029】
図14は、非特許文献2の音場再現方法により算出された所望音場の例を示す図である。
図14に示すように、前述の離散化及び打ち切り処理により、再現音場には、y=-2.5上をx=-∞からx=∞まで、同じ速度で移動する等間隔に整列した無限個の点音源が時間エイリアスとして出現してしまう。
【0030】
本来の所望音場は、y=-2.5上をx=-∞からx=∞まで等速直線運動で移動する1つの点音源によって形成されるべきである。
【0031】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、SDMによるスピーカアレイの駆動信号を生成する際に、移動する点音源により形成される音場を、時間エイリアスを出現させることなく再現可能な音場再現装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0032】
前記課題を解決するために、請求項1の音場再現装置は、複数のスピーカユニットからなるスピーカアレイを用いて、移動する点音源によって形成される音場を再現するための駆動信号を生成する音場再現装置において、前記スピーカアレイが、xyz空間上のz=z
0のy=y
0上に配置されているものとし、時間サンプルをn、所定のバッファ区間0≦n≦N-1における時間サンプルn毎の音源信号をs(n)及び仮想音源座標を(x
s(n),y
s(n))、再現境界をy=y
ref、サンプリング周波数をf
s、スピーカユニット数をM(Mは自然数)、スピーカユニット間隔をΔx、前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))が格納されるバッファのバッファ長をN、角周波数をω、前記角周波数ωを音速cで除算することで得られる波数をk、x軸方向の波数をk
x、m=0~M-1(mは整数)、第2種0次ハンケル関数をH
0
(2)、前記駆動信号の角度スペクトルをD^(k
x,y
0,z
0,ω)として、予め設定された前記スピーカユニット数M及び前記スピーカユニット間隔Δx、並びに前記mを用いて、式:k
x=2πm/(ΔxM)により、前記波数k
xを算出し、前記所定のバッファ区間0≦n≦N-1における前記音源信号s(n)及び前記仮想音源座標(x
s(n),y
s(n))、予め設定された前記再現境界y
ref、前記サンプリング周波数f
s、前記波数k及び前記値y
0,z
0、並びに前記波数k
x及び前記角周波数ωを用いて、以下の式:
の演算を行うことで、前記駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)を求め
、前記駆動信号の角度スペクトルD^(k
x
,y
0
,z
0
,ω)に対して空間周波数領域で逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号を求め、前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号に対して時間周波数領域で逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間領域の駆動信号を求める、ことを特徴とする。
【0033】
また、請求項2の音場再現装置は、複数のスピーカユニットからなるスピーカアレイを用いて、移動する点音源によって形成される音場を再現するための駆動信号を生成する音場再現装置において、前記スピーカアレイが、xyz空間上におけるz=z0のy=y0上に配置されているものとし、時間サンプルをn、所定のバッファ区間0≦n≦N-1における時間サンプルn毎の音源信号をs(n)及び仮想音源座標を(xs(n),ys(n))、再現境界をy=yref、サンプリング周波数をfs、スピーカユニット数をM(Mは自然数)、スピーカユニット間隔をΔx、前記音源信号s(n)及び前記仮想音源座標(xs(n),ys(n))が格納されるバッファのバッファ長をN、角周波数をω、前記角周波数ωを音速cで除算することで得られる波数をk、x軸方向の波数をkx、m=0~M-1(mは整数)、第2種0次ハンケル関数をH0
(2)、前記駆動信号の角度スペクトルをD^(kx,y0,z0,ω)として、予め設定された前記スピーカユニット数M及び前記スピーカユニット間隔Δx、並びに前記mを用いて、式:kx=2πm/(ΔxM)により、前記波数kxを算出する波数算出部と、前記波数kの2乗値から、前記波数算出部により算出された前記波数kxの2乗値を減算し、当該減算結果の平方根を求め、前記再現境界yrefから前記値y0を減算し、当該減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算し、当該乗算結果の前記第2種0次ハンケル関数H0
(2)を演算することで、再現音場角度スペクトルを求める再現音場角度スペクトル算出部と、前記時間サンプルn毎に、前記音源信号s(n)及び前記仮想音源座標(xs(n),ys(n))を入力し、前記所定のバッファ区間0≦n≦N-1におけるN個の前記音源信号s(n)及び前記仮想音源座標(xs(n),ys(n))をバッファに格納し、前記所定のバッファ区間0≦n≦N-1について、前記波数kの2乗値から、前記波数算出部により算出された前記波数kxの2乗値を減算し、当該減算結果の平方根を求め、前記再現境界yrefから前記仮想音源座標の値ys(n)を減算し、当該減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算し、当該乗算結果の前記第2種0次ハンケル関数H0
(2)を演算し、前記角周波数ω及び当該時間サンプルnの乗算結果を前記サンプリング周波数fsで除算して除算結果を求め、前記波数kx及び前記仮想音源座標の値xs(n)を乗算し、当該乗算結果から前記除算結果を減算し、当該減算結果を偏角θとし、複素数平面上における前記偏角θの複素数ejθを算出し、前記第2種0次ハンケル関数H0
(2)の演算結果、前記音源信号s(n)及び前記複素数ejθを乗算することで、当該時間サンプルnの角度スペクトルを求め、前記角度スペクトルをメモリに格納し、前記メモリから、前記所定のバッファ区間0≦n≦N-1における前記時間サンプルnのそれぞれの前記角度スペクトルを読み出し、前記時間サンプルnのそれぞれの前記角度スペクトルを加算し、当該加算結果を前記サンプリング周波数fsで除算することで、所望音場角度スペクトルを求める所望音場角度スペクトル算出部と、前記所望音場角度スペクトル算出部により求めた前記所望音場角度スペクトルを、前記再現音場角度スペクトル算出部により求めた前記再現音場角度スペクトルで除算することで、前記駆動信号の角度スペクトルを求める除算部と、前記除算部により求めた前記駆動信号の角度スペクトルに対して空間周波数領域で離散逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号を求める空間周波数領域離散逆フーリエ変換部と、前記空間周波数領域離散逆フーリエ変換部により求めた前記スピーカアレイを構成する前記スピーカユニット毎の時間周波数領域の駆動信号に対して時間周波数領域で離散逆フーリエ変換を行うことにより、前記スピーカアレイを構成する前記スピーカユニット毎の時間領域の駆動信号を求める時間周波数領域離散逆フーリエ変換部と、を備えたことを特徴とする。
【0034】
さらに、請求項3のプログラムは、コンピュータを、請求項1または2に記載の音場再現装置として機能させることを特徴とする。
【発明の効果】
【0035】
以上のように、本発明によれば、SDMによるスピーカアレイの駆動信号を生成する際に、移動する点音源により形成される音場を、時間エイリアスを出現させることなく再現することができる。
【図面の簡単な説明】
【0036】
【
図1】本発明の実施形態において想定する音場の構成例を説明する図である。
【
図2】本発明の実施形態による音場再現装置の構成例を示すブロック図である。
【
図3】駆動信号算出部の構成例を示すブロック図である。
【
図4】駆動信号算出部の処理例を示すフローチャートである。
【
図5】再現音場角度スペクトル算出部の構成例を示すブロック図である。
【
図6】所望音場角度スペクトル算出部の構成例を示すブロック図である。
【
図7】バッファに格納されたデータの構成例を示す図である。
【
図8】波面合成法(WFS)におけるスピーカアレイの配置例を示す図である。
【
図9】境界音場制御(BoSC)におけるスピーカアレイの配置例を示す図である。
【
図10】高次アンビソニックス(HOA)におけるスピーカアレイの配置例を示す図である。
【
図11】スペクトル除算法(SDM)におけるスピーカアレイの配置例を示す図である。
【
図13】再現領域及び再現境界を説明する図である。
【
図14】非特許文献2の音場再現方法により算出された所望音場の例を示す図である。
【発明を実施するための形態】
【0037】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。本発明は、SDMによるスピーカアレイの駆動信号を生成する際に、任意の軌道を描いて移動する点音源によって形成される音場を定式化すると共に、時間窓を考慮することを特徴とする。
【0038】
これにより、滑らかに移動する音源によって形成される音場について、ドップラー効果を含めて再現することができるとともに、周波数領域の離散化によって生じる時間エイリアスの出現を防ぐことができる。
【0039】
〔スピーカアレイの駆動信号〕
まず、本発明の実施形態による音場再現装置が生成する、スピーカアレイの駆動信号について説明する。
【0040】
音源信号の時間波形s(t)に対しフーリエ変換を行うことにより、音源信号の周波数応答S(ω
0)が得られるものとする。すなわち、以下の関係が成り立つものとする。
【数10】
【0041】
この音源信号の時間波形s(t)に対し、以下で定義される窓掛けを行う。
【数11】
Tは、時間窓長を示す。
【0042】
【0043】
このようにして得られた音源のモデルに対し、移動する音源に対する畳み込みを想定する。音源が移動することにより、音源と受音点との間のインパルス応答が時間と共に変化するため、この畳み込みは、時変インパルス応答と音源との畳み込みであると言える。
【0044】
図1は、本発明の実施形態において想定する音場の構成例を説明する図である。xy平面(z=0とする)において、時刻tにおける音源の座標をr
s(t)=(x
s(t),y
s(t))とし、音源から受音点の座標r=(x,y)までのインパルス応答をg(r-r
s(t),t)とする。
【0045】
受音点の座標r=(x,y)における応答は、以下の式のとおり、音源信号の時間波形s(t)と時変インパルス応答との畳み込みで表すことができる。
【数13】
【0046】
そして、音源から受音点までの間のインパルス応答g(r-r
s(τ),t-τ)は、時間周波数軸にてフーリエ変換することにより、以下の式で表される。
【数14】
【0047】
さらに、音源から受音点までの間の伝達関数G(r-r
s(τ),ω’)は、x-x
s(τ)でフーリエ変換することで、以下の式のように、音源から受音点までの間の角度スペクトルG^(k
x,y-y
s(τ),ω’)を用いて表現することができる。
【数15】
【0048】
また、受音点の座標r=(x,y)の時刻tにおける音圧p(r,t)は、時間方向にフーリエ変換することにより、以下の式に変形することができる。
【数16】
【0049】
したがって、所望音場の角度スペクトルP^(k
x)は、以下の式で表される。
【数17】
【0050】
ここで、音源から受音点までの間の角度スペクトルG^(k
x,y-y
s(τ),ω)は、以下の式で表される。
【数18】
【0051】
したがって、点音源の座標r
s(t)=(x
s(t),y
s(t))が任意の起動で移動する場合の受音点の座標r=(x,y)における音圧P(r,ω)は、以下の式にて表される。
【数19】
【0052】
また、所望音場の角度スペクトルP^(k
x)は、以下の式にて表される。
【数20】
【0053】
したがって、点音源の座標r
s(t)=(x
s(t),y
s(t))が任意の起動で移動する場合において、この起動により形成される音場を再現する無限直線音源の駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)は、以下の式にて表される。尚、無限直線音源は、xyz空間においてz=z
0のy=y
0上に配置されるものとする。
【数21】
【0054】
実際にコンピュータを用いて駆動信号を算出する場合、音源信号の時間波形s(t)は、通常時間方向に離散化されている。このため、前記式(21)を時間方向に離散化すると、無限直線音源の駆動信号の角度スペクトルD^(k
x,y
0,z
0,ω)は、以下の式で表される。
【数22】
ここで、f
sはサンプリング周波数であり、n(0≦n≦N-1)は時間サンプルであり、τ=n/f
sである。また、Nはバッファ長であり、時間窓長はT=(N-1)/f
sである。
【0055】
前記式(22)において、y0,z0は、予め設定される。つまり、前記式(22)の駆動信号の角度スペクトルD^(kx,y0,z0,ω)は、x軸方向の波数kx及び所定数の角周波数ωを変数として算出される。
【0056】
このように、本発明の実施形態による音場再現装置は、前記式(22)の演算にて、時間周波数及び角度スペクトルを離散化すると共に、有限長での打ち切り(以下、「離散化及び打ち切り処理」という。)を行うことで、x軸方向の波数kx毎の(スピーカユニット数M分の)空間周波数領域における駆動信号を求める。
【0057】
音場再現装置は、駆動信号の角度スペクトルに対し離散逆フーリエ変換を行うことで、スピーカアレイ100を構成するスピーカユニット毎に、時間周波数領域の駆動信号を算出する。そして、音場再現装置は、時間周波数領域の駆動信号に対し離散逆フーリエ変換を行うことで、スピーカユニット毎に、時間領域のスピーカ駆動信号を算出する。これにより、移動する点音源によって形成される音場を再現するためのスピーカ駆動信号が生成される。
【0058】
〔音場再現装置〕
次に、本発明の実施形態による音場再現装置について説明する。
図2は、本発明の実施形態による音場再現装置の構成例を示すブロック図である。この音場再現装置1は、駆動信号算出部10、空間周波数領域離散逆フーリエ変換部11及び時間周波数領域離散逆フーリエ変換部12を備えている。
【0059】
駆動信号算出部10は、予め設定された再現境界yref、サンプリング周波数fs、スピーカユニット数M、スピーカユニット間隔Δx及びバッファ長Nを入力する。また、駆動信号算出部10は、時間サンプルn毎に、仮想音源座標(xs(n),ys(n))及び音源信号s(n)を入力する。仮想音源(点音源)は、任意の軌跡を描いて移動するものとし、その座標が時間サンプルn毎の仮想音源座標(xs(n),ys(n))である。
【0060】
駆動信号算出部10は、前記式(22)の演算を行う際に、x軸方向の波数kx毎に(スピーカユニット数M分の)駆動信号の角度スペクトルD^(kx,y0,z0,ω)を求める。そして、駆動信号算出部10は、x軸方向の波数kx毎の駆動信号の角度スペクトルD^(kx,y0,z0,ω)を空間周波数領域離散逆フーリエ変換部11に出力する。駆動信号算出部10の詳細については後述する。
【0061】
空間周波数領域離散逆フーリエ変換部11は、予め設定されたスピーカユニット数M及びスピーカユニット間隔Δxを入力すると共に、駆動信号算出部10から、x軸方向の波数kx毎の駆動信号の角度スペクトルD^(kx,y0,z0,ω)を入力する。
【0062】
空間周波数領域離散逆フーリエ変換部11は、駆動信号の角度スペクトルD^(kx,y0,z0,ω)に対し離散逆フーリエ変換を行うことで、スピーカアレイ100を構成するスピーカユニット毎の時間周波数領域の駆動信号D~(x,ω)を求める。具体的には、空間周波数領域離散逆フーリエ変換部11は、スピーカユニット数M及びスピーカユニット間隔Δxからスピーカアレイ長L(=MΔx)を算出し、前記式(8)の演算を行う。
【0063】
空間周波数領域離散逆フーリエ変換部11は、スピーカユニット毎の時間周波数領域の駆動信号D~(x,ω)を時間周波数領域離散逆フーリエ変換部12に出力する。
【0064】
時間周波数領域離散逆フーリエ変換部12は、空間周波数領域離散逆フーリエ変換部11からスピーカユニット毎の時間周波数領域の駆動信号D~(x,ω)を入力する。そして、時間周波数領域離散逆フーリエ変換部12は、時間周波数領域の駆動信号D~(x,ω)に対し離散逆フーリエ変換を行うことで、スピーカアレイ100を構成するスピーカユニット毎の時間領域のスピーカ駆動信号を求める。
【0065】
時間周波数領域離散逆フーリエ変換部12は、スピーカユニット毎の時間領域のスピーカ駆動信号を、対応するスピーカアレイ100を構成するスピーカユニットへ出力する。
【0066】
(駆動信号算出部10)
次に、
図2に示した駆動信号算出部10について詳細に説明する。
図3は、駆動信号算出部10の構成例を示すブロック図であり、
図4は、駆動信号算出部10の処理例を示すフローチャートである。
【0067】
この駆動信号算出部10は、x軸方向波数算出部20、波数算出部24、所望音場角度スペクトル算出部21、再現音場角度スペクトル算出部22及び除算部23を備えている。これらの構成部について、
図4のフローチャートを用いて説明する。
【0068】
駆動信号算出部10は、予め設定された再現境界yref、サンプリング周波数fs、スピーカユニット数M、スピーカユニット間隔Δx及びバッファ長Nを入力する(ステップS401)。
【0069】
x軸方向波数算出部20は、予め設定されたスピーカユニット数M及びスピーカユニット間隔Δxを入力する。そして、x軸方向波数算出部20は、スピーカユニット数M及びスピーカユニット間隔Δx、並びにインデックスmを用いて、x軸方向の波数kx(=2πm/(ΔxM))を算出する(ステップS402)。そして、x軸方向波数算出部20は、x軸方向の波数kxを、所望音場角度スペクトル算出部21及び再現音場角度スペクトル算出部22に出力する。波数算出部24は、予め設定されたサンプリング周波数fs及びDFT点数Fを入力する。そして、波数算出部24は、サンプリング周波数fs、DFT点数F及び周波数インデックスl(0~F-1)を用いて、角周波数ω(=2πfsl/F)及び波数k(=ω/c)を算出する(ステップS402)。そして、波数算出部24は、波数kを所望音場角度スペクトル算出部21及び再現音場角度スペクトル算出部22に出力する。
【0070】
ここで、インデックスmは、前記式(8)にて説明したとおり、m=0~M-1(mは整数)である。
【0071】
再現音場角度スペクトル算出部22は、予め設定された再現境界yrefを入力すると共に、波数算出部24から波数k、x軸方向波数算出部20からx軸方向の波数kxを入力する。
【0072】
再現音場角度スペクトル算出部22は、再現境界yref、波数k、x軸方向の波数kx、予め設定された値y0、及び角周波数ωを用いて、前記式(22)の分母に相当する再現音場角度スペクトルを算出する(ステップS403)。前述のとおり、スピーカアレイ100は、xyz空間において予め設定されたz=z0のy=y0上に配置されており、値y0は、スピーカアレイ100が配置されているxyz空間のy値を示す。そして、再現音場角度スペクトル算出部22は、再現音場角度スペクトルを除算部23に出力する。
【0073】
図5は、再現音場角度スペクトル算出部22の構成例を示すブロック図である。この再現音場角度スペクトル算出部22は、算出部40及びメモリ41を備えている。
【0074】
算出部40は、予め設定された再現境界yrefを入力すると共に、波数算出部24から波数k、x軸方向波数算出部20から(スピーカユニット数M分の)x軸方向の波数kxを入力する。
【0075】
算出部40は、以下の式にて、前記式(22)の分母の演算を行うことで、再現音場角度スペクトルを算出し、再現音場角度スペクトルをメモリ41に格納する。
【数23】
【0076】
具体的には、算出部40は、波数kの2乗値からx軸方向の波数kxの2乗値を減算し、減算結果の平方根を求め、再現境界yrefから値y0を減算し、減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算する。そして、算出部40は、乗算結果の第2種0次ハンケル関数H0
(2)を演算することで、再現音場角度スペクトルを求める。この再現音場角度スペクトルは、前記式(18)の音源から受音点までの間の角度スペクトルG^(kx,y-ys(τ),ω)に対応するデータである。
【0077】
このように、再現音場角度スペクトルは、再現境界yref等の予め設定されたパラメータのみを用いて算出される。このため、再現音場角度スペクトルは、当該駆動信号算出部10による駆動信号の角度スペクトルD^(kx,y0,z0,ω)の算出処理に先立って予め算出され、メモリ41に格納される。
【0078】
図3及び
図4に戻って、所望音場角度スペクトル算出部21は、予め設定された再現境界y
ref、サンプリング周波数f
s及びバッファ長Nを入力すると共に、波数算出部24から波数k、x軸方向波数算出部20からx軸方向の波数k
xを入力する。
【0079】
所望音場角度スペクトル算出部21は、バッファ長Nの時間サンプルn毎に、仮想音源座標(xs(n),ys(n))及び音源信号s(n)を入力する(ステップS404)。
【0080】
所望音場角度スペクトル算出部21は、再現境界yref、サンプリング周波数fs、x軸方向の波数kx及び波数k、既に入力済みのバッファ長Nの時間サンプルn毎の仮想音源座標(xs(n),ys(n))及び音源信号s(n)、並びに角周波数ω等を用いて、前記式(22)の分子の演算を行うことで、所望音場角度スペクトルを算出する(ステップS405)。
【0081】
そして、所望音場角度スペクトル算出部21は、所望音場角度スペクトルを除算部23に出力する。
【0082】
図6は、所望音場角度スペクトル算出部21の構成例を示すブロック図である。この所望音場角度スペクトル算出部21は、入力部30、バッファ31、算出部32及びメモリ33を備えている。
【0083】
入力部30は、時間サンプルn毎の仮想音源座標(xs(n),ys(n))及び音源信号s(n)を入力し、これらのデータをバッファ31に格納する。この場合、バッファ31には、常に最新のバッファ長Nの時間サンプルn毎の仮想音源座標(xs(n),ys(n))及び音源信号s(n)が格納されるように、入力部30により格納処理が行われる。
【0084】
図7は、バッファ31に格納されたデータの構成例を示す図である。バッファ31には、バッファ区間0≦n≦N-1のバッファ長Nの各区間において、バッファ区間0に仮想音源座標(x
s(0),y
s(0))及び音源信号s(0)が格納される。同様に、バッファ31には、バッファ区間N-1に仮想音源座標(x
s(N-1),y
s(N-1))及び音源信号s(N-1)が格納される。
【0085】
入力部30は、新たな仮想音源座標(xs(n),ys(n))及び音源信号s(n)を入力する毎に、バッファ31に格納されたバッファ区間0~N-2のデータをバッファ区間1~N-1へシフトする。そして、入力部30は、入力した新たな仮想音源座標(xs(n),ys(n))及び音源信号s(n)を仮想音源座標(xs(0),ys(0))及び音源信号s(0)としてバッファ区間0に格納する。つまり、バッファ31は、時間サンプルn毎に更新されるバッファである。
【0086】
図6に戻って、算出部32は、予め設定された再現境界y
ref、サンプリング周波数f
s及びバッファ長Nを入力すると共に、波数算出部24から波数k、x軸方向波数算出部20からx軸方向の波数k
xを入力する。そして、算出部32は、バッファ31から、バッファ長N毎に、仮想音源座標(x
s(n),y
s(n))及び音源信号s(n)を読み出す。
【0087】
算出部32は、バッファ長N毎に、仮想音源座標(x
s(n),y
s(n))及び音源信号s(n)を用いた以下の式(前記式(22)の分子)にて演算を行い、演算結果をメモリ33に格納する。そして、算出部32は、メモリ33から演算結果を読み出して加算することで、所望音場角度スペクトルを算出する。そして、算出部32は、所望音場角度スペクトルを除算部23に出力する。
【数24】
【0088】
具体的には、算出部32は、波数kの2乗値からx軸方向の波数kxの2乗値を減算し、減算結果の平方根を求め、再現境界yrefから値ys(n)を減算し、減算結果の絶対値を求め、前記平方根及び前記絶対値を乗算する。そして、算出部32は、乗算結果の第2種0次ハンケル関数H0
(2)を演算する。
【0089】
算出部32は、角周波数ω及び時間サンプルnの乗算結果をサンプリング周波数fsで除算して除算結果を求め、x軸方向の波数kx及び値xs(n)を乗算し、この乗算結果から前記除算結果を減算し、減算結果を偏角θ(=kxxs(n)-ωn/fs)とする。そして、算出部32は、複素数平面上における偏角θの複素数ejθを算出する。
【0090】
算出部32は、第2種0次ハンケル関数H0
(2)の演算結果、音源信号s(n)及び複素数ejθを乗算することで、バッファ長Nの時間サンプルn毎に角度スペクトルを求め、これをメモリ33に格納する。
【0091】
算出部32は、バッファ長Nの全ての時間サンプルnについての角度スペクトルの算出処理が完了すると、メモリ33からバッファ長Nのバッファ区間0≦n≦N-1における時間サンプルn毎の角度スペクトルを読み出す。そして、算出部32は、これらを加算し、サンプリング周波数fsで除算することで、所望音場角度スペクトルを求める。この所望音場角度スペクトルは、前記式(20)の所望音場の角度スペクトルP^(kx)に対応するデータである。
【0092】
このように、所望音場角度スペクトルは、再現境界yref等の予め設定されたパラメータ、並びにバッファ長Nの仮想音源座標(xs(n),ys(n))及び音源信号s(n)を用いて、バッファ長N毎に算出される。
【0093】
図3及び
図4に戻って、除算部23は、所望音場角度スペクトル算出部21から所望音場角度スペクトルを入力すると共に、再現音場角度スペクトル算出部22から再現音場角度スペクトルを入力する。
【0094】
具体的には、除算部23は、所望音場角度スペクトル算出部21から、バッファ長N毎に所望音場角度スペクトルを入力する。また、除算部23は、当該除算部23の除算による駆動信号の角度スペクトルD^(kx,y0,z0,ω)の算出処理に先立って、再現音場角度スペクトル算出部22のメモリ41から再現音場角度スペクトルを読み出す。
【0095】
除算部23は、バッファ長N毎の所望音場角度スペクトルを再現音場角度スペクトルで除算し、駆動信号の角度スペクトルD^(kx,y0,z0,ω)を求め、これを空間周波数領域離散逆フーリエ変換部11に出力する(ステップS406)。
【0096】
駆動信号算出部10は、所定の終了条件を満たさない限り(ステップS407:N)、ステップS404へ移行する。そして、駆動信号算出部10は、次のバッファ長Nについて駆動信号の角度スペクトルD^(kx,y0,z0,ω)を求めるステップS404~S406の処理を繰り返す。一方、駆動信号算出部10は、所定の終了条件を満たす場合(ステップS407:Y)、処理を終了する。
【0097】
以上のように、本発明の実施形態の音場再現装置1によれば、駆動信号算出部10は、予め設定されたスピーカユニット数M及びスピーカユニット間隔Δxに基づいて、x軸方向の波数kx(=2πm/(ΔxM))を算出し、予め設定されたサンプリング周波数fs及びDFT点数F等に基づいて、角周波数ω(=2πfsl/F)及び波数k(=ω/c)を算出する。そして、駆動信号算出部10は、x軸方向の波数kx(=2πm/(ΔxM))、予め設定された再現境界yref、サンプリング周波数fs、バッファ長N及び波数k(=ω/c)、並びにバッファ長Nの時間サンプルn毎の仮想音源座標(xs(n),ys(n))及び音源信号s(n)等を用いて、前記式(22)の演算を行うことで、x軸方向の波数kx毎の駆動信号の角度スペクトルD^(kx,y0,z0,ω)を求める。
【0098】
空間周波数領域離散逆フーリエ変換部11は、x軸方向の波数kx毎の駆動信号の角度スペクトルD^(kx,y0,z0,ω)に対し空間周波数領域離散逆フーリエ変換を行うことで、スピーカユニット毎の時間周波数領域の駆動信号D~(x,ω)を求める。
【0099】
時間周波数領域離散逆フーリエ変換部12は、スピーカユニット毎の時間周波数領域の駆動信号D~(x,ω)に対し時間周波数領域離散逆フーリエ変換を行うことで、スピーカユニット毎の時間領域のスピーカ駆動信号を求める。そして、時間周波数領域離散逆フーリエ変換部12は、スピーカ駆動信号を、スピーカアレイ100を構成するスピーカユニットへ出力する。
【0100】
このように、本発明の実施形態では、SDMによるスピーカアレイ100の駆動信号を生成する際に、移動する点音源によって形成される音場を定式化し、時間サンプルn(=0~N-1)毎の窓関数を考慮した前記式(22)を用いるようにした。
【0101】
前述のとおり、従来の前記式(9)の駆動信号を用いて音場を再現した場合、空間方向に周波数を離散化したときに時間エイリアスが出現する。これに対し、本発明の実施形態の前記式(22)を用いた場合には、窓関数を考慮しているため、時間エイリアスが生じる時刻で無音とすることができる。
【0102】
本発明の実施形態では、SDMによるスピーカアレイの駆動信号を生成する際に、移動する点音源により形成される音場を、時間エイリアスを出現させることなく再現することができる。
【0103】
以上、実施形態を挙げて本発明を説明したが、本発明は前記実施形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。
【0104】
尚、本発明の実施形態による音場再現装置1のハードウェア構成としては、通常のコンピュータを使用することができる。音場再現装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【0105】
音場再現装置1に備えた駆動信号算出部10、空間周波数領域離散逆フーリエ変換部11及び時間周波数領域離散逆フーリエ変換部12の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。
【0106】
これらのプログラムは、前記記憶媒体に格納されており、CPUに読み出されて実行される。また、これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD-ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【0107】
1 音場再現装置
10 駆動信号算出部
11 空間周波数領域離散逆フーリエ変換部
12 時間周波数領域離散逆フーリエ変換部
20 x軸方向波数算出部
21 所望音場角度スペクトル算出部
22 再現音場角度スペクトル算出部
23 除算部
24 波数算出部
30 入力部
31 バッファ
32,40 算出部
33,41 メモリ
100-1,100-2,100-3,100-4,100 スピーカアレイ
101 無限直線音源
D^(kx,y0,z0,ω) 駆動信号の角度スペクトル
P^(kx) 所望音場の角度スペクトル
G^(kx,y-ys(τ),ω) 音源から受音点までの間の角度スペクトル
D~(x,ω) 時間周波数領域の駆動信号
n 時間サンプル
s(n) 音源信号
(xs(n),ys(n)) 仮想音源座標
yref 再現境界
fs サンプリング周波数
M スピーカユニット数
Δx スピーカユニット間隔
N バッファ長
kx x軸方向の波数
ω 角周波数
k 波数
H0
(2) 第2種0次ハンケル関数
K0 0次変形ベッセル関数