特許第5774475号(P5774475)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ユナイテッドワークスの特許一覧 ▶ 株式会社 エイルの特許一覧

特許5774475インパルス応答の抽出合成によるSRCの装置及び方法
<>
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000033
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000034
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000035
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000036
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000037
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000038
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000039
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000040
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000041
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000042
  • 特許5774475-インパルス応答の抽出合成によるSRCの装置及び方法 図000043
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5774475
(24)【登録日】2015年7月10日
(45)【発行日】2015年9月9日
(54)【発明の名称】インパルス応答の抽出合成によるSRCの装置及び方法
(51)【国際特許分類】
   H03H 17/00 20060101AFI20150820BHJP
   H03H 17/06 20060101ALI20150820BHJP
   H03H 17/02 20060101ALI20150820BHJP
【FI】
   H03H17/00 621E
   H03H17/06 633A
   H03H17/06 633Z
   H03H17/02 601G
   H03H17/02 601P
【請求項の数】5
【全頁数】22
(21)【出願番号】特願2011-509371(P2011-509371)
(86)(22)【出願日】2010年4月16日
(86)【国際出願番号】JP2010056876
(87)【国際公開番号】WO2010119963
(87)【国際公開日】20101021
【審査請求日】2013年4月15日
(31)【優先権主張番号】特願2009-101450(P2009-101450)
(32)【優先日】2009年4月17日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】509111696
【氏名又は名称】株式会社ユナイテッドワークス
(73)【特許権者】
【識別番号】303060077
【氏名又は名称】株式会社 エイル
(74)【代理人】
【識別番号】100109221
【弁理士】
【氏名又は名称】福田 充広
(72)【発明者】
【氏名】大嶋 栄樹
【審査官】 畑中 博幸
(56)【参考文献】
【文献】 特開平04−247732(JP,A)
【文献】 特開平04−095412(JP,A)
【文献】 特開2005−287032(JP,A)
【文献】 特表2004−529519(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03H 17/00
H03H 17/02
H03H 17/06
(57)【特許請求の範囲】
【請求項1】
離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため前記時間補間位置に応じた離散インパルス応答関数に基づいてフィルター係数を準備する係数準備手段と、
前記元のデータを処理するために出力標本化周波数で常に動作する変動FIRフィルターを含み、前記係数準備手段において準備された前記フィルター係数を前記変動FIRフィルターの係数として取り込み、変動FIRの振動又は変動する前記フィルター係数の畳み込み演算により、前記時間補間位置における前記新たなデータを算出するデータ算出手段と、を備え、
前記係数準備手段は、前記離散インパルス応答関数に基づいて前記フィルター係数を設定することによって、周波数帯域を選択し、
前記元のデータから復元される前記新たなデータY(Pr)は、
Tを、前記元のデータのサンプリング周期とし、nを整数とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、
を、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT−mと表されるものとし、
記周波数帯域として、ハイパス周波数帯域、バンドパス周波数帯域、及び帯域除去周波数のうち1つが選択され、
前記ハイパス周波数帯域を選択したとき、f/2をハイパス周波数とし、f<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現され、
前記バンドパス周波数帯域を選択したとき、f´/2を強制的遮断周波数とし、f/2をハイパス周波数とし、f<f´<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現され、
前記帯域除去周波数を選択したとき、f/2を帯域除去下端周波数とし、f/2を帯域除去上端周波数とし、f<f<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現される、サンプリング周波数レート変換の装置。
【請求項2】
前記係数準備手段は、前記離散インパルス応答関数に基づく前記フィルター係数として係数テーブルを準備するとともに、前記係数テーブルに関連付けた制御のための時間補間位置テーブルを準備し、
前記データ演算手段は、前記変換値を算出するための変動FIRフィルターにより、前記係数テーブルの各データと元のデータとの間で、前記時間補間位置テーブルに応じて振動又は変動する前記フィルター係数による畳み込み演算を行って前記変換値を算出する、請求項1に記載のサンプリング周波数レート変換の装置。
【請求項3】
前記係数準備手段は、前記離散インパルス応答関数に基づく前記フィルター係数を正規化するための正規化手段をさらに有する、請求項1及び請求項2のいずれか一項に記載のサンプリング周波数レート変換の装置。
【請求項4】
離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため前記時間補間位置に応じた離散インパルス応答関数に基づいてフィルター係数を準備する係数準備工程と、
前記係数準備工程において準備された前記フィルター係数を出力標本化周波数で常に動作する変動FIRフィルターの係数として取り込み、変動FIRの振動又は変動する前記フィルター係数の畳み込み演算により、前記時間補間位置における前記新たなデータを算出するデータ算出工程と、を備え、
前記係数準備工程で、前記離散インパルス応答関数に基づいて前記フィルター係数を設定することによって、周波数帯域を選択し、
前記元のデータから復元される前記新たなデータY(Pr)は、
Tを、前記元のデータのサンプリング周期とし、nを整数とし、Y(nT)を、前記元のデータとし、fを、前記元のデータのサンプリング周波数とし、fを、前記元のデータのサンプリング周波数と前記新たなデータのサンプリング周波数とのうち小さい方の値とし、
を、前記新たなデータのサンプリング周期とし、Prを、前記元のデータの離散点と前記時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT−mと表されるものとし、
記周波数帯域として、ハイパス周波数帯域、バンドパス周波数帯域、及び帯域除去周波数のうち1つが選択され
前記ハイパス周波数帯域を選択したとき、f/2をハイパス周波数とし、f<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現され、
前記バンドパス周波数帯域を選択したとき、f´/2を強制的遮断周波数とし、f/2をハイパス周波数とし、f<f´<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現され、
前記帯域除去周波数を選択したとき、f/2を帯域除去下端周波数とし、f/2を帯域除去上端周波数とし、f<f<fとして、以下の畳み込み演算数式
又はnを有限値とする窓関数を用いた近似式を用いて表現される、サンプリング周波数レート変換の方法。
【請求項5】
前記係数準備工程で、前記離散インパルス応答関数に基づく前記フィルター係数として係数テーブルを準備するとともに、前記係数テーブルに関連付けた制御のための時間補間位置テーブルを準備し、
前記データ算出工程で、前記変換値を算出するための変動FIRフィルターにより、前記係数テーブルの各データと元のデータとの間で、前記時間補間位置テーブルに応じて振動又は変動する前記フィルター係数による畳み込み演算を行って前記変換値を算出する、請求項4に記載のサンプリング周波数レート変換の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、離散的なデータからの変換によってサンプリング周波数等の仕様が異なる新たなデータを得るための、SRC(Sampling Rate Conversion;サンプリング周波数レート変換)の装置及び方法に関する。
【背景技術】
【0002】
音声(オーディオ)のサンプリング周波数レートの変換や、画像の解像度変換又はフレームレート変換に適用可能な広義のサンプリング周波数レート変換法として、音声や画像のデジタル信号処理に際して有限のタップ数で構成されるFIRフィルター(Finite Impulse Response Filter)を用いるものが知られている(例えば、特許文献1参照)。
【0003】
なお、サンプリング周波数レート変換後に、変換後の複数の周波数に対応する複数のFIRフィルターによって出力を生成するものもある(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−217837号公報
【特許文献2】特開2008−109279号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1においては、FIRフィルターを構成するインパルス応答が固定的に定められており、例えば整数倍にサンプリング周波数レートを上げて得た2つのサンプル間を線形補間しているため、元の周波数から新たな周波数への変換の比率である周波数変換レートによっては、変換に時間を要し高速化が困難であったり、変換後のデータの質が下がったりする可能性がある。
【0006】
そこで、本発明は、高速かつ高精度のデータの変換を可能とするサンプリング周波数レート変換(SRC)の装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係るインパルス応答の抽出合成によるサンプリング周波数レート変換(SRC)の装置及び方法が開発された。なお、以下に記載のサンプリング周波数レート変換とは、特に説明しない限り広義のものを意味し、狭義のサンプリング周波数レート変換のほか、画像等に関する解像度変換又はフレームレート変換等の各種データ変換処理を含むものとする。
【0008】
本発明に係るサンプリング周波数レート変換の装置は、(a)離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため時間補間位置に応じた離散インパルス応答関数に基づいてフィルター係数を準備する係数準備手段と、(b)係数準備手段において準備されたフィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値を算出するデータ算出手段とを備える。なお、係数準備手段による上記のようなフィルター係数の準備には、当該フィルター係数を出力又は作用可能な回路、プログラム等を組み込むことのみならず、別途準備されたフィルター係数をメモリに単に保持することも含まれるものとする。
【0009】
上記サンプリング周波数レート変換の装置では、係数準備手段により、新たなデータに対応する時間補間位置での変換値を与えるための離散インパルス応答関数に基づくフィルター係数を準備し、データ算出手段により、当該フィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値が直接的に算出されるので、元のデータを非常に高速かつ高品質な状態で変換してサンプリング周波数レートに関して仕様の異なる新たなデータを得ることが可能となる。
【0010】
また、本発明の具体的な態様では、(a)係数準備手段が、離散インパルス応答関数に基づくフィルター係数として係数テーブルを準備し、(b)データ算出手段が、係数テーブルの各データと元のデータとの畳み込み演算により変換値を算出する。この場合、係数テーブルを利用したデジタルデータ処理により極限的に高速でかつ高品質なデータの変換が可能となる。
【0011】
また、本発明の別の態様では、係数準備手段が、元のデータについてのサンプリング周期と、新たなデータについてのサンプリング周期との差に対応して設定される一連の時間補間位置での変換値を与えるように離散インパルス応答関数を決定する。この場合、時間補間位置ごとに定まる一群の離散インパルス応答関数に基づいて与えられる係数フィルターによって特定のサンプリング周波数に設定された元のデータから別のサンプリング周波数に設定された新たなデータへとサンプリング周波数レート変換が可能となる。
【0012】
また、本発明の別の態様では、離散インパルス応答関数に基づいてフィルター係数を設定することによって、任意の波数帯域を選択する。例えば、所定値以上の高周波数帯域を遮断することができるように、フィルター係数が設定される。この場合、データ変換に付随するノイズの発生を抑制することができる。
【0013】
また、本発明の別の態様では、係数準備手段が、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち、低い周波数を所定値以上の高周波数帯域の遮断の基準とする。この場合、周波数変換に際してエイリアシングや折り返し雑音によるノイズの発生を抑制することができる。
【0014】
また、本発明の別の態様では、係数準備手段が、元のデータの離散点と時間補間位置との差に相当する所定パラメーターの変化に応じて離散インパルス応答関数に基づくフィルター係数を準備する。この場合、当該離散インパルス応答関数に基づくフィルター係数は、所定パラメーターの変化によって振動又は変動する固定的でないフィルターとして機能する。
【0015】
また、本発明の別の態様では、係数準備手段が、離散インパルス応答関数及び窓関数に基づいてフィルター係数を補正している。この場合、窓関数を用いた補正により、有限の離散点を抽出した演算処理での計算値の不連続性を緩和することができる。なお、窓関数は、離散インパルス応答関数に作用させることができるものである。
【0016】
また、本発明の別の態様では、係数準備手段が、離散インパルス応答関数に基づくフィルター係数を正規化するための正規化手段をさらに有する。この場合、正規化処理を行うことで、処理すべき情報をより再現性の高いものとすることができる。
【0017】
また、本発明の別の態様では、新たなデータが、元のデータから復元される関数に基づいて生成される。この場合、復元された当該関数には、任意の値(理論上は、有理数のみならず無理数を含む)を代入することができ、例えば、新たなデータに対応する時間補間位置を代入することで厳密な理論値に近い新たなデータを求めることが可能となる。
【0018】
また、本発明の別の態様では、元のデータから復元される関数が、時刻tの関数Y(t)であり、Tを、元のデータのサンプリング周期とし、Y(nT)を、元のデータとし、fを、元のデータのサンプリング周波数とし、fを、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち小さい方の値として、以下の数式
やその近似式を用いて表現される。この場合、当該数式により、エイリアシングの発生を防止しつつ、元のデータによるアナログ信号の復元を利用することで理論的に厳密な関数に基づいた離散インパルス応答関数の決定が可能となる。
【0019】
また、本発明の別の態様では、新たなデータが、Tを、新たなデータのサンプリング周期とし、Prを、元のデータの離散点と時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT−mと表されるものとして、以下の数式
又はnを有限値とする窓関数を用いた近似式を用いて表現される。この場合、当該所定パラメーターの変化又は変更によって振動又は変動する固定的でないフィルターにより新しいデータが生成される。
【0020】
上記課題を解決するため、本発明に係るサンプリング周波数レート変換の方法は、(a)離散的な元のデータから変換によって得ようとする新たなデータに対応する時間補間位置での変換値を与えるため離散的に設定された離散インパルス応答関数に基づいてフィルター係数を準備する係数準備工程と、(b)係数準備工程において準備されたフィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値を算出するデータ算出工程とを備える。
【0021】
上記サンプリング周波数レート変換の方法では、係数準備工程において、新たなデータに対応する時間補間位置での変換値を与えるための離散インパルス応答関数に基づくフィルター係数を準備し、データ算出工程において、当該フィルター係数を用いて、元のデータの畳み込み演算により時間補間位置における変換値が算出されるので、元のデータを非常に高速で変換し、スペクトル的に高品質な状態の新たなデータを得ることが可能となる。
【0022】
また、本発明の具体的な態様では、(a)係数準備工程において、離散インパルス応答関数に基づくフィルター係数として係数テーブルを準備し、(b)データ算出工程において、係数テーブルの各データと元のデータとの畳み込み演算により変換値を算出し、(c)係数準備工程において、元のデータについてのサンプリング周期と、新たなデータについてのサンプリング周期との差に対応して一連の時間補間位置での変換値を与えるように離散インパルス応答関数を決定する。
【0023】
また、本発明の別の態様では、新たなデータが、Tを、元のデータのサンプリング周期とし、Tを、新たなデータのサンプリング周期とし、Y(nT)を、元のデータとし、fを、元のデータのサンプリング周波数とし、fを、元のデータのサンプリング周波数と新たなデータのサンプリング周波数とのうち小さい方の値とし、Prを、元のデータの離散点と時間補間位置との差に相当する所定パラメーターとし、いずれも整数であるn及びmによりPr=nT−mと表されるものとして、以下の数式
又はnを有限値とする窓関数を用いた近似式を用いて表現される。この場合、変換においてエイリアシングによるノイズの発生が抑制され、また、当該所定パラメーターの変化によって振動又は変動する固定的でないフィルターにより新しいデータが生成される。
【図面の簡単な説明】
【0024】
図1】第1実施形態に係るサンプリング周波数レート変換の装置の構造を模式的に示すブロック図である。
図2】(A)〜(C)は、サンプリング周波数レート変換の装置による元のデータから新たなデータの生成について説明するための図である。
図3】サンプリング周波数レート変換の装置による信号の準備処理を概念的に示す図である。
図4】インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。
図5】インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。
図6】インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。
図7】インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。
図8】インパルス応答関数に基づいて、離散インパルス応答関数の係数テーブルを準備する工程について説明するためのフローチャートである。
図9】係数テーブルを用いた畳み込み演算により変換値を算出して新たなデータを出力する工程について説明するためのフローチャートである。
図10】係数テーブルを用いた畳み込み演算により変換値を算出して新たなデータを出力する工程について説明するためのフローチャートである。
図11】第2実施形態に係るサンプリング周波数レート変換の装置の構成を説明する概念図である。
【発明を実施するための形態】
【0025】
〔第1実施形態〕
以下、図1及び図2を参照して、本発明の第1実施形態に係るサンプリング周波数レート変換の装置及び当該サンプリング周波数レート変換の装置によるデータ変換の原理について説明する。
【0026】
図1に示す信号処理装置10は、元のデータ列を変換して、サンプリングレートに関して仕様の異なる新たなデータ列を出力するサンプリング周波数レート変換の装置であり、メインの制御を行うCPU20と、演算処理プログラム等の各種プログラムやその他の情報を保管しているROM30と、処理の対象となるサンプルデータ等の情報を一時的に記憶し保管するRAM40と、外部から入力されるデータを受信するための入力インターフェース部51と、外部に対してデータを送信するための出力インターフェース部52とを備える。
【0027】
ここでは、信号処理装置10に入力される元のデータ列Y(nT)は、音声その他の時系列的なデジタルデータであり、サンプリング周波数がf、サンプリング周期がT(T=1/f)であるものとする。一方、出力されるデータ列Y(mT)は、同様のデジタルデータであるが、サンプリング周波数がf、サンプリング周期がT(T=1/f)であるものとする。つまり、信号処理装置10は、狭義のサンプリング周波数レート変換を行っており、CPU20を用いた処理等により、元のデータ列Y(nT)から、元のサンプリング周波数f及び新たなサンプリング周波数fに基づいて、サンプリング周波数レート変換された新たなデータ列Y(mT)を作成している。なお、以上の説明において、n、mは整数である。
【0028】
図2(A)〜2(C)は、信号処理装置10において元のデータ列Y(nT)から新たなデータ列Y(mT)を生成する様子を模式的に示す図である。つまり、図2(A)に模式的に示す元の離散的なデータ列Y(nT)から、後述する図2(B)のデータ処理工程を経て、図2(C)に示す周波数の変換された新しい離散的なデータ列Y(mT)が作成されている。ここで、図2(A)〜2(C)に示すように、両データ列Y(nT)、Y(mT)の周期T,T(即ち周波数f,f)は、互いに異なっている。つまり、図1の信号処理装置10は、変換前後の周期T(=1/f)、T(=1/f)の差に対応して、元の周期T(=1/f)のデータ列Y(nT)に対してサンプリング周期又はサンプリング周波数のレート変換の処理を行い、新たな周期T(=1/f)のデータ列Y(mT)を作成している。
【0029】
以下、信号処理装置10におけるサンプリング周波数のレート変換の処理について説明する。まず、離散的な元のデータ列Y(nT)について、既述のように、サンプリング周期をT、元の周波数であるサンプリング周波数をf(即ちT=1/f)とすると、標本化入力信号である元のデータ列Y(nT)から復元される関数は、シャノンの標本化定理により、
となる。ここで、式(1)のうち、
の部分は、アナログ再生のためのインパルス応答関数である。つまり、復元される関数Y(t)は、連続的な時間tの関数であり、標本化入力信号であるデータ列Y(nT)とインパルス応答関数η(t,n)との積和演算によって再現されている。この関数によるアナログ波再生の手法でサンプリングレート変換のための補間が可能である。本手法の応用による補間の場合には、元の周期Tと新たな周期Tとは異なるため、図2(A)〜2(C)に示すように、例えば元のデータ列Y(nT)のn番目の値に対応する時間即ち離散点nTと、新たなデータ列Y(mT)のうち離散点nTを最寄りとするm番目の値に対応して設けられる時間補間位置mとには差があり、この差に相当する所定パラメーターである差分補間位置Pr(図2(B)参照)を考慮する必要がある。しかし、この再生式そのままの応用による補間であると、エイリアシング発生と折り返し雑音発生との問題があり、再生周波数帯の抑制のための式修正が必要である。このことについては、式(8)以下に説明する。
【0030】
以下、元のデータ列Y(nT)のn番目の点(離散点nTに対応)を基準として、変換データの生成を説明する。ここでは、離散点nTを基準として新しいデータ列Y(mT)のうち、m番目の時間補間位置mの変換値Y(m)が生成されるものとする。まず、この場合、図2(B)を参照して既に説明したように、差分補間位置Prは、時間補間位置mの最寄りの点である離散点nTを基準として、Pr=nT−mで表される。図2(B)に例示する差分補間位置Prの値は、図に示す部分についての負の値となる。ここで、変換値Y(m)は、既に説明したように元のデータ列Y(nT)とインパルス応答関数η(t,n)との積和演算によって容易に求められる。この際のインパルス応答関数η(t,n)の部分については、上記差分補間位置Prを加味したものとなっている。つまり、式(1)において、例えば離散点nTを基準としてt=Pr+mと代入すると、
となる。また、ここで、新たなデータ列Y(mT)を算出するために、インパルス応答関数η(t,n)を基にして離散化した離散インパルス応答関数を定める。具体的には、式(2)においてt=Prとすると、nを中心としてnが正負の方向に変化する離散インパルス応答関数η(Pr,n)は、
で表される。また、式(3)においても、m=0とすることはt=Prとすることであり、
となる。この場合、Y(Pr)は、離散点nTとその前後の離散点nTに対応するデータ列Y(nT)から求められるものであり、時間補間位置mにおける変換値Y(m)を表現するものとなる。また、式(5)のうち、加算要素の式又は値
は、式(4)の離散インパルス応答関数η(Pr,n)とこれに対応する各データ列Y(nT)の値とを掛けたもの(以後、離散インパルス応答と呼ぶ)である。これは、図2(B)に例示されるインパルス応答の各曲線L1〜L5のt=m上における上記値即ち離散インパルス応答A(n+δ,Pr)にそれぞれ相当する(δ=0,±1,±2)。つまり、上記式(5)から与えられる変換値Y(Pr)=Y(m)は、図2(B)に例示した離散インパルス応答A(n+δ,Pr)をδについて無限に足し合わせたものに相当する。但し、実際に数値化をするにあたっては、相関性の高い有限個の離散インパルス応答A(n+δ,Pr)を足し合わせることで変換値Y(Pr)=Y(m)を構成している。つまり、例えば式(5)において、まず、データ列Y(nT)のうちn番目のデータ列Y(nT)の値を中心とするために、変数をn−n(=δ)として、
とする。さらに、n番目のデータ値Y(nT)の値を中心として略左右対称に有限となるように、式(6)において、例えば30個程度の少ない個数について和を取ることで、変換値Y(Pr)=Y(m)を、インパルス応答をシフトさせる整数δ(=n−n)を用いて
とすることで、変換値Y(Pr)=Y(m)の近似的な値が求められる。
【0031】
以上のように、各データ列Y(mT)の1つの変換値は、まず、元のデータ列Y(nT)のうちから、当該変換値に対応する基準となるデータを定め(上記のように、m番目の変換値Y(Pr)=Y(m)を求める場合には、最寄りのn番目のデータ値Y(nT)が対応し、これを基準と定めることに相当する。)、次に、これに伴い差分補間位置Prが定まることでインパルス応答関数η(t,n)から離散インパルス応答関数η(Pr,n)が与えられ、さらに、元のデータ列Y(nT)と離散インパルス応答関数η(Pr,n)との畳み込みを行うことで変換値Y(Pr)=Y(m)が求められる。つまり、データ列Y(mT)の1つの変換値(例えばY(Pr)=Y(m))を求めるためには、当該変換値(例えばY(Pr)=Y(m))の時間補間位置(例えばm)に対応させて、元のデータ列Y(nT)のうち基準となる1つのデータ値(例えばY(nT))の位置を定めることと、定められた当該データ値(例えばY(nT))を与える離散点と、変換値(例えばY(Pr)=Y(m))を与える時間補間位置との差である差分補間位置Prを設定することとが前提として必要となる。
【0032】
ここで、以上において、インパルス応答関数η(t,n)又はこれを離散的にした離散インパルス応答関数η(Pr,n)に相当する部分については、従来のように固定せず、差分補間位置Prに対応して振動又は変動するものでありながらも、算出としては、従来のFIRフィルターと同様にデジタルデータ処理を行うことが可能となっている。以下、このような手法を「変動FIRフィルター」と呼ぶこととする。また、差分補間位置Prによって示される時間位置のずれ量は、上記のように、対象となる新しいデータの時間補間位置mTとこれを構成するための基準となる元のデータの離散点nTとの差によって決まるものであり、一般には、元のデータの周波数fと新しいデータの周波数fとの比f:f=N:Mの関係によって定まるものである。このように、変動FIRフィルターは、外界の状況に適応する既存の適応フィルターとは全く異なるものである。
【0033】
以上のように、本実施形態では、インパルス応答関数η(t,n)から離散インパルス応答関数η(Pr,n)を抽出する際に、上述した差分補間位置Prや、周期T,T即ち周波数f,fを考慮するとともに、このような離散インパルス応答関数η(Pr,n)を利用したデータの合成により、非常に高速で高精度のサンプリング周波数レート変換を可能としている。
【0034】
ここで、ランダムな帯域のアナログ信号f(t)において、遮断周波数f/2となる理想的なアナログのローパスフィルターは、
である。この式(8)は、サンプリング周波数レート変換に関する上記式(5)等に適用することができると考えられる。ここでは、式(5)を上記式(8)に基づいて変形するとともに、周波数fを、fとfとのうち、小さい方とし、以下の式
からサンプリング周波数レート変換の演算処理を行うものとする。この場合、変動FIRフィルター用の離散インパルス応答関数η(Pr,n)は、エイリアシング発生と折り返し雑音発生との防止を可能にする修正式又は値として、
で表され、補間計算式即ち修正された新たな変換値は、t=Prとして、
となる。以上から明らかなように、本実施形態の変動FIRフィルターでは、本来の変換値Y(Pr)=Y(m)の一部のfをfに置き換えたものを用いるだけで、アンチエイリアシングのためのローパスフィルターとしての機能も持たせることができ、データ処理の非常な高速化を達成することができる。なお、式(9)の関数Y(t)は、時間tについての連続関数であるから、時間tには、有理数のみならず無理数を含む任意の値を代入することができる。これは、現状のオーバーサンプリング理論を用いた補間では実現できない無理数による位置の補間が可能となることを意味する。このように、tの値として、新たなデータに対応する任意のサンプリングタイミング即ち時間補間位置を代入することにより、元のデータ列Y(nT)と修正されたインパルス応答関数η(Pr,n)との積和演算によって変換値Y(m)を理論上厳密に求めることができ、延いては周期Tの新たなデータ列Y(mT)を理論上厳密に求めることができる。結果的に、本手法により、上記オーバーサンプリング理論を用いた補間に比較して、100倍から数1000倍程度の変換処理の高速化を達成することができる。
【0035】
なお、上記変動FIRフィルターの伝達関数H(Z,Pr)は、以下のようになる。
ここで、Z=exp(jωT)、ω:角周波数である。
【0036】
以下、一例として、信号処理装置10による変換を32kHzから44.1kHzへの変換とする場合について考える。この場合、遮断周波数の基準となるサンプリング周波数fは、fとfとのうち、小さい方即ち32kHzであるfがfとなる。つまり、復元されるアナログ型の関数の式(9)は式(5)と同じであり、この式に基づいて上記のようにして、離散インパルス応答関数η(Pr,n)が作成される。また、この場合、差分補間位置Prは、例えば、
として定められる。ここで、周波数の比率は、N:M=320:441となるため(320と441とは互いに素)、差分補間位置Prは、441個の循環するパターンを有するものとなる。数値化して行うデジタル処理による実際の演算においては、式(7)に示すように、1つの変換値の算出には、有限個(例えば30個程度)の要素からなる離散インパルス応答関数η(Pr,n)の係数列が必要となるが、この場合、離散インパルス応答関数η(Pr,n)の係数列の数は、差分補間位置Prのパターンの数に対応して441列分用意されることになる。
【0037】
ここで、図3の係数テーブル60は、離散インパルス応答関数η(Pr,n)に基づいて構成されるフィルター係数を並べたテーブルを模式的に示したものである。係数テーブル60は、1つの変換値(例えば変換値Y(Pr)=Y(m))を算出するために必要な有限個(例えば30個程度)のデータ要素(以下、フィルター係数値と呼ぶ)からなるフィルター係数の係数列を1単位として、この係数列を新たなデータ列Y(mT)の全ての値を得るために必要な数(例えば上記32kHzから44.1kHzへの変換の場合441列)並べたものである。
【0038】
ここでは、畳み込み演算により1つの変換値Y(Pr)=Y(m)を得るための単位であるフィルター係数値を有限個(例えば30個程度)並べて得た上記列を、フィルター係数列60aとする。つまり、係数テーブル60は、フィルター係数列60aを変換前後の周波数の比率に応じて必要個数並べたテーブルである。詳しくは後述するが、変動FIRフィルターを用いたデジタルデータ処理の場合、係数テーブル60において、各フィルター係数値を要素として並べたフィルター係数列60aを演算における一群の単位として取り扱うことにより、具体的に数値化した離散インパルス応答関数η(Pr,n)として機能させている。本実施形態の場合、離散インパルス応答関数η(Pr,n)を基にして得た有限個のフィルター係数値からなるフィルター係数列60aを用いた変動FIRフィルターによって、式(7)等に示す元のデータY(nT)との積和演算を行うことで、従来のFIRフィルターと同様の演算処理で新しいデータ列Y(mT)を算出することができる。
【0039】
なお、変動FIRフィルターを作用させるにあたって、さらに、上記したインパルス応答関数η(t,n)に対応する窓関数を用いて演算処理での計算値の不連続性を緩和することや、係数の正規化処理を行うことで、数値化された有限の個数の離散インパルス応答関数η(Pr,n)であっても、処理すべき情報をより再現性の高いものとすることができる。
【0040】
インパルス応答関数η(t,n)に用いる窓関数としては、例えばハニング窓、ブラックマン窓、カイザー窓等の使用が適切である。なお、ハニング窓、ブラックマン窓、カイザー窓等は、窓の両端で座標軸に接するように0となる点で、ノイズ防止に効果的である。窓関数によっての補正の仕方は、インパルス応答関数η(n、t)と離散インパルス応答関数η(Pr,n)との関係と同じく差分補間位置Prに対応した離散的な窓関数を用いた補正とすることが好ましい。
【0041】
図3は、サンプリング周波数の変換の装置である信号処理装置10において、デジタル信号処理によって変換を行う場合の動作を概念的に示すブロック図である。ここでは、まず、変動FIRフィルターの考え方によって、インパルス応答関数η(t,n)から作成される離散インパルス応答関数η(Pr,n)(例えば、式(10)に示す修正された離散インパルス応答関数η(Pr,n))が構成されている。さらに、信号処理装置10の係数テーブル60において、既述のように、離散インパルス応答関数η(Pr,n))から定まるフィルター係数として有限個(例えば30個)のフィルター係数値を配列することで、1つのフィルター係数列60aが構成され、このようなフィルター係数列60aは、後述する畳み込みの演算処理において必要となる分用意される。信号処理装置10は、係数テーブル60の作成のため、図1のRAM40にフィルター係数用の領域を確保する。また、信号処理装置10は、作成された係数テーブル60から必要な各フィルター係数列60aを選択して適宜読み出し、一方、入力データであるデータ列Y(nT)の該当範囲を抽出し、このデータ列Y(nT)の該当範囲と当該フィルター係数列60aとについて畳み込み演算をすることにより、データ列Y(mT)の各データ値(変換値)を算出する。つまり、信号処理装置10において、まず、係数テーブル60から1つのフィルター係数列60aを抽出部61に読み出すとともに、入力データバッファ70からアドレス位置が特定された対応する入力データ70aを照合して、これらの畳み込み演算処理を行い、算出結果のデータ80aを出力データバッファ80に格納されるデータの1つとして出力する。信号処理装置10は、以上の動作により出力すべきデータの順即ち新しいデータの時系列の順に新しいデータ列Y(mT)の各データ値(変換値)である変換値データ80aの出力を逐次行う。
【0042】
以下、図1の信号処理装置10において変動FIRフィルターを用いたデジタル信号処理による元のデータ列Y(nT)から仕様の異なる新たなデータ列Y(mT)を得るデータ処理工程の具体的な動作説明をする。
【0043】
上記動作説明の前半部として、まず、図1及び図3のブロック図と、図4乃至図8のフローチャートとを参照して、図3の係数テーブル60の作成等の準備をする係数準備工程等の動作について説明する。即ち、以下では、新たなデータ列Y(mT)の算出を可能とするために、差分補間位置Prでの変換値Y(Pr)=Y(m)を与える離散インパルス応答関数η(Pr,n)(Prは、新しいデータ列Y(mT)を構成するデータ数の範囲で変化する。)の準備等に相当する工程の動作について説明する。
【0044】
図1に示す信号処理装置10のCPU20は、図4に示すように、積和演算の回数を定めるタップ数TAmaxの値(例えば30程度)を定める(ステップS1)。つまり、これは、1つのフィルター係数列60aを構成するフィルター係数値の個数を決定することに相当する。このタップ数TAmaxは、RAM40の適当な領域に一時保管される。
【0045】
次に、元のサンプリング周期Tに相当するデジタル値であるインプット基準周期として入力周期値Aを定め(ステップS2)、変換後の新しいサンプリング周期Tに相当するデジタル値であるアウトプット基準周期として出力周期値Bを定める(ステップS3)。これらの周期値A,Bは、RAM40の適当な領域に一時保管される。ここで、周期値A,Bを決めるための前提として、時間についてのデジタル化のための時間の最小単位をシステム時間単位とする。つまり、システム時間単位とは、デジタル信号の処理上において必要となる最も短い時間の単位であり、例えば、変換前後のサンプリング周波数f,fの最小公倍数の逆数等により定められる。これにより、周期値A,Bは、いずれもシステム時間単位の個数として表現され、当該個数が、それぞれの周期T,Tの長さに対応する。具体的には、例えば32kHzから44.1kHzへの変換の場合、N:M=320:441となるため(320と441とは互いに素)ステップS2,S3において、A=441、B=320と定まる。つまり、この場合のシステム時間単位は、1/(441×320)×10−2秒である。
【0046】
次に、CPU20は、周期値A,Bに基づいて出力バッファ数を算出する。つまり、CPU20は、RAM40に保管された周期値A,Bを読み出し、これらの値から例えば最大公約数に対応する係数kの値を定め、k×Aをもって出力バッファ数とする(ステップS4)。周波数の比を与えるNとMとが元々互いに素であるため、既述のように、差分補間位置Prも、441個のパターンで循環する。従って、ステップS4において、例えばk=1と定まる。CPU20は、これらのデータ即ち係数kや出力バッファ数k×AをRAM40の適当な領域に一時保管させる。なお、44.1kHzから48kHzへの変換の場合、N:M=441:480=3×147:3×160=147:160となるため、A=160、B=147と定まる。この場合、Prは、160個のパターンで循環し、例えばk=3となる。
【0047】
次に、CPU20は、遮断周波数f/2の値の決定即ち基準周波数fの値の決定を行う(ステップS5)。この基準周波数fは、RAM40の適当な領域に一時保管される。既述のように、例えば32kHzから44.1kHzへの変換の場合、遮断周波数f/2は、元のサンプリング周波数fの1/2である。なお、逆に44.1kHzから32kHzへの変換の場合、遮断周波数f/2は、変換後のサンプリング周波数fの1/2となる。
【0048】
次に、CPU20は、RAM40に設けられたカウンターを利用して後述するステップS17でのフィルター係数の正規化の処理が規定回行われているか確認し(ステップS6)、達していなければ(ステップS6:No)正規化トータル値を初期化するとともに(ステップS7)、タップ数の初期値設定の処理(タップ数TA=0とする)を行う(ステップS8)。正規化トータル値やタップ数の初期値は、RAM40の適当な領域に一時保管される。
【0049】
次に、CPU20は、RAM40に保管されたタップ数TAを確認し(ステップS16)、最大のタップ数TAmaxに達していなければ(ステップS16:No)、インパルス応答関数η(t,n)の時間補間位置m及び差分補間位置Prを決定する(ステップS9)。差分補間位置Prは、既に説明したようにPr=nT−mで表される。ここでは、1つの差分補間位置Pr(32kHzから44.1kHzへの変換の場合、441パターンのうちの1パターン)が決定される。この際、差分補間位置Prを与える変数mは、A−1を最大として、0から徐々に増加する。この差分補間位置Prは、RAM40の適当な領域に一時保管される。次に、CPU20は、差分補間位置Prの決定に伴い、インパルス応答関数η(t,n)に基づいて定まる離散インパルス応答関数η(Pr,n)のnに関して時間補間位置mを中心として有限個(例えば30個)の値を代入することで、フィルター係数を作成するための基本係数を算出する(ステップS10)。具体的には、例えば式(10)において、対応する離散インパルス応答関数η(Pr,n)のsinの部分及びsin以外の部分の数値化された演算がなされることで、基本係数が決定し、RAM40の適当な領域に一時保管される。次に、CPU20は、離散インパルス応答関数η(Pr,n)から得た基本係数に作用する窓関数を算出し(ステップS11)、ステップS10において算出された基本係数をRAM40から読み出して、ステップS11において算出された窓関数と基本係数とを掛け合わせて変動FIRフィルターの仮係数を算出する(ステップS12)。CPU20は、算出された仮係数を、RAM40に一時的に設けた仮係数テーブルに埋め込み(ステップS13)、RAM40に保管された正規化トータル値に加算する(ステップS14)。その後、CPU20は、RAM40に記憶されているタップ数TAを一つ繰り上げる(ステップS15)。
【0050】
次に、CPU20は、ステップS15での繰り上げによりタップ数TAが設定された最大値であるタップ数TAmax(例えばTAmax=30)に達成したかをRAM40の記憶を参照して確認し(ステップS16)、達していなければ(ステップS16:No)、再度ステップS9に戻り、各タップに対応する仮係数を算出する動作を繰り返す(ステップS9〜ステップS15)。
【0051】
ステップS16において、タップ数TAが最大のタップ数TAmaxに達していると判断された場合(ステップS16:Yes)、CPU20は、ステップS15までにおいて算出されRAM40に暫定的に保管された仮係数テーブルを構成する1つの仮係数列全体を総和である正規化トータル値で割り算することにより、1つの仮係数列から正規化された1つのフィルター係数列60aを作成する(ステップS116、S17)。具体的には、CPU20は、タップ数TAが最大のタップ数TAmaxに達しているか否かを確認し(ステップS116)、達成していないと判断すれば(ステップS116:No)、算出された1つの仮係数列を構成する各仮係数を正規化トータル値でそれぞれ割り算して更新する動作をし(ステップS17)、この更新動作を全ての仮係数が正規化トータル値で割られたと判断するまで繰り返す。この動作により、CPU20は、最終的に得られた結果即ち1つの仮係数列を1つのフィルター係数列60aとして、RAM40内に記憶領域として用意されたテーブル係数60の対応箇所に格納することになる。
【0052】
CPU20は、ステップS116において、タップ数を数え、1つの仮係数テーブルについて全ての仮係数の処理がなされたと判断した場合(ステップS116:Yes)、RAM40の記憶を参照して、フィルター係数列60aが必要な分だけ形成されたか否かを確認する(ステップS6)。つまり、CPU20は、ステップS116、S17での仮係数テーブルを構成するフィルター係数列60aの作成処理がA回行われたかを確認する。ここで、フィルター係数列60aが最小必要単位分(A個分)形成されていなければ(ステップS6:No)、CPU20は、新たな離散インパルス応答関数η(Pr,n)に基づくフィルター係数即ちフィルター係数列60aを作成するための処理(ステップS7〜ステップS17)を繰り返す。
【0053】
CPU20は、フィルター係数列60aの作成をA回行った即ちテーブル係数60にA回分のフィルター係数列60aが揃ったと判断すると(ステップS6:Yes)、最小限必要なデータが揃ったものと判断し、係数テーブル60に付随する時間補間位置テーブルを作成するための処理を行う(ステップS18〜ステップS20)。具体的には、まず、CPU20は、時間補間位置テーブルの情報が必要分揃っているか否かを確認する(ステップS18)。ここで、時間補間位置テーブルは、テーブル係数60に付随する索引としての機能を有し、RAM40の記憶領域に保管される。CPU20は、時間補間位置テーブルの情報が必要分揃っていなければ(ステップS18:No)、まず、入力されるデータの位置決定の準備処理即ちアドレス位置テーブルの作成処理を行う(ステップS19)。つまり、新しく生成される各データの作成のために、基準となる元のデータの位置を決定する。このために、CPU20は、図3の入力データバッファ70における特定の入力データ70aのアドレス位置を決定し、変換後の1つの新しいデータに対する一群の元のデータの入力位置の対応付けをアドレス位置テーブルとしてRAM40の適当な領域に一時保管する。次に、CPU20は、1つの新しいデータと元のデータとの位置ずれの量を定める差分補間位置Prに対応する差分補間位置テーブルの準備処理を行う(ステップS20)。つまり、CPU20は、特定の差分補間位置Prの対応する係数テーブル60中の特定のフィルター係数列60aのアドレス位置を決定する。これにより準備されたフィルター係数列60aのアドレス位置は、差分補間位置テーブルとしてRAM40の適当な領域に一時保管される。以上の動作が時間補間位置テーブル作成に必要なだけ繰り返されると(ステップS18:Yes)、係数準備工程の動作を終了する。なお、以上において、ステップS19は、1つの変換値Y(Pr)=Y(m)の時間補間位置mに対応させて、元のデータ列Y(nT)のうち基準となる1つのデータ値Y(nT)の位置を定めるために必要なアドレスデータを準備することに相当する。ステップS20は、後述するデータ算出工程における積和演算又は畳み込みに際して上記基準のデータ値Y(nT)の前後にタップ数TAmaxだけ含まれるデータ値Yに作用させて特定の差分補間位置Prにおける変換値Y(Pr)=Y(m)の算出を可能にするフィルター係数列60aを指定するために必要なアドレスデータをステップS19で得たアドレス位置に関連付けて準備・保管することに相当する。
【0054】
次に、図1及び図3のブロック図と、図9及び図10のフローチャートとを参照して、係数準備工程で得られた係数テーブル60に基づいて行われるデータ算出工程等について説明する。即ち、以下では、係数準備工程において準備された離散インパルス応答関数η(Pr、n)に基づくフィルター係数としての係数テーブル60を用いた畳み込み演算により元のデータ列Y(nT)から新しいデータ列Y(mT)を算出する工程の動作について説明する。
【0055】
まず、図1のCPU20は、図9に示すように、入力バッファ数k×Bの調整を行う(ステップS51)。つまり、入力バッファ数k×Bに合わせた信号送出をするよう調整するとともに、変換の最初及び最後においては、例えば不足する分のデータ(情報α)を調整する。例えば、当該変換処理の直前の処理時に取得したデータの最後の部分を取り出して変換の最初に用いることで、不足データ分を補う。また、変換の最初でそれ以前のデータがない場合や変換の最後でデータが不足する場合には、情報αの分をゼロ信号或いは、ダミー信号等により調整する。なお、このような初期及び終期の信号に対応する変換値Y(Pr)=Y(m)は、不要なものとして消去することも可能である。次に、CPU20は、情報の出力が可能な分の回数(出力バッファ数k×A回)の処理が行われたか否かをRAM40の記憶を参照して確認し(ステップS52)、達成していなければ、下のデータの基準位置を読み出す基準位置アドレス算定の処理を行う(ステップS53)。つまり、CPU20は、RAM40からステップS19で定められた元のデータ列Y(nT)についてのアドレス位置を読み出し、対応する演算のために必要とされる元のデータ列Y(nT)の部分を選択する処理を行う。次に、CPU20は、差分補間位置アドレス準備の処理を行う(ステップS54)。つまり、CPU20は、RAM40からステップS20で定められた差分補間位置Prについてのアドレス位置を読み出す。以上により準備がなされると、まず、CPU20は、最大のタップ数TAmax(例えばTAmax=30)回動作がなされたかをRAM40の記憶を参照して確認し、なされていなければ、上記により準備された各フィルター系数値等の各変動係数をロードして(ステップS56)、当該元のデータ列部分と差分補間位置Prの情報を含むフィルター係数とによる畳み込み演算処理をROM30に保管されているプログラムに従って行い(ステップS56a、S56b)、当該動作がタップ数TAmaxの回数分処理がなされると、新しいデータの1つの変換値Y(Pr)=Y(m)が作成される(ステップS57、S58)。
【0056】
以下、上記した動作を出力バッファ数k×A回繰り返し(ステップS52)出力バッファ数k×A分のデータが蓄積されると図3の出力データバッファ80から一群の新しいデータ列Y(mT)として出力される(ステップS59)。つまり、図1の出力インターフェース部52を介して信号処理装置10の外部へ新しいデータ列Y(mT)が出力される。ステップS59においてデータが出力されると、入力インターフェース部51を介して新たな入力データがあるか否かを判断し(ステップS60)、入力データがある場合には(ステップS60:Yes)、再びデータを作成するための動作(ステップS51〜ステップS60)を繰り返し、入力データがなくなれば(ステップS60:No)、データ算出工程の動作を終了する。
【0057】
〔第2実施形態〕
以下、図11を参照して、本発明の第2実施形態に係る信号処理装置について説明する。なお、本実施形態の信号処理装置は、回路構造を備えて構成されているが、第1実施形態の変形例であり、図1等に示す信号処理装置10の要素と同一名称のものについては、特に説明をしない限り、同様の機能を有するものとする。
【0058】
図11に示す信号処理装置110は、データ作成部120と、コントローラ130と、係数テーブル140と、時間補間位置テーブル150と、抽出部160と、入力データ送出部170と、畳み込み演算部180と、出力データ部190と、出力バッファ部191とを備える。なお、時間補間位置テーブル150は、アドレス位置テーブル150aと、差分補間位置テーブル150bとを含む。
【0059】
データ作成部120は、離散インパルス応答関数η(Pr,n)に対応するフィルター係数の作成等の準備をする係数準備工程を行う。コントローラ130は、フィルター係数に基づく畳み込み演算により新しいデータについての変換値変換値Y(m)=Y(Pr)を算出するデータ算出工程を行う。
【0060】
以下、データ作成部120及びコントローラ130によるデータ処理工程の動作説明をする。まず、データ作成部120は、離散インパルス応答関数η(Pr,n)に対応するフィルター係数の作成等の準備をすると、係数テーブル140に作成したフィルター係数列60a等の情報を出力する。また、新しく生成されるデータ列の作成のために用いる元のデータの位置に関する情報を時間補間位置テーブル150のアドレス位置テーブル150aに出力し(図8のステップS19の処理に相当する)、差分補間位置Prに関する情報を時間補間位置テーブル150の差分補間位置テーブル150bに出力する(図8のステップS20の処理に相当する)。以上により、係数準備工程が完了する。次に、コントローラ130は、データ算出工程の動作を行う。具体的には、まず、コントローラ130は、係数テーブル140及び時間補間位置テーブル150から離散インパルス応答関数η(Pr,n)に基づくフィルター係数に相当する1つのフィルター係数列60aを抽出部160に読み出す。一方、当該フィルター係数列60aに対応する元のデータ列の部分を元のデジタルデータ列Y(nT)から抽出して入力データ送出部170に配列する。さらに、コントローラ130は、入力データ送出部170に抽出された入力データ70aと抽出部160に読み出されたフィルター係数列60aとを畳み込み演算部180で畳み込み演算処理する。畳み込み演算部180での演算結果は、出力データ部190に出力され、さらに、出力データ部190の出力データ80aは、出力バッファ部191により外部へ出力される。以上のように、コントローラ130の制御によって新しいデータについての変換値を算出するデータ算出工程の動作がなされる。この場合、図に示すように、コントローラ130と、これに制御される係数テーブル140、時間補間位置テーブル150、抽出部160、入力データ送出部170、畳み込み演算部180、出力データ部190及び出力バッファ部191とは、変動FIRフィルター200として機能している。
【0061】
なお、本発明は、上記に限定されるものではなく、例えば、式(1)の関数Y(t)は、時間tについて任意の点を抽出可能であり、出力データについて、周期性を持たせることなく関数Y(t)上の任意の点からサンプリングして構成することも可能である。また、入力データについても、周期的なものとしているが、必ずしも全てのデータが周期的なものでなくてもよく、例えば、データのヘッダー部分についてのみ読み取りを行うといった態様においても適用させることができる。
【0062】
また、上記各実施形態では、元のデータ列Y(nT)を音声その他の時系列的なデジタルデータとし、狭義のサンプリング周波数レート変換について説明しているが、本発明は、これに限らず、例えば3次元グラフィックスの表示や動画の再生におけるフレームレート変換、画像等の拡大、縮小等の解像度変換、といった各種データ変換処理等の広義のサンプリング周波数レート変換としても適用可能である。
【0063】
また、上記第1実施形態では、窓関数を基本係数とを掛け合わせる態様としているが、窓関数の利用方法はこれ以外であっても構わない。また、窓関数の種類についても、既述のように種々のものを採用することができる。
【0064】
また、上記第1実施形態では、窓関数と基本係数とを掛け合わせて算出される仮係数について正規化の処理を行うものとしているが、係数の正規化処理は、ここに限らず、プログラムの設計等に応じて種々の状態において行うことも可能である。
【0065】
また、上記第1実施形態では、変動FIRフィルターにおいて、遮断周波数f/2についても加味することで、エイリアシング防止用のローパスフィルターとしての役割も兼ねたものとしているが、それに加えて他の機能を持たせることもできる。例えば、所望の周波数以下の成分に制限するローパスフィルター、所望の周波数以上の成分に制限するハイパスフィルター、所望の周波数範囲の成分に制限するバンドパスフィルター、特定の周波数帯域を除去する帯域除去フィルター等としての役割も兼ねた構成とすることができる。
【0066】
随意に設定可能なローパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n)に代えて以下の式を適用することができる。
ここで、式(14)において、f´/2は、強制的遮断周波数である。なお、f´<fとなっている。この場合、式(14)を適用することで、補間計算式即ち変換値は、
と表される。現実には、窓関数を含む近似式が用いられ、nを有限の積和演算タップ数とする。
【0067】
また、随意に設定可能なハイパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n)に代えて以下の式を適用することができる。
ここで、式(15)において、f/2は、エイリアシング防止のための遮断周波数であり、f/2は、ハイパス周波数である。なお、f<fとなっている。この場合、式(15)を適用することで、補間計算式即ち変換値は、
と表される。
【0068】
さらに、随意に設定可能なバンドパスフィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n) に代えて以下の式を適用することができる。
ここで、式(16)において、f´/2は、強制的遮断周波数であり、f/2は、ハイパス周波数である。なお、f<f´<fとなっている。この場合、式(16)を適用することで、補間計算式即ち変換値は、
と表される。
【0069】
さらに、随意に特定帯域の周波数の除去が可能な帯域除去フィルターの機能を持たせた構成としては、例えば式(10)の離散インパルス応答関数η(Pr,n) に代えて以下の式を適用することができる。
ここで、式(17)において、f/2は、帯域除去下端周波数であり、f/2は、帯域除去上端周波数である。なお、f<f<fとなっている。この場合、式(17)を適用することで、補間計算式即ち変換値は、
と表される。
【0070】
また、上記第1実施形態では、例えば、図1に示すように、信号処理装置10における各種の処理をCPU20により行っているが、CPU20に代えて、積和演算が高速に処理できるように信号処理について特化したDSP(Digital Signal Processor)や、CPU等を1個の半導体チップに集積したMPU(Micro Processor Unit)等を用いることも可能である。また、DSPやMPUは、例えば、信号処理装置10のROM30やRAM40等の記憶部分に相当する機能も含んで畳み込み演算等の各種処理を行うものとしてもよい。
【符号の説明】
【0071】
10,110…信号処理装置、 20…CPU、 30…ROM、 40…RAM、 Y(nT),Y(mT)…データ列、 T,T…周期、 f,f,f…周波数、 差分補間位置…Pr、 60,140…係数テーブル、 60a…フィルター係数列、 61,160…抽出部、 70…入力データバッファ、 80…出力データバッファ、 120…データ作成部、 130…コントローラ、 150…時間補間位置テーブル、 170…入力データ送出部、 180…畳み込み演算部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11