(57)【特許請求の範囲】
【請求項１】
所定間隔で入力される複数のデジタルデータのそれぞれを順番に取り込んで保持する縦続接続された複数のデータ保持手段と、
前記複数のデータ保持手段のそれぞれに保持された前記デジタルデータが入力されており、データ保持期間の前半と後半とで別々の乗数を用いた乗算処理を行う複数の乗算手段と、
前記複数の乗算手段の各乗算結果を足し合わせる処理を行う加算手段と、
前記加算手段の出力データに対して複数回のデジタル積分を行う積分処理手段と、
を備え、前記複数の乗算手段による乗算処理に用いられる各乗数は、区分多項式によって構成された所定の標本化関数について、前記区分多項式のそれぞれを複数回微分することにより得られる階段関数の各値に対応していることを特徴とするオーバーサンプリング処理回路。
【請求項２】
請求項１において、
前記階段関数は、正領域と負領域の面積が等しく設定されていることを特徴とするオーバーサンプリング処理回路。
【請求項３】
請求項２において、
前記標本化関数は、全域が１回だけ微分可能であって有限台の値を有することを特徴とするオーバーサンプリング処理回路。
【請求項４】
請求項１または２において、
前記階段関数は、等間隔に配置された５つの前記デジタルデータに対応した所定範囲において、−１、＋３、＋５、−７、−７、＋５、＋３、−１の重み付けがなされた同じ幅の８つの区分領域からなっており、この８つの重み付け係数の２つずつを前記複数の乗算手段のそれぞれにおける乗数として設定することを特徴とするオーバーサンプリング処理回路。
【請求項５】
請求項４において、
前記複数の乗算手段のそれぞれにおいて行われる乗算処理は、ビットシフトによる２のべき乗倍の演算結果に前記デジタルデータ自身を加算することによって実現されることを特徴とするオーバーサンプリング処理回路。
【請求項６】
請求項１〜５のいずれかにおいて、
前記デジタル積分が行われる回数は２回であり、前記積分処理手段から二次関数的に値が変化するデータを出力することを特徴とするオーバーサンプリング処理回路。
【請求項７】
請求項１〜６のいずれかにおいて、
前記積分処理手段によって行われる前記デジタル積分は、入力データを累積する演算処理であり、この演算処理を前記データ保持手段に前記デジタルデータが入力される１周期内でｎ回繰り返し行うことにより、ｎ倍のオーバーサンプリング処理を行うことを特徴とするオーバーサンプリング処理回路。
【請求項８】
請求項１〜７のいずれかのオーバーサンプリング処理回路の後段に、
前記積分処理手段から出力されるデータの値に対応するアナログ電圧を生成する電圧発生手段と、
前記電圧発生手段によって生成される前記アナログ電圧を平滑化する平滑手段と、
を備えることを特徴とするデジタル−アナログ変換器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、離散的に入力されるデータの間を補間処理するオーバーサンプリング処理回路およびこれを用いたデジタル−アナログ変換器に関する。なお、本明細書においては、関数の値が局所的な領域で０以外の有限の値を有し、それ以外の領域で０となる場合を「有限台」と称して説明を行うものとする。
【０００２】
【従来の技術】
最近のデジタルオーディオ装置、例えばＣＤ（コンパクトディスク）プレーヤ等においては、離散的な音楽データ（デジタルデータ）から連続的なアナログの音声信号を得るためにオーバーサンプリング技術を適用したＤ／Ａ（デジタル−アナログ）変換器が用いられている。このようなＤ／Ａ変換器は、入力されるデジタルデータの間を補間して擬似的にサンプリング周波数を上げるために一般にはデジタルフィルタが用いられており、各補間値をサンプルホールド回路によって保持して階段状の信号波形を生成した後にこれをローパスフィルタに通すことによって滑らかなアナログの音声信号を出力している。
【０００３】
ところで、離散的なデジタルデータの間を補間する方法としては、ＷＯ９９／３８０９０に開示されたデータ補間方式が知られている。このデータ補間方式では、全域で１回だけ微分可能であって、補間位置を挟んで前後２個ずつ、合計４個の標本点のみを考慮すればよい標本化関数が用いられている。この標本化関数は、標本化周波数をｆとしたときにｓｉｎ（πｆｔ）／（πｆｔ）で定義されるｓｉｎｃ関数と異なり、有限台の値を有しているため、４個という少ないデジタルデータを用いて補間演算を行っても打ち切り誤差が生じないという利点がある。
【０００４】
一般には、上述した標本化関数の波形データをＦＩＲ（finite impulse response ）フィルタのタップ係数に設定したデジタルフィルタを用いることにより、オーバーサンプリングを行っている。
【０００５】
【発明が解決しようとする課題】
ところで、上述したデジタルフィルタによって離散的なデジタルデータ間の補間演算を行うオーバーサンプリング技術を用いると、減衰特性がなだらかなローパスフィルタを用いることができるため、ローパスフィルタによる位相特性を直線位相特性に近づけることができるとともに標本化折返し雑音を低減することが可能になる。このような効果はオーバーサンプリングの周波数を上げれば上げるほど顕著になるが、サンプリング周波数を上げるとそれだけデジタルフィルタのタップ数が多くなるため、回路規模が大きくなるという問題があった。また、デジタルフィルタを構成する遅延回路や乗算器の処理速度も高速化されるため、高速化に適した高価な部品を使用する必要があり、部品コストの上昇を招くという問題があった。特に、デジタルフィルタを用いてオーバーサンプリング処理を行う場合には、標本化関数の具体的な値をタップ係数として用いることになるため、乗算器の構成が複雑になり、さらに部品コストの上昇を招くことになる。
【０００６】
また、一般にはオーバーサンプリング処理回路の後段にローパスフィルタを接続することにより、デジタル−アナログ変換器を構成することができるが、上述した従来のオーバーサンプリング処理回路で生じていた各種の問題は、これを用いて構成したデジタル−アナログ変換器についても同様に生じていた。
【０００７】
本発明は、このような点に鑑みて創作されたものであり、その目的は、回路規模を小さくすることができ、部品コストを低減することができるオーバーサンプリング処理回路およびデジタル−アナログ変換器を提供することにある。
【０００８】
【課題を解決するための手段】
上述した課題を解決するために、本発明のオーバーサンプリング処理回路は、所定間隔で入力される複数のデジタルデータのそれぞれを順番に取り込んで縦続接続された複数のデータ保持手段によって保持し、それぞれに保持されたデジタルデータに対して、データ保持期間の前半と後半とで別々の乗数を用いた乗算処理を複数の乗算手段によって行う。そして、各乗算結果を加算手段によって足し合わせて得られるデジタルデータに対して複数回のデジタル積分を行うことにより、滑らかな曲線に沿って階段状に値が変化するデジタルデータを出力する。このように、順に入力される複数のデジタルデータのそれぞれに対応する各乗算結果を加算し、その後この加算結果をデジタル積分することにより、値が滑らかに変化する出力データが得られるため、オーバーサンプリングの周波数を高くする場合にデジタル積分の演算速度を速くするだけでよく、従来のように構成の複雑化を招くことがなく、構成の簡略化と部品コストの低減が可能になる。
【０００９】
また、上述した複数の乗算手段による乗算処理に用いられる各乗数は、区分多項式によって構成された所定の標本化関数について、これらの区分多項式のそれぞれを複数回微分することにより得られる階段関数の各値に対応していることが望ましい。すなわち、反対にこのような階段関数を複数回積分することにより、所定の標本化関数に対応した波形を得ることができるため、標本化関数による畳み込み演算を、階段関数を合成することによって等価的に実現することが可能になる。したがって、処理内容を単純化することができ、オーバーサンプリング処理に必要な処理量の低減が可能になる。
【００１０】
また、上述した階段関数は、正領域と負領域の面積が等しく設定されていることが望ましい。これにより、積分処理手段による積分結果が発散することを防止することができる。
【００１１】
また、上述した標本化関数は、全域が１回だけ微分可能であって有限台の値を有することが望ましい。全域が１回だけ微分可能であれば充分に自然現象を近似できると考えられ、しかも微分回数を少なく設定することにより、積分処理手段によりデジタル積分を行う回数を少なくすることができるため、構成の簡略化が可能になる。
【００１２】
また、上述した階段関数は、等間隔に配置された５つのデジタルデータに対応した所定範囲において、−１、＋３、＋５、−７、−７、＋５、＋３、−１の重み付けがなされた同じ幅の８つの区分領域からなっており、この８つの重み付け係数の２つずつを複数の乗算手段のそれぞれにおける乗数として設定することが望ましい。単純な重み付け係数を各乗算手段の乗数として用いることができるため、乗算処理の簡略化が可能になる。
【００１３】
特に、複数の乗算手段のそれぞれにおいて行われる乗算処理は、ビットシフトによる２のべき乗倍の演算結果にデジタルデータ自身を加算することによって実現することが望ましい。乗算処理をビットシフト処理と加算処理に置き換えることができるため、処理内容を簡素化することによる構成の簡略化、処理の高速化が可能になる。
【００１４】
また、デジタル積分が行われる回数は２回であり、積分処理手段から二次関数的に値が変化するデータを出力することが望ましい。複数の離散的なデータの間を滑らかに補間するためには、少なくとも二次関数的に値を変化させる必要があるが、これはデジタル積分の回数を２回に設定するだけで実現することができるため、積分処理手段の構成を簡略化することができる。
【００１５】
また、積分処理手段によって行われるデジタル積分は、入力データを累積する演算処理であり、この演算処理をデータ保持手段にデジタルデータが入力される１周期内でｎ回繰り返し行うことが望ましい。このようにデータを累積する動作は、保持データに対して入力データを加算するだけで実現することができるため、積分処理手段の構成の簡略化が可能であり、しかもこの演算処理の繰り返し速度を高速化することは容易であるため、構成の複雑化、部品コストの上昇をほとんど伴わずに、オーバーサンプリングの倍数ｎの値を大きく設定することができる。
【００１６】
また、上述したオーバーサンプリング処理回路の後段に、電圧発生手段と平滑手段を備えるだけでデジタル−アナログ変換器を構成することができる。したがって、本発明のデジタル−アナログ変換器は、構成の簡略化と部品コストの低減が可能となる。また、上述したオーバーサンプリング処理回路は、構成の複雑化、部品コストの上昇をほとんど伴わずに容易にオーバーサンプリング周波数を高く設定することができることから、これを用いたデジタル−アナログ変換器の出力波形の歪みを低減することができる。
【００１７】
【発明の実施の形態】
以下、本発明を適用した一実施形態のオーバーサンプリング処理回路について、図面を参照しながら詳細に説明する。図１は、本実施形態のオーバーサンプリング処理回路における補間演算に用いられる標本化関数の説明図である。この標本化関数Ｈ（ｔ）は、ＷＯ９９／３８０９０に開示されたものであり、以下の式で表される。
【００１８】
（−ｔ2 −４ｔ−４）／４          ；−２≦ｔ＜−３／２
（３ｔ2 ＋８ｔ＋５）／４          ；−３／２≦ｔ＜−１
（５ｔ2 ＋１２ｔ＋７）／４        ；−１≦ｔ＜−１／２
（−７ｔ2 ＋４）／４              ；−１／２≦ｔ＜０
（−７ｔ2 ＋４）／４              ；０≦ｔ＜１／２
（５ｔ2 −１２ｔ＋７）／４        ；１／２≦ｔ＜１
（３ｔ2 −８ｔ＋５）／４          ；１≦ｔ＜３／２
（−ｔ2 ＋４ｔ−４）／４          ；３／２≦ｔ≦２          …（１）
ここで、ｔ＝０、±１、±２が標本位置を示している。図１に示される標本化関数Ｈ（ｔ）は、全域において１回だけ微分可能であって、しかも標本位置ｔ＝±２において０に収束する有限台の関数であり、この標本化関数Ｈ（ｔ）を用いて各標本値に基づく重ね合わせを行うことにより、標本値の間を１回だけ微分可能な関数を用いて補間することができる。
【００１９】
図２は、標本値とその間の補間値との関係を示す図である。図２に示すように、４つの標本位置をｔ１、ｔ２、ｔ３、ｔ４とし、それぞれの間隔を１とする。標本位置ｔ２とｔ３の間の補間位置ｔ０に対応する補間値ｙは、
ｙ＝Ｙ（ｔ１）・Ｈ（１＋ａ）＋Ｙ（ｔ２）・Ｈ（ａ）
＋Ｙ（ｔ３）・Ｈ（１−ａ）＋Ｙ（ｔ４）・Ｈ（２−ａ）  …（２）
となる。ここで、Ｙ（ｔ）は標本位置ｔにおける各標本値を示している。また、１＋ａ、ａ、１−ａ、２−ａのそれぞれは、補間位置ｔ０と各標本位置ｔ１〜ｔ４間での距離である。
【００２０】
ところで、上述したように、原理的には各標本値に対応させて標本化関数Ｈ（ｔ）の値を計算して畳み込み演算を行うことにより、各標本値の間の補間値を求めることができるが、図１に示した標本化関数は全域で１回だけ微分可能な二次の区分多項式であり、この特徴を利用して、等価的な他の処理手順によって補間値を求めることができる。
【００２１】
図３は、図１に示した標本化関数を１回微分した波形を示す図である。図１に示した標本化関数Ｈ（ｔ）は、全域で１回微分可能な二次の区分多項式であるため、これを１回微分することにより、図３に示すような連続的な折れ線状の波形からなる折れ線関数を得ることができる。
【００２２】
また、図４は図３に示した折れ線関数をさらに微分した波形を示す図である。但し、折れ線波形には複数の角点が含まれており、全域で微分することはできないため、隣接する２つの角点に挟まれた直線部分について微分を行うものとする。図３に示す折れ線波形を微分することにより、図４に示すような階段状の波形からなる階段関数を得ることができる。
【００２３】
このように、上述した標本化関数Ｈ（ｔ）は、全域を１回微分して折れ線関数が得られ、この折れ線関数の各直線部分をさらに微分することにより階段関数が得られる。したがって、反対に図４に示した階段関数を発生させ、これを２回積分することにより、図１に示した標本化関数Ｈ（ｔ）を得ることができる。
【００２４】
なお、図４に示した階段関数は正領域と負領域とが等しい面積を有しており、これらを合計した値が０となる特徴を有している。換言すれば、このような特徴を有する階段関数を複数回積分することにより、図１に示したような全域における微分可能性が保証された有限台の標本化関数を得ることができる。
【００２５】
ところで、（２）式に示した畳み込み演算による補間値の算出では、標本化関数Ｈ（ｔ）の値に各標本値を乗算したが、図４に示した階段関数を２回積分して標本化関数Ｈ（ｔ）を求める場合には、この積分処理によって得られた標本化関数の値に各標本値を乗算する場合の他に、等価的には、積分処理前の階段関数を発生させる際に、各標本値が乗算された階段関数を発生させ、この階段関数を用いて畳み込み演算を行った結果に対して２回の積分処理を行って補間値を求めることができる。本実施形態のオーバーサンプリング処理回路は、このようにして補間値を求めており、次にその詳細を説明する。
【００２６】
図５は、本実施形態のオーバーサンプリング処理回路の構成を示す図である。同図に示すオーバーサンプリング処理回路は、４つのＤ型フリップフロップ（Ｄ−ＦＦ）１０−１、１０−２、１０−３、１０−４、４つの乗算器１２−１、１２−２、１２−３、１２−４、３つの加算器（ＡＤＤ）１４−１、１４−２、１４−３、２つの積分回路１６−１、１６−２を含んで構成されている。
【００２７】
縦続接続された４段のＤ型フリップフロップ１０−１〜１０−４は、クロック信号ＣＬＫに同期したデータの保持動作を行っており、初段のＤ型フリップフロップ１０−１に入力されるデジタルデータを順番に取り込んでその値を保持する。例えば、データＤ1 、Ｄ2 、Ｄ3 、Ｄ4 、…が順番に初段のＤ型フリップフロップ１０−１に入力された場合を考えると、初段のＤ型フリップフロップ１０−１に４番目の入力データＤ4 が保持されるタイミングで、２段目、３段目、４段目のＤ型フリップフロップ１０−２、１０−３、１０−４のそれぞれには、３番目、２番目、１番目の入力データＤ3 、Ｄ2 、Ｄ1 がそれぞれ保持される。
【００２８】
また、４つの乗算器１２−１〜１２−４のそれぞれは、２種類の乗数を有しており、クロック信号ＣＬＫの各周期の前半と後半で別々の乗算処理を行う。例えば、乗算器１２−１は、クロック信号ＣＬＫの各周期の前半部分において乗数「−１」の乗算処理を行い、後半部分において乗数「＋３」の乗算処理を行う。乗算器１２−２は、クロック信号ＣＬＫの各周期の前半部分において乗数「＋５」の乗算処理を行い、後半部分において乗数「−７」の乗算処理を行う。乗算器１２−３は、クロック信号ＣＬＫの各周期の前半部分において乗数「−７」の乗算処理を行い、後半部分において乗数「＋５」の乗算処理を行う。乗算器１２−４は、クロック信号ＣＬＫの各周期の前半部分において乗数「＋３」の乗算処理を行い、後半部分において乗数「−１」の乗算処理を行う。
【００２９】
ところで、図４に示した階段関数の各値は、上述した（１）式の各区分多項式を２回微分することにより得ることができ、以下のようになる。
【００３０】
−１      ；−２≦ｔ＜−３／２
＋３      ；−３／２≦ｔ＜−１
＋５      ；−１≦ｔ＜−１／２
−７      ；−１／２≦ｔ＜０
−７      ；０≦ｔ＜１／２
＋５      ；１／２≦ｔ＜１
＋３      ；１≦ｔ＜３／２
−１      ；３／２≦ｔ≦２
標本位置ｔが−２から−１までの区間に着目すると、階段関数の値は、前半部分が「−１」、後半部分が「＋３」であり、これらの値が乗算器１２−１の乗数に対応している。同様に、標本位置ｔが−１から０までの区間に着目すると、階段関数の値は、前半部分が「＋５」、後半部分が「−７」であり、これらの値が乗算器１２−２の乗数に対応している。標本位置ｔが０から＋１までの区間に着目すると、階段関数の値は、前半部分が「−７」、後半部分が「＋５」であり、これらの値が乗算器１２−３の乗数に対応している。標本位置ｔが＋１から＋２までの区間に着目すると、階段関数の値は、前半部分が「＋３」、後半部分が「−１」であり、これらの値が乗算器１２−４の乗数に対応している。
【００３１】
３つの加算器１４−１〜１４−３のそれぞれは、上述した４つの乗算器１２−１〜１２−４の各乗算結果を足し合わせるためのものである。加算器１４−１は、２つの乗算器１２−１と１２−２の各乗算結果を加算する。また、加算器１４−２は、乗算器１２−３の乗算結果と加算器１４−１の加算結果とを加算する。さらに、加算器１４−３は、乗算器１２−４の乗算結果と加算器１４−２の加算結果とを加算する。これら３つの加算器１４−１〜１４−３を用いることにより、４つの乗算器１２−１〜１２−４の各乗算結果が足し合わされるが、上述したように各乗算器１２−１〜１２−４ではクロック信号ＣＬＫの各周期の前半部分と後半部分とで異なる乗数を用いた乗算処理が行われるため、これらの乗算結果が足し合わされた加算器１４−３の出力値も、クロック信号ＣＬＫの各周期の前半部分と後半部分とで異なる値を有する階段状のデジタルデータとなる。
【００３２】
なお、本実施形態では３つの加算器１４−１〜１４−３を用いて４つの乗算器１２−１〜１２−４による４つの乗算結果を加算しているが、入力端子数が３以上の加算器を用いることにより、加算器の使用個数を減らすようにしてもよい。
【００３３】
縦続接続された２つの積分回路１６−１、１６−２は、加算器１４−３から出力されるデータに対して２回の積分演算を行う。前段の積分回路１６−１からは直線状（一次関数的）に変化するデータが出力され、後段の積分回路１６−２からは二次関数的に変化するデータが出力される。
【００３４】
図６は、積分回路１６−１、１６−２の詳細な構成を示す図である。前段の積分回路１６−１は、２つのＤ型フリップフロップ（Ｄ−ＦＦ）１６１ａ、１６１ｃと加算器（ＡＤＤ）１６１ｂを含んで構成されている。加算器１６１ｂは、２つの入力端子を有しており、一方の入力端子には加算器１４−３から出力されて一旦Ｄ型フリップフロップ１６１ａに保持されたデータが入力され、他方の入力端子には加算器１６１ｂ自身から出力されたデータを一旦Ｄ型フリップフロップ１６１ｃに保持したデータが入力される。また、各フリップフロップ１６１ａ、１６１ｃは、積分演算用のクロック信号ＣＬＫ２に同期したデータの保持動作を行っている。このクロック信号ＣＬＫ２がオーバーサンプリング周波数に対応しており、Ｄ型フリップフロップ１０−１〜１０−４や乗算器１２−１〜１２−４に入力されているクロック信号ＣＬＫのｎ倍の周波数に設定されている。したがって、このような構成を有する積分回路１６−１に加算器１４−３から出力されるデータが入力されると、クロック信号ＣＬＫ２に同期してこの入力データを累積するデジタル積分演算が行われる。
【００３５】
後段の積分回路１６−２は、上述した前段の積分回路１６−１と基本的に同じ構成を有しており、２つのＤ型フリップフロップ（Ｄ−ＦＦ）１６２ａ、１６２ｃと加算器（ＡＤＤ）１６２ｂを含んで構成されている。したがって、このような構成を有する積分回路１６−２に前段の積分回路１６−１から出力されるデータが入力されると、クロック信号ＣＬＫ２に同期してこの入力データを累積するデジタル積分演算が行われる。
【００３６】
このようにして、複数のデジタルデータが一定間隔で初段のＤ型フリップフロップ１０−１に入力されると、後段の積分回路１６−２からは、各デジタルデータの間を補間する複数のデジタルデータが得られる。
【００３７】
上述したＤ型フリップフロップ１０−１〜１０−４が複数のデータ保持手段に、乗算器１２−１〜１２−４が複数の乗算手段に、加算器１４−１〜１４−３が加算手段に、積分回路１６−１および１６−２が積分処理手段にそれぞれ対応している。
【００３８】
図７は、本実施形態のオーバーサンプリング処理回路の動作タイミングを示す図である。図７（Ａ）に示すクロック信号ＣＬＫの各周期の立ち上がりに同期して、初段のＤ型フリップフロップ１０−１にデータＤ1 、Ｄ2 、Ｄ3 、Ｄ4 、…が順に入力される。図７（Ｂ）〜（Ｅ）はＤ型フリップフロップ１０−１〜１０−４のそれぞれにおけるデータの保持内容を示している。以下の説明では、例えば初段のＤ型フリップフロップ１０−１に４番目の入力データＤ4 が保持される１クロック分のタイミングに着目するものとする。
【００３９】
初段のＤ型フリップフロップ１０−１に４番目の入力データＤ4 が保持されるタイミングでは、２段目のＤ型フリップフロップ１０−２に３番目の入力データＤ3 が、３段目のＤ型フリップフロップ１０−３に２番目の入力データＤ2 が、４段目のＤ型フリップフロップ１０−４に最初の入力データＤ1 がそれぞれ保持される。
【００４０】
また、乗算器１２−１は、初段のＤ型フリップフロップ１０−１に保持されているデータＤ4 が入力されており、１クロック周期の前半部分においてこの入力データＤ4 を−１倍した乗算結果「−Ｄ4 」を、後半部分においてこの入力データＤ4 を＋３倍した乗算結果「＋３Ｄ4 」をそれぞれ出力する（図７（Ｆ））。同様に、乗算器１２−２は、２段目のＤ型フリップフロップ１０−２に保持されているデータＤ3 が入力されており、１クロック周期の前半部分においてこの入力データＤ3 を＋５倍した乗算結果「＋５Ｄ3 」を、後半部分においてこの入力データＤ3 を−７倍した乗算結果「−７Ｄ3 」をそれぞれ出力する（図７（Ｇ））。乗算器１２−３は、３段目のＤ型フリップフロップ１０−３に保持されているデータＤ2 が入力されており、１クロック周期の前半部分においてこの入力データＤ2 を−７倍した乗算結果「−７Ｄ2 」を、後半部分においてこの入力データＤ2 を＋５倍した乗算結果「＋５Ｄ2 」をそれぞれ出力する（図７（Ｈ））。乗算器１２−４は、４段目のＤ型フリップフロップ１０−４に保持されているデータＤ1 が入力されており、１クロック周期の前半部分においてこの入力データＤ1 を＋３倍した乗算結果「＋３Ｄ1 」を、後半部分においてこの入力データＤ1 を−１倍した乗算結果「−Ｄ1 」をそれぞれ出力する（図７（Ｉ））。
【００４１】
３つの加算器１４−１〜１４−３は、このようにして４つの乗算器１２−１〜１２−４のそれぞれにおいて行われた４つの乗算結果を足し合わせる。したがって、１クロック周期の前半部分においては、加算器１４−３からは、４つの乗算器１２−１〜１２−４のそれぞれにおいて１クロック周期の前半部分で行われる各乗算結果を足し合わせた加算結果（−Ｄ4 ＋５Ｄ3 −７Ｄ2 ＋３Ｄ1 ）が出力される。また、１クロック周期の後半部分においては、加算器１４−３からは、４つの乗算器１２−１〜１２−４のそれぞれにおいて１クロック周期の後半部分で行われる各乗算結果を足し合わせた加算結果（３Ｄ4 −７Ｄ3 ＋５Ｄ2 −Ｄ1 ）が出力される。
【００４２】
このようにして加算器１４−３から順に階段状の加算結果が出力されると（図７（Ｊ））、前段の積分回路１６−１は、この波形を積分して折れ線状に値が変化する複数のデータを出力する（図７（Ｋ））。また、後段の積分回路１６−２は、この折れ線状に値が変化するデータをさらに積分して、デジタルデータＤ2 とＤ3 の間で、１回だけ微分可能な滑らかな曲線に沿って値が変化する複数のデータを出力する（図７（Ｌ））。
【００４３】
図８は、２つの積分回路１６−１、１６−２から出力されるデータの詳細を示す図である。例えば、各積分回路１６−１、１６−２に入力される積分演算用のクロック信号ＣＬＫ２の周波数が、入力データのサンプリング周波数（クロック信号ＣＬＫの周波数）の２０倍に設定されている。図８（Ａ）に示すように、前段の積分回路１６−１から出力される複数のデータは、一次関数的に値が変化する。また、図８（Ｂ）に示すように、後段の積分回路１６−２から出力される複数のデータは、二次関数的に値が変化する。
【００４４】
なお、図６に構成を示した各積分回路１６−１、１６−２においては、それぞれに入力されるデータを単に累積することによりデジタル積分を行っているため、それぞれから出力されるデータの値がオーバーサンプリングの倍数に応じて大きくなってしまうため、入出力データの値を一致させるためには、各積分回路１６−１、１６−２のそれぞれの出力段に除算回路を設けるようにすればよい。例えば、図８に示した例では、入力データに対して出力データの値が２０倍になるため、除数が「２０」の除算回路を各積分回路１６−１、１６−２内の最後部に設ければよい。但し、オーバーサンプリングの倍数を２のべき乗倍（例えば２、４、８、１６、…）に設定した場合には、各積分回路１６−１、１６−２の出力データを下位ビット側にビットシフトすることにより、出力データに対する除算処理が可能になるため、上述した除算回路を省略することができる。例えば、オーバーサンプリングの倍数を「１６」とした場合には、各積分回路１６−１、１６−２の出力データを下位ビット側に５ビット分シフトすればよいため、それぞれの回路の出力端側の結線をあらかじめ５ビット分ずらしておけばよい。
【００４５】
このように、本実施形態のオーバーサンプリング処理回路は、入力されるデジタルデータを縦続接続された４つのＤ型フリップフロップ１０−１〜１０−４に順に保持し、それぞれに１対１に対応する４つの乗算器１２−１〜１２−４のそれぞれにおいて、データの保持期間である１クロック周期の前半部分と後半部分において異なる乗算処理を行った後に、加算器１４−１〜１４−３によって各乗算結果を加算している。そして、加算器１４−３の出力データに対して２つの積分回路１６−１、１６−２によって２回のデジタル積分処理を行うことにより、入力された各デジタルデータに対して擬似的にｎ倍にサンプリング周波数を上げるオーバーサンプリング処理を行うことができる。
【００４６】
特に、本実施形態のオーバーサンプリング処理回路では、オーバーサンプリングの周波数を入力データのサンプリング周波数の何倍に設定するかは、２つの積分回路１６−１、１６−２に入力するクロック信号ＣＬＫ２の周波数のみに依存する。すなわち、これら２つの積分回路１６−１、１６−２のみを高速の部品を用いて構成するだけで、オーバーサンプリングの倍数を大きく設定することができる。したがって、デジタルフィルタを用いてオーバーサンプリング処理を行う従来方法と異なり、オーバーサンプリングの周波数を上げた場合であっても回路規模が大きくなるということはなく、部品コストの上昇も最小限に抑えることができる。また、４つの乗算器１２−１〜１２−４の乗数を整数値とすることにより、演算内容が簡素化されるため、これらの乗算器の構成も単純になり、さらに部品コストを下げることができる。
【００４７】
また、例えば、サンプリング周波数のｎ倍（例えば１０２４倍）の擬似的な周波数を得るためにオーバーサンプリング処理を行う場合を考えると、従来では、各部品の動作速度もこの擬似的な周波数と同じにする必要があったが、本実施形態のオーバーサンプリング処理回路では、２つの積分回路を除くとサンプリング周波数の２倍の周波数で各乗算器や各加算器を動作させる必要があるだけであり、各部品の動作速度を大幅に下げることができる。
【００４８】
次に、本実施形態のオーバーサンプリング処理回路の各部品の詳細な構成例について説明する。図９〜図１２は、４つの乗算器１２−１〜１２−４のそれぞれの構成を示す図である。
【００４９】
乗算器１２−１は、図９に示すように、乗数値が固定の２つの乗算器１２１ａ、１２１ｂとセレクタ１２１ｃによって構成されている。一方の乗算器１２１ａは乗数「−１」の乗算処理を行い、他方の乗算器１２１ｂは乗数「＋３」の乗算処理を行う。セレクタ１２１ｃは、２つの乗算器１２１ａ、１２１ｂのそれぞれの乗算結果が入力されており、制御端子Ｓに入力されるクロック信号ＣＬＫがハイレベルのとき、すなわち１クロック周期の前半部分において、一方の乗算器１２１ａによる−１倍の乗算結果を出力し、反対に制御端子Ｓに入力されるクロック信号ＣＬＫがローレベルのとき、すなわち１クロック周期の後半部分において、他方の乗算器１２１ｂによる＋３倍の乗算結果を出力する。
【００５０】
同様に、乗算器１２−２は、図１０に示すように、乗数値が固定の２つの乗算器１２２ａ、１２２ｂとセレクタ１２２ｃによって構成されている。一方の乗算器１２２ａは乗数「＋５」の乗算処理を行い、他方の乗算器１２２ｂは乗数「−７」の乗算処理を行う。セレクタ１２２ｃは、２つの乗算器１２２ａ、１２２ｂのそれぞれの乗算結果が入力されており、制御端子Ｓに入力されるクロック信号ＣＬＫがハイレベルのとき（１クロック周期の前半部分）に、一方の乗算器１２２ａによる＋５倍の乗算結果を出力し、反対に制御端子Ｓに入力されるクロック信号ＣＬＫがローレベルのとき（１クロック周期の後半部分）に、他方の乗算器１２２ｂによる−７倍の乗算結果を出力する。
【００５１】
乗算器１２−３は、図１１に示すように、乗数値が固定の２つの乗算器１２３ａ、１２３ｂとセレクタ１２３ｃによって構成されている。一方の乗算器１２３ａは乗数「−７」の乗算処理を行い、他方の乗算器１２３ｂは乗数「＋５」の乗算処理を行う。セレクタ１２３ｃは、２つの乗算器１２３ａ、１２３ｂのそれぞれの乗算結果が入力されており、制御端子Ｓに入力されるクロック信号ＣＬＫがハイレベルのとき（１クロック周期の前半部分）に、一方の乗算器１２３ａによる−７倍の乗算結果を出力し、反対に制御端子Ｓに入力されるクロック信号ＣＬＫがローレベルのとき（１クロック周期の後半部分）に、他方の乗算器１２３ｂによる＋５倍の乗算結果を出力する。
【００５２】
乗算器１２−４は、図１２に示すように、乗数値が固定の２つの乗算器１２４ａ、１２４ｂとセレクタ１２４ｃによって構成されている。一方の乗算器１２４ａは乗数「＋３」の乗算処理を行い、他方の乗算器１２４ｂは乗数「−１」の乗算処理を行う。セレクタ１２４ｃは、２つの乗算器１２４ａ、１２４ｂのそれぞれの乗算結果が入力されており、制御端子Ｓに入力されるクロック信号ＣＬＫがハイレベルのとき（１クロック周期の前半部分）に、一方の乗算器１２４ａによる＋３倍の乗算結果を出力し、反対に制御端子Ｓに入力されるクロック信号ＣＬＫがローレベルのとき（１クロック周期の後半部分）に、他方の乗算器１２４ｂによる−１倍の乗算結果を出力する。
【００５３】
このようにして、それぞれの乗算器において、１クロック周期の前半部分と後半部分において異なる乗数を用いた乗算処理が実現される。
【００５４】
ところで、上述した４つの乗算器１２−１〜１２−４には、４種類の乗算値−１、＋３、＋５、−７が用いられている。各乗算値から１を減じると、−２、＋２、＋４、−８となって、２のべき乗の数になることから、これらの数を乗数とする乗算処理を単純なビットシフトで実現することができる。本実施形態の各乗算器の乗数がこのような特殊な値を有することに着目して、各乗算器の構成を簡略化することができる。
【００５５】
図１３〜図１６は、簡略化した４つの乗算器１２−１〜１２−４の構成を示す図である。
【００５６】
乗算器１２−１は、図１３に示すように、反転出力端子を有するトライステートバッファ１２１ｄと、非反転出力端子を有するトライステートバッファ１２１ｅと、２つの入力端子およびキャリー端子Ｃを有する加算器（ＡＤＤ）１２１ｆとを含んで構成されている。
【００５７】
一方のトライステートバッファ１２１ｄは、制御端子に入力されるクロック信号ＣＬＫがハイレベルのとき（１クロック周期の前半部分）に、入力データを１ビット分上位ビット側にシフトするとともに、そのシフトしたデータの各ビットを反転して出力することにより、結果的に−２倍の乗算処理を行う。実際には各ビットを反転した後に１を加えて補数を求めることにより、−２倍の乗算処理を行うことができるが、この１を加える処理は、後段の加算器１２１ｆにおいて行っている。
【００５８】
また、他方のトライステートバッファ１２１ｅは、制御端子に反転入力されるクロック信号がローレベルのとき（１クロック周期の後半部分）に、入力データを１ビット分上位ビット側にシフトして出力することにより、２倍の乗算処理を行う。
【００５９】
加算器１２１ｆは、２つのトライステートバッファ１２１ｄ、１２１ｅのいずれかから出力される乗算結果に、乗算前の入力データ（Ｄ型フリップフロップ１０−１から出力されたデータ）を加算するとともに、キャリー端子Ｃに入力されるクロック信号ＣＬＫがハイレベルにあるとき（１クロック周期の前半部分）にはキャリーに相当する１をさらに加算する。上述したように、このキャリーに相当する１の加算は、トライステートバッファ１２１ｄを用いて補数を求めるために行われるものである。
【００６０】
上述した構成を有する乗算器１２−１において、１クロック周期の前半部分には、一方のトライステートバッファ１２１ｄのみの動作が有効になるため、加算器１２１ｆは、入力データＤを−２倍した乗算結果（−２Ｄ）に入力データＤそのものを足し合わせた結果（−２Ｄ＋Ｄ＝−Ｄ）を出力する。また、１クロック周期の後半部分には、他方のトライステートバッファ１２１ｅのみの動作が有効になるため、加算器１２１ｆは、入力データＤを＋２倍した乗算結果（＋２Ｄ）に入力データＤそのものを足し合わせた結果（＋２Ｄ＋Ｄ＝＋３Ｄ）を出力する。
【００６１】
このように、ビットシフトによる２のべき乗の乗算処理と加算処理とを組み合わせて−１倍と＋３倍の乗算処理を行うことにより、乗算器１２−１をトライステートバッファと加算器のみによって構成することができ、構成の簡略化が可能となる。特に、２つのトライステートバッファの各出力を選択的に使用しているため、これらの各出力端子をワイヤードオア接続することができ、さらに構成の簡略化が可能になる。
【００６２】
また、乗算器１２−２は、図１４に示すように、非反転出力端子を有するトライステートバッファ１２２ｄと、反転出力端子を有するトライステートバッファ１２２ｅと、２つの入力端子およびキャリー端子Ｃを有する加算器（ＡＤＤ）１２２ｆとを含んで構成されている。
【００６３】
一方のトライステートバッファ１２２ｄは、制御端子に入力されるクロック信号ＣＬＫがハイレベルのとき（１クロック周期の前半部分）に、入力データを２ビット分上位ビット側にシフトして出力することにより、＋４倍の乗算処理を行う。
【００６４】
また、他方のトライステートバッファ１２２ｅは、制御端子に反転入力されるクロック信号がローレベルのとき（１クロック周期の後半部分）に、入力データを３ビット分上位ビット側にシフトして出力するとともに、そのシフトしたデータの各ビットを反転して出力することにより、結果的に−８倍の乗算処理を行う。実際には各ビットを反転した後に１を加えて補数を求めることにより、−８倍の乗算処理を行うことができるが、この１を加える処理は、後段の加算器１２２ｆにおいて行っている。
【００６５】
加算器１２２ｆは、２つのトライステートバッファ１２２ｄ、１２２ｅのいずれかから出力される乗算結果に、乗算前の入力データを加算するとともに、キャリー端子Ｃに反転入力されるクロック信号ＣＬＫがローレベルにあるとき（１クロック周期の後半部分）にはキャリーに相当する１をさらに加算する。上述したように、このキャリーに相当する１の加算は、トライステートバッファ１２２ｅを用いて補数を求めるために行われるものである。
【００６６】
上述した構成を有する乗算器１２−２において、１クロック周期の前半部分には、一方のトライステートバッファ１２２ｄのみの動作が有効になるため、加算器１２２ｆは、入力データＤを＋４倍した乗算結果（＋４Ｄ）に入力データＤそのものを足し合わせた結果（＋４Ｄ＋Ｄ＝＋５Ｄ）を出力する。また、１クロック周期の後半部分には、他方のトライステートバッファ１２２ｅのみの動作が有効になるため、加算器１２２ｆは、入力データＤを−８倍した乗算結果（−８Ｄ）に入力データＤそのものを足し合わせた結果（−８Ｄ＋Ｄ＝−７Ｄ）を出力する。
【００６７】
このように、ビットシフトによる２のべき乗の乗算処理と加算処理とを組み合わせて＋５倍と−７倍の乗算処理を行うことにより、乗算器１２−２をトライステートバッファと加算器のみによって構成することができ、構成の簡略化が可能となる。
【００６８】
また、乗算器１２−３は、図１５に示すように、反転出力端子を有するトライステートバッファ１２３ｄと、非反転出力端子を有するトライステートバッファ１２３ｅと、２つの入力端子およびキャリー端子Ｃを有する加算器（ＡＤＤ）１２３ｆとを含んで構成されている。
【００６９】
一方のトライステートバッファ１２３ｄは、制御端子に反転入力されるクロック信号がハイレベルのとき（１クロック周期の前半部分）に、入力データを３ビット分上位ビット側にシフトして出力するとともに、そのシフトしたデータの各ビットを反転して出力することにより、結果的に−８倍の乗算処理を行う。実際には各ビットを反転した後に１を加えて補数を求めることにより、−８倍の乗算処理を行うことができるが、この１を加える処理は、後段の加算器１２３ｆにおいて行っている。
【００７０】
また、他方のトライステートバッファ１２３ｅは、制御端子に反転入力されるクロック信号ＣＬＫがローレベルのとき（１クロック周期の後半部分）に、入力データを２ビット分上位ビット側にシフトして出力することにより、＋４倍の乗算処理を行う。
【００７１】
加算器１２３ｆは、２つのトライステートバッファ１２３ｄ、１２３ｅのいずれかから出力される乗算結果に、乗算前の入力データを加算するとともに、キャリー端子Ｃに入力されるクロック信号ＣＬＫがハイレベルにあるとき（１クロック周期の前半部分）にはキャリーに相当する１をさらに加算する。上述したように、このキャリーに相当する１の加算は、トライステートバッファ１２３ｅを用いて補数を求めるために行われるものである。
【００７２】
上述した構成を有する乗算器１２−３において、１クロック周期の前半部分には、一方のトライステートバッファ１２３ｄのみの動作が有効になるため、加算器１２３ｆは、入力データＤを−８倍した乗算結果（−８Ｄ）に入力データＤそのものを足し合わせた結果（−８Ｄ＋Ｄ＝−７Ｄ）を出力する。また、１クロック周期の後半部分には、他方のトライステートバッファ１２３ｅのみの動作が有効になるため、加算器１２３ｆは、入力データＤを＋４倍した乗算結果（＋４Ｄ）に入力データＤそのものを足し合わせた結果（＋４Ｄ＋Ｄ＝＋５Ｄ）を出力する。
【００７３】
このように、ビットシフトによる２のべき乗の乗算処理と加算処理とを組み合わせて−７倍と＋５倍の乗算処理を行うことにより、乗算器１２−３をトライステートバッファと加算器のみによって構成することができ、構成の簡略化が可能となる。
【００７４】
また、乗算器１２−４は、図１６に示すように、非反転出力端子を有するトライステートバッファ１２４ｄと、反転出力端子を有するトライステートバッファ１２４ｅと、２つの入力端子およびキャリー端子Ｃを有する加算器（ＡＤＤ）１２４ｆとを含んで構成されている。
【００７５】
一方のトライステートバッファ１２４ｄは、制御端子に入力されるクロック信号がハイレベルのとき（１クロック周期の前半部分）に、入力データを１ビット分上位ビット側にシフトして出力することにより、２倍の乗算処理を行う。
【００７６】
また、他方のトライステートバッファ１２４ｅは、制御端子に反転入力されるクロック信号ＣＬＫがローレベルのとき（１クロック周期の後半部分）に、入力データを１ビット分上位ビット側にシフトするとともに、そのシフトしたデータの各ビットを反転して出力することにより、結果的に−２倍の乗算処理を行う。実際には各ビットを反転した後に１を加えて補数を求めることにより、−２倍の乗算処理を行うことができるが、この１を加える処理は、後段の加算器１２４ｆにおいて行っている。
【００７７】
加算器１２４ｆは、２つのトライステートバッファ１２４ｄ、１２４ｅのいずれかから出力される乗算結果に、乗算前の入力データを加算するとともに、キャリー端子Ｃに反転入力されるクロック信号ＣＬＫがローレベルにあるとき（１クロック周期の後半部分）にはキャリーに相当する１をさらに加算する。上述したように、このキャリーに相当する１の加算は、トライステートバッファ１２４ｅを用いて補数を求めるために行われるものである。
【００７８】
上述した構成を有する乗算器１２−４において、１クロック周期の前半部分には、一方のトライステートバッファ１２４ｄのみの動作が有効になるため、加算器１２４ｆは、入力データＤを＋２倍した乗算結果（＋２Ｄ）に入力データＤそのものを足し合わせた結果（＋２Ｄ＋Ｄ＝＋３Ｄ）を出力する。また、１クロック周期の後半部分には、他方のトライステートバッファ１２４ｅのみの動作が有効になるため、加算器１２４ｆは、入力データＤを−２倍した乗算結果（−２Ｄ）に入力データＤそのものを足し合わせた結果（−２Ｄ＋Ｄ＝−Ｄ）を出力する。
【００７９】
このように、ビットシフトによる２のべき乗の乗算処理と加算処理とを組み合わせて＋３倍と−１倍の乗算処理を行うことにより、乗算器１２−４をトライステートバッファと加算器のみによって構成することができ、構成の簡略化が可能となる。
【００８０】
ところで、上述したオーバーサンプリング処理回路の後段にローパスフィルタ等を追加することにより、少ない部品でＤ／Ａ変換器を構成することができる。図１７は、Ｄ／Ａ変換器の構成を示す図である。このＤ／Ａ変換器は、図５に示したオーバーサンプリング処理回路の後段に、Ｄ／Ａ変換器１８とローパスフィルタ（ＬＰＦ）２０を追加した構成を有している。
【００８１】
Ｄ／Ａ変換器１８は、後段の積分回路１６−２から出力される階段状のデジタルデータに対応するアナログ電圧を発生する。このＤ／Ａ変換器１８は、入力されるデジタルデータの値に比例した一定のアナログ電圧を発生するため、Ｄ／Ａ変換器１８の出力端に現れる電圧値も階段状に変化する。ローパスフィルタ２０は、Ｄ／Ａ変換器１８の出力電圧を平滑化して、滑らかに変化するアナログ信号を出力する。
【００８２】
図１７に示したＤ／Ａ変換器は、図５に示したオーバーサンプリング処理回路を用いていることから、構成の簡略化、部品コストの低減が可能となる。特に、オーバーサンプリングの周波数を高くして歪みの少ない出力波形を得るようにした場合であっても、構成の複雑化を伴うことなく、コストの低減を実現することができる。
【００８３】
なお、本発明は上記実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述した実施形態では、標本化関数を全域で１回だけ微分可能な有限台の関数としたが、微分可能回数を２回以上に設定してもよい。この場合には、微分可能回数に一致させた数の積分回路を備えるようにすればよい。
【００８４】
また、図１に示すように、本実施形態の標本化関数は、ｔ＝±２で０に収束するようにしたが、ｔ＝±３以上で０に収束するようにしてもよい。例えば、ｔ＝±３で０に収束するようにした場合には、図５に示したオーバーサンプリング処理回路に含まれるＤ型フリップフロップや乗算器のそれぞれの数を６とし、６個のデジタルデータを対象に補間処理を行うようにすればよい。
【００８５】
また、必ずしも有限台の標本化関数を用いて補間処理を行う場合に限らず、−∞〜＋∞の範囲において所定の値を有する有限回微分可能な標本化関数を用い、有限の標本位置に対応する複数個のデジタルデータのみを補間処理の対象とするようにしてもよい。例えば、このような標本化関数が二次の区分多項式で定義されているものとすると、各区分多項式を２回微分することにより所定の階段関数波形を得ることができるため、この階段関数波形に対応した各乗数で乗算器を動作させればよい。
【００８６】
【発明の効果】
上述したように、本発明によれば、順に入力される複数のデジタルデータのそれぞれに対応する各乗算結果を加算し、その後この加算結果をデジタル積分することにより、値が滑らかに変化する出力データが得られるため、オーバーサンプリングの周波数を高くする場合にデジタル積分の演算速度を速くするだけでよく、従来のように構成の複雑化を招くことがなく、構成の簡略化と部品コストの低減が可能になる。
【図面の簡単な説明】
【図１】本実施形態のオーバーサンプリング処理回路における補間演算に用いられる標本化関数の説明図である。
【図２】標本値とその間の補間値との関係を示す図である。
【図３】図１に示した標本化関数を１回微分した波形を示す図である。
【図４】図３に示した折れ線関数をさらに微分した波形を示す図である。
【図５】本実施形態のオーバーサンプリング処理回路の構成を示す図である。
【図６】図５に示したオーバーサンプリング処理回路に含まれる積分回路の詳細な構成を示す図である。
【図７】本実施形態のオーバーサンプリング処理回路の動作タイミングを示す図である。
【図８】積分回路から出力されるデータの詳細を示す図である。
【図９】乗算器の詳細な構成を示す図である。
【図１０】乗算器の詳細な構成を示す図である。
【図１１】乗算器の詳細な構成を示す図である。
【図１２】乗算器の詳細な構成を示す図である。
【図１３】乗算器の詳細な構成を示す図である。
【図１４】乗算器の詳細な構成を示す図である。
【図１５】乗算器の詳細な構成を示す図である。
【図１６】乗算器の詳細な構成を示す図である。
【図１７】図５に示したオーバーサンプリング処理回路を用いたＤ／Ａ変換器の構成を示す図である。
【符号の説明】
１０−１、１０−２、１０−３、１０−４  Ｄ型フリップフロップ（Ｄ−ＦＦ）
１２−１、１２−２、１２−３、１２−４  乗算器
１４−１、１４−２、１４−３  加算器（ＡＤＤ）
１６−１、１６−２  積分回路
１８  Ｄ／Ａ（デジタル−アナログ）変換器
２０  ローパスフィルタ（ＬＰＦ）
【図１】
0004397488.tif 000002
【図２】
0004397488.tif 000003
【図３】
0004397488.tif 000004
【図４】
0004397488.tif 000005
【図５】
0004397488.tif 000006
【図６】
0004397488.tif 000007
【図７】
0004397488.tif 000008
【図８】
0004397488.tif 000009
【図９】
0004397488.tif 000010
【図１０】
0004397488.tif 000011
【図１１】
0004397488.tif 000012
【図１２】
0004397488.tif 000013
【図１３】
0004397488.tif 000014
【図１４】
0004397488.tif 000015
【図１５】
0004397488.tif 000016
【図１６】
0004397488.tif 000017
【図１７】
0004397488.tif 000018