(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6015431
(24)【登録日】2016年10月7日
(45)【発行日】2016年10月26日
(54)【発明の名称】サンプリングレート変換装置及びプログラム
(51)【国際特許分類】
H03H 17/00 20060101AFI20161013BHJP
H03H 17/06 20060101ALI20161013BHJP
H03H 17/02 20060101ALI20161013BHJP
【FI】
H03H17/00 621A
H03H17/00 601E
H03H17/06 681G
H03H17/06 613K
H03H17/02 671C
【請求項の数】5
【全頁数】12
(21)【出願番号】特願2012-282399(P2012-282399)
(22)【出願日】2012年12月26日
(65)【公開番号】特開2014-127804(P2014-127804A)
(43)【公開日】2014年7月7日
【審査請求日】2015年6月17日
(73)【特許権者】
【識別番号】710014351
【氏名又は名称】オンキヨー株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】特許業務法人YKI国際特許事務所
(72)【発明者】
【氏名】日月 伸也
【審査官】
▲高▼橋 義昭
(56)【参考文献】
【文献】
特開2008−20913(JP,A)
【文献】
特開2008−17511(JP,A)
【文献】
米国特許第5524149(US,A)
【文献】
特開2005−108295(JP,A)
【文献】
特開2009−141445(JP,A)
【文献】
国際公開第2012/157427(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03H 17/00
H03H 17/02
H03H 17/06
(57)【特許請求の範囲】
【請求項1】
入力デジタル信号を複数のパーティションに分割する第1信号分割部と、
前記第1信号分割部で生成された複数の信号パーティションのそれぞれを高速フーリエ変換する信号FFT部と、
前記信号FFT部で生成されたそれぞれの信号をさらに複数の信号パーティションに分割する第2信号分割部と、
デジタルフィルタを複数のパーティションに分割する第1フィルタ分割部と、
前記第1フィルタ分割部で生成された複数のフィルタパーティションをさらに複数のフィルタパーティションに分割する第2フィルタ分割部と、
前記第2フィルタ分轄部で生成された複数のフィルタパーティションのそれぞれを高速フーリエ変換するフィルタFFT部と、
前記第2信号分割部で生成された信号パーティションと、前記フィルタFFT部で生成されたフィルタパーティションの畳み込み演算を行う畳み込み部と、
前記畳み込み部で生成された信号を逆高速フーリエ変換する逆FFT部と、
を備え、
前記第1信号分割部と前記第1フィルタ分割部の分割数D1は互いに同一であり、前記第2信号分割部と前記第2フィルタ分割部の分割数D2は互いに同一であり、かつ、分割数D1及び分割数D2は、前記入力デジタル信号のサンプリングレートに応じて設定されることを特徴とするサンプリングレート変換装置。
【請求項2】
前記分割数D1は、前記入力デジタル信号のサンプリングレートと、出力すべき所望のサンプリングレートとの変換比率に応じて設定され、前記分割数D2は、前記FFT部における所定のタップ数に応じて設定されることを特徴とする請求項1に記載のサンプリングレート変換装置。
【請求項3】
前記入力デジタル信号のサンプリングレートを検出する検出部と、
前記入力デジタル信号のサンプリングレートと、前記分割数D1及び分割数D2との関係を予め規定するテーブルを記憶する記憶部と、
前記記憶部に記憶された前記テーブルを参照することで、前記検出部で検出されたサンプリングレートに応じた前記分割数D1及び分割数D2を設定する設定部
をさらに備えることを特徴とする請求項1,2のいずれかに記載のサンプリングレート変換装置。
【請求項4】
前記第1信号分割部は、少なくとも前記入力デジタル信号を奇数成分と偶数成分に分割し、
前記第1フィルタ分割部は、少なくとも前記デジタルフィルタを奇数成分と偶数成分に分割し、
前記第2信号分割部は、複数の信号パーティションを時間領域で分割し、
前記第2フィルタ分割部は、複数のフィルタパーティションを時間領域で分割する
ことを特徴とする請求項1〜3のいずれかに記載のサンプリングレート変換装置。
【請求項5】
入力デジタル信号のサンプリングレートを所望のサンプリングレートに変換して出力する処理をコンピュータに実行させるプログラムであって、前記プログラムは、コンピュータのプロセッサに、
入力デジタル信号を複数のパーティションに分割させる第1信号分割ステップと、
前記第1信号分割ステップで生成された複数の信号パーティションのそれぞれを高速フーリエ変換させる信号FFTステップと、
前記信号FFTステップで生成された複数の信号パーティションをさらに複数の信号パーティションに分割させる第2信号分割ステップと、
デジタルフィルタを複数のパーティションに分割させる第1フィルタ分割ステップと、
前記第1フィルタ分割ステップで生成された複数のフィルタパーティションをさらに複数のフィルタパーティションに分割させる第2フィルタ分割ステップと、
前記第2フィルタ分轄ステップで生成された複数のフィルタパーティションのそれぞれを高速フーリエ変換させるフィルタFFTステップと、
前記第2信号分割ステップで生成された信号パーティションと、前記フィルタFFTステップで生成されたフィルタ成分の畳み込み演算を実行させる畳み込みステップと、
前記畳み込みステップで生成された信号を逆高速フーリエ変換させる逆FFTステップ
を実行させ、
前記第1信号分割ステップと前記第1フィルタ分割ステップの分割数D1は互いに同一であり、前記第2信号分割ステップと前記第2フィルタ分割ステップの分割数D2は互いに同一であり、かつ、分割数D1及び分割数D2は、前記入力デジタル信号のサンプリングレートに応じて設定されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サンプリングレート変換装置及びプログラムに関する。
【背景技術】
【0002】
デジタル信号処理は、携帯音楽プレーヤやタブレット端末等の電子機器で広く用いられており、これらの電子機器の中には、複数のサンプリングレートを用いるものがある。この場合、あるサンプリングレートでサンプリングした信号を、異なるサンプリングレートで動作する他の処理向けに変換する必要が生じる。例えば、あるサンプリングレートの信号を使用する処理があり、元のサンプリングレートがそれよりも高い場合には、元のサンプリングレートを減じるダウンサンプリングを行う必要がある。
【0003】
ダウンサンプリングあるいはアップサンプリング等のデジタル信号処理では、多くの場合、デジタルフィルタとしてFIR(有限インパルス応答)フィルタが用いられている。
【0004】
FIRフィルタでは、入力サンプルは遅延要素のZ変換表現に相当するレジスタの列を通過する。フィルタの動作は、最も新しいN個のサンプルデータに対して定数の配列(タップ係数)を乗算し、得られた配列の要素を全て加算する。係数の重みとフィルタのタップ数を変化させることで、FIRフィルタが任意の周波数応答特性を実現することができる。但し、タップ数の増大に伴って回路規模や消費電力が増大してしまう。
【0005】
そこで、FIRフィルタをいくつかの小さな要素に分割し、これらの要素から得られた結果を組み合わせることで、必要なフィルタ処理を実現するポリフェーズフィルタが提案されている。
【0006】
また、FIRフィルタリングでデジタル信号を処理する際に、入力デジタル信号を時間領域内でパーティションするとともに、FIRフィルタリング部を時間領域内でパーティションし、入力デジタル信号のパーティションの各々をフーリエ変換し、フィルタリング部のパーティションの各々をフーリエ変換し、周波数領域で畳み込みを行うことでスペクトルパーティンを取得し、得られたスペクトルパーティションを結合することで、全スペクトルを取得する技術も提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−141445号公報
【特許文献2】特許第3636361号
【特許文献3】米国特許第5502747号
【特許文献4】米国特許第4992967号
【特許文献5】特開2008−20913号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
周波数領域でのパーティションされた入力デジタル信号とフィルタとの畳み込みは、時間領域での畳み込みと比べて効率的に処理することが可能であるが、依然としてタップ数が増大すると処理効率が低下する問題を内在している。
【0009】
図4に、周波数領域でのパーティションされた信号の畳み込み処理の基本構成を示す。入力デジタル信号(サンプル数N)は、FFT演算器10でFFT処理され、乗算器12に供給される。また、FFT処理された信号は、遅延要素14で遅延されて乗算器16に供給され、さらに、遅延要素18で遅延されて乗算器20に供給される。
【0010】
また、フィルタ係数22はデジタル化され、時間領域でいくつかのパーティションに分けられる。図では、入力デジタル信号が時間領域で3つのパーティションに分けられていることに対応して、同様に3つのパーティションに分けられる。フィルタ係数22の各々のパーティションは、FFT演算器24,26,28でFFT処理され、各々乗算器12、16、20に供給される。
【0011】
FFT演算器10で演算処理された入力デジタル信号とFFT演算器24でFFT処理されフィルタ係数パーティションは、乗算器12で乗算されて加算器30に供給される。また、FFT演算器10で演算処理され、遅延要素14で遅延処理された入力デジタル信号とFFT演算器26でFFT処理されたフィルタ係数パーティションは、乗算器16で乗算されて加算器30に供給される。さらに、FFT演算器10で演算処理され、遅延要素14及び遅延要素18で遅延処理された入力デジタル信号とFFT演算器28でFFT処理されたフィルタ係数パーティションは、乗算器20で乗算されて加算器30に供給される。加算器30は、これらの乗算結果を互いに加算し、逆FFT演算器(IFFT)32に供給する。逆FFT演算器32は、加算器30からの周波数領域の信号を時間領域の信号に復元し、出力信号(サンプル数N)を出力する。
【0012】
通常の時間領域の畳み込みでは、フィルタ長がMタップの場合、1サンプル当たりの計算量はフィルタ長に比例してO(M)となるところ、周波数領域での畳み込みでは、1サンプル当たりの計算量はO(2*log
2(M))となって計算時間を削減できる。ここで、OはランダウのO−記法であり、O(M)はアルゴリズムの処理時間がMのオーダであることを示す。例えば、M=1024の場合、2*log
2(1024)=20であるから、計算時間は1/50となる。
【0013】
図5に、このような周波数領域での畳み込み処理を前提とした、ダウンサンプリングの基本構成を示す。
図4の構成に加え、逆FFT演算器32の前段に間引き係数kの間引き回路34を付加した構成である。加算器30からの周波数領域の信号は間引き回路34に供給され、間引き回路34で所望のサンプリング数まで間引き処理されて逆FFT演算器32に供給される。
【0014】
しかしながら、周波数領域での畳み込み処理は、時間領域での畳み込みに比べれば高速であるものの、より処理時間を短縮する方法が望まれる。特に、FFT演算器を実装した場合のパフォーマンスはフィルタのタップ数に大きく依存し、タップ数が所定の値ないしその近傍にある場合に最も処理速度あるいはパフォーマンスが高く、それ以下でもそれ以上でもパフォーマンスが低下し、特にタップ数が所定の値を超えて増大する場合には著しく低下することが知られており、本来ではFFTを実装する場合にはそのパフォーマンスをも考慮してタップ数を決定する必要があるところ、従来においてはこの点における考慮が十分になされていない問題があった。そして、このような処理時間の遅延は、後段の処理にも影響を与え、ひいては携帯音楽プレーヤやタブレット端末等の電子機器に対するユーザの満足感を低下させる一因ともなり得る。
【0015】
本発明の目的は、従来以上に処理時間を短縮してサンプリングレートを変換できるサンプリングレート変換装置及びプログラムを提供することにある。
【課題を解決するための手段】
【0016】
本発明は、入力デジタル信号を複数のパーティションに分割する第1信号分割部と、前記第1信号分割部で生成された複数の信号パーティションのそれぞれを高速フーリエ変換する信号FFT部と、前記信号FFT部で生成されたそれぞれの信号をさらに複数の信号パーティションに分割する第2信号分割部と、デジタルフィルタを複数のパーティションに分割する第1フィルタ分割部と、前記第1フィルタ分割部で生成された複数のフィルタパーティションをさらに複数のフィルタパーティションに分割する第2フィルタ分割部と、前記第2フィルタ分轄部で生成された複数のフィルタパーティションのそれぞれを高速フーリエ変換するフィルタFFT部と、前記第2信号分割部で生成された信号パーティションと、前記フィルタFFT部で生成されたフィルタパーティションの畳み込み演算を行う畳み込み部と、前記畳み込み部で生成された信号を逆高速フーリエ変換する逆FFT部とを備え、前記第1信号分割部と前記第1フィルタ分割部の分割数D1は互いに同一であり、前記第2信号分割部と前記第2フィルタ分割部の分割数D2は互いに同一であり、かつ、分割数D1及び分割数D2は、前記入力デジタル信号のサンプリングレートに応じて設定されることを特徴とする。
【0017】
本発明の1つの実施形態では、前記分割数D1は、前記入力デジタル信号のサンプリングレートと、出力すべき所望のサンプリングレートとの変換比率に応じて設定され、前記分割数D2は、前記FFT部における所定のタップ数に応じて設定されることを特徴とする。
【0018】
また、本発明の他の実施形態では、前記入力デジタル信号のサンプリングレートを検出する検出部と、前記入力デジタル信号のサンプリングレートと、前記分割数D1及び分割数D2との関係を予め規定するテーブルを記憶する記憶部と、前記記憶部に記憶された前記テーブルを参照することで、前記検出部で検出されたサンプリングレートに応じた前記分割数D1及び分割数D2を設定する設定部をさらに備えることを特徴とする。
【0019】
また、本発明のさらに他の実施形態では、前記第1信号分割部は、少なくとも前記入力デジタル信号を奇数成分と偶数成分に分割し、前記第1フィルタ分割部は、少なくとも前記デジタルフィルタを奇数成分と偶数成分に分割し、前記第2信号分割部は、複数の信号パーティションを時間領域で分割し、前記第2フィルタ分割部は、複数のフィルタパーティションを時間領域で分割することを特徴とする。
【0020】
また、本発明は、入力デジタル信号のサンプリングレートを所望のサンプリングレートに変換して出力する処理をコンピュータに実行させるプログラムであって、前記プログラムは、コンピュータのプロセッサに、入力デジタル信号を複数のパーティションに分割させる第1信号分割ステップと、前記第1信号分割ステップで生成された複数の信号パーティションのそれぞれを高速フーリエ変換させる信号FFTステップと、前記信号FFTステップで生成された複数の信号パーティションをさらに複数の信号パーティションに分割させる第2信号分割ステップと、デジタルフィルタを複数のパーティションに分割させる第1フィルタ分割ステップと、前記第1フィルタ分割ステップで生成された複数のフィルタパーティションをさらに複数のフィルタパーティションに分割させる第2フィルタ分割ステップと、前記第2フィルタ分轄ステップで生成された複数のフィルタパーティションのそれぞれを高速フーリエ変換させるフィルタFFTステップと、前記第2信号分割ステップで生成された信号パーティションと、前記フィルタFFTステップで生成されたフィルタ成分の畳み込み演算を実行させる畳み込みステップと、前記畳み込みステップで生成された信号を逆高速フーリエ変換させる逆FFTステップを実行させ、前記第1信号分割ステップと前記第1フィルタ分割ステップの分割数D1は互いに同一であり、前記第2信号分割ステップと前記第2フィルタ分割ステップの分割数D2は互いに同一であり、かつ、分割数D1及び分割数D2は、前記入力デジタル信号のサンプリングレートに応じて設定されることを特徴とすることを特徴とする。
【発明の効果】
【0021】
本発明によれば、入力デジタル信号をフィルタ処理して出力デジタル信号を生成する際に、入力デジタル信号及びデジタルフィルタのそれぞれを第1分割及び第2分割してパーティションとし、信号パーティションとフィルタパーティションをFFT処理して周波数領域に変換し、周波数領域で畳み込み演算するので、時間領域での畳み込みに比べて処理を高速化できる。また、入力デジタル信号及びデジタルフィルタのそれぞれを第1分割し、この第1分割の分割数でポリフェーズフィルタリングを行うことで所望のサンプリングレートに変換することができる。さらに、第1分割により得られたパーティションを第2分割することでFFTのタップ数を調整でき、FFT演算の高速化あるいは効率化を図ることができる。
【図面の簡単な説明】
【0022】
【
図1】実施形態におけるサンプリング変換装置の構成図である。
【
図2】FFT処理のタップ数と処理速度との関係を示すグラフ図である。
【
図3】一般化したサンプリング変換装置の構成図である。
【
図4】周波数領域での畳み込み処理の基本構成図である。
【
図5】周波数領域での畳み込み処理を用いたダウンサンプリングの構成図である。
【発明を実施するための形態】
【0023】
以下、図面に基づき本発明の実施形態について、携帯音楽プレーヤやタブレット端末等の電子機器に組み込まれる場合を例にとり、かつ、入力デジタル信号のサンプリングレートを1/2に変換するダウンサンプリングの場合を例にとり説明する。但し、本発明のサンプリングレート変換装置は、これに限定されるものではない。
【0024】
図1に、本実施形態におけるサンプリングレート変換装置の構成図を示す。基本となる構成は、
図4に示す周波数領域で畳み込み処理を行う構成であるが、ダウンサンプリングを行う際に、
図5に示すように間引き回路34を設けることなく、ポリフェーズフィルタ構成を用いてダウンサンプリングを実現している。
【0025】
図1において、入力デジタル信号(サンプル数N)は、奇数番目のサンプル(Odd)と偶数番目のサンプル(Even)に2分割される。奇数番目のサンプルは、FFT演算器100でFFT処理され、乗算器112に供給される。また、FFT処理された信号は、遅延要素114で遅延されて乗算器116に供給され、さらに、遅延要素114で遅延された信号は、遅延要素118で遅延されて乗算器120に供給される。すなわち、FFT演算器100でFFT処理された信号は、時間領域でさらに3つのパーティションに分割される。
【0026】
また、入力デジタル信号の偶数番目のサンプルは、FFT演算器200でFFT処理され、乗算器212に供給される。また、FFT処理された信号は、遅延要素214で遅延されて乗算器216に供給され、さらに、遅延要素214で遅延された信号は、遅延要素218で遅延されて乗算器220に供給される。すなわち、FFT演算器200でFFT処理された信号は、時間領域でさらに3つのパーティションに分割される。
【0027】
なお、図示していないが、入力デジタル信号のうち、奇数番目のサンプルと偶数番目のサンプルが分岐する分岐点Pには切替スイッチが設けられ、この切替スイッチの接点を切り替えることで奇数番目のサンプルをFFT演算器100に供給し、偶数番目のサンプルをFFT演算器200に供給する。
【0028】
他方、フィルタ22(図ではアナログ波形として示されるが、実際にはデジタル化されたデジタルフィルタ)は、入力デジタル信号と同様に、奇数番目のフィルタ成分(Hodd)150と偶数番目のフィルタ成分(Heven)250に分割される。また、入力デジタル信号の奇数番目のサンプル及び偶数番目のサンプルが、それぞれ遅延要素114,118,214,218で3つのパーティションに分けられていることに対応して、同様にそれぞれ3つのパーティションに分けられる。すなわち、奇数番目のフィルタHodd150は、Hodd1(154)、Hodd2(156)、Hodd3(158)に時間領域で分けられ、かつ、偶数番目のフィルタHeven250は、Heven1(254)、Heven2(256)、Heven3(258)に時間領域で分けられる。
【0029】
奇数番目と偶数番目に分割され、さらに時間領域で3分割されたフィルタは、それぞれFFT演算器124〜228でFFT処理される。すなわち、フィルタパーティションHodd1(154)はFFT演算器124でFFT処理されて乗算器112に供給される。フィルタパーティションHodd2(156)はFFT演算器126でFFT処理されて乗算器116に供給される。フィルタパーティションHodd3(158)はFFT演算器128でFFT処理されて乗算器120に供給される。同様に、フィルタパーティションHeven1(254)はFFT演算器224でFFT処理されて乗算器212に供給される。フィルタパーティションHeven2(256)はFFT演算器226でFFT処理されて乗算器216に供給される。フィルタパーティションHeven3(258)はFFT演算器228でFFT処理されて乗算器220に供給される。
【0030】
FFT演算器100でFFT処理された入力デジタル信号の奇数番目の信号とFFT演算器124でFFT処理されフィルタパーティションは、乗算器112で乗算されて加算器130に供給される。また、FFT演算器100でFFT処理され、遅延要素114で遅延処理された入力デジタル信号の奇数番目の信号とFFT演算器126でFFT処理されたフィルタパーティションは、乗算器116で乗算されて加算器130に供給される。さらに、FFT演算器100で演算処理され、遅延要素114及び遅延要素118で遅延処理された入力デジタル信号の奇数番目の信号とFFT演算器128でFFT処理されたフィルタパーティションは、乗算器120で乗算されて加算器130に供給される。加算器130は、これらの乗算結果を互いに加算し、加算器260に供給する。同様に、FFT演算器200でFFT処理された入力デジタル信号の偶数番目の信号とFFT演算器224でFFT処理されフィルタパーティションは、乗算器212で乗算されて加算器230に供給される。また、FFT演算器200でFFT処理され、遅延要素214で遅延処理された入力デジタル信号の偶数番目の信号とFFT演算器226でFFT処理されたフィルタパーティションは、乗算器216で乗算されて加算器230に供給される。さらに、FFT演算器200で演算処理され、遅延要素214及び遅延要素218で遅延処理された入力デジタル信号の偶数番目の信号とFFT演算器228でFFT処理されたフィルタパーティションは、乗算器220で乗算されて加算器230に供給される。加算器230は、これらの乗算結果を互いに加算し、加算器260に供給する。
【0031】
加算器260は、加算器130からの奇数番目の信号についての処理結果と、加算器230からの偶数番目の信号についての処理結果を加算して結合し、逆FFT演算器(IFFT)270に供給する。逆FFT演算器270は、加算器260からの周波数領域の信号を時間領域の信号に復元し、出力信号(サンプル数N/2)を出力する。
【0032】
本実施形態において、自然数iをインデックスとして、入力デジタル信号をxi(n)とすると、奇数番目のサンプルx1(n)、x3(n)、x5(n)、・・・はFFT演算器100でFFT処理されて周波数領域の信号Xi(ω)(以下、これを奇数成分と適宜称する)に変換される。また、偶数番目のサンプルx2(n)、x4(n)、x6(n)、・・・はFFT演算器200でFFT処理されて周波数領域の信号Xi(ω)(以下、これを偶数成分と適宜称する)に変換される。
【0033】
他方、フィルタパーティションも、奇数番目のフィルタHodd及び偶数番目のフィルタHevenがさらに時間領域でそれぞれ3分割され、FFT演算器でFFT処理されて、Hi(ω)に変換される。入力デジタル信号の信号パーティションXi(ω)の個数と、フィルタパーティションHi(ω)の個数はともに6個で同一である。
【0034】
本実施形態では、FFT処理された信号パーティションXi(ω)と、これに対応するFFT処理されたフィルタパーティションHi(ω)は、乗算器112〜220及び加算器130,230を用いて畳み込み演算されることで奇数成分及び偶数成分の畳み込み結果Yi(ω)が得られる。出力信号は、これらの信号を加算器260で結合し、さらに逆FFT演算器270で時間領域の信号に復元することで得られる。すなわち、出力信号をy(m)とすると、
y(m)=IFFT(Y(ω))
Y(ω)=ΣYi(ω)=Σ{Xi(ω) *Hi(ω)}
である。ここで、IFFTは逆FFTを表し、*は畳み込みを表す。
【0035】
入力デジタル信号及びフィルタがそれぞれ奇数番目と偶数番目の2つのパーティションに分けられて処理されるポリフェーズフィルタ構成であるため、出力信号y(m)のサンプル数は、入力デジタル信号のサンプル数の1/2である。すなわち、通常の畳み込みでは、Xi(ω)の奇数成分及び偶数成分と、Hi(ω)の奇数成分と偶数成分の畳み込みとなるため、
(Xi(ω)の奇数成分)×(Hi(ω)の奇数成分)
+(Xi(ω)の奇数成分)×(Hi(ω)の偶数成分)
+(Xi(ω)の偶数成分)×(Hi(ω)の奇数成分)
+(Xi(ω)の偶数成分)×(Hi(ω)の偶数成分)
となるところ、
図1の構成では、
(Xi(ω)の奇数成分)×(Hi(ω)の奇数成分)
+(Xi(ω)の偶数成分)×(Hi(ω)の偶数成分)
のみを演算しており、
(Xi(ω)の奇数成分)×(Hi(ω)の偶数成分)
及び
(Xi(ω)の偶数成分)×(Hi(ω)の奇数成分)
が演算されず削除されるため、演算の結果得られるンプル数が1/2となるからである。
【0036】
また、本実施形態では、入力デジタル信号の奇数番目及び偶数番目のサンプルを、それぞれ時間領域で3つのパーティションに分け、これに応じて、フィルタの奇数番目及び偶数番目を、それぞれ時間領域で3つのパーティションに分けているため、FFT演算器124〜228におけるタップ数を適当な長さまで小さくすることが可能となり、これによりFFTのパフォーマンスを向上させることができる。
【0037】
図2に、汎用のマイクロプロセッサでFFT演算を行う際の、タップ数と処理速度(図ではスピードと略して記す)との関係を示す。タップ数が増大するに従って処理速度は増大し、所定のタップ数Nthあるいはその近傍において処理速度が最大となり、タップ数がさらに増大すると逆に処理速度は急峻に減少していく傾向を示す。もちろん、マイクロプロセッサの種類に応じて、処理速度が最大となるタップ数Nthは変わり得る。
【0038】
従って、FFT演算器124〜228として用いられるマイクロプロセッサに応じ、その処理速度が最大となるタップ数Nthと同一あるいはそれに近いタップに設定することで、ダウンサンプリングを行いつつ効率的なFFT処理が可能となる。本実施形態では、Nthが例えば4096であるとすると、フィルタをまず偶数番目と奇数番目に3分割し、次に時間領域でそれぞれ3分割して合計6個のフィルタパーティションに分割しており、当初のフィルタの総タップ数を24576であるとすると、FFT演算器124〜228におけるタップ数は、24576/6=4096となり、それぞれのFFT演算器124〜228における演算速度を最大化することが可能となる。
【0039】
本実施形態では、入力デジタル信号及びフィルタのそれぞれに対し、まず奇数番目と偶数番目に2分割し、その後に、時間領域で3分割しているが、前者の分割を第1分割、後者の分割を第2分割とすると、第1分割の分割数はダウンサンプリングする際の間引き係数kに応じて決定され、第2分割の分割数は、当該間引き係数kと、FFT演算器において処理速度が最大となるタップ数に応じて決定されることになる。なお、入力デジタル信号とフィルタとで、第1分割と第2分割の分割数は互いに等しくなる。
【0040】
本実施形態では、サンプル数を1/2とするダウンサンプリングを行うために第1分割の分割数を2とし、第2分割の分割数を3としているが、例えばサンプル数を1/8とするダウンサンプリングを行う場合には以下のようになる。
【0041】
すなわち、間引き係数kがk=8であるため、第1分割の分割数を8とする。つまり、入力デジタル信号をまず8個のパーティションに分割する。8個のパーティションに分割する方法は任意であり、例えばまず奇数番目と偶数番目に分割し、それぞれについてさらに4個のパーティションに分割してもよい。次に、第2分割の分割数を3とする。つまり、8個の入力デジタル信号パーティションに対し、FFT処理した後に、それぞれ時間領域で3個に分割する。同様にして、フィルタに対しても、第1分割の分割数として8個のフィルタパーティションに分割し、それぞれについてさらに時間領域で3個に分割する。これにより、例えばフィルタの総タップ数が98304の場合、FFT演算器におけるタップ数は、98304/24=4096となる、それぞれのFFT演算器における処理速度を最大化することが可能となる。
【0042】
以下に、入力デジタル信号の周波数、出力周波数、第1分割の分割数、第2分割の分割数、フィルタの総タップ数、FFT演算器のタップ数を例示する。
<例1>
入力デジタル信号周波数:88200kHz
出力デジタル信号周波数:44100kHz
第1分割の分割数:2
第2分割の分割数:3
フィルタの総タップ数:24576
FFTのタップ数:4096
<例2>
入力デジタル信号周波数:352800kHz
出力デジタル信号周波数:44100kHz
第1分割の分割数:8
第2分割の分割数:3
フィルタの総タップ数:98304
FFTのタップ数:4096
【0043】
上記の例1及び例2において、入力デジタル信号周波数が異なっていても、出力デジタル信号周波数はともに44100kHzであることに留意されたい。また、入力デジタル信号周波数が異なっていても、FFTのタップ数はともに4096であることに留意されたい。すなわち、入力デジタル信号の周波数が異なっていても、第1分割及び第2分割の分割数を入力デジタル信号の周波数に応じて適応的に設定することで、所望の出力デジタル信号周波数を得ることができるとともに、FFT演算処理を高速化して効率的に処理することができる。なお、本願出願人は、例2に示すようにサンプリングレートを1/8にダウンサンプリングする場合、
図1に示す本実施形態の構成では、
図5に示す従来の構成に比べて約1.5倍の処理速度を実現できることを確認している。
【0044】
図3に、
図1の構成をより一般化した構成を示す。入力デジタル信号は第1分割で分割数D1(D1は2以上の自然数)に分割され、それぞれFFT演算器でFFT処理された後、さらに第2分割で分割数D2(D2は2以上の自然数)に分割されてD1×D2個の入力信号パーティションに分割されて畳み込み演算器300に供給される。同様に、デジタルフィルタ(FIRフィルタ)も第1分割で分割数D1に分割され、さらに第2分割で分割数D2に分割されてD1×D2個のフィルタパーティションに分割された後、FFT演算器でFFT処理される。FFT処理された周波数領域の信号は畳み込み演算器300に供給される。畳み込み演算器300は、乗算器及び加算器を備え、入力信号パーティションとフィルタパーティションの畳み込み演算を行い、その結果をIFFT演算器320に供給する。IFFT演算器320は、畳み込み演算して得られた信号を逆FFT処理し、時間領域の信号に復元して出力デジタル信号を得る。
【0045】
FFT演算器において、最大の処理速度(あるいは最大パフォーマンス)が得られるタップ数(これを所定のタップ数とする)をMo、所望の出力デジタル信号のサンプリングレートを得るための間引き係数をk、フィルタの総タップ数をSとすると、分割数D1及び分割数D2は以下の式を満たす。
D1=k
S/(D1×D2)〜Mo
ここで、〜Moは、所定のタップ数Moあるいはその近傍であることを表す。第1分割及び第2分割を行う分割器(スイッチや遅延要素で構成される)、FFT演算器、IFFT演算器、及び畳み込み演算器は、DSPあるいはマイクロプロセッサで構成される。DSPあるいはマイクロプロセッサは、入力デジタル信号のサンプリングレート(周波数)を検出し、所望の出力デジタル信号のサンプリングレートに変換するために間引き係数kを決定し、この間引き係数kとFFT演算処理を効率的に実行できる所定のタップ数Moに応じて分割数D1,D2を適応的に設定する。なお、DSPあるいはマイクロプロセッサは、入力デジタル信号のサンプリングレートを検出し、演算により分割数D1、D2を算出してもよいが、予め入力デジタル信号のサンプリングレートと分割数D1,D2との最適の関係を規定するテーブルをメモリに予め記憶しておき、入力デジタル信号のサンプリングレートが確定した場合に、メモリにアクセスして当該テーブルで規定された関係を用いて分割数D1,D2を適応的に設定してもよい。分割器やFFT演算器、畳み込み演算器300、IFFT演算器320をDSPで構成し、別個に設けられたマイクロプロセッサが入力デジタル信号のサンプリングレートを検出し、メモリに記憶されたテーブルを参照して入力デジタル信号のサンプリングレートに応じた分割数D1,D2を適応的に決定してDSPに制御信号を出力し、分割数D1,D2を調整してもよい。また、第1分割、第2分割、FFT処理、畳み込み演算、逆FFT処理は、DSPにより実行され得るが、マイクロプロセッサがプログラムメモリに格納されたプログラムを順次読み出し、当該プログラムに従って入力デジタル信号のサンプリングレートを検出し、DSPに制御信号を供給して入力デジタル信号及びフィルタを第1分割、第2分割し、FFT処理し、畳み込み演算処理し、逆FFT処理して出力デジタル信号を出力する各処理を実行する。DSP及びマイクロプロセッサは、例えば携帯音楽プレーヤやタブレット端末等の電子機器に組み込まれ、プログラムはタブレット端末等のメモリに格納される。プログラムは、ファームウェアとしてタブレット端末等のメモリに当初から組み込まれていてもよく、あるいはインターネット等の通信回線を介して所定のサーバからダウンロードしてメモリに格納してもよい。入力デジタル信号は、ソース音源から入力する他、インターネットからダウンロードしてもよい。
【符号の説明】
【0046】
100,124,126,128,200,224,226,228,200 FFT(高速フーリエ変換)演算器、112,116,120,212,216,220 乗算器、130,260 加算器、270,320 IFFT(逆高速フーリエ変換)演算器、300 畳み込み演算器。