(57)【要約】【課題】フィルタ特性を変更するために入力される制御データのデータ量をフィルタ係数のデータ量よりも少なくする。【解決手段】フィルタ処理集積回路は、記憶回路と、フィルタ処理における出力信号の通過域を特定する周波数情報を受信し、周波数情報に基づいて算出されるフィルタ係数を記憶回路に設定するフィルタ係数算出部と、記憶回路に設定されたフィルタ係数に基づいて、入力信号に対してフィルタ処理を施して出力信号を出力するフィルタ部と、を備える。【選択図】図１
2008022335.tif 000002
【特許請求の範囲】
【請求項１】
記憶回路と、
フィルタ処理における出力信号の特性周波数を特定する周波数情報を受信し、前記周波数情報に基づいて算出されるフィルタ係数を前記記憶回路に設定するフィルタ係数算出部と、
前記記憶回路に設定された前記フィルタ係数に基づいて、入力信号に対してフィルタ処理を施して前記出力信号を出力するフィルタ部と、
を備えることを特徴とするフィルタ処理集積回路。
【請求項２】
請求項１に記載のフィルタ処理集積回路であって、
前記フィルタ係数算出部は、フィルタ処理におけるサンプリング周波数を特定するサンプリング周波数情報、前記出力信号のゲインを特定するゲイン情報、及び前期出力信号の選択度を特定する選択度情報の少なくとも一つを更に受信し、前記周波数情報、並びに、前記サンプリング周波数情報、前記ゲイン情報、及び前記選択度情報のうち受信した情報に基づいて、前記フィルタ係数を算出すること、
を特徴とするフィルタ処理集積回路。
【請求項３】
請求項２に記載のフィルタ処理集積回路であって、
前記フィルタ係数算出部は、フィルタ処理の種類を特定するフィルタタイプ情報を更に受信し、前記フィルタタイプ情報及び前記周波数情報、並びに、前記サンプリング周波数情報、前記ゲイン情報、及び前記選択度情報のうち受信した情報に基づいて、前記フィルタ係数を算出すること、
フィルタ処理集積回路。
【請求項４】
請求項１〜３の何れか一項に記載のフィルタ処理集積回路であって、
前記フィルタ係数算出部は、フィルタ係数を所定範囲の値とすべく、算出された前記フィルタ係数をＮビット右シフトして前記記憶回路に設定し、
前記フィルタ部は、前記出力信号をＮビット左シフトして出力すること、
を特徴とするフィルタ処理集積回路。
【請求項５】
請求項４に記載のフィルタ処理集積回路であって、
前記フィルタ係数算出部は、算出された前記フィルタ係数がＮビット右シフトしても前記所定範囲とならない値である場合は、フィルタ係数の算出エラー信号を出力すること、
を特徴とするフィルタ処理集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィルタ処理集積回路に関する。
【背景技術】
【０００２】
例えば、ＡＭラジオ受信装置やＦＭラジオ受信装置等に用いられる信号処理回路では、ノイズ除去等を目的としたフィルタ処理が行われる。図１５は、信号処理回路を用いて構成されるシステムの一部を示す図である。信号処理回路１００は、内部にＤＳＰ（Digital Signal Processor）１１０を備える集積回路である。例えば、信号処理回路１００がＡＭラジオ受信装置に用いられる場合、ＤＳＰ１１０は、入力されるデジタル信号に対してノイズ除去やイコライジング等を目的としたフィルタ処理を行う。そして、ＤＳＰ１１０におけるフィルタ処理の特性は、ＤＳＰ１１０内部のレジスタ１２０に格納されたフィルタ係数に基づいて決定される。つまり、レジスタ１２０に格納されたフィルタ係数を変更することにより、フィルタ特性を変更することができる。
【０００３】
レジスタ１２０に格納されたフィルタ係数を変更する方法としては、信号処理回路１００の外部にあるマイコン１３０から行うことが一般的である（特許文献１）。マイコン１３０は、所望のフィルタ特性を決めるためのカットオフ周波数や中心周波数、選択度Ｑ等の情報に基づいてフィルタ係数を算出し、算出したフィルタ係数をメモリ１４０に格納する。その後、マイコン１３０は、メモリ１４０に格納されたフィルタ係数を、システムバス等を介して信号処理回路１００に送信する。そして、信号処理回路１００に送信されたフィルタ係数がレジスタ１２０に格納されることにより、フィルタ特性が変更される。
【特許文献１】特開２００２−５８１５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば、ＤＳＰ１１０におけるフィルタ処理を２次ＩＩＲフィルタにより実現する場合を考える。図１６は、２次ＩＩＲフィルタの一例の概念を示すブロック図である。図に示すように、２次ＩＩＲフィルタは、遅延部１５０〜１５３、加算部１５４、及び乗算部１５５〜１５９により構成することができる。
【０００５】
ここで、乗算部１５５〜１５９は、入力される信号に係数Ａ［０］〜Ｂ［２］を乗じて出力する。レジスタ１２０に記憶される各係数Ａ［０］〜Ｂ［２］のビット数（精度）を例えば２４ビット（３バイト）とすると、係数Ａ［０］〜Ｂ［２］を記憶するために必要な記憶容量は１２０ビット（１５バイト）となる。そして、フィルタ係数を格納するために必要な記憶容量は、ＩＩＲフィルタの次数やフィルタ係数の精度を高くするに従って増大することとなる。つまり、フィルタ係数を算出するマイコン１３０においては、算出したフィルタ係数を格納するためにメモリ１４０の容量を大きくする必要がある。また、メモリ１４０に格納されたフィルタ係数を信号処理回路１００に送信する必要があるため、システムバス等における通信量が増大し、システムの処理性能に影響を及ぼす可能性がある。
【０００６】
本発明は上記課題を鑑みてなされたものであり、フィルタ特性を変更するために入力される制御データのデータ量がフィルタ係数のデータ量よりも少ないフィルタ処理集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のフィルタ処理集積回路は、記憶回路と、フィルタ処理における出力信号の特性周波数を特定する周波数情報を受信し、前記周波数情報に基づいて算出されるフィルタ係数を前記記憶回路に設定するフィルタ係数算出部と、前記記憶回路に設定された前記フィルタ係数に基づいて、入力信号に対してフィルタ処理を施して前記出力信号を出力するフィルタ部と、を備えることとする。
【０００８】
また、前記フィルタ係数算出部は、フィルタ処理におけるサンプリング周波数を特定するサンプリング周波数情報、前記出力信号のゲインを特定するゲイン情報、及び前期出力信号の選択度を特定する選択度情報の少なくとも一つを更に受信し、前記周波数情報、並びに、前記サンプリング周波数情報、前記ゲイン情報、及び前記選択度情報のうち受信した情報に基づいて、前記フィルタ係数を算出することとしてもよい。
【０００９】
そして、前記フィルタ係数算出部は、フィルタ処理の種類を特定するフィルタタイプ情報を更に受信し、前記フィルタタイプ情報及び前記周波数情報、並びに、前記サンプリング周波数情報、前記ゲイン情報、及び前記選択度情報のうち受信した情報に基づいて、前記フィルタ係数を算出することとしてもよい。
【００１０】
また、前記フィルタ係数算出部は、フィルタ係数を所定範囲の値とすべく、算出された前記フィルタ係数をＮビット右シフトして前記記憶回路に設定し、前記フィルタ部は、前記出力信号をＮビット左シフトして出力することとすることもできる。
【００１１】
さらに、前記フィルタ係数算出部は、算出された前記フィルタ係数がＮビット右シフトしても前記所定範囲とならない値である場合は、フィルタ係数の算出エラー信号を出力することとしてもよい。
【発明の効果】
【００１２】
フィルタ特性を変更するために入力される制御データのデータ量がフィルタ係数のデータ量よりも少ないフィルタ処理集積回路を提供することができる。
【発明を実施するための最良の形態】
【００１３】
＝＝回路構成＝＝
図１は、本発明のフィルタ処理集積回路の一実施形態である信号処理回路を含んで構成されるＡＭラジオ受信装置の構成例を示す図である。ＡＭラジオ受信装置１は、アンテナ１０、フロントエンド処理回路（ＦＥ）１１、信号処理回路１５、マイコン１６、及びスピーカ１７を含んで構成されている。
【００１４】
フロントエンド処理回路１１は、アンテナ１０を介して受信される高周波信号から所望の受信局の信号を抽出し、所定の周波数（中間周波数）に変換した中間周波信号を出力する。
【００１５】
信号処理回路１５は、フロントエンド処理回路１１から出力される中間周波信号に対して各種処理を施し、スピーカ１７に対して音声信号を出力する集積回路であり、ＡＤコンバータ（ＡＤＣ）２１、ＤＳＰ（Digital Signal Processor）２５、メモリ２６、係数算出部３０（フィルタ係数算出部）、及びＤＡコンバータ（ＤＡＣ）３５を含んで構成される。
【００１６】
ＡＤコンバータ２１は、フロントエンド回路１１から出力される中間周波信号をデジタル信号に変換してＤＳＰ２５に出力する。
【００１７】
ＤＳＰ２５は、ノイズ除去やイコライジング等を目的とするフィルタ処理や符号化された信号の復号化処理等、デジタル信号に対する各種処理を実行可能なプロセッサである。ＤＳＰ２５は、フィルタ処理を実行するフィルタ部４０及びＤＳＰ２５内の各種制御に用いられるレジスタ４１（記憶回路）を含んで構成される。フィルタ部４０は、ＤＳＰ２５がＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、フラッシュメモリ等のメモリ２６に格納されたプログラムを実行することにより実現される。なお、メモリ２６がＤＳＰ２５内部に設けられることとしてもよい。
【００１８】
係数算出部３０は、信号処理回路１５の外部に設けられたマイコン１６から、カットオフ周波数や中心周波数等、フィルタ特性を決定するための制御データを受信し、受信したデータに基づいてフィルタ係数を算出する。そして、係数算出部３０は、算出したフィルタ係数を信号処理回路１５の内部バス等を介してＤＳＰ２５内部のレジスタ４１に格納する。なお、係数算出部３０は、例えばマイコン等により実現することが可能である。また、ＤＳＰ２５が係数算出部３０の機能を備えることとしてもよい。
【００１９】
マイコン１６は、信号処理回路１５に対する各種制御を行う。本実施形態においては、信号処理回路１５におけるフィルタ処理の特性を決定するために、カットオフ周波数や中心周波数等の制御データを、システムバス等を介して信号処理回路１５の係数算出部３０に送信する。
【００２０】
図２は、マイコン１６から係数算出部３０に送信される制御データの一例を示す図である。制御データは、フィルタタイプ情報、周波数情報、選択度情報、及びゲイン情報を含んで構成されている。
【００２１】
フィルタタイプ情報は、ローパスフィルタやハイパスフィルタ、バンドパスフィルタ等、フィルタの種類を特定するための情報である。本実施形態では、フィルタタイプ情報のデータ長は１バイトであり、例えば、０ｘ００〜０ｘ０７の８種類のフィルタタイプを指定可能としている。なお、フィルタタイプ情報を１バイトとする場合、例えば、最大で２５６種類（０ｘ００〜０ｘＦＦ）のフィルタタイプを指定可能とすることもできる。
【００２２】
周波数情報は、フィルタ処理の特性周波数を特定するための情報である。なお、特性周波数とは、ローパスフィルタやローシェルフフィルタにおけるカットオフ周波数、または、ピーキングフィルタやバンドパスフィルタにおける中心周波数等、フィルタ処理の出力信号の周波数特性を特定する周波数である。本実施形態では、周波数情報のデータ長は２バイトであり、例えば、２０Ｈｚ（０ｘ００１４）〜２０，０００Ｈｚ（０ｘ４Ｅ２０）の範囲の周波数をヘルツ単位で指定可能としている。なお、周波数情報を２バイトとする場合、例えば、０Ｈｚ（０ｘ００００）〜６５，５３５Ｈｚ（０ｘＦＦＦＦ）の周波数を指定可能とすることもできる。
【００２３】
選択度情報は、フィルタ処理における選択度Ｑを特定するための情報である。本実施形態では、選択度情報のデータ長は１バイトであり、例えば、０．４〜１０．０の範囲の０．１刻みの選択度Ｑを１０倍した整数値が設定される。すなわち、選択度情報には、４（０ｘ０４）〜１００（０ｘ６４）の範囲の値が設定される。なお、０．１刻みの選択度Ｑを１０倍した整数値を１バイトの選択度情報に設定する場合、例えば、０．０（０ｘ００）〜２５．５（０ｘＦＦ）の範囲の選択度Ｑを指定可能とすることもできる。
【００２４】
ゲイン情報は、フィルタ処理の出力信号のゲインを特定するための情報である。本実施形態では、ゲイン情報のデータ長は１バイトであり、例えば、−２０ｄＢ〜２０ｄＢの範囲の０．５刻みのゲイン値を２倍した整数値が設定される。すなわち、ゲイン情報には、−４０（０ｘＤ８）〜４０（０ｘ２８）の範囲の値が設定される。なお、０．５刻みのゲイン値を２倍した整数値を１バイトのゲイン情報に設定する場合、例えば、−６４ｄＢ（０ｘ８０）〜６３．５ｄＢ（０ｘ７Ｆ）の範囲のゲインを指定可能とすることもできる。
【００２５】
図３は、ＤＳＰ２５により実現される２次ＩＩＲフィルタの一例の概念を示すブロック図である。図に示すように、２次ＩＩＲフィルタは、遅延部５０〜５３、加算部５４、乗算部５５〜５９、及びシフト部６０により構成されている。
【００２６】
マイコン１６は、２次ＩＩＲフィルタのフィルタ特性を定めるための制御データとして、フィルタタイプ情報（Type）、周波数情報（Fc）、選択度情報（Q）、ゲイン情報（G）、及びサンプリング周波数情報（Fs）を、システムバス等を介して係数算出部３０に出力する。なお、サンプリング周波数情報（Fs）については、サンプリング周波数の変更が必要なタイミングのみ出力される。
【００２７】
係数算出部３０は、マイコン１６から入力される制御データに基づいて２次ＩＩＲフィルタにおけるフィルタ係数Ａ［０］〜Ｂ［２］を算出し、算出したフィルタ係数をレジスタ４１に格納する。なお、本実施形態のＤＳＰ２５においては、小数演算を固定小数点演算により行うこととしている。そのため、係数算出部３０は、算出されたフィルタ係数Ａ［０］〜Ｂ［２］を−１〜１の範囲とするために、フィルタ係数を所定ビット右シフトして出力する。なお、シフト量はフィルタ部４０において予め定められており、例えば１ビットや２ビット等とすることができる。
【００２８】
遅延部５０〜５３は、入力される信号を１サンプリング時間遅延させて出力する。加算部５４は、入力される信号を加算して出力する。乗算部５５〜５９は、入力される信号に、レジスタ４１に記憶されたフィルタ係数Ａ［０］〜Ｂ［２］を乗じて出力する。シフト部６０は、入力される信号を、係数算出部３０におけるシフトと同じビット数左シフトして出力する。なお、シフト部６０における左シフトは、係数算出部３０において右シフトされた分を補正するためのものである。
【００２９】
つまり、ＤＳＰ２５では、係数算出部３０によって算出されたフィルタ係数Ａ［０］〜Ｂ［２］に基づいたフィルタ処理が行われる。そして、マイコン１６から、フィルタタイプ情報（Type）や周波数情報（Fc）等の制御データを信号処理回路１５に送信することにより、ＤＳＰ２５におけるフィルタ特性を変更することができる。
【００３０】
＝＝係数算出処理＝＝
次に、係数算出部３０におけるフィルタ係数算出処理について説明する。図４は、係数算出処理の全体の流れを示すフローチャートである。まず、係数算出部３０は、マイコン１６から送信されてくる制御データを受信し（Ｓ４０１）、受信した制御データに含まれる各情報に基づいて、サンプリング周波数、フィルタタイプ、特性周波数、ゲイン、及び選択度を変数に設定する（Ｓ４０２）。そして、係数算出部３０は、フィルタタイプ（iType）を判定し（Ｓ４０３）、フィルタタイプに応じた係数算出処理を実行する（Ｓ４０４〜Ｓ４１１）。さらに、係数算出部３０は、算出されたフィルタ係数が−１〜１の範囲となるように正規化処理を行い（Ｓ４１２）、フィルタ係数をレジスタ４１に設定する（Ｓ４１３）。
【００３１】
フィルタタイプに応じた係数算出処理について説明する。フィルタタイプ（iType）が０ｘ００の場合は（Ｓ４０３：０ｘ００）、１次ＩＩＲ型のローシェルフフィルタとするための係数算出処理（Ｓ４０４）が実行される。
【００３２】
図５は、１次ＩＩＲ型のローシェルフフィルタの係数算出処理（Ｓ４０４）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ５０１）。また、係数算出部３０は、ゲイン（dG）に基づいて、G2＝10|dG|/20より、変数G2の値を算出する（Ｓ５０２）。
【００３３】
そして、ゲイン（dG）が正の場合（Ｓ５０３：Ｙ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ５０４）。  
X＝1＋SIG
A[0]＝(1＋SIG×2)／X
A[1]＝(SIG×G2−1)／X
A[2]＝0
B[1]＝(SIG−1)／X
B[2]＝0
また、ゲイン（dG）が負の場合（Ｓ５０３：Ｎ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ５０５）。  
X＝1＋SIG×G2
A[0]＝(1＋SIG)／X
A[1]＝(SIG−1)／X
A[2]＝0
B[1]＝(SIG×G2−1)／X
B[2]＝0
フィルタタイプ（iType）が０ｘ０１の場合は（Ｓ４０３：０ｘ０１）、１次ＩＩＲ型のハイシェルフフィルタとするための係数算出処理（Ｓ４０５）が実行される。
【００３４】
図６は、１次ＩＩＲ型のハイシェルフフィルタの係数算出処理（Ｓ４０５）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ６０１）。また、係数算出部３０は、ゲイン（dG）に基づいて、G2＝10|dG|/20より、変数G2の値を算出する（Ｓ６０２）。
【００３５】
そして、ゲイン（dG）が正の場合（Ｓ６０３：Ｙ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ６０４）。  
X＝1＋SIG
A[0]＝(SIG＋G2)／X
A[1]＝(SIG−G2)／X
A[2]＝0
B[1]＝(SIG−1)／X
B[2]＝0
また、ゲイン（dG）が負の場合（Ｓ６０３：Ｎ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ６０５）。  
X＝SIG＋G2
A[0]＝(1＋SIG)／X
A[1]＝(SIG−1)／X
A[2]＝0
B[1]＝(SIG−G2)／X
B[2]＝0
フィルタタイプ（iType）が０ｘ０２の場合は（Ｓ４０３：０ｘ０２）、２次ＩＩＲ型のピーキングフィルタとするための係数算出処理（Ｓ４０６）が実行される。
【００３６】
図７は、２次ＩＩＲ型のピーキングフィルタの係数算出処理（Ｓ４０６）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ７０１）。また、係数算出部３０は、ゲイン（dG）に基づいて、G2＝10|dG|/20より、変数G2の値を算出する（Ｓ７０２）。
【００３７】
そして、ゲイン（dG）が正の場合（Ｓ７０３：Ｙ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ７０４）。  
X＝1＋(SIG／dQ)＋(SIG×SIG)
A[0]＝{1＋(SIG×G2／dQ)＋(SIG×SIG)}／X
A[1]＝{2×(SIG×SIG−1)}／X
A[2]＝{1−(SIG×G2／dQ)＋(SIG×SIG)}／X
B[1]＝{2×(SIG×SIG−1)}／X
B[2]＝{1−(SIG／dQ)＋(SIG×SIG)}／X
また、ゲイン（dG）が負の場合（Ｓ７０３：Ｎ）、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ７０５）。  
X=1＋(SIG×G2／dQ)＋(SIG×SIG)
A[0]={1＋(SIG／dQ)＋(SIG×SIG)}／X
A[1]={2×(SIG×SIG−1)}／X
A[2]={1−(SIG／dQ)＋(SIG×SIG)}／X
B[1]={2×(SIG×SIG−1)}／X
B[2]={1−(SIG×G2／dQ)＋(SIG×SIG)}／X
フィルタタイプ（iType）が０ｘ０３の場合は（Ｓ４０３：０ｘ０３）、１次ＩＩＲ型のハイパスフィルタとするための係数算出処理（Ｓ４０７）が実行される。
【００３８】
図８は、１次ＩＩＲ型のハイパスフィルタの係数算出処理（Ｓ４０７）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ８０１）。そして、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ８０２）。  
X＝1＋SIG
A[0]＝1／X
A[1]＝(−1)／X
A[2]＝0
B[1]＝(SIG−1)／X
B[2]＝0
フィルタタイプ（iType）が０ｘ０４の場合は（Ｓ４０３：０ｘ０４）、２次ＩＩＲ型のハイパスフィルタとするための係数算出処理（Ｓ４０８）が実行される。
【００３９】
図９は、２次ＩＩＲ型のハイパスフィルタの係数算出処理（Ｓ４０８）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ９０１）。そして、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ９０２）。  
X＝1＋(SIG／dQ)＋(SIG×SIG)
A[0]＝1／X
A[1]＝(−2)／X
A[2]＝1／X
B[1]＝{2×(SIG×SIG−1)}／X
B[2]＝{1−(SIG／dQ)＋(SIG×SIG)}／X
フィルタタイプ（iType）が０ｘ０５の場合は（Ｓ４０３：０ｘ０５）、１次ＩＩＲ型のローパスフィルタとするための係数算出処理（Ｓ４０９）が実行される。
【００４０】
図１０は、１次ＩＩＲ型のローパスフィルタの係数算出処理（Ｓ４０９）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ１００１）。そして、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ１００２）。  
X＝1＋SIG
A[0]＝SIG／X
A[1]＝SIG／X
A[2]＝0
B[1]＝(SIG−1)／X
B[2]＝0
フィルタタイプ（iType）が０ｘ０６の場合は（Ｓ４０３：０ｘ０６）、２次ＩＩＲ型のローパスフィルタとするための係数算出処理（Ｓ４１０）が実行される。
【００４１】
図１１は、２次ＩＩＲ型のローパスフィルタの係数算出処理（Ｓ４１０）の一例を示すフローチャートである。係数算出部３０は、カットオフ周波数（dF）及びサンプリング周波数（Fs）に基づいて、SIG＝tan(π×dF×Fs)より、変数SIGの値を算出する（Ｓ１１０１）。そして、係数算出部３０は、次式により、フィルタ係数Ａ［０］〜Ｂ［２］を算出する（Ｓ１１０２）。  
X＝1＋(SIG／dQ)＋(SIG×SIG)
A[0]＝(SIG×SIG)／X
A[1]＝{(2×(SIG×SIG)}／X
A[2]＝(SIG×SIG)／X
B[1]＝{2×(SIG×SIG−1)}／X
B[2]＝{1−(SIG／dQ)＋(SIG×SIG)}／X
フィルタタイプ（iType）が０ｘ０７の場合は（Ｓ４０３：０ｘ０７）、入力信号をそのまま出力する（スルーする）フィルタとするための係数算出処理（Ｓ４１１）が実行される。図１２は、入力信号をそのまま出力する場合の係数算出処理（Ｓ４１１）の一例を示すフローチャートである。この場合、係数算出部３０は、フィルタ係数Ａ［０］を１とし、その他のフィルタ係数Ａ［１］〜Ｂ［２］を０とする。
【００４２】
次に、フィルタ係数の正規化処理について説明する。図１３は、フィルタ係数の正規化処理の一例を示すフローチャートである。まず、係数算出部３０は、シフト量を示す変数iDivに所定の値（本実施形態では２）を設定する（Ｓ１３０１）。変数iDivの値は、フィルタ係数を除算する値を示している。例えば、変数iDivが２の場合、フィルタ係数を２で除算することとなり、この場合は１ビット右シフトされることとなる。なお、変数iDivには、２だけでなく、シフト量に応じて１、４、８等、２Nの値を設定することが可能である。続いて、係数算出部３０は、フィルタ係数Ａ［０］〜Ｂ［２］の絶対値の最大値を変数dDivMaxに設定する（Ｓ１３０２）。そして、係数算出部３０は、変数dDivMaxが０より小さいか、または、変数dDivMaxが変数iDivより大きいかを確認する（Ｓ１３０３）。つまり、係数算出部３０は、フィルタ係数Ａ［０］〜Ｂ［２］を変数iDivで除算した結果が−１〜１の範囲に収まるかどうかを確認している。そして、変数dDivMaxが０より小さいか、または、変数iDivより大きい場合（Ｓ１３０３：Ｙ）、係数算出部３０は、外部のマイコン１６に対してパラメータ指定エラー（算出エラー信号）を通知する（Ｓ１３０４）。一方、変数dDivMaxが０以上で変数iDiv以下の場合（Ｓ１３０３：Ｎ）、係数算出部３０は、次式によりフィルタ係数Ａ［０］〜Ｂ［２］を正規化する（Ｓ１３０５）。なお、iDiv＝２Nとすると、変数iDivでの除算はＮビット右シフトすることにより実現される。  
A[0]＝A[0]／iDiv
A[1]＝A[1]／iDiv
A[2]＝A[2]／iDiv
B[1]＝−B[1]／iDiv
B[2]＝−B[2]／iDiv
【００４３】
＝＝その他の構成＝＝
ＤＳＰ２５により実現されるフィルタは、ＩＩＲフィルタに限らず、ＦＩＲフィルタ等の他の構成のフィルタとすることも可能である。図１４は、ＤＳＰ２５により実現されるＦＩＲフィルタの一例の概念を示すブロック図である。図に示すように、ＦＩＲフィルタは、遅延部７０−１〜７０−２０、加算部７１−１〜７１−２０、及び乗算部７２−０〜７２−２０により構成されている。
【００４４】
マイコン１６は、ＦＩＲフィルタのフィルタ特性を定めるための制御データとして、タップ数情報（Tap）、周波数情報（Fc）、及びサンプリング周波数情報（Fs）を、システムバス等を介して係数算出部３０に出力する。タップ数情報は、ＦＩＲフィルタにおけるタップ数、すなわち、遅延部の段数を特定するための情報である。
【００４５】
係数算出部３０は、例えばＦＩＲフィルタを、制御データにより示される特性を有するローパスフィルタとするために、フィルタ係数ｈ0〜ｈ20を算出し、算出したフィルタ係数をレジスタ４１に格納する。例えば、タップ数が２０、カットオフ周波数が３ＫＨｚ、サンプリング周波数が４４．１ＫＨｚの場合、係数算出部３０は、ＭＡＴＬＡＢ（登録商標）の関数fir1を用いて、fir1(20, 3000/(44100/2))により、フィルタ係数ｈ0〜ｈ20を算出することができる。
【００４６】
以上、本発明の実施形態について説明した。前述したように、信号処理回路１５では、外部のマイコン１６から入力される周波数情報に基づいて、フィルタ係数が算出される。したがって、マイコン１６からフィルタ係数そのものが入力される場合よりも少ないデータ量の制御データにより、フィルタ処理における出力信号の特性周波数を変更することができる。これにより、システムバス等における通信量が少なくなり、システムの処理性能への影響を抑制することが可能となる。また、マイコン１６においてフィルタ係数を記憶しておく必要がないため、マイコン１６内のメモリ容量の増加を抑制することができる。
【００４７】
また、信号処理回路１５では、周波数情報に加えて、マイコン１６からサンプリング周波数情報、ゲイン情報、及び選択度情報の少なくとも一つを更に受信し、周波数情報、並びに、サンプリング周波数情報、ゲイン情報、及び選択度情報のうち受信した情報に基づいて、フィルタ係数を算出することも可能である。つまり、信号処理回路１５では、フィルタ係数よりも少ないデータ量の制御データにより、フィルタ処理における出力信号の特性周波数、サンプリング周波数、ゲイン、及び選択度を変更することができる。
【００４８】
さらに、信号処理回路１５では、フィルタタイプ情報を受信することにより、フィルタの種類に応じたフィルタ係数を算出することも可能である。つまり、信号処理回路１５では、フィルタ係数よりも少ないデータ量お制御データにより、フィルタの種類（ハイパスフィルタ、ローパスフィルタ等）を変更することもできる。
【００４９】
例えば、２次ＩＩＲフィルタにおけるフィルタ係数Ａ［０］〜Ｂ［２］の精度を３バイト（２４ビット）とする場合、フィルタ係数そのものをマイコン１６から信号処理回路１５に送信することとすると、送信されるデータは１５バイトとなる。一方、制御データを図２に示した構成とする場合であれば、マイコン１６から信号処理回路１５に送信されるデータは５バイトとなり、フィルタ係数そのものを送信する場合の１／３で済むこととなる。
【００５０】
また、信号処理回路１５では、フィルタ係数Ａ［０］〜Ｂ［２］が所定範囲の値（−１〜１）となるように、フィルタ係数の右シフト処理を行っている。これにより、フィルタ係数を固定小数点型の小数として扱うことが可能となる。つまり、小数演算を固定小数点演算により行う回路への適用が可能となる。
【００５１】
そして、信号処理回路１５では、フィルタ係数を所定ビット右シフトしても、フィルタ係数が所定範囲の値（−１〜１）とならない場合は、パラメータ指定エラーをマイコン１６に通知する。なお、フィルタ係数の値に応じて右シフト量を大きくすることにより、フィルタ係数が所定範囲の値となるようにすることも可能であるが、シフト量を大きくしすぎると精度が低下してしまうこととなる。そのため、本実施形態に示したように、シフト量は固定としておき、シフト後のフィルタ係数が所定範囲の値（−１〜１）とならない場合はエラーとすることにより、フィルタ係数の精度の低下を抑制することが可能となる。
【００５２】
なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００５３】
【図１】本発明のフィルタ処理集積回路の一実施形態である信号処理回路を含んで構成されるＡＭラジオ受信装置の構成例を示す図である。
【図２】マイコンから係数算出部に送信される制御データの一例を示す図である。
【図３】ＤＳＰにより実現される２次ＩＩＲフィルタの一例の概念を示すブロック図である。
【図４】係数算出処理の全体の流れを示すフローチャートである。
【図５】１次ＩＩＲ型のローシェルフフィルタの係数算出処理の一例を示すフローチャートである。
【図６】１次ＩＩＲ型のハイシェルフフィルタの係数算出処理の一例を示すフローチャートである。
【図７】２次ＩＩＲ型のピーキングフィルタの係数算出処理の一例を示すフローチャートである。
【図８】１次ＩＩＲ型のハイパスフィルタの係数算出処理の一例を示すフローチャートである。
【図９】１次ＩＩＲ型のハイパスフィルタの係数算出処理の一例を示すフローチャートである。
【図１０】１次ＩＩＲ型のローパスフィルタの係数算出処理の一例を示すフローチャートである。
【図１１】２次ＩＩＲ型のローパスフィルタの係数算出処理の一例を示すフローチャートである。
【図１２】入力信号をそのまま出力する場合の係数算出処理の一例を示すフローチャートである。
【図１３】フィルタ係数の正規化処理の一例を示すフローチャートである。
【図１４】ＤＳＰにより実現されるＦＩＲフィルタの一例の概念を示すブロック図である。
【図１５】信号処理回路を用いて構成されるシステムの一部を示す図である。
【図１６】２次ＩＩＲフィルタの一例の概念を示すブロック図である。
【符号の説明】
【００５４】
１  ＡＭラジオ受信装置                  １０  アンテナ
１１  フロントエンド処理回路            １５  信号処理回路
１６  マイコン                          １７  スピーカ
２１  ＡＤコンバータ                    ２５  ＤＳＰ
２６  メモリ                            ３０  係数算出部
３５  ＤＡコンバータ                    ４０  フィルタ部
４１  レジスタ                          ５４  加算部
５０〜５３  遅延部
５５〜５９  乗算部
７０−１〜７０−２０  遅延部
７１−１〜７１−２０  加算部
７２−０〜７２−２０  乗算部
６０  シフト部
【図１】
2008022335.tif 000003
【図２】
2008022335.tif 000004
【図３】
2008022335.tif 000005
【図４】
2008022335.tif 000006
【図５】
2008022335.tif 000007
【図６】
2008022335.tif 000008
【図７】
2008022335.tif 000009
【図８】
2008022335.tif 000010
【図９】
2008022335.tif 000011
【図１０】
2008022335.tif 000012
【図１１】
2008022335.tif 000013
【図１２】
2008022335.tif 000014
【図１３】
2008022335.tif 000015
【図１４】
2008022335.tif 000016
【図１５】
2008022335.tif 000017
【図１６】
2008022335.tif 000018