(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024123961
(43)【公開日】2024-09-12
(54)【発明の名称】フィルタ設計装置、フィルタ設計方法及びプログラム
(51)【国際特許分類】
G06F 30/337 20200101AFI20240905BHJP
【FI】
G06F30/337
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023031812
(22)【出願日】2023-03-02
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】504136568
【氏名又は名称】国立大学法人広島大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】坂東 幸浩
(72)【発明者】
【氏名】福光 昌由
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA21
5B146AA22
5B146DC04
5B146GA00
(57)【要約】
【課題】場当たり的に得られたディジタルフィルタが用いられる頻度を低減する技術を提供すること。
【解決手段】本発明の一態様は、設計対象のディジタルフィルタの最適化であって、前記設計対象の各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において前記各フィルタ係数の表現に使用可能、なビット長の総和以下である、というビット長条件、を満たす最適化、を行う制御部、を備えるフィルタ設計装置、である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
設計対象のディジタルフィルタの最適化であって、前記設計対象の各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において前記各フィルタ係数の表現に使用可能、なビット長の総和以下である、というビット長条件、を満たす最適化、を行う制御部、
を備えるフィルタ設計装置。
【請求項2】
前記制御部は、前記最適化として、
前記各フィルタ係数の表現ビット長に対して長さの制約を課すこと無く前記設計対象の伝達関数の最適化を行う自由最適化処理と、
前記自由最適化処理の結果に基づき、前記設計対象のフィルタ係数のうち値が非ゼロであるフィルタ係数と、前記値がゼロではないフィルタ係数である非ゼロ係数と、を判定するフィルタ判定処理と、
前記フィルタ判定処理によって非ゼロであると判定されたフィルタ係数の表現ビット長を推定する表現ビット長推定処理と、
を含む係数推定処理と、
前記設計対象の前記各フィルタ係数の表現ビット長の組合せであって、
前記フィルタ判定処理によって値がゼロであると表現されたフィルタ係数の値がゼロであり、前記フィルタ判定処理によって値が非ゼロであると表現されたフィルタ係数の値が非ゼロである、という条件である第1組合せ条件と、
各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において各フィルタ係数の表現に使用可能、なビット長の総和以下である、という条件である第2組合せ条件と、
他の組合せとは、少なくとも1つの非ゼロ係数について表現ビット長が異なる、という条件である第3組合せ条件と、
各非ゼロ係数の表現ビット長は、前記表現ビット長推定処理で推定された各非ゼロ係数の表現ビット長以下、という条件である第4組合せ条件と、
を満たす組合せである表現ビット組合せ、の集合である表現ビット組合せ集合、に含まれる前記表現ビット組合せのうち、前記フィルタ係数を要素とするベクトルvと前記フィルタ係数の1次項の重みを要素とするベクトルθとによって表現されたコスト関数である2θv+vTθvの値を最小にする前記表現ビット組合せ、を推定する最適組合せ推定処理と、
を実行する、
請求項1に記載のフィルタ設計装置。
【請求項3】
前記係数推定処理は、LASSOを実行する処理である、
請求項2に記載のフィルタ設計装置。
【請求項4】
設計対象のディジタルフィルタの最適化であって、前記設計対象の各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において前記各フィルタ係数の表現に使用可能、なビット長の総和以下である、というビット長条件、を満たす最適化、を行う制御ステップ、
を有するフィルタ設計方法。
【請求項5】
請求項1~3のいずれか一項に記載のフィルタ設計装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、フィルタ設計装置、フィルタ設計方法及びプログラムに関する。
【背景技術】
【0002】
ディジタルフィルタは、乗算器、加算器、遅延器により構成されるディジタル信号処理回路であり、通信、音声・音響処理、画像処理、計測・制御など多くの分野で利用されている。特に、スマートフォンや補聴器といった小型端末でディジタルフィルタ実装する場合、低消費電力で駆動することが強く望まれる。ディジタルフィルタは伝達関数の違いから、有限インパルス応答(FIR)フィルタと無限インパルス応答(IIR)とに分類される。
【0003】
IIRフィルタは小さい次数でFIRフィルタと同等の精度を実現できるが、伝達関数に分母多項式が存在することから、安定条件を考慮して設計する必要がある。また近年、ディジタルフィルタの設計にスパースモデリングを応用する技術の研究が盛んに行われている。具体的には、0係数を持つようにディジタルフィルタを設計することで、従来の設計法よりも高精度な特性を得る技術の研究である。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】平川 友大, 中本 昌由, 山本 透, "Lagrange未定乗数法を用いたスパースIIRディジタルフィルタの一設計", 第57回自動制御連合講演会 2014年11月10日-12日
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の技術では、フィルタ係数の表現に必要なビット長を考慮した設計になっていない。そのため、実際にフィルタが利用される場面において、使用可能な消費メモリに合わせるように設計からの変更が必要だった。変更を行う際は、変更の適切な方針が無いため、フィルタ係数の表現に必要なビット長をフィルタ係数によらず所定の長さだけ減らすことや、係数が零ではない非零のフィルタの数を1つずつ減らしていくこと、が行われていた。このように従来の技術では、場当たり的な、すなわち、その場の思い付きによって、ディジタルフィルタが得られる場合があった。その結果、使用されるディジタルフィルタは、必ずしも適切ではない場合があった。
【0006】
上記事情に鑑み、本発明は、場当たり的に得られたディジタルフィルタが用いられる頻度を低減する技術を提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一態様は、設計対象のディジタルフィルタの最適化であって、前記設計対象の各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において前記各フィルタ係数の表現に使用可能、なビット長の総和以下である、というビット長条件、を満たす最適化、を行う制御部、を備えるフィルタ設計装置である。
【0008】
本発明の一態様は、設計対象のディジタルフィルタの最適化であって、前記設計対象の各フィルタ係数の表現ビット長の総和が、設計後の前記設計対象が使用される場面において前記各フィルタ係数の表現に使用可能、なビット長の総和以下である、というビット長条件、を満たす最適化、を行う制御ステップ、を有するフィルタ設計方法である。
【0009】
本発明の一態様は、上記のフィルタ設計装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0010】
本発明によれば、場当たり的に得られたディジタルフィルタが用いられる頻度を低減することができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態のフィルタ設計装置の概要を説明する説明図。
【
図2】実施形態のフィルタ設計装置のハードウェア構成の一例を示す図。
【
図3】実施形態におけるフィルタ設計装置が実行する処理の流れの一例を示すフローチャート。
【発明を実施するための形態】
【0012】
(実施形態)
図1は、実施形態のフィルタ設計装置1の概要を説明する説明図である。フィルタ設計装置1は、バスで接続されたCPU等のプロセッサ91とメモリ92とを備える制御部11を備え、プログラムを実行する。
【0013】
制御部11は、設計対象をディジタルフィルタとする設計を行う。制御部11は、設計対象のディジタルフィルタの最適化であって、ビット長条件を満たす最適化を行う。すなわち制御部11は、設計対象であるディジタルフィルタのフィルタ係数の最適化であって、ビット長条件を拘束条件の1つとして含む最適化を行う。ビット長条件は、設計対象のディジタルフィルタの各フィルタ係数の表現ビット長の総和が、設計後の設計対象が使用される場面において各フィルタ係数の表現に使用可能、なビット長の総和以下である、という条件である。なお、表現ビット長とは、表現の対象を表現するビット長、の意味である。したがって、フィルタ係数の表現ビット長とは、フィルタ係数の値を表現することに要するビット長である。
【0014】
以下、最適化の処理をより具体的に、数式を用いて説明する。説明の簡単のため、拘束条件を徐々に増やしていく形でディジタルフィルタの最適化の説明を行う。このようにして、最終的に制御部11の実行する最適化を説明する。
【0015】
ディジタルフィルタの特性は、一般に、以下の伝達関数で表現される。
【0016】
【0017】
ここで、ωは角周波数を表し、H(ω)が角周波数ωにおけるディジタルフィルタの伝達関数を表す。ここで、A(ω)は、デジタルフィルタの再帰構造部分を表し、B(ω)はデジタルフィルタの非再帰構造部分を表し、pは非再帰構造部分の最高次数を表し、qは再帰構造部分の最高次数を表し、bk、akは、フィルタ係数を表す。jは、虚数単位である。
【0018】
このような伝達関数で表現されるディジタルフィルタの設計は、例えば以下のコスト関数を最少化する最小化問題に帰着される。
【0019】
【0020】
Wは、周波数成分に対する重要度を指定する重み関数を表す。Hdは目標とするフィルタ特性を表す。ベクトルvは、フィルタ係数を要素とするベクトルである。具体的にはベクトルvは、以下の式(3)で表されるベクトルである。ρ0は、ベクトルvに依存しない所定の定数である。ベクトルθはフィルタ係数の1次項の重みを要素とするベクトルである。所定の定数は、最適化において無視してよい量である。すなわち、ρoは、例えばゼロであってもよい。
【0021】
したがって、ディジタルフィルタの設計における最小化の対象のコスト関数は、フィルタ係数を要素とするベクトルvとフィルタ係数の1次項の重みを要素とするベクトルθとによって表現された2θv+vTθv(以下「設計コスト関数」という。)である。なお、Tは転置を意味する。
【0022】
【0023】
H(ω)の最適化が、分母を固定して分子の最適化を行う最適化である場合、式(1)は以下の式(4)に等しい。
【0024】
【0025】
式(4)のベクトルaとベクトルbとの各定義は以下の式(5)の通りである。
【0026】
【0027】
ここで、フィルタ係数の非零係数の要素数が制約されるという拘束条件、が存在する最適化について説明する。
【0028】
拘束条件の1つとしてフィルタ係数がスパースであるという条件(以下「スパース条件」という。)が存在する最適化では、LASSO(least absolute shrinkage and selection operator)が用いられる場合が多い。
【0029】
LASSOでは、式(6)で表される観測ベクトルyが、p本の特徴ベクトルxjの線形和で表現される、という条件の下で最適化が行われる。特徴ベクトルxjは、以下の式(7)で表されるベクトルである。
【0030】
【0031】
【0032】
観測ベクトルyを表現する上記線形和における特徴ベクトルxjの重み係数をwiと表現し、重み係数ベクトルを以下の式(8)で表現されるベクトルbで定義すると、LASSOを用いたディジタルフィルタの最適化は、具体的には、以下の式(9)で表される最適化である。
【0033】
【0034】
【0035】
λはラグランジュ未定乗数を表す。Xはxjを第j列とする行列X=(x0,…,xp-1)である。
【0036】
式(9)の第1項を展開すると、以下の式(10)が得られる。
【0037】
【0038】
以下の式(11)及び(12)の関係を利用すると、式(4)は式(10)に変換される。
【0039】
【0040】
【0041】
ここで、コレスキー分解により得られるXの値であって式(11)を満たすXの値(以下「X+」と表現する)と式(12)とを用いて以下の式(13)の左辺で表現される量を、定義する。
【0042】
【0043】
フィルタ係数bに対するスパース条件下でのディジタルフィルタの設計では、式(9)においてXをX+、Yを式(13)の左辺の量にそれぞれ置き換えれば、LASSOを用いた設計が可能である。
【0044】
ちなみに、フィルタ係数に対するスパース条件下で設計されたディジタルフィルタをスパースフィルタ、という。
【0045】
<ビット量条件の下でのスパースフィルタの最適化>
それではいよいよ、設計対象であるディジタルフィルタのフィルタ係数の最適化であって、ビット量条件を拘束条件の1つとして含む最適化、を説明する。
【0046】
制御部11は、値が非ゼロであるフィルタ係数(以下「非ゼロ係数」という。)の位置に加えて、非ゼロ係数の表現ビット長も最適化する。なお、非ゼロ係数の位置の最適化とは、値が非ゼロである係数と、値がゼロである係数とを、最適化の条件を満たすように決定する処理である。
【0047】
制御部11は、設計対象であるディジタルフィルタのフィルタ係数の最適化であってビット量条件を拘束条件の1つとして含む最適化として、例えば、係数推定処理と、最適組合せ推定処理と、を実行する。係数推定処理は、自由最適化処理と、フィルタ判定処理と、表現ビット長推定処理と、を含む。自由最適化処理は、設計対象のディジタルフィルタにおける各フィルタ係数の表現ビット長に対して長さの制約を課すこと無く設計対象の伝達関数の最適化を行う処理である。なお、設計対象の伝達関数とは、設計対象のディジタルフィルタの特性を表現する伝達関数、の意味である。
【0048】
フィルタ判定処理は、自由最適化処理の結果に基づき、設計対象のディジタルフィルタのフィルタ係数のうち値が非ゼロであるフィルタ係数と、値がゼロではないフィルタ係数と、を判定する処理である。値がゼロかゼロではないかの判定は、二値のいずれかであるかの判定であるから、ゼロであるか否かを判定すれば非ゼロであるか否かについても当然に知られる判定である。
【0049】
また、値がゼロかゼロではないかの判定は、非ゼロであるか否かを判定すればゼロであるか否かについても当然に知られる判定である。したがって、フィルタ判定処理は、設計対象のディジタルフィルタのフィルタ係数のうち値が非ゼロであるフィルタ係数を判定する処理であってもよいし、設計対象のディジタルフィルタのフィルタ係数のうち値がゼロであるフィルタ係数を判定する処理であってもよい。
【0050】
表現ビット長推定処理は、非フィルタ判定処理によって非ゼロであると判定されたフィルタ係数の表現ビット長を推定する処理である。係数推定処理は、例えばLASSOを実行する処理である。LASSOの実行は、例えばLeast angle Regression (LARS)によって実行される。
【0051】
最適組合せ推定処理は、表現ビット組合せ集合に含まれる表現ビット組合せのうち、設計コスト関数、を最小にする表現ビット組合せ、を推定する処理である。表現ビット組合せ集合は表現ビット組合せの集合である。表現ビット組合せは、設計対象のディジタルフィルタの各フィルタ係数の表現ビット長の組合せであって、第1組合せ条件と、第2組合せ条件と、第3組合せ条件と、第4組合せ条件と、を満たす組合せ、である。
【0052】
第1組合せ条件は、フィルタ判定処理によって値がゼロであると表現されたフィルタ係数の値がゼロであり、フィルタ判定処理によって値が非ゼロであると表現されたフィルタ係数の値が非ゼロである、という条件である。
【0053】
第2組合せ条件は、各フィルタ係数の表現ビット長の総和が、設計後の設計対象が使用される場面において各フィルタ係数の表現に使用可能、なビット長の総和以下である、という条件である。
【0054】
第3組合せ条件は、他の表現ビット組合せとは、少なくとも1つの非ゼロ係数について表現ビット長が異なる、という条件である。
【0055】
第4組合せ条件は、各非ゼロ係数の表現ビット長は、表現ビット長推定処理で推定された各非ゼロ係数の表現ビット長以下、という条件である。したがって、非ゼロ係数Aの表現ビット長推定処理で推定された表現ビット長がlmax_Aであり、非ゼロ係数Bの表現ビット長推定処理で推定された表現ビット長がlmax_Bである場合、表現ビット組合せにおける非ゼロ係数Aの表現ビット長は0以上lmax_A以下であり、表現ビット組合せにおける非ゼロ係数Bの表現ビット長は0以上lmax_B以下である。
【0056】
第2組合せ条件を満たす最適化は、ビット長条件を満たす最適化である。したがって、係数推定処理と、最適組合せ推定処理と、の実行は、設計対象のディジタルフィルタの最適化であって、ビット長条件を満たす最適化、の一例である。
【0057】
なお、LARSで得られた各ゼロフィルタ係数がlmaxビットの浮動小数で表現される場合、非ゼロ係数に対する仮数部のビット長をα、指数部のビット長をβ、仮数部と指数部のビット長の和をα+β=lとして、制御部11は例えば、l=1,2,・・・,lmaxとした場合の設計コスト関数の値を求める。ただし、この場合、各lに対してα+β=lを満たす(α,β)の組合せとして、以下のl通りを制御部11検証する。(α,β)={(1,l-1),(2,l-2),・・・(l-1,1)}。その上で制御部11は非ゼロ係数の個数、係数当たりのビット長毎の仮数部と指数部のビット長の組合せに対して、設計コスト関数の値を得る。さらにその上で、制御部11は、フィルタ構成に必要な総ビット数の上限未満となるパラメタ(非ゼロ係数の個数と、係数当たりのビット長毎の仮数部と指数部のビット長)の組合せの中で、設計コスト関数の値を最小化する組合せを推定する。
【0058】
図2は、実施形態のフィルタ設計装置1のハードウェア構成の一例を示す図である。フィルタ設計装置1は、上述したように、バスで接続されたCPU等のプロセッサ91とメモリ92とを備える制御部11を備え、プログラムを実行する。フィルタ設計装置1は、プログラムの実行によって制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
【0059】
より具体的には、プロセッサ91が記憶部14に記憶されているプログラムを読み出し、読み出したプログラムをメモリ92に記憶させる。プロセッサ91が、メモリ92に記憶させたプログラムを実行することによって、フィルタ設計装置1は、制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
【0060】
制御部11は、フィルタ設計装置1が備える各種機能部の動作を制御する。
【0061】
入力部12は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部12は、これらの入力装置をフィルタ設計装置1に接続するインタフェースとして構成されてもよい。入力部12は、フィルタ設計装置1に対する各種情報の入力を受け付ける。入力部12には、例えば使用可能ビット総和長情報が入力される。使用可能ビット総和長情報は、設計後の設計対象が使用される場面において各フィルタ係数の表現に使用可能、なビット長の総和、を示す情報である。
【0062】
通信部13は、フィルタ設計装置1を外部装置に接続するための通信インタフェースを含んで構成される。通信部13は、有線又は無線を介して外部装置と通信する。外部装置は例えば、使用可能ビット総和長情報の送信元の装置である。通信部13は、使用可能ビット総和長情報の送信元の装置との通信によって、使用可能ビット総和長情報を取得する。
【0063】
記憶部14は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置(non-transitory computer-readable recording medium)を用いて構成される。記憶部14はフィルタ設計装置1に関する各種情報を記憶する。記憶部14は、例えば入力部12又は通信部13を介して入力された情報を記憶する。記憶部14は、例えば制御部11の実行する処理で生じた各種情報を記憶する。記憶部14は、例えば、予めフィルタ係数の値が所定の初期値である伝達関数を記憶する。
【0064】
出力部15は、各種情報を出力する。出力部15は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部15は、これらの表示装置をフィルタ設計装置1に接続するインタフェースとして構成されてもよい。出力部15は、例えば入力部12又は通信部13に入力された情報を出力する。出力部15は、例えば制御部11の実行する処理で生じた各種情報を出力してもよい。
【0065】
図3は、実施形態におけるフィルタ設計装置1が実行する処理の流れの一例を示すフローチャートである。制御部11が、入力部12又は通信部13を介して、使用可能ビット総和長情報を取得する(ステップS101)。次に、制御部11が、係数推定処理を実行する(ステップS102)。次に、制御部11が、最適組合せ推定処理を実行する(ステップS103)。
【0066】
上述したように最適組合せ推定処理では、第2組合せ条件を含む第1~第4組合せ条件を満たすフィルタ係数の組合せを対象として設計コスト関数を最少にする組合せが推定される。そして、第2組合せ条件における、設計後の設計対象が使用される場面において各フィルタ係数の表現に使用可能、なビット長の総和、は、ステップS101で得られた使用可能ビット総和長情報が示すビット長である。
【0067】
従ってステップS103では、各フィルタ係数の表現ビット長の総和が使用可能ビット総和長情報の示すビット長以下という条件と、第1、第3及び第4組合せ条件とを満たすフィルタ係数の組合せの集合の要素のうち設計コスト関数を最少にする要素が推定される。
【0068】
ステップS103で推定された組合せの示す各フィルタ係数の値が、最適化後の設計対象における各フィルタ係数の値、である。したがって、ステップS101~ステップ103によって、設計対象の最適化が行われた、と言える。
【0069】
このように構成された実施形態のフィルタ設計装置1は、設計対象のディジタルフィルタに対して、ビット長条件を満たす最適化を行う。したがって、フィルタ設計装置1によって最適化されたディジタルフィルタであれば、設計後のディジタルフィルタを利用環境に設置する設置者、による利用環境に応じた場当たり的な対応で変更される必要が無い。そのため、フィルタ設計装置1は、場当たり的に得られたディジタルフィルタが用いられる頻度を低減することができる。
【0070】
(変形例)
なお、フィルタ設計装置1は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、フィルタ設計装置1が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
【0071】
フィルタ設計装置1の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0072】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0073】
1…フィルタ設計装置、 11…制御部、 12…入力部、 13…通信部、 14…記憶部、 15…出力部、 91…プロセッサ、 92…メモリ