JP6059909B2 - フィルタバンク、楽音変調装置及び信号圧縮装置 - Google Patents

フィルタバンク、楽音変調装置及び信号圧縮装置 Download PDF

Info

Publication number
JP6059909B2
JP6059909B2 JP2012181518A JP2012181518A JP6059909B2 JP 6059909 B2 JP6059909 B2 JP 6059909B2 JP 2012181518 A JP2012181518 A JP 2012181518A JP 2012181518 A JP2012181518 A JP 2012181518A JP 6059909 B2 JP6059909 B2 JP 6059909B2
Authority
JP
Japan
Prior art keywords
filter
frequency
stage
circuit
input signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012181518A
Other languages
English (en)
Other versions
JP2014039212A (ja
Inventor
佐藤 康史
康史 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP2012181518A priority Critical patent/JP6059909B2/ja
Publication of JP2014039212A publication Critical patent/JP2014039212A/ja
Application granted granted Critical
Publication of JP6059909B2 publication Critical patent/JP6059909B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、フィルタバンク、楽音変調装置及び信号圧縮装置に関する。
複数のフィルタによって入力信号を夫々のフィルタに応じた周波数帯域に分割する構成として、以下に示す特許文献1や2のフィルタバンクの構成が知られている。
即ち、特許文献1では、フィルタをFIRデジタルフィルタで構成し、このフィルタのための畳み込み演算を、偶数番目のインパルスレスポンス項と奇数番目のインパルスレスポンス項に分けて部分的に時分割演算することで回路規模の圧縮を図る旨が記載されている。
他方特許文献2では、フィルタをツリー構造にし、ローパス側にのみ後段を接続し、この接続の際にダウンサンプリングを行うことで折り返しノイズを低減する旨が記載されている。
特開平06−104696号 特開平08−097726号
しかし、これらはいずれも多数のフィルタをツリー構造で保持することでフィルタバンクを構成するが、多数のフィルタを保持すればそのこと自体が回路規模を圧迫することを避け得ない。仮に一般に知られる回路技術によってフィルタ回路自体を時分割多重化で共有するとしても、そのための演算量は膨大になり、高速な演算装置を必要とすると同時に、個々のフィルタ演算毎に別途係数記憶回路を用意する必要があり、大きな記憶装置をも必要とするようになる。
本発明は、以上のような問題に鑑み創案されたもので、時分割多重化されたフィルタ演算装置において演算量を最小化するとともに、記憶回路をも最小化することにより、必要最小限の演算装置と記憶回路によってフィルタバンクを構成できるようにすることを目的とする。
併せてそのような構成を用いた楽音変調装置及び信号圧縮装置についても、提案する。
本発明に係る構成は、
デジタルの入力信号を複数の周波数帯域の信号に分割し、該分割された各帯域の信号を時分割に演算して出力するフィルタバンクにおいて、
該デジタルの入力信号のサンプリング周波数に対して一定の比率で定められたカットオフ周波数で入力信号を周波数帯域分割する複数のフィルタからなる第1段のフィルタブロックと、
上記第1段のフィルタブロックに下記数7に示すN段にカスケード接続される下記数8に示す第i段のフィルタブロックであって、入力信号の半分のサンプリング周波数で動作し、該半分のサンプリング周波数に対するカットオフ周波数の比が前記第1段のフィルタブロックと同様である第i段のフィルタブロックN−1段と
を備え、
前記1乃至N段のフィルタブロックの前記演算のための係数を共有し、上記各帯域の信号を時分割に演算する際に、該係数を交互にアクセスするようにしたことを基本的特徴としている。
(数7) 2≦N
(数8) 1<i≦N
上記構成によれば、フィルタバンクを構成する各フィルタの、サンプリング周波数に対するカットオフ周波数が一様となり、かつフィルタ回路を時分割多重化しているため、共有するただ一組のフィルタ係数を交互に使用することでフィルタ演算を行うことができ、この結果上記のような膨大な記憶装置を備える必要がなくなることになる。
また本発明では、
デジタルの入力信号を複数の周波数帯域の信号に分割し、該分割された各帯域の信号を時分割に演算して出力するフィルタバンクにおいて、
該デジタルの入力信号のサンプリング周波数に対して一定の比率で定められたカットオフ周波数で入力信号を周波数帯域分割する複数のフィルタからなる第1段のフィルタブロックと、
上記第1段のフィルタブロックに下記数9に示すN段にカスケード接続される下記数10に示す第i段のフィルタブロックであって、入力信号の半分のサンプリング周波数で動作し、該半分のサンプリング周波数に対するカットオフ周波数の比が前記第1段のフィルタブロックと同様である第i段のフィルタブロックN−1段と
を備え、
前記第1段のフィルタブロックの入力信号のサンプル時間の1/2の期間に前記時分割演算のタイムスロットを配置するとともに、
前記サンプル時間の残りの1/2の期間に、前記第i段のフィルタブロックの時分割演算のタイムスロットを、前記第i段のサンプリング周波数に相当するサンプリング期間の1/2の期間内に収まるように配置することを特徴としている。
(数9) 2≦N
(数10) 1<i≦N
以上のような構成により、フィルタバンクを最適化された最小のタイムスロット構成で時分割演算することができるようになり、上記従来技術で必要とされていたような高速で高価な演算装置が必要なくなることになる。
また、前記フィルタブロックは、1個以上のハイパスフィルタ、0個以上のバンドパスフィルタ、1個以上のローパスフィルタを含み、
前記カスケード接続はi−1段のフィルタブロックのローパスフィルタ出力からi段の入力に対して行われる構成とすると良い。
そのような構成を備えることにより、オクターブ間を自由にx分割したフィルタバンクを構成することができるようになる。
その場合の上記フィルタバンクの構成として、
前記第1段のフィルタブロックは、前記入力信号を下記数11に示す前記カットオフ周波数のM倍のサンプリング周波数にオーバーサンプルするオーバーサンプリング手段を備え、
前記フィルタのオクターブあたりの減衰量−X[dB/Oct]と前記入力信号のデータ分解能K[bits]との関係が下記数12式を満たす
ようにすることが最も良い。
(数11) Mは2の正数乗
(数12) K≦X・log2(M)/6
このような構成を備えることで、サンプリングノイズを事実上完全に除去することができるようになるからである。
前記フィルタが、直交ミラーフィルタを構成可能であれば、フィルタバンクによって分割した入力信号をほぼ完全に復元させることができるようになる。
さらに、本願構成では、楽音変調装置の構成についても、提案するものであって、その具体的構成は、
これまでに述べたいずれかのフィルタバンクを2組備え、
第1のフィルタバンクの各周波数帯域毎の出力にエンベロープフォロワを設け、
第2のフィルタバンクの各周波数帯域毎の出力に係数を乗算する乗算器を設け、
上記エンベロープフォロワの出力を上記乗算器の係数として上記各周波数帯域毎に付与し、
上記第2のフィルタバンクの入力に楽音、上記第1のフィルタバンクの入力に変調音を夫々付与するようにしたことを特徴とするものである。
このような構成を備えた楽音変調装置によれば、最小構成によっていわゆるボコーダ効果を楽音に付与することが可能となる。
加えて、本願構成では、信号圧縮装置の構成についても、提案するものであって、その具体的構成は、
これまでに述べたいずれかのフィルタバンクを備え、
上記フィルタバンクの各周波数帯域毎の出力を周波数軸データに変換し、
上記周波数軸データを所定の圧縮方法で圧縮し、
上記圧縮された入力信号を所定の形式で送出又は記録するようにしたことを特徴とするものである。
このような構成を備えた信号圧縮装置によれば、最小構成によって、以上述べたフィルタバンクの特徴を備えた、信号圧縮装置を構成することができるようになる。
以上のような本発明の構成によれば、フィルタバンクを構成する各フィルタの、サンプリング周波数に対するカットオフ周波数が一様となり、かつフィルタ回路を時分割多重化しているため、共有するただ一組のフィルタ係数を交互に使用することでフィルタ演算を行うことができ、この結果上記のような膨大な記憶装置を備える必要がなくなるという優れた効果を奏し得る。
また2つ目の構成によれば、フィルタバンクを最適化された最小のタイムスロット構成で時分割演算することができるようになり、上記従来技術で必要とされていたような高速で高価な演算装置が必要なくなるという効果も有している。
さらに、フィルタバンクに、1個以上のハイパスフィルタ、0個以上のバンドパスフィルタ、1個以上のローパスフィルタを含み、且つ前記カスケード接続はi−1段のフィルタバンクのローパスフィルタ出力からi段の入力に対して行われる構成を備えることで、オクターブ間を自由にx分割したフィルタバンクを構成することが可能となるという効果を奏することができる。
このフィルタバンクの構成として、第1段のフィルタバンクは、前記入力信号を上記数11に示す前記カットオフ周波数のM倍のサンプリング周波数にオーバーサンプルするオーバーサンプリング手段を備えると共に、前記フィルタのオクターブあたりの減衰量−X[dB/Oct]と前記入力信号のデータ分解能K[bits]との関係が上記数12式を満たす構成とすることで、サンプリングノイズを事実上完全に除去することができるようになる。
加えて前記フィルタが、直交ミラーフィルタとすることにより、フィルタバンクによって分割した入力信号をほぼ完全に復元させることができるようになるという優れた効果を得られる。
さらに本発明で提案する楽音変調装置の構成によれば、最小構成によっていわゆるボコーダ効果を楽音に付与する楽音変調装置を構成することができるようになる。
その上、本発明で提案する信号圧縮装置の構成によれば、最小構成によって、以上述べたフィルタバンクの特徴を備えた、信号圧縮装置を作り上げることができるようになる。
以下、本発明の実施の形態を、添付図面に基づき、説明する。
図1〜図10までは、本発明の第1の実施例(以下、実施例1)に係るフィルタバンクの構成を示している。
図1(a)(b)は、実施例1が動作するための各種同期クロック信号を発生するクロック回路である。マスタクロック発生器100は水晶発信器などを用いて、例えば10.24[MHz]のマスタクロックMCKを発生する。Dフリップフロップ101、102、103、104、105、…、106、…、107、XOR(排他的論値和)回路108、109、110、111、…、112、…、113及びAND(論理積)回路114、115、116、117、…、118、…は同期カウンタを構成し、各Dフリップフロップ毎に前段の出力を2分周したクロック信号を発生する。このうち、4段目の出力をCLK0とし、以下1段毎に前段の半分の周波数のクロックCLK1、…、CLKi、…、CLKnを発生する。実施例1では、フィルタブロック数xについて、クロックCLK(x+1)までが必要であり、フィルタバンク数は(x+1)に等しい。本例はフィルタブロック数4、即ちフィルタバンク数を5バンドとしている。
図1(a)はマスタクロックを8分周するとともに、図1(b)のCLK0以下を同期させる同期信号SCK、各所のラッチ回路のラッチ信号を作成する元となるラッチクロックLCKを発生する。図1(b)は、上述のクロックCLK0〜CLKnを発生する。クロックCLK0〜CLKnはクロックバスCLK BUSとして束ねられる。実施例1では、CLK0〜5が生成され、クロックバスCLK BUSに束ねられる。
図2と図3は、図1(a)(b)の各信号のタイミングを示すタイミングチャートである。図2には、図1(a)の各信号と図1(b)のCLK0信号が、図3には、図1(b)のCLK0以下のクロック信号が図示されている。但しスペースの関係上、CLK5は前半の反周期しか示されていない。ここでCLK0はフィルタ回路がローパスまたはハイパスのフィルタ演算を1サンプル実行する演算サイクルであり、後述するフィルタ回路は1回路を時分割で複数のフィルタブロック(実施例1では4ブロック)のハイパス及びローパスフィルタ演算のために共有する。従ってCLK0の1周期が時分割のタイムスロットの単位となる。
DIVはこのタイムスロットの割り当て状況を示している。ここでLPFはローパスフィルタ演算、HPFはハイパスフィルタ演算、()内はフィルタブロック番号である。NCは実施例1にさらにフィルタブロックを増設する場合のための予備スロットであり、演算を実行しない。省略されているCLK5の後半サイクルでは、ほとんどのタイムスロット割り当ては前半に同じだが、前半サイクルのLPF(3)のタイミングではHPF(3)、即ちフィルタブロック3のハイパスフィルタ演算が実行される。後半サイクルでも、NCのタイミングは予備スロットであり、演算は実行しない。以上のタイムスロットの割り当ては、後述するタイミング回路によって実行される。
Tsは初段フィルタブロックの演算間隔であり、4タイムスロット毎にHPF(0)とLPF(0)を一回ずつ演算していることを示す。フィルタは演算タイミング毎に入力信号を読み出して演算を行うのであるから、Tsは初段のサンプリング周波数の逆数でもある。同様に、二段目のフィルタブロックの演算間隔は2×Ts、三段目のフィルタブロックの演算間隔は4×Ts、四段目(最終段)のフィルタブロックの演算間隔は8×Tsである。このように各フィルタブロックは段目を重ねる毎にダウンサンプリングを行ってサンプリング周波数を前段の1/2に下げる。
図4は、実施例1のフィルタバンクを構成するフィルタブロックの論理的な基本構造を示す論理ブロック図である。ここで「SIG」は実施例1のフィルタバンクに入力される音声信号あるいは楽音信号をデジタル化したものであり、オーバーサンプリング回路204を経てフィルタバンクを構成するフィルタブロックの初段200に入力される。フィルタブロック200、201、202、203は、入力信号を所定のカットオフ周波数以上と同周波数以下の2つの周波数帯域の信号に分割し、最終段を除いて、同周波数以下の出力を次段にカスケード接続する。
いま各ブロックのカットオフ周波数をFc(0)、Fc(1)、Fc(2)、Fc(3)[Hz]とし、入力信号の周波数帯域を0〜Fi[Hz]とすれば、初段フィルタブロック200は入力信号のうちFc(0)〜Fi[Hz]の成分を出力「Out0」に、0〜Fc(0)[Hz]の成分を2段フィルタブロック201にそれぞれ出力する。2段フィルタブロック201は、0〜Fc(0)[Hz]の成分を受けて、Fc(1)〜Fc(0)[Hz]の成分を出力「Out1」に、0〜Fc(1)[Hz]の成分を3段フィルタブロックにそれぞれ出力する。3段フィルタブロック202は、0〜Fc(1)[Hz]の成分を受けてFc(2)〜Fc(1)[Hz]の成分を出力「Out2」に、0〜Fc(2)[Hz]の成分を4段(最終段)フィルタブロックにそれぞれ出力する。4段フィルタブロック203は、0〜Fc(2)[Hz]の成分を受けてFc(3)〜Fc(2)[Hz]の成分を、「Out3」に、0〜Fc(3)[Hz]の成分を「Out4」にそれぞれ出力する。上述のように、これらのフィルタブロックは時分割で動作する各1個のデジタルローパスフィルタLPF(j)とデジタルハイパスフィルタHPF(j)(j=0,1,…,3)を含むが、それぞれのデジタルフィルタの演算係数は係数ジェネレータ205より時分割に与えられる。
上述のように、実際のフィルタ回路は1つであり、これを時分割で4個のフィルタブロックのハイパス・ローパスフィルタで共有する一方、演算のための係数はこの時分割タイムスロットに同期して与えられる。この結果、入力された音声または楽音信号SIGは、5個の帯域に分割され、Out0、Out1、…、Out4より出力される。上述のように、実施例1では、ある段のカットオフ周波数は次段のカットオフ周波数の2倍であり、初段のカットオフ周波数を入力信号の周波数帯域の上限(=Fi[Hz])の半分とするので、最も周波数の低いバンド(Out4の出力)以外は総てオクターブバンド、即ち通過帯域周波数の上限周波数が下限周波数の2倍となる。従って、Fi=20000[Hz]とすれば、Fc(0)=10000[Hz]、Fc(1)=5000[Hz]、Fc(2)=2500[Hz]、Fc(3)=1250[Hz]となる。
各フィルタブロックでは、段を重ねる毎にダウンサンプリングを行うため、このままではエイリアシング(折り返し)を発生する。オーバーサンプリング回路204は、このエイリアシング発生を未然に防ぐために設けてある。上述のようにダウンサンプリングはある段のフィルタブロックのローパスフィルタ出力を次段のフィルタブロックが受け取る際に実行される。そこでローパスフィルタの特性に注目する。今フィルタの減衰特性が−X[dB/Oct]であるとする。ローパスフィルタの場合、これはカットオフ周波数の2倍の周波数成分が入力時に比してXデシベル減少していることを示す。
ここで信号がデジタルデータであることを考慮すれば、データ幅(分解能)は有限であるから、信号のダイナミックレンジはデータ幅に依存する。今データ幅がKビットであれば、ダイナミックレンジは6・K[dB]となる。一方、周波数Fxの信号がカットオフ周波数Fc(Fx>Fc)のローパスフィルタ(減衰特性−X[dB/Oct])を通過した場合の減衰量は、X・log2(Fx/Fc)であるが、もし減衰量が上述のダイナミックレンジを超えている場合、この信号をデジタルデータが表現することはできないのであるから、出力にこの信号は残留しない。即ち、6・K≦X・log2(Fx/Fc)であれば出力に残留しない。Fx/Fc=Mと比周波数で表現し、この式を変形すれば、K≦X・log2(M)/6となる。
今、フィルタを二次のバターワースフィルタとすると、ローパスフィルタのオクターブあたりの減衰量は、−12[dB/Oct]であるから、X=12となる。一方、データ幅(分解能)をK=8[bits]とすれば、比周波数Mについて、上式から8≦2×log2(M)が成立する。Mが2の正数乗(M=2L)であるとすれば、4≦Lであるから、オーバーサンプリング後のサンプリング定理による周波数帯域を初段フィルタブロックのカットオフ周波数の24=16倍、即ち16倍オーバーサンプリングを行えばよい、ということが判る。図3から、初段のフィルタブロックのサンプリング周期は、DIVでLPF(0)またはHPF(0)が出現する周期であり、従ってCLK2に等しいことが判る。即ち、CLK2の周波数が所望のサンプリング周波数となる。
オーバーサンプリングには別の目的と利点がある。即ち、入力信号がデジタル信号であり、既に固有のサンプリング周波数を備えている場合、このサンプリング周波数と本実施例のシステムサンプリング周波数は一致する(同期する)とは限らない。たとえ本実施例のシステムクロックに水晶発信器を備え、システムサンプリング周波数を公開されている周波数(例えばCDの44100[Hz]、DATの48000[Hz]など)に一致させたとしても、水晶発信器には誤差があるために完全な一致は得られない。そこで、入力信号の固有サンプリング周波数がいくつであれ、本実施例のシステムサンプリング周波数で再サンプリングする必要がある。ここで再サンプル時に高い(オーバーサンプリングの)周波数を用いて再サンプリングし、これにローパスフィルタ(本発明のフィルタブロック内のものとは別途設けられてよい)をかけて平滑化を行えば、再サンプリングによる悪影響をできるだけ排除することができる。
図6(a)はオーバーサンプリング回路204の一例であり、入力信号を16倍(初段のフィルタブロックのカットオフ周波数の32倍)のサンプリング周波数で再サンプリングする回路の例である。図4のSIGから入力信号(パラレルのデジタルデータ)が与えられると、8ビットのラッチ402に入力される。入力された信号はラッチ402のCK入力のアップエッジでラッチ402に記憶される。一方、論理回路400及び401によって、CKにはCLK0〜2が総てハイのタイミング内のラッチクロックLCKが与えられる。即ち、CLK2の最後半タイムスロット毎にラッチされる。記憶された信号はFIRローパスフィルタ回路403に送出される。尚、同図(b)はCLK0、CLK1、CLK2、NAND回路400の出力信号のタイミングチャートを示している。
FIRローパスフィルタ回路403は想定される入力信号のサンプリング周波数F0(仮に40[KHz]とする)の半分、即ち20[KHz]をカットオフ周波数とし、それ以上の周波数成分を除去する。このとき、オーバーサンプリング周波数は40×16=640[KHz]である。これが上述のようにCLK2の周波数に等しい。従って、図1に翻って逆算すれば、MCK=640[KHz]×64=40960[KHz]=40.96[MHz]である。
図6(a)のFIRローパスフィルタはIIRローパスフィルタであっても構わない。また、フィルタブロックと同様の回路構成として時分割に共有しても構わない。
図5(a)はフィルタブロック200、201、202、203のハイパスフィルタHPFまたはローパスフィルタLPFを構成するデジタルフィルタの例である(尚、同図(b)はLCK、CLK0、LCKSのタイミングチャートを示している)。実施例1は上述のように帯域数5バンドのフィルタバンクであるので、フィルタブロック数は4である。それぞれのブロックのハイパスフィルタ側出力と、最終段(4段目)のブロックのローパスフィルタ側出力がバンク出力となる。ブロック200ではオーバーサンプリング回路の、それ以外のブロックでは前段のローパスフィルタLPFの、それぞれ出力を、図示しない接続回路によって「IN」に接続して入力する。加算器300は「IN」、乗算器302の出力、乗算器303の出力を加算して遅延回路307及び乗算器304に送出する。加算器301は乗算器304、乗算器305、乗算器306の出力を加算して、ラッチ309及びラッチ310に送付する。ラッチ309及びラッチ310は入力をCK入力のアップエッジで記憶する。
LCKSは副ラッチクロックであり、CLK0の反転信号とラッチクロックLCKのOR(論理和、ここでは負論理のAND)によって得られる。LCKSを生成する回路は後述する。マルチプレクサ311は入力したLCKSをフィルタ識別信号DEFに応じて振り分け、ハイパスフィルタ演算のタイミングではラッチ309の、ローパスフィルタ演算のタイミングではラッチ310のCK入力に副ラッチクロックLCKSを供給する。
ここで、ラッチ309及びラッチ310は時分割で回路を共有するのではなく、フィルタブロック毎に設けられる。各ブロックのラッチはCK入力を図示しない選別回路によってさらに選別し、自ブロックのタイミングにおいてのみ入力をラッチする。
乗算回路302は入力に、乗算係数バスCOEFのうちa1を乗算して出力する。乗算回路303は入力に、乗算係数バスCOEFのうちa2を乗算して出力する。乗算回路304は入力に、乗算係数バスCOEFのうちb0を乗算して出力する。乗算回路305は入力に、乗算係数バスCOEFのうちb1を乗算して出力する。乗算回路306は入力に、乗算係数バスCOEFのうちb2を乗算して出力する。各乗算係数は後述する係数記憶回路にハイパス、ローパス各1組記憶されており、タイムスロットの内容に合わせてハイパス、ローパスのいずれかが送られてくる。例えばタイムスロットDIVがLPF(1)の場合はローパス係数が、HPF(2)の場合はハイパス係数が送られてくる。
遅延回路307及び308は演算値を一時記憶するので時分割共有されない。この遅延回路307及び308については詳細を後述する。
図7は、図5のフィルタ回路を時分割に各タイムスロットに割り当てるタイミング回路で、図3のDIVに示すタイミングで回路を割り当てる。図7(a)は回路の全体図であり、同図(b)は一部簡略化されている同図(a)の簡略記載を説明する図である。同図(b)に示すように、図7(a)中の○は、右端のANDまたはOR回路への入力があることを示す。例えばAND回路504には、○の位置、即ちNOT(否定または反転)回路500の出力と、CLK2が入力され、両方のANDが出力される。
タイミング回路には、クロックCLK1〜CLK5が入力される。また、このうちCLK0〜CLK4のクロック反転信号をNOT回路500、501、502、503で生成する。従って、AND回路504は、CLK1がロー、CLK2がハイのときにのみハイになる。即ち、図3のDIVがHPF(0)のタイミングでハイになる。同様にAND回路505はCLK1及びCLK3がハイ、CLK2がローのときにのみハイになる。即ち、図3のDIVがHPF(1)のタイミングでハイになる。さらにAND回路506はCLK1、CLK2及びCLK4がハイ、CLK3がローのときにのみハイになる。即ち、図3のDIVがHPF(2)のタイミングでハイになる。また、AND回路507はCLK1、CLK2、CLK3及びCLK5がハイ、CLK4がローのときにのみハイになる。即ち、図3のDIVがまたはHPF(3)のタイミングでハイになる。この結果、OR回路511はフィルタがハイパス動作するときにハイ、ローパス動作するときにローになる。このOR回路511の出力は別信号DEFとして出力される。
一方、OR回路507にはCLK1のみしか入力されない。この回路は便宜上OR回路として記載しているが、実際は入力をそのまま出力するに過ぎず、従ってOR回路507はCLK1がローのときにロー、そうでないときにハイになる負論理のブロック選択信号BLK0を出力する。図3から明らかなように、BLK0はDIVがLPF(0)またはHPF(0)のタイミングでローになる。以下同様に、BLK1はLPF(1)またはHPF(1)のタイミングで、BLK2はLPF(2)またはHPF(2)のタイミングで、BLK3はLPF(3)またはHPF(3)のタイミングでそれぞれローになる。BLK0〜3は束ねられて「CS(オーバーライン付き) BUS」として出力される。
DEF及びBLK0〜3の各信号を生成する方法は、図7のようにワイアードロジックで構成する方法に限らない。ローパス/ハイパスを示す信号と、どのブロックかを示す信号を、図3のDIVのタイミングで出力する方法としてはいろいろ考えられるが、どの方法をとっても構わない。後述の実施例2では、CLKをアドレスとしてROMに与え、ROMに記憶されたマイクロプログラムとして各信号を得る例が掲げてある。さらにそれ以外の方法を用いても構わない。
ここでダウンサンプリングについて説明する。ダウンサンプリングは文字通りサンプリング周波数を下げることである。実施例1では、フィルタブロックの段が減る毎にサンプリング周波数を1/2に下げている。これは、後段の動作周波数を前段の1/2にし、即ち入力信号を前段の出力2回に1回しか受け取らず、演算も前段2回に1回しか行わず、信号出力も前段2回に1回しか出力しないことによる。このダウンサンプリングのためには特別な回路を設けるのではなく、図7のタイミング回路が上記の割合でタイムスロットを割り当てられることにより実行される。
タイムスロットの割り当てに必要十分な条件は、「単位時間当たりのタイムスロットの割り当て頻度を前段2に対し、後段1とする」ことである。付記すれば、実施例1ではローパスフィルタ側に後段をカスケード接続するのであるから、「前段のローパスフィルタのタイムスロット終了の後に後段のハイパスフィルタ、ローパスフィルタの両方のタイムスロットが設置される」ことが重要である。上記の構成を満たす限り、タイムスロットを自由に割り当てても構わない。例えば最終段はどのフィルタブロックにもカスケード接続されないのだから、ローパスフィルタを先に演算する必要がなく、ハイパスフィルタとタイミングを入れ替えてもよい。
図8は、図5のフィルタ回路が使用する乗算係数を記憶し、ローパスまたはハイパスのタイミング毎に切替出力する係数発生回路である。LPF及びHPFは予め用意された乗算係数a1、a2、b0、b1、b2を記憶した記憶回路であり、カットオフ周波数がサンプリング周波数の1/64、LPFがローパス、HPFがハイパスの、二次のバターワースフィルタとして動作するための係数が記憶されている。入力信号のサンプリング周波数が40[KHz]であれば、16倍オーバーサンプリングにより、フィルタブロック初段部分ではサンプリング周波数は640[KHz]となり、初段のカットオフ周波数10[KHz]を得るためにはサンプリング周波数の1/64が適正である。また、二段目以降は段目毎に半分にダウンサンプリングを行いつつカットオフ周波数も半分になり、以下同様であるので、サンプリング周波数とカットオフ周波数の比は不変である。従って乗算係数はローパスとハイパスで切り替えるのみでよい。フィルタの設計をうまく工夫して、ローパスとハイパスの一部の乗算係数を共有したり、係数の絶対値を等しくして記憶回路をまとめ、正負反転回路を経由させたりなどしても構わない。
記憶回路LPFとHPFは常に上記係数を出力しているが、これらはトライステートバッファ800及び801を経由して結合され、束ねられて係数信号「COEF」として出力される。ここで、トライステートバッファは識別信号DEFとNOT回路802により、トライステートバッファ800または801の一方のみが出力される。この結果、識別信号DEFがロー(負論理のON)のとき記憶回路LPFの出力が、ハイのとき、即ちNOT回路802の出力がロー(負論理のON)のとき記憶回路HPFの出力がCOEFに出力される。ここで、2つのトライステートバッファに替えてセレクタを用い、DEFの値に応じてLPF(DEFがローのとき)/HPF(DEFがハイのとき)いずれか一方の係数値のみを選択的にCOEFに出力するようにしてもよい。
図9は、図5に示す遅延回路307及び308を詳細に記載したものだが、時分割共有される図5のフィルタ回路と異なり、演算の一時値を記憶するラッチトバッファ606〜609を備えており、このため回路を共有せず、各フィルタブロック毎に1回路ずつを備える。フィルタ回路と遅延回路は時分割タイミング毎に図示されない切替回路により、それぞれの時分割スロットの開始時に接続され、終了時に切り離される。
「300→」の記載は、図5の加算器300の出力から上述の図示しない切替回路を経て与えられる信号であり、ラッチトバッファ606及び607に、それぞれのCK端子のアップエッジのタイミングで記憶される。ラッチトバッファ606及び607の出力はそれぞれのOE(オーバーライン付き)端子がローのとき出力され(それ以外のタイミングでは何も出力されず出力側はハイインピーダンスとなり)、同じくラッチトバッファ608及び609に、それぞれのCK端子のアップエッジのタイミングで記憶される。ラッチトバッファ608及び609の出力はそれぞれのOE(オーバーライン付き)端子がローのとき出力され(それ以外のタイミングでは何も出力されず出力側はハイインピーダンスとな)る。
論理回路600〜605はDEF、CS(オーバーライン付き) BUSのうちの当該フィルタブロック(iとする)に相当する信号BKi、CLK0、LCKに応じて各ラッチトバッファのCK入力とOE(オーバーライン付き)入力を作り出す。先ずラッチトバッファ606/608のOE(オーバーライン付き)入力にはDEF信号が、同じくラッチトバッファ607/609のOE(オーバーライン付き)入力にはDEF信号の反転信号が与えられる。即ち、ローパスフィルタ動作の場合は、ラッチトバッファ606/608の出力のみがそれぞれ図示しない切替回路を経て乗算器302及び305/乗算器303及び306に与えられ、ハイパスフィルタ動作の場合はラッチトバッファ607/609の出力のみがそれぞれ図示しない切替回路を経て乗算器302及び305/乗算器303及び306に与えられる。また、各CK入力にはCLK0の後半タイミングにラッチクロックLCKが供給されるが、やはりローパスフィルタ動作の場合は、ラッチトバッファ606/608のみが、ハイパスフィルタ動作の場合はラッチトバッファ607/609のみが上記ラッチクロックを受け取り、入力データを記憶する。CK及びOE(オーバーライン付き)信号はBLKi信号によって当該フィルタブロックの動作のときのみ与えられ、それ以外のタイムスロットでは与えられず、従って記憶内容も変化せず、何も出力しない。
このように、図9のラッチトバッファは、図5のフィルタ回路の遅延回路307及び308として動作し、図5のフィルタ回路と併せて全体としてフィルタ動作を行う。即ち当該ブロックの演算タイミング毎に、フィルタ演算を1度だけ行い、出力信号を1サンプルだけ出力する。
従って、上述のようにタイムスロットを配置することにより、フィルタ回路はダウンサンプリングを行いながらフィルタ演算を行う。
図9のOR回路601の出力は、LCKSとして、図5のフィルタ回路でも用いられる。
図10は、本例のフィルタバンクの周波数特性を示す説明図である。本例のフィルタバンクを構成する5個のオクターブバンドフィルタの周波数特性が重ねて表示されている。なお、本例ではフィルタは二次のバターワースフィルタであるので、通過帯域におけるリップルはゼロであり、減衰量はオクターブあたり12dBである。上述のように、各バンドの境界周波数(各フィルタのカットオフ周波数)はFc(=20[KHz])、Fc/2、Fc/4、Fc/8、Fc/16である。
図11〜図19までは、本発明の第2の実施例(以下、実施例2)に係るフィルタバンクの構成を示している。実施例2は、実施例1のバンド幅を1/3オクターブバンド、バンク数を31に拡張したものであり、ダウンサンプリングを4バンク(最下周波数帯域は次段にカスケード)毎に行う都合上、フィルタブロック(700、701、…、702、…、703)の総数は10となっている。
各バンクの上端カットオフ周波数に対する、当該バンクの下端カットオフ周波数は、1/[2(1/3)]倍となり、各フィルタブロックの上端周波数(=前段ブロックの最下段バンドの上端カットオフ周波数)に対する、当該ブロックの最下段バンドの上端カットオフ周波数は、1/2倍となる。やはり実施例1同様、入力信号に対しオーバーサンプリング回路704を設け、オーバーサンプリングを行う。オーバーサンプリングを行う理由も実施例1と同じである。
図12は、実施例1の図10に対応するものであり、各バンクの周波数特性を示す。実施例2では、フィルタは四次のバターワースフィルタを用いるので、通過帯域におけるリップルはやはりゼロ、減衰量はオクターブあたり24dBである。今入力信号の上限周波数を実施例1同様に20[KHz]とすれば、各バンクの境界周波数は、概ね図13に示す通りとなる。
図14は、実施例1の図1(b)に対応するタイミングチャートである。尚、図1(a)に相当する部分は実施例1と同じである。CLK1はCLK0の、CLK2はCLK1の2分周信号であり、以下同様にCLK6まで記載し、以下省略してあるが、10ブロックのフィルタバンクを動作させるためにはCLK12まで必要である。実施例1同様、DIVは時分割タイムスロットの割り当て状況を示すが、実施例1に加えて同一フィルタブロック内に2つのバンドパスフィルタが追加されているので、帯域周波数の低い方をBPFb、高い方をBPFaと表示している。実施例1と同様にフィルタブロックの段目を経る毎にダウンサンプリングが実施されるが、初段の演算間隔が、実施例1ではCLK2のサイクルに対応していた(タイムスロット4回)のに対し、実施例2ではCLK4のサイクルに対応している(タイムスロット8回)ので、マスタクロックMCKの周波数は、実施例1の4倍の163.84[MHz]である。
オーバーサンプリング回路は、実施例1と同じなので再掲しない。実施例2では信号のデータ幅(分解能)を16ビットとする。また、上述のようにフィルタの減衰量をオクターブ24dBとする。このためオーバーサンプリング周波数は実施例1同様16倍でよい。但し基本となる初段のサンプリング周波数に相当するクロックが、上述のようにCLK2からCLK4に代わるので、NAND(出力反転の論理積)回路400にはCLK0〜CLK2に加えてCLK3とCLK4が入力される。
図15は、実施例1の図7に代替するタイミング回路であり、図7同様にワイアードロジック回路で構成することも可能だが、本例では記憶装置(例えばROM)を用いたマイクロプログラムによって構成されている。即ち、記憶装置ROMには予めタイミング毎のフィルタブロック選択信号(FLT0〜FLT9)と識別信号DEF(実施例1と異なり、フィルタはハイパス、ローパス、二種類のバンドパスの4種類の動作を行うので、識別信号は2ビットとなる)を記憶しておき、CLK1〜CLK12をアドレスとして該ROMに与え、記憶されたデータを読み出して各信号として用いる。DIVを構成する要件は実施例1と同じく、「単位時間当たりのタイムスロットの割り当て頻度を前段2に対し、後段1とする」及び「前段のローパスフィルタのタイムスロット終了の後に後段のハイパスフィルタ、ローパスフィルタの両方のタイムスロットが設置される」であり、上記条件を満たせば好みの位置にタイムスロットを配置して構わない。例えば任意のフィルタブロックのBPFaと、同じフィルタブロックのBPFbまたはHPFのタイミングを入れ替えて構わない。
図17は、実施例1の図5に相当し、各フィルタブロックのフィルタが時分割で共有するフィルタ回路である。実施例1ではフィルタはハイパスまたはローパスだけであったので、フィルタの次数に相当する遅延段数を備えれば十分であったが、実施例2では両者に加えて二種類のバンドパスフィルタを1つのフィルタブロック内に備える必要があるため、4次のバターワースフィルタであるにもかかわらず、8段の遅延段数を有する。これにより、バンドパスフィルタ動作する場合は、上限周波数側で4次のローパスフィルタ、下限周波数側で4次のハイパスフィルタをかけるのと同様になり、ローパスフィルタ、ハイパスフィルタとスロープ特性を一致させることができる。ここで、乗算係数のうちa5〜a8とb5〜b8は、ローパスまたはハイパスフィルタの場合は0が与えられる。ここでラッチ1727〜1730は、実施例1同様フィルタブロック毎に設けられ、図示しない切替回路によって当該フィルタブロックのタイムスロットに該当する期間のみフィルタ回路と接続される。遅延回路1719〜1726については詳細を後述する。
図16は、図17のフィルタ演算に使用する乗算係数a1〜a8及びb0〜b8を記憶し、当該タイミングにCOEFを経由してフィルタ回路に送出する係数ジェネレータであり、実施例1の図8に相当する。実施例1の別案で述べたように、トライステートバッファに代えてセレクタを使用してある。フィルタ係数は1フィルタブロックの4種類のフィルタが使用する1セットだけが記憶され、この係数を総てのフィルタブロックが共有する。
ここで実施例2の別案に触れておく。実施例2のフィルタ回路は8次のIIRフィルタである。これは遅延8段の回路を梯子状に接続することで構成されている。しかし、同じ特性を得るために、別の接続方法をとることもできる。例えば遅延4段(4次)のIIRフィルタを2回路直列に接続し、一方でハイパスフィルタ、他方でローパスフィルタを実現する方法である。
このような構成をとった場合、直列接続された一方のフィルタはハイパスまたはローパス動作の再には乗算係数を与えられず、従って入力をそのまま出力する(回路を使用しない)状態となる。
そこで、フィルタ回路を遅延4段×2回路に分割し、バンドパスフィルタのタイムスロットでは直列1回路として、ハイパス/ローパスフィルタのタイムスロットでは独立2回路として動作するようにする。そして図14のタイムスロットでLPF(i)を計算する際に同時にHPF(i)を計算する。このように構成すれば全体のタイムスロット数をさらに3/4に圧縮することができるようになる。この場合もタイムスロットを配置する条件は「単位時間当たりのタイムスロットの割り当て頻度を前段2に対し、後段1とする」及び「前段のローパスフィルタのタイムスロット終了の後に後段のハイパスフィルタ、ローパスフィルタの両方のタイムスロットが設置される」である。このときバンドパスフィルタBPFaまたはBPFbは自ら総てのフィルタ回路を使用するのであるから、当該フィルタのタイムスロットに他のフィルタ演算を同時に行うことはできない。以上が実施例2の別案である。
図18は、図17の遅延回路1719〜1726をまとめて示したものである。遅延回路は上述のように各フィルタで個々に値を記憶し、共有できない。そこで、本例ではデュアルポートRAMを用いて総てのフィルタの総ての遅延回路をまとめて構成する。デュアルポートRAMは読出と書込のそれぞれにアドレスバスとデータバスを備え、あるアドレスにデータを書き込みながら別のアドレスのデータを読み出すことができる。遅延回路としては書き込んだデータが同じフィルタのタイムスロットに読み出されなければならないので、書込アドレスと読出アドレスは同じものを与える。
デュアルポートRAM1801〜1803はac0〜ac5の6本のアドレス入力を備え、出力が次段の入力に接続されている。即ち、入力データは当該アドレスに相当するフィルタブロックの演算タイミング毎に次段のRAMに移送される。このように8個のRAMを接続することによって、図17の8段の遅延回路を実現する。RAMのアドレスには、下位2ビット(ac0,ac1)の識別信号DEFを用いる。DEFの下位ビット(図15のROMのd0に拠るもの)をac0に与える。上位4本(ac2〜ac5)には16to4エンコーダのエンコード出力を与える。エンコーダの入力b0〜b9には、CS(オーバーライン付き) BUSのFLT0〜9が与えられ、入力bA〜bFはプルアップしてある。FLT0〜9は、該当するフィルタブロックが演算するタイミングでローに、それ以外のタイミングでハイになるので、ROMの内容が正しければFLT0〜9のいずれか1つがローであるか、またはいずれもハイのままである。エンコーダの入出力論理を図19に示す。このようにエンコーダはローになっている入力を探し、その入力番号を2進数に変換して出力するので、フィルタブロック番号に相当するアドレスがac2〜ac5に与えられる。なお、エンコーダの総ての入力がハイのときはアドレスはb'1111を出力するものとする。この番号のフィルタブロック(ブロック15)は存在しないが、RAM上に記憶エリアは存在するので何らかの値は記憶され、翻ってフィルタ回路でも何らかの値が演算される。但し、そのようなタイミングで得られた演算値はラッチ1727〜1730のいずれにも記憶されないので外部に影響を与えない。このようなタイムスロットは実施例1の「予備」に相当する。CLK12の後半サイクルにはCLK12の前半サイクルのFLT9のタイムスロットに相当する位置毎に、計4回の「予備」タイムスロットが存在する。
遅延回路には、デュアルポートRAMを用いることなく、実施例1のように個々に記憶手段(実施例1ではラッチトバッファ)を設けても良いし、デュアルポートRAMに代えてシングルポートRAMを用い、書込と読出を時分割(例えばCLK0の前半と後半を用いる)しても良い。時分割する場合、読み出しを先に行うべきである。
図20〜図26までは、本発明の第3の実施例(以下、実施例3)に係るフィルタバンクの構成を示している。
実施例3は、実施例1、2と異なり、ローパスフィルタ出力だけでなくハイパスフィルタ出力も次段にカスケード接続する。本例では段数を2段、フィルタブロック数を3、1ブロックにはローパス及びハイパスフィルタを備え、出力バンク数を4とする。図20は、実施例3の各バンドの周波数特性を示している。Fcを20[KHz]、以下各バンドの境界周波数を15[KHz]、10[KHz]、5[KHz]とする。
図21は、実施例3のフィルタバンクを構成するフィルタブロックの論理的な基本構造を示す論理ブロック図である。ここでフィルタブロックFLT[1a]はフィルタブロック[0]のハイパスフィルタ出力に接続されているため、ダウンサンプリングを行うと理論上エイリアシングを発生する。本例ではこれを防止するために、実施例1、2のようなオーバーサンプリング回路を用いるのでなく、フィルタ回路に直交ミラーフィルタを構成可能なフィルタを用いる。直交ミラーフィルタを構成可能なフィルタを用いてフィルタバンクを構成し、この相補特性を持つ復元回路を用いると、エイリアシング成分は理論上打ち消されて復元信号に現れないことは広く知られている。直交ミラーフィルタの条件については後述する。
ここで、エイリアシングとは別に、信号元と本回路との間のサンプリング周波数のズレる問題は相変わらず発生するが、これは直交ミラーフィルタを用いても解決しない。そのため、本例は信号元と本回路が同一のクロックの元で同期している場合、例えば本回路のクロックを用いてアナログ信号をデジタル化する場合、非実時間データ(CD上のデータなど)を処理するので本回路のクロックでデータを読み出す場合、信号元が楽音合成回路であって本回路と同一のクロックを用いる場合などに用いるのが良い。
図22は、実施例1の図1(b)に対応するタイミングチャートである。なお、図1(a)に相当する部分は実施例1と同じである。CLK1はCLK0の、CLK2はCLKの2分周信号であり、CLK3はCLK2の2分周信号である、本例の3ブロックのフィルタバンクを動作させるためには以上が必要である。実施例1同様DIVは時分割タイムスロットの割り当て状況を示すが、フィルタバンクが1列にカスケード接続されるわけではないので、2段目のフィルタブロックのタイミングはフィルタブロック番号の後の英字(a,b)で区別している。実施例1と同様にフィルタブロックの段目を経る毎にダウンサンプリングを実施する。初段の演算間隔は実施例1同様CLK2の1サイクルに対応する(タイムスロット4回)が、実施例3はオーバーサンプリングを行わないので、マスタクロックMCKの周波数は実施例1の1/16の2.56[MHz]である。
各タイムスロットの割当例を、実施例1同様にDIVに示す。タイムスロットの割り当てに必要十分な条件は、やはり「単位時間当たりのタイムスロットの割り当て頻度を前段2に対し、後段1とする」ことである。さらに、実施例1ではローパスフィルタ側に後段をカスケード接続するのであるから、「前段のローパスフィルタのタイムスロット終了の後に後段のハイパスフィルタ、ローパスフィルタの両方のタイムスロットが設置される」としていたが、実施例3ではハイパスフィルタ側にも後段をカスケード接続するのであるから、上記は「前段のフィルタのタイムスロット終了の後に後段のハイパスフィルタ、ローパスフィルタの両方のタイムスロットが設置される」となる。上記を満たしていれば割り当ては図22どおりでなくても良い。例えば、LPF(1b)とHPF(1a)は入れ替わっていても良い。FLT[0]、FLT[1a]、FLT[1b]は、DIVから各フィルタのタイムスロットを抜き出したものであり、便宜上記載してある。
図23は、実施例3の直交ミラーフィルタを構成可能なフィルタの例であり、所謂Haarフィルタである。Haarフィルタは直交ミラーフィルタを構成可能なフィルタとしては最も単純なものであり、遮断特性は鋭くないが、復元を完全に行えるとともに遅延が最小である、という特徴を備える。実施例1、2同様、遅延回路2300とラッチ2305、2306はフィルタブロック毎に備え、時分割共有しない。
図24は、図23のフィルタ回路を時分割に各タイムスロットに割り当てるタイミング回路で、図22のDIVに示すタイミングで回路を割り当てる。図24(a)は回路の全体図であり、図24(b)は一部簡略化されている図24(a)の簡略記載を説明する図である。図24(b)は図7(b)と同様である。
タイミング回路には、クロックCLK1〜CLK3が入力される。また、このクロックCLK1〜CLK3のクロック反転信号をNOT回路2401、2402、2403で生成する。DEF信号はCLK2がそのまま出力される。また、FLT[0]信号はCLK1がそのまま出力される。一方、OR回路2404、2405への接続により、当該フィルタブロックのタイムスロットでローとなるフィルタブロック選択信号FLT[1a]、FLT[1b]が得られ、FLT[0]と併せてCS(オーバーライン付き) BUSに束ねられる。
図24は、実施例1の図7に相当するワイアードロジック回路であるが、実施例2に倣ってマイクロプログラムを用いても構わない。他の方法でDEF信号とCS(オーバーライン付き) BUS信号を得ても構わない。
図25は、実施例1の図8に対応する係数ジェネレータである。実施例3では、係数はa0、a1の2種類だが、ハイパスフィルタの場合はa0=1/√2、a1=−1/√2であり、ローパスフィルタの場合はa0=a1=1/√2であるので、実施例1の別案のように、複数の係数をまとめ、正負反転を用いて回路規模をさらに小さくしている。
2500は記憶装置、例えばROMであり、1/√2に相当する値を記憶している。この値はそのままa0の乗算係数となる他、セレクタ2502及び2の補数回路2501にも送出される。2の補数回路2501は入力の2の補数を出力する、即ち入力の符号を反転して出力する。セレクタ2502はDEF信号に応じてL側とH側の入力を選択出力する、即ちローパスフィルタ動作のときは1/√2を、ハイパスフィルタ動作のときは−1/√2を出力する。セレクタ2502の出力はa1としてa0と束ねられ、COEF信号として図23のフィルタ回路に送出される。
実施例3は、実施例1や2と異なり、前段のフィルタブロックのハイパスフィルタ出力もダウンサンプリングしてさらに帯域分割を行うので、その動作原理は幾分実施例1及び2と異なる。そこで実施例3の、特に初段のハイパスフィルタ側以降の動作を中心に、実施例3独特の動作説明を行う。図26は、実施例3各所の周波数特性を示す図である。
図26一段目は、初段の出力の周波数特性を示す。Fc=20[KHz]とする。Haarフィルタは、遮断特性は実施例1及び2の多次IIRフィルタよりずっと緩やかであるが、特に描き分けてはいない。遮断周波数は1/2Fc(=1/4Fs)であるので、10[KHz]となる。即ち、初段の出力は0〜20[KHz]の入力信号の全帯域を0〜10[KHz]と10〜20[KHz]に分割したものとなる。0〜10[KHz]の帯域(図26の二段目)の以降は、実施例1と同様にダウンサンプルし、次段のフィルタ処理を行う。
ここで、10〜20[KHz]の帯域(図26三段目)についても同様にダウンサンプルする。このとき、サンプリング周波数は40[KHz]から20[KHz]になるので、サンプリング定理により、10[KHz]を境界にして10〜20[KHz]の信号は鏡像状に折り返し(図26四段目)て、0〜10[KHz]に現れる。このとき、本来20[KHz]の信号が0[KHz]に鏡像化する。初段のハイパスフィルタ出力に接続された二段目のフィルタブロックは、この鏡像信号に対し分割を行う。そして二段目のフィルタブロックのハイパスフィルタ出力は、実数では5〜10[KHz]の周波数成分を含むが、これは元の入力信号の10〜15[KHz]の鏡像である。ここで、実数で5[KHz]の信号は、元の入力信号の15[KHz]の信号の鏡像である。
同様に、二段目のフィルタブロックのローパスフィルタ出力は、元の入力信号の15〜20[KHz]の信号の鏡像である。ここで実数で0[KHz]の信号は、元の入力信号の20[KHz]の信号の鏡像である。このようにして、ダウンサンプルを行っても折り返した信号を用いて信号を帯域分割(図26五段目)し、分析などを行うことができる。
分割した信号を再度復元する必要がある場合は、上述のように相補的な特性を持つ復元回路によって折り返し分をキャンセルしながら復元できることは良く知られている。たとえば、図27(a)に示すように、入力信号(IN)が、夫々、ローパスフィルタ3000(伝達関数H0(z)に従う)及びハイパスフィルタ3001(伝達関数H1(z)に従う)に入力され、それらのフィルタの出力が、各のダウンサンプリング回路3002及び3003によって、ダウンサンプルされる(サンプルが2回に1回の割合で間引かれ、サンプリング周波数が1/2にされる)。ここで、伝達関数H1(z)=伝達関数H0(−z)の関係にある。
それらを再度復元する構成がその右側に開示されている。すなわち、夫々のダウンサンプリングによって出力された信号は、まずアップサンプリング回路3004及び3005によって、サンプルとサンプルの中間にゼロが挿入され、サンプリング周波数が2倍にされる。そして、ローパスフィルタ3000側の復元フィルタ3006(伝達関数G0(z)に従う)とハイパスフィルタ3001側の復元フィルタ3007(伝達関数G1(z)に従う)に入力される。ここで、伝達関数G0(z)=伝達関数H1(−z)=伝達関数H0(z)の関係に、また伝達関数G1(z)=伝達関数−H1(z)=伝達関数−H0(−z)の関係にある。これらの復元フィルタからの出力は加算回路3008によって、加算され、復元信号として出力される。
ここで直交ミラーフィルタ構成可能なフィルタとして、例えばHaarフィルタが用いられた場合に、その伝達関数は、ローパス側において、H0(z)=(1+z-1)/√2である。従って、H1(z)=H1(−z)=(1−z-1)/√2、G0(z)=H0(z)=(1+z-1)/√2、G1(z)=−H0(−z)=−(1−z-1)/√2の関係になる。
以上から、図21のフィルタバンクの復元回路としては、図27(b)に示す回路構成となる。ここでは、まず、図21の夫々の出力OUT−に対応した入力信号IN−HL(図21のOUT−HLに対応)は、レジスタフィルタ3009のHigh側(HRF;図27(a)の復元フィルタ3007に対応、回路構成は図23と同等となる)に、IN−HH(図21のOUT−HHに対応)は、レジスタフィルタ3009のLow側(LRF;図27(a)の復元フィルタ3006に対応、回路構成は上記と同様となる)に、IN−LH(図21のOUT−LHに対応)は、レジスタフィルタ3011のHigh側(HRF;図27(a)の復元フィルタ3007に対応、回路構成は上記と同様となる)に、IN−LL(図21のOUT−LLに対応)は、レジスタフィルタ3011のLow側(LRF;図27(a)の復元フィルタ3006に対応、回路構成は上記と同様となる)に、夫々入力される。係数発生回路3013からは、各レジスタフィルタ3009及び3011に係数が入力される。
レジスタフィルタ3009側からの出力は、アップサンプリング回路3010(図27(a)のアップサンプリング回路3004及び3005に相当)に、またレジスタフィルタ3011側からの出力は、アップサンプリング回路3012(同じく図27(a)のアップサンプリング回路3004及び3005に相当)に入力されて、夫々アップサンプリングされ、夫々の出力は、レジスタフィルタ3014のHigh側(HRF)と、Low側(LRF)に入力され、復元信号(SIG')として出力されることになる。
以上が、図21のフィルタバンクの復元回路構成である。尚、図21の各出力OUTと図27(b)の各入力IN間に、ダウンサンプリングとアップサンプリングを実施して良い。
実際のフィルタ回路はHaarフィルタでなくても、直交ミラーフィルタを構成できるフィルタであれば何であっても構わない。復元結果に誤差を含んでも構わないのであれば、完全な直交ミラーフィルタでなく、擬似直交ミラーフィルタを用いても構わない。
図28は、本発明の実施例1〜3のフィルタバンクを用いて、所謂ボコーダを実現する構成を示しており、本発明のフィルタバンクの構成を2セット使用する。まず音声などをマイクロホン2700を経て入力し、アナログ/デジタルコンバータ2701によってデジタル信号に変換する。そして実施例1〜3のいずれかのフィルタバンク2702(1セット目のフィルタバンク)に送出する。フィルタバンク2702は、各バンド毎の周波数帯域に分割した入力信号を出力するが、それらの出力のエンベロープ(振幅包絡)をエンベロープフォロワ2703、2704、…、2705、…、2706で抽出する。
他方電子楽器(電子オルガンなど)2707の出力を、実施例1〜3のいずれかのフィルタバンク2708(2セット目のフィルタバンク)に送り、該電子楽器の楽音を各周波数帯域毎に分割する。分割された楽音は、対応するエンベロープフォロワの出力と乗算器2709、2710、…、2711、…、2712で乗算され、各乗算器の出力をミキサ2713で加算した後、デジタル/アナログコンバータ2714で変換してスピーカ2715から出力する。このとき、1セット目と2セット目のフィルタバンクには同じものを用いる方が良い。また、エンベロープフォロワに入力される分割された音声信号の周波数帯域と、乗算器に入力される分割された電子楽器楽音の周波数帯域は等しい方がよい。このように構成すると、例えば人声をマイクロホンに入力した際に、電子楽器が喋っているように聞こえることになる。
図28のボコーダには、実施例1〜3のフィルタバンクを用いることができるが、特に実施例2のフィルタバンクを用いるのが最適である。ただし、マイクロホンに主に人声を入力する場合は、入力信号の帯域は0〜10[KHz]程度でも十分なので、実施例2のフィルタブロックの最終段を削除し、サンプリング周波数を半分にする(即ちマスタクロックを半分の81.92[MHz]にする)ように構成しても良い。電子楽器2707に変えて、もうひとつのマイクロホン、あるいはライン入力とA/Dコンバータを設置し、自然楽器音や電気楽器音を入力するようにしても良い。電子楽器(あるいは自然楽器、電子楽器)には、倍音が多く持続時間の長いもの、例えばオルガン、ディストーションをかけたエレキギター、ストリングアンサンブルなどが好適である。
図29は、本発明の実施例1〜3のフィルタバンクを用いて音声信号圧縮エンコーダを構成する例を示している。圧縮エンコードされた音声信号は、データサイズを小さくされて記憶媒体に記憶され、あるいは通信回線に送出され、これを読み取った/受け取ったデコーダ2810によって伸張されて概ね元の音声信号に復元されて発音される。デコーダの動作はエンコーダの逆であるので省略する。
音声信号はサウンドソース2800から供給される、アナログ/デジタルコンバータ2801でデジタル化される。2800/2801に代えて、直接デジタル音声信号を入力しても良い。デジタル化された音声信号は分析回路2803及び本発明の実施例1〜3のいずれかのフィルタバンク2802に送出される。フィルタバンク2802は該信号を各バンドの周波数帯域に分割してデジタルコサイン変換器2804、2805、…、2806、…、2807に送出される。一方、分析回路は入力信号そのものやフィルタバンクの出力、デジタルコサイン変換器の出力などを監視して不要な信号を除去すべく圧縮回路2808に指示する。圧縮回路2808は例えばハフマン符号化アルゴリズムに従って入力データのビット数を減少させるものである。ハフマン符号化を用いる場合、出現頻度の高いデータに短い語長(ビット数)が割り当てられるので、データの出現頻度は一様であるより、差がある方が好ましい。そこで分析回路2803は例えば大きな音の直前直後の小さな音、大きな周波数成分の近辺の小さな周波数成分はマスキングによって人間が聞き取り得ないので、最初から無かったものとして「ゼロ」を与える、等して出現頻度に偏りを与える。大きな周波数成分の分解能を高く、小さな周波数成分の分解能を小さくする、等もデータの出現頻度に偏りを与える方法の一例である。このようにして分析回路2803に拠って偏りを与えられ、圧縮回路2808によって圧縮されたデータは、元の音データに比べてデータサイズが小さくされているが、これを復元して人間が聞く場合には元の音声に大きな遜色はない。
圧縮されたデータは値毎に語長が異なるので、ストリーマ2809によってストリームデータに変換される。得られたストリームデータは用途に応じて記憶媒体に記憶され、あるいは通信回線に送出される。該ストリームデータを読み出した/受け取ったデコーダ2810はエンコーダの逆順で、即ちストリームデータを個別データに分割し、可変語長データを等語長データに復元し、逆コサイン変換をかけ、周波数帯域毎に分割された信号を統合し、アナログデータに変換してスピーカなどに供給して聴取者の耳に届ける。エンコーダのフィルタバンクに実施例3のような直交ミラーフィルタを用いた場合、上述の相補的な復元回路によって周波数帯域に分割された信号を統合する。
実施例1及び2のIIRフィルタは、FIRフィルタに置換することも可能である。実施例6は実施例1のIIRフィルタに代えてFIRフィルタを備えた例であり、図30は、実施例1のIIRフィルタに置換可能なFIRフィルタの例である。FIRフィルタはIIRフィルタと異なり、フィルタ回路中にフィードバックする構成はなく、フィードフォアする構成だけで構成されている。実施例6はフィルタ回路、係数ジェネレータ、遅延回路以外は実施例1と変わりない。また、遅延回路、係数ジェネレータは実施例1の数が増えるだけなので省略する。
「IN」から入力された信号は、遅延回路2900、2901、…、2902、…、2903のM段の遅延回路を経由する。遅延回路では実施例1〜3と同様1サンプル時間の遅延が行われる。また、未遅延の入力信号は乗算器2904に、遅延1段の信号は乗算器2905に、遅延2段の信号は乗算器2906に、…、遅延j段の信号は乗算器2907に、…、遅延m段の信号は乗算器2908に送られ、乗算係数r0、r1、r2、…、rj、…、rmと乗算される。乗算係数r0、r1、r2、…、rj、…、rmは、本FIRフィルタのインパルスレスポンスであり、係数ジェネレータからハイパス/ローパスのフィルタ種類毎に与えられる。各乗算器の出力は加算器2909に与えられ、合成されて出力ラッチ2910/2911に記憶される。出力ラッチは実施例1〜3と同様フィルタブロック毎に備えられ、時分割共有されない。
このようにして得られたフィルタ演算結果は、実施例1のフィルタブロックの論理接続に倣ってカスケード接続され、最終的にフィルタバンクの各バンド出力となる。
本実施例のFIRフィルタは、実施例2のFIRフィルタにも実施例1同様適用できる。このとき、FIRフィルタのカットオフ周波数はr0〜rmの係数(インパルスレスポンス)で定まるが、このカットオフ周波数を実施例2と同様に設定する必要がある。
実施例3のHaarフィルタは、実施例6のインパルスレスポンスが2であり、特殊な係数を持つもの、と考えることもできる。FIRフィルタは実施例3のHaarフィルタ以外は直交ミラーフィルタを構成することができないが、誤差の少ない擬似直交ミラーフィルタを構成することはできるので、該誤差が必要充分に小さければ実施例3にもFIRフィルタを適用可能である。
尚、本発明のフィルタバンクは、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。実施例1〜3及び6のフィルタバンクは、実施例4のような実時間処理(1サンプル時間以内に1サンプル分のデータ処理を終える。ただし全体として不都合のない程度の遅延は発生しても良い)に好適であるが、実施例5のような非実時間処理(1サンプル分のデータを処理するのに1サンプル時間以下の時間しかかからないことを保証できない。記憶媒体を読み取って処理する場合などは保証する必要がない)にも適用できる。実施例は総て論理回路によって構成されているが、CPUやDSP等を用い、これを制御するソフトウェアによって構成しても良い。特にソフトウェアによる構成は非実時間処理に好適である。
本発明のフィルタバンクは、電子楽器、測定装置、電子音響機器、ボコーダ装置、音声圧縮エンコーダの構成などにも適用できる。
本発明の実施例1にかかるフィルタバンクのクロック発生回路の構成説明図である。 上記クロック発生回路で生成されたクロックを元に実施例1にかかるフィルタバンクで使用する各信号のタイミングチャートである。 同じく実施例1にかかるフィルタバンクで使用する各信号のタイミングチャートである。 本実施例におけるフィルタバンクの各ブロック構造を示す説明図である。 上記フィルタバンクの各フィルタの回路構成を示す説明図である。 図4で示された16倍オーバーサンプラの構成を示す回路概要図である。 図3で示された時分割チャンネルのディビジョンブロックを構成するためのワイアードロジックで構成されたフィルタ定義回路の構成を示す概要図である。 図4で各乗算器にかけられる係数発生回路の構成説明図である。 図5の遅延素子回路の装置構成を示す説明図である。 本実施例1における周波数応答特性を示す説明図である。 実施例2における周波数応答特性を示す説明図である。 1/3オクターブバンドの実施例2に係るフィルタバンクの各ブロック構造を示す説明図である。 本実施例2における生成される31バンクの周波数テーブルを示す説明図である。 実施例2において使用されるクロックタイミングチャートである。 図14で示された時分割チャンネルのディビジョンブロックを構成するための指定がプログラムでなされるフィルタ定義回路の構成を示す概要図である。 後述する図17で各乗算器にかけられる係数発生回路の構成説明図である。 実施例2におけるフィルタバンクの各フィルタの回路構成を示す説明図である。 図17の遅延素子回路の装置構成を示す説明図である。 図18のエンコーダのエンコードテーブルを示す説明図である。 実施例3における周波数応答特性を示す説明図である。 実施例3に係るフィルタバンクの各ブロック構造を示す説明図である。 実施例3において使用されるクロックタイミングチャートである。 上記フィルタバンクの各フィルタの回路構成を示す説明図である。 図22で示された時分割チャンネルのディビジョンブロックを構成するためのワイアードロジックで構成されたフィルタ定義回路の構成を示す概要図である。 図23で各乗算器にかけられる係数発生回路の構成説明図である。 初段のHPF出力をさらに次段(FLT[1a])で分割する際に、初段のLPF出力同様サンプリング周波数を1/2にして用いる、その仕組みを説明する説明図である。 図21のフィルタバンクの回路構成により分割された信号が、再度復元される場合の復元回路構成を示す回路図である。 これまでのフィルタバンクのアプリケーションとしてボコーダに適用した例を示す回路概要図である。 これまでのフィルタバンクのアプリケーションとして音声圧縮・デコードの構成に適用した例を示す回路概要図である。 上記実施例構成で用いられたIIRフィルタ構成の代わりに、FIRフィルタの構成が用いられる場合の該フィルタ構成説明図である。
100 マスタクロック発生器
101、102、103、104、105 Dフリップフロップ
114、115、116、117、 AND(論理積)回路
200、201、202、203 フィルタブロック
204 オーバーサンプリング回路
205 係数ジェネレータ
300、301 加算器
303、304、306 乗算回路
309 ラッチ
311 マルチプレクサ
400、401 論理回路
402 ラッチ
403 FIRローパスフィルタ回路
500、501、502、503 NOT回路
504、505、507 AND回路
600〜605 論理回路
601 OR回路
606、608 、609 ラッチトバッファ
704 オーバーサンプリング回路
800、801 トライステートバッファ
802 NOT回路
1727〜1730 ラッチ
1801〜1803 デュアルポートRAM
2300 遅延回路
2401、2402、2403 NOT回路
2502 セレクタ
2701 アナログ/デジタルコンバータ
2702 フィルタバンク
2703、2704、 エンベロープフォロワ
2707 電子楽器
2709、2710、 乗算器
2714 デジタル/アナログコンバータ
2801 アナログ/デジタルコンバータ
2803 分析回路
2804、2805、 デジタルコサイン変換器
2809 ストリーマ
2810 デコーダ
2910、2911 出力ラッチ

Claims (7)

  1. デジタルの入力信号を複数の周波数帯域の信号に分割し、該分割された各帯域の信号を時分割に演算して出力するフィルタバンクにおいて、
    該デジタルの入力信号のサンプリング周波数に対して一定の比率で定められたカットオフ周波数で入力信号を周波数帯域分割する複数のフィルタからなる第1段のフィルタブロックと、
    上記第1段のフィルタブロックに下記数1に示すN段にカスケード接続される下記数2に示す第i段のフィルタブロックであって、入力信号の半分のサンプリング周波数で動作し、該半分のサンプリング周波数に対するカットオフ周波数の比が前記第1段のフィルタブロックと同様である第i段のフィルタブロックN−1段と
    を備え、
    前記1乃至N段のフィルタブロックの前記演算のための係数を共有し、上記各帯域の信号を時分割に演算する際に、該係数を交互にアクセスするようにしたことを特徴とするフィルタバンク。
    (数1) 2≦N
    (数2) 1<i≦N
  2. デジタルの入力信号を複数の周波数帯域の信号に分割し、該分割された各帯域の信号を時分割に演算して出力するフィルタバンクにおいて、
    該デジタルの入力信号のサンプリング周波数に対して一定の比率で定められたカットオフ周波数で入力信号を周波数帯域分割する複数のフィルタからなる第1段のフィルタブロックと、
    上記第1段のフィルタブロックに下記数3に示すN段にカスケード接続される下記数4に示す第i段のフィルタブロックであって、入力信号の半分のサンプリング周波数で動作し、該半分のサンプリング周波数に対するカットオフ周波数の比が前記第1段のフィルタブロックと同様である第i段のフィルタブロックN−1段と
    を備え、
    前記第1段のフィルタブロックの入力信号のサンプル時間の1/2の期間に前記時分割演算のタイムスロットを配置するとともに、
    前記サンプル時間の残りの1/2の期間に、前記第i段のフィルタブロックの時分割演算のタイムスロットを、前記第i段のサンプリング周波数に相当するサンプリング期間の1/2の期間内に収まるように配置することを特徴とするフィルタバンク。
    (数3) 2≦N
    (数4) 1<i≦N
  3. 前記フィルタブロックは、1個以上のハイパスフィルタ、0個以上のバンドパスフィルタ、1個以上のローパスフィルタを含み、
    前記カスケード接続はi−1段のフィルタブロックのローパスフィルタ出力からi段の入力に対して行われることを特徴とする請求項1又は2のいずれかに記載のフィルタバンク。
  4. 前記第1段のフィルタブロックは、前記入力信号を下記数5に示す前記カットオフ周波数のM倍のサンプリング周波数にオーバーサンプルするオーバーサンプリング手段を備え、
    前記フィルタのオクターブあたりの減衰量−X[dB/Oct]と前記入力信号のデータ分解能K[bits]との関係が下記数6式を満たすことを特徴とする請求項3に記載のフィルタバンク。
    (数5) Mは2の正数乗
    (数6) K≦X・log2(M)/6
  5. 前記フィルタは、直交ミラーフィルタ、または擬似直交ミラーフィルタを構成可能な構成であることを特徴とする請求項1又は2のいずれかに記載のフィルタバンク。
  6. 請求項1乃至5のいずれかひとつに記載のフィルタバンクを2組備え、
    第1のフィルタバンクの各周波数帯域毎の出力にエンベロープフォロワを設け、
    第2のフィルタバンクの各周波数帯域毎の出力に係数を乗算する乗算器を設け、
    上記エンベロープフォロワの出力を上記乗算器の係数として上記各周波数帯域毎に付与し、
    上記第2のフィルタバンクの入力に楽音、上記第1のフィルタバンクの入力に変調音を夫々付与するようにしたことを特徴とする楽音変調装置。
  7. 請求項1乃至5のいずれかひとつに記載のフィルタバンクを備え、
    上記フィルタバンクの各周波数帯域毎の出力を周波数軸データに変換し、
    上記周波数軸データを所定の圧縮方法で圧縮し、
    上記圧縮された入力信号を所定の形式で送出又は記録するようにしたことを特徴とする信号圧縮装置。
JP2012181518A 2012-08-20 2012-08-20 フィルタバンク、楽音変調装置及び信号圧縮装置 Active JP6059909B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012181518A JP6059909B2 (ja) 2012-08-20 2012-08-20 フィルタバンク、楽音変調装置及び信号圧縮装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012181518A JP6059909B2 (ja) 2012-08-20 2012-08-20 フィルタバンク、楽音変調装置及び信号圧縮装置

Publications (2)

Publication Number Publication Date
JP2014039212A JP2014039212A (ja) 2014-02-27
JP6059909B2 true JP6059909B2 (ja) 2017-01-11

Family

ID=50287014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012181518A Active JP6059909B2 (ja) 2012-08-20 2012-08-20 フィルタバンク、楽音変調装置及び信号圧縮装置

Country Status (1)

Country Link
JP (1) JP6059909B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06174767A (ja) * 1992-12-02 1994-06-24 Roland Corp 帯域分割装置
JPH0897726A (ja) * 1994-09-28 1996-04-12 Victor Co Of Japan Ltd サブバンド帯域分割/合成方法およびその装置

Also Published As

Publication number Publication date
JP2014039212A (ja) 2014-02-27

Similar Documents

Publication Publication Date Title
US6510445B2 (en) Digital filters
CN101868984B (zh) 一种确定高精度分量信号的装置和方法
JPH11220359A (ja) デジタルフィルタ
KR19980042631A (ko) 듀얼 모드 오디오 디코더의 재현 방법 및 필터
JP6724828B2 (ja) フィルタ演算処理装置、フィルタ演算方法、及び効果付与装置
JP2845114B2 (ja) 残響付与装置
JP2001188600A (ja) 音程変換装置
JP2013502607A (ja) マルチチャネルオーディオデコーディング方法及び装置
JP6059909B2 (ja) フィルタバンク、楽音変調装置及び信号圧縮装置
WO2008005151A2 (en) Digital non-integer sample/hold implemented using virtual filtering
JP4042229B2 (ja) ディジタルフィルタ処理方法、ディジタルフィルタ装置、記録媒体および音像定位装置
KR100236686B1 (ko) 데이터 샘플열 액세스 장치
JP2790066B2 (ja) 楽音信号発生装置および波形メモリ読出補間装置
JP3468677B2 (ja) 周波数変換装置
JP2668676B2 (ja) フィルタパラメータ供給装置
JP3479999B2 (ja) 波形データ発生装置
JPH0115880B2 (ja)
JPH02149011A (ja) サンプリング周波数変換装置
KR0181587B1 (ko) 엠펙-1 오디오 복호기의 합성 필터링 장치 및 방법
JP4321625B2 (ja) ディジタルフィルタ処理方法およびディジタルフィルタ装置
KR100273768B1 (ko) 엠펙 오디오 다채널 처리용 등간격 서브밴드 합성필터
JPH10322164A (ja) ディジタルフィルタ
JPH03123397A (ja) 音声速度変換装置
JP2905905B2 (ja) 楽音発生装置
JP2005136667A (ja) デジタル信号遅延装置及びそれを具備する音響信号処理装置,デジタル信号遅延方法及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6059909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150