JPH0697772A - Method and device for delaying arithmetic data of digital filter - Google Patents
Method and device for delaying arithmetic data of digital filterInfo
- Publication number
- JPH0697772A JPH0697772A JP22944191A JP22944191A JPH0697772A JP H0697772 A JPH0697772 A JP H0697772A JP 22944191 A JP22944191 A JP 22944191A JP 22944191 A JP22944191 A JP 22944191A JP H0697772 A JPH0697772 A JP H0697772A
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- data buffer
- delay
- buffer
- 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.)
- Granted
Links
Landscapes
- Filters That Use Time-Delay Elements (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、遅延段数が順次増加す
る基本フィルタをカスケード接続することにより構成さ
れるデジタル・フィルタの演算のためにデータを遅延さ
せる方法に関する。より詳細には、音声合成,特にケプ
ストラムから対数振幅特性近似(LogMagnitude Approxi
mation )フィルタ(以下LMAフィルタと略記する)
を用いて音声合成を行なうデジタル・フィルタの演算デ
ータの遅延方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of delaying data for the operation of a digital filter which is constructed by cascading basic filters having an increasing number of delay stages. More specifically, speech synthesis, in particular, LogMagnitude Approxi
mation) filter (hereinafter abbreviated as LMA filter)
The present invention relates to a method of delaying operation data of a digital filter for performing voice synthesis using.
【0002】[0002]
【従来の技術】音声合成に使用されているLMAフィル
タは、人間の聴覚上重要な対数振幅スペクトルを近似し
て生成することができるデジタル・フィルタであり、図
1に示すような伝達関数を持ち、図2のシグナル・フロ
ー・グラフに示すように遅延段数が順次増加する基本フ
ィルタのカスケード接続により構成される。このフィル
タの演算を行うために、従来、各ステージの基本フィル
タに対してその基本フィルタの遅延段数と同数のデータ
を格納するデータ・バッファを用意し、各データ・バッ
ファの先頭アドレスにデータ(第1ステージの基本フィ
ルタのデータ・バッファに対しては新しいデータ、他の
ステージの基本フィルタのデータ・バッファに対しては
前ステージの基本フィルタの演算結果)を入力しつつ各
バッファのデータを1アドレスずつ移動させることによ
りデータを遅延させ、対応する基本フィルタの演算に必
要なタイミング数遅延されたデータを出力するようにし
ていた。しかしこの方法では、ソフトウェアにより実現
する場合には、総遅延段数が大きくなると、データの移
動のために多くの時間がかかるようになる。そのため、
音声合成をリアルタイムで行なう場合には、現在のハー
ドウェアの性能では、計算時間に対する制約から、対数
振幅スペクトルの近似精度を犠牲にして総遅延段数を減
らすことにより実現さぜる得なかった。2. Description of the Related Art The LMA filter used for speech synthesis is a digital filter capable of approximating a logarithmic amplitude spectrum which is important for human hearing and has a transfer function as shown in FIG. As shown in the signal flow graph of FIG. 2, it is configured by a cascade connection of basic filters in which the number of delay stages is sequentially increased. In order to perform the operation of this filter, conventionally, a data buffer that stores the same number of data as the number of delay stages of the basic filter is prepared for the basic filter of each stage, and the data (first While inputting new data to the data buffer of the basic filter of one stage, and inputting the calculation result of the basic filter of the previous stage to the data buffer of the basic filter of the other stage), the data of each buffer has one address The data is delayed by moving the data, and the data delayed by the number of timings required for the operation of the corresponding basic filter is output. However, in this method, when it is realized by software, if the total number of delay stages becomes large, it takes a lot of time to move the data. for that reason,
In the case of performing speech synthesis in real time, current hardware performance cannot be realized by reducing the total number of delay stages at the expense of approximation accuracy of the logarithmic amplitude spectrum due to the restriction on the calculation time.
【0003】そこで、対数振幅スペクトルの近似精度を
上げるにはフィルタの総遅延段数を増やす必要があり、
そのためにはデータの遅延処理の速度を上げる必要があ
った。それには、データの移動を伴わない遅延方式が有
効であった。この方法は、各基本フィルタに対してその
遅延段数と同数のデータを格納するデータ・バッファを
用いる点は上記方法と同様であるが、データは移動させ
ないで、タイミングの進行につれてデータの入力アドレ
スを変位させるものである。各アドレスのデータは、タ
イミングが1つ進むごとに1タイミング遅延が進む。格
納されているデータが所要タイミング数遅延され出力さ
れて不要になると、そのアドレスにデータが書き込まれ
る。そしてこのデータの入出力を行うために、各データ
・バッファに対してその入力アドレス及び出力アドレス
を指定するポインタを用い、各タイミングごとに各デー
タ・バッファのポインタの計算を行ない、入力アドレス
及び出力アドレスを決定していた。Therefore, in order to improve the approximation accuracy of the logarithmic amplitude spectrum, it is necessary to increase the total number of delay stages of the filter.
For that purpose, it was necessary to increase the speed of data delay processing. For that purpose, a delay method without data movement was effective. This method is similar to the above method in that each basic filter uses a data buffer for storing the same number of data as the number of delay stages, but the data is not moved and the input address of the data is changed as the timing progresses. It is to displace. The data of each address is advanced by one timing delay as the timing advances by one. When the stored data is output after being delayed by the required number of timings and is no longer needed, the data is written to that address. In order to input / output this data, pointers for designating the input address and output address of each data buffer are used, the pointer of each data buffer is calculated at each timing, and the input address and output address are calculated. I had decided on the address.
【0004】しかしながらこの方法は、ハードウェアに
より実現する場合には、多数のポインタを保持しなけれ
ばならない問題があった。また汎用のハードウェアで実
現するときは、複数のポインタを持つハードウェアは極
めて少ないのでメモリの1部をポインタとして使用する
のが通例であり、ポインタの計算に時間がかかるという
問題があった。さらにソフトウェアにより実現する場合
には、単1のCPUでは1度に複数のポインタを計算す
ることができないためポインタの計算に時間がかかり、
複数のCPUにより並列に計算しようとするとハードウ
ェアやプログラムが複雑になるという問題があった。However, this method has a problem that a large number of pointers must be held when it is realized by hardware. Further, when it is realized by general-purpose hardware, there is a problem that the hardware having a plurality of pointers is extremely small, so that it is customary to use a part of the memory as a pointer, and it takes time to calculate the pointer. Further, when it is realized by software, a single CPU cannot calculate a plurality of pointers at a time, so it takes time to calculate the pointers.
There is a problem that hardware and programs become complicated when an attempt is made to calculate in parallel by a plurality of CPUs.
【0005】[0005]
【発明の目的】本発明の目的は、ハードウェアで実現す
る場合多数のポインタを保持しなければならなず、ソフ
トウェアで実現する場合及び汎用のハードウェアで実現
する場合ポインタの計算に時間がかかるという従来技術
の欠点を解決する点に存する。It is an object of the present invention to hold a large number of pointers when it is realized by hardware, and it takes time to calculate the pointers when it is realized by software and when it is realized by general-purpose hardware. This is to solve the drawback of the prior art.
【0006】[0006]
【発明の概要】本発明は、遅延段数が順次増加する基本
フィルタのカスケード接続により構成されるデジタル・
フィルタの各基本フィルタに対して,少なくとも遅延段
数が最大の基本フィルタの遅延データを格納可能な,同
サイズのデータ・バッファを割り当ててメモリ上に連続
して配置し、各データ・バッファにデータを書き込む入
力アドレスを、各データ・バッファの先頭アドレスから
の相対アドレスが互に等しくなる位置関係または各デー
タ・バッファからデータを読み出す出力アドレスの各デ
ータ・バッファの先頭アドレスからの相対アドレスが互
に等しくなるような位置関係に保ちながら、タイミング
の進行と共に各データ・バッファ内で循環変位させるこ
とにより上記課題を解決した。SUMMARY OF THE INVENTION The present invention is a digital filter including a cascade connection of basic filters in which the number of delay stages is sequentially increased.
For each basic filter of the filter, allocate a data buffer of the same size that can store at least the delay data of the basic filter with the maximum number of delay stages, and allocate them consecutively in memory, and store the data in each data buffer. The input address to be written has a positional relationship in which the relative addresses from the start address of each data buffer are equal to each other, or the output addresses for reading data from each data buffer have the same relative address from the start address of each data buffer. The above problem is solved by cyclically displacing each data buffer as the timing progresses while maintaining such a positional relationship.
【0007】[0007]
【実施例】次に本発明のデジタル・フィルタの演算デー
タの遅延方法の実施例について、図を参照して説明す
る。DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a method for delaying operation data of a digital filter according to the present invention will be described with reference to the drawings.
【0008】説明を簡単にするために、LMAフィルタ
のデータ遅延部を簡略化した図3のような伝達関数を持
ち、図4のようなシグナル・フロー・グラフを持つデジ
タル・フィルタに対して本発明を適用した実施例につい
て説明する。For simplification of the description, a digital filter having a transfer function as shown in FIG. 3 and a signal flow graph as shown in FIG. An embodiment to which the invention is applied will be described.
【0009】図5は、データ・バッファの構成を示す。
この実施例では、カスケード接続された全ての基本フィ
ルタに対して、遅延段数が最大の基本フィルタの遅延段
数と同サイズ(サイズ4)のデータ・バッファを割り当
て、それらのデータ・バッファをメモリ内に連続して配
置している。FIG. 5 shows the structure of the data buffer.
In this embodiment, data buffers of the same size (size 4) as the number of delay stages of the basic filter having the maximum number of delay stages are allocated to all the basic filters cascaded, and those data buffers are stored in the memory. They are arranged consecutively.
【0010】なおデータ・バッファのサイズは、遅延段
数が最大の基本フィルタの遅延段数より大きくすること
もできる。The size of the data buffer can be made larger than the number of delay stages of the basic filter having the maximum number of delay stages.
【0011】図6は、各データ・バッファの入力アドレ
ス及び出力アドレスの位置関係とタイミングの進行によ
る変位を示す説明図である。FIG. 6 is an explanatory diagram showing the positional relationship between the input address and the output address of each data buffer and the displacement due to the progress of timing.
【0012】この実施例では、図6に示すように、各デ
ータ・バッファの入力アドレスを、各データ・バッファ
の先頭アドレスからの相対アドレス(以下相対アドレス
という)が1ずつ増大する位置関係に保ちつつ、タイミ
ングの進行につれて1アドレスずつ進める(アドレスが
大きくなる方向に変位させる)。ただし各データ・バッ
ファの最後のアドレスを越えるときは、先頭アドレスに
戻すことにより、各データ・バッファ内で循環的に変位
させる。これにより各データ・バッファの出力アドレス
は相対アドレスが等しくなり、入力アドレスの変位にし
たがって変位する。なお基本フィルタの遅延段数が複数
段ずつ増加する場合には、各データ・バッファの相対ア
ドレスも同数のアドレスずつ増大させることにより、各
データ・バッファの出力アドレスの相対アドレスが等し
くなる。In this embodiment, as shown in FIG. 6, the input address of each data buffer is kept in a positional relationship in which a relative address (hereinafter referred to as a relative address) from the head address of each data buffer increases by one. While advancing the timing, the address is advanced by one address (displaced in the direction in which the address increases). However, when it exceeds the last address of each data buffer, it is circularly displaced within each data buffer by returning to the start address. As a result, the output addresses of the respective data buffers have the same relative address and are displaced according to the displacement of the input address. When the number of delay stages of the basic filter increases by a plurality of stages, the relative address of the output address of each data buffer becomes equal by increasing the relative address of each data buffer by the same number of addresses.
【0013】したがって、各データ・バッファの出力ア
ドレス間の差アドレスは、各データ・バッファのサイズ
に等しくなる。しかも各データ・バッファのサイズを等
しくしているので、各データ・バッファの出力アドレス
間の差アドレスは同じになる。Therefore, the difference address between the output addresses of each data buffer is equal to the size of each data buffer. Moreover, since the size of each data buffer is made equal, the difference address between the output addresses of each data buffer becomes the same.
【0014】またこの実施例では、ポインタpを用いて
各データ・バッファの出力アドレスの相対アドレスを指
定している。したがって、ポインタpの値と各データ・
バッファの入力アドレス及び出力アドレスの関係は次の
ようになる。In this embodiment, the pointer p is used to specify the relative address of the output address of each data buffer. Therefore, the value of pointer p and each data
The relationship between the input address and output address of the buffer is as follows.
【0015】いまタイミング1におけるポインタpの値
を0とすると、各基本フィルタのデータ・バッファの出
力アドレスは、各データ・バッファの相対アドレスが0
のアドレス(先頭アドレス)になる。また各基本フィル
タのデータ・バッファの入力アドレスは、上述のように
出力アドレスとの差アドレスが対応する基本フィルタの
遅延段数と等しくなるようなアドレスであり、ステージ
1の基本フィルタのデータ・バッファでは相対アドレス
が1のアドレス、ステージ2の基本フィルタのデータ・
バッファでは相対アドレスが2のアドレス、ステージ3
の基本フィルタのデータ・バッファでは相対アドレスが
3のアドレス、ステージ4の基本フィルタのデータ・バ
ッファでは相対アドレスが0のアドレス(最後のアドレ
スを越えるので先頭アドレスに戻る)となる。したがっ
て、各データ・バッファの入力アドレスの相対アドレス
は、図に示したように1ずつ大きくなる。Assuming that the value of the pointer p at timing 1 is 0, the output address of the data buffer of each basic filter is 0 as the relative address of each data buffer.
Address (start address). Further, the input address of the data buffer of each basic filter is such an address that the difference address from the output address becomes equal to the number of delay stages of the corresponding basic filter as described above, and in the data buffer of the basic filter of stage 1, Relative address is 1 and data of stage 2 basic filter
Address with relative address 2 in buffer, stage 3
In the basic filter data buffer, the relative address is an address of 3, and in the basic filter data buffer of stage 4, the relative address is an address of 0 (because it exceeds the last address, it returns to the first address). Therefore, the relative address of the input address of each data buffer is incremented by 1 as shown in the figure.
【0016】タイミング2ではポインタpの値を1つ進
めて1とする。それにより、各基本フィルタのデータ・
バッファの出力アドレスは、タイミング1におけるアド
レスから1つ進んで、相対アドレスが1のアドレスにな
る。また入力アドレスも、タイミング1におけるアドレ
スから1つ進んで、ステージ1の基本フィルタのデータ
・バッファでは相対アドレスが2のアドレス、ステージ
2の基本フィルタのデータ・バッファでは相対アドレス
が3のアドレス、ステージ3の基本フィルタのデータ・
バッファでは相対アドレスが0(先頭アドレス)、ステ
ージ4の基本フィルタのデータ・バッファでは相対アド
レスが1のアドレスとなる。At timing 2, the value of the pointer p is incremented by 1 and set to 1. As a result, the data of each basic filter
The output address of the buffer is advanced from the address at timing 1 by one, and the relative address becomes one. The input address is also advanced by one from the address at timing 1, and the relative address is 2 in the stage 1 basic filter data buffer, and the relative address is 3 in the stage 2 basic filter data buffer. Data of 3 basic filters
The relative address is 0 (starting address) in the buffer, and the relative address is 1 in the data buffer of the stage 4 basic filter.
【0017】タイミング3及び4でも、同様に、ポイン
タpの値を1つずつ進めて2及び3とする。それにより
各基本フィルタのデータ・バッファの出力アドレス及び
入力アドレスは、上記の規則にしたがって1ずつ進み、
図示のようになる。At timings 3 and 4, similarly, the value of the pointer p is advanced by 1 to 2 and 3. As a result, the output address and input address of the data buffer of each basic filter are incremented by 1 according to the above rule,
As shown in the figure.
【0018】タイミング5では、ポインタpの値を1進
めると4になり、ポインタの値が0の時の状態と同じに
なる。したがってタイミング5以降は、タイミング1か
ら4の状態の繰り返しになる。At the timing 5, when the value of the pointer p is advanced by 1, it becomes 4, which is the same as the state when the value of the pointer is 0. Therefore, after timing 5, the states of timings 1 to 4 are repeated.
【0019】図7及び8は、各データ・バッファの出力
アドレス及び入力アドレスの、データ・バッファ全体の
先頭アドレス(ステージ1のデータ・バッファの先頭ア
ドレス)からの相対アドレスの算出方法と相対アドレス
を示す。FIGS. 7 and 8 show the method of calculating the relative address and the relative address of the output address and input address of each data buffer from the start address of the entire data buffer (start address of the data buffer of stage 1). Show.
【0020】図9は、フィルタ演算の開始から終了まで
のデータ・バッファに対するデータの入出力アルゴリズ
ムを示す。FIG. 9 shows a data input / output algorithm for the data buffer from the start to the end of the filter calculation.
【0021】また図10(a)及び(b)は、それぞ
れ、各タイミングにおけるデータの出力アルゴリズム及
び入力アルゴリズムを示す。Further, FIGS. 10A and 10B show a data output algorithm and a data input algorithm at each timing, respectively.
【0022】各タイミングにおいて、出力アルゴリズム
により各データ・バッファの出力アドレスから読み出さ
れたデータは演算回路(図示せず)に入力されて各基本
フィルタのフィルタ演算が実行され、各基本フィルタの
演算結果は入力アルゴリズムにより次ステージの基本フ
ィルタのデータ・バッファの入力アドレスに書き込まれ
る。なお、ステージ1の基本フィルタのデータ・バッフ
ァの入力アドレスには、新しいデータが書き込まれる。
また、最終ステージの基本フィルタの出力は、D−A変
換されスピーカ駆動回路に入力される。At each timing, the data read from the output address of each data buffer by the output algorithm is input to an arithmetic circuit (not shown) to execute the filter operation of each basic filter, and the operation of each basic filter. The result is written by the input algorithm to the input address of the data buffer of the next stage elementary filter. It should be noted that new data is written to the input address of the data buffer of the stage 1 basic filter.
The output of the basic filter in the final stage is D-A converted and input to the speaker drive circuit.
【0023】この実施例では、上記のように、各データ
・バッファの出力アドレスの相対アドレスが等しくなる
ようにしているので、各データ・バッファの出力アドレ
スの差アドレスが等しくなる。そのため、ステージ1の
基本フィルタのデータ・バッファの出力アドレスを計算
すれば、ステージ2以降の基本フィルタのデータ・バッ
ファの出力アドレスは、その出力アドレスを1定数ずつ
シフトするだけで算出できる。In this embodiment, as described above, since the relative addresses of the output addresses of the respective data buffers are made equal, the difference addresses of the output addresses of the respective data buffers are made equal. Therefore, if the output address of the data buffer of the basic filter of stage 1 is calculated, the output address of the data buffer of the basic filter of stage 2 or later can be calculated only by shifting the output address by one constant.
【0024】次に本発明の他の実施例について説明す
る。Next, another embodiment of the present invention will be described.
【0025】図11は、各データ・バッファの入力アド
レス及び出力アドレスの位置関係とタイミングの進行に
よる変位を示す説明図である。FIG. 11 is an explanatory diagram showing the positional relationship between the input address and the output address of each data buffer and the displacement due to the progress of timing.
【0026】この実施例では、図11に示すように、各
データ・バッファの入力アドレスを、各データ・バッフ
ァの先頭アドレスからの相対アドレスを等しく保ちなが
ら、タイミングの進行につれて循環変位させる。これに
より各データ・バッファの出力アドレスは、相対アドレ
スが1ずつ小さくなり、入力アドレスの変位にしたがっ
て変位する。In this embodiment, as shown in FIG. 11, the input address of each data buffer is cyclically displaced as the timing advances while keeping the relative address from the head address of each data buffer equal. As a result, the output address of each data buffer has its relative address reduced by one and is displaced according to the displacement of the input address.
【0027】したがって、各データ・バッファの入力ア
ドレス間の差アドレスは、各データ・バッファのサイズ
に等しくなる。しかも各データ・バッファのサイズを等
しくしているので、各データ・バッファの入力アドレス
間の差アドレスは同じになる。Therefore, the difference address between the input addresses of each data buffer is equal to the size of each data buffer. Moreover, since the size of each data buffer is made equal, the difference address between the input addresses of each data buffer becomes the same.
【0028】またこの実施例では、ポインタpを用いて
各データ・バッファの入力アドレスの相対アドレスを指
定している。したがって、ポインタpの値と各データ・
バッファの入力アドレス及び出力アドレスの関係は次の
ようになる。In this embodiment, the pointer p is used to specify the relative address of the input address of each data buffer. Therefore, the value of pointer p and each data
The relationship between the input address and output address of the buffer is as follows.
【0029】いまタイミング1におけるポインタpの値
を0とし、各データ・バッファの入力アドレスの相対ア
ドレスを1とする。すなわちポインタの値に1を加えた
値を各データ・バッファの入力アドレスの相対アドレス
とする。すると各データ・バッファの出力アドレスは、
上記の関係から、ステージ1の基本フィルタのデータ・
バッファでは相対アドレスが0のアドレス、ステージ2
の基本フィルタのデータ・バッファでは相対アドレスが
3のアドレス(先頭アドレスから最後のアドレスに戻
る)、ステージ3の基本フィルタのデータ・バッファで
は相対アドレスが2のアドレス、ステージ4の基本フィ
ルタのデータ・バッファでは相対アドレスが1のアドレ
スとなる。At the timing 1, the value of the pointer p is set to 0, and the relative address of the input address of each data buffer is set to 1. That is, the value obtained by adding 1 to the value of the pointer is used as the relative address of the input address of each data buffer. Then the output address of each data buffer is
From the above relationship, the data of the stage 1 basic filter
Address with relative address 0 in buffer, stage 2
In the basic filter data buffer, the relative address is 3 (returning from the first address to the last address), in the stage 3 basic filter data buffer, the relative address is 2 and in the stage 4 basic filter data In the buffer, the relative address is 1.
【0030】タイミング2ではポインタpの値を1つ進
めて1とする。それにより、各基本フィルタのデータ・
バッファの入力アドレスは、タイミング1におけるアド
レスから1つ進んで、相対アドレスが2のアドレスにな
る。また出力アドレスも、タイミング1におけるアドレ
スから1つ進んで、ステージ1の基本フィルタのデータ
・バッファでは相対アドレスが1のアドレス、ステージ
2の基本フィルタのデータ・バッファでは相対アドレス
が0のアドレス、ステージ3の基本フィルタのデータ・
バッファでは相対アドレスが3(最後のアドレス)、ス
テージ4の基本フィルタのデータ・バッファでは相対ア
ドレスが2のアドレスとなる。At the timing 2, the value of the pointer p is incremented by 1 and set to 1. As a result, the data of each basic filter
The input address of the buffer is advanced by one from the address at timing 1 and becomes the address of relative address 2. The output address also advances by one from the address at timing 1, and the relative address is 1 in the data buffer of the stage 1 basic filter, and the relative address is 0 in the data buffer of the stage 2 basic filter. Data of 3 basic filters
The relative address is 3 (last address) in the buffer, and the relative address is 2 in the data buffer of the stage 4 basic filter.
【0031】タイミング3及び4では、ポインタpの値
を1ずつ進めて3及び4とする。それにより、各基本フ
ィルタのデータ・バッファの入力アドレス及び出力アド
レスは、上記の規則にしたがって1ずつ進み、図示のよ
うになる。At timings 3 and 4, the value of the pointer p is advanced by 1 to 3 and 4. As a result, the input and output addresses of the data buffer of each basic filter are incremented by one according to the above rule, and are as shown in the figure.
【0032】タイミング5では、ポインタpの値を1進
めると4になり、ポインタの値が0のタイミング1の時
の状態に戻る。したがってタイミング5以降は、タイミ
ング1から4における状態の繰り返しになる。At the timing 5, when the value of the pointer p is advanced by 1, it becomes 4, and the state returns to the state at the timing 1 when the pointer value is 0. Therefore, after timing 5, the states of timings 1 to 4 are repeated.
【0033】図12及び13は、各データ・バッファの
入力アドレス及び出力アドレスの、データ・バッファ全
体の先頭アドレス(ステージ1のデータ・バッファの先
頭アドレス)からの相対アドレスの算出方法と相対アド
レスを示す。FIGS. 12 and 13 show the method of calculating the relative address and the relative address of the input address and output address of each data buffer from the start address of the entire data buffer (start address of the stage 1 data buffer). Show.
【0034】フィルタ演算の開始から終了までのデータ
・バッファに対するデータの入出力アルゴリズムは、前
実施例と同じである。The data input / output algorithm for the data buffer from the start to the end of the filter operation is the same as in the previous embodiment.
【0035】また図14(a)及び(b)は、それぞ
れ、各タイミングにおけるデータの出力アルゴリズム及
び入力アルゴリズムを示す。Further, FIGS. 14A and 14B show an output algorithm and an input algorithm of data at each timing, respectively.
【0036】各タイミングにおいて、出力アルゴリズム
により各データ・バッファの出力アドレスから読み出さ
れたデータは演算回路(図示せず)に入力されて各基本
フィルタのフィルタ演算が実行され、各基本フィルタの
演算結果は入力アルゴリズムにより次ステージの基本フ
ィルタのデータ・バッファの入力アドレスに書き込まれ
る。なお、ステージ1の基本フィルタのデータ・バッフ
ァの入力アドレスには、新しいデータが書き込まれる。
また、最終ステージの基本フィルタの出力は、D−A変
換されスピーカ駆動回路に入力される。At each timing, the data read from the output address of each data buffer by the output algorithm is input to an arithmetic circuit (not shown) to execute the filter operation of each basic filter, and the operation of each basic filter. The result is written by the input algorithm to the input address of the data buffer of the next stage elementary filter. It should be noted that new data is written to the input address of the data buffer of the stage 1 basic filter.
The output of the basic filter in the final stage is D-A converted and input to the speaker drive circuit.
【0037】この第2の実施例では、上記のように、各
データ・バッファの入力アドレスの相対アドレスが等し
くなるようにしているので、各データ・バッファの入力
アドレス間の差アドレスが等しくなる。そのため、ステ
ージ1の基本フィルタのデータ・バッファの入力アドレ
スを計算すれば、ステージ2以降の基本フィルタのデー
タ・バッファの入力アドレスは、その入力アドレスを1
定数ずつシフトするだけで算出できる。In the second embodiment, as described above, since the relative addresses of the input addresses of the respective data buffers are made equal, the difference addresses between the input addresses of the respective data buffers are made equal. Therefore, if the input address of the data buffer of the basic filter of stage 1 is calculated, the input address of the data buffer of the basic filter of stage 2 and subsequent stages will be 1
It can be calculated simply by shifting by a constant.
【0038】[0038]
【発明の効果】以上説明したように、本発明のデジタル
・フィルタの演算データの遅延方法は、各基本フィルタ
に対して,少なくとも遅延段数が最大の基本フィルタの
遅延データを格納可能なサイズの,同サイズのデータ・
バッファを割り当ててメモリ上に連続して配置し、各デ
ータ・バッファにデータを書き込む入力アドレスを、各
データ・バッファの先頭アドレスからの相対アドレスが
等しくなる位置関係または各データ・バッファから所要
のタイミング数遅延されたデータを読み出す出力アドレ
スの各データ・バッファの先頭アドレスからの相対アド
レスが等しくなるような位置関係に保ちながら、タイミ
ングの進行と共に各データ・バッファ内で循環変位させ
るので、各データ・バッファの入力アドレスまたは出力
アドレス間の差アドレスが等しくなる。そのため、ステ
ージ1のデータ・バッファの入力アドレスまたは出力ア
ドレスを計算すれば、ステージ2以降のデータ・バッフ
ァの入力アドレスまたは出力アドレスは、それを1定数
ずつシフトするだけで算出することができる。したがっ
て、ハードウェアで実現する場合、入力アドレスまたは
出力アドレスのポインタは1つだけ保持すればよく、従
来の方法に比べて保持すべきポインタの数が少なくな
る。またソフトウェアや汎用のハードウェアで実現する
場合には、遅延データの入力アドレスまたは出力アドレ
スの計算が簡単になり、ポインタの計算に要する時間が
大幅に短縮できる。As described above, according to the method for delaying operation data of a digital filter of the present invention, for each basic filter, at least the delay data of the basic filter having the maximum number of delay stages can be stored. Data of the same size
Buffers are allocated and arranged consecutively in memory, and the input address to write data to each data buffer has a positional relationship where the relative address from the start address of each data buffer is equal or the timing required from each data buffer While maintaining the positional relationship such that the output address for reading the data delayed by several delays has the same relative address from the start address of each data buffer, the cyclic displacement is performed in each data buffer as the timing progresses. The difference addresses between the input or output addresses of the buffer are equal. Therefore, if the input address or output address of the data buffer of stage 1 is calculated, the input address or output address of the data buffer of stage 2 or later can be calculated by only shifting it by one constant. Therefore, when it is realized by hardware, only one pointer of the input address or the output address needs to be held, and the number of pointers to be held is smaller than that in the conventional method. Further, when it is realized by software or general-purpose hardware, the calculation of the input address or the output address of the delay data becomes easy, and the time required for the calculation of the pointer can be greatly shortened.
【図1】音声合成に使用されているLMAフィルタの伝
達関数を示す図。FIG. 1 is a diagram showing a transfer function of an LMA filter used for speech synthesis.
【図2】図1の伝達関数を実現するデジタル・フィルタ
の構成を示すシグナル・フロー・グラフを示す図。FIG. 2 is a diagram showing a signal flow graph showing a configuration of a digital filter that realizes the transfer function of FIG.
【図3】本発明のデータ遅延方法を実施したデジタル・
フィルタの伝達関数を示す図。FIG. 3 is a digital circuit for implementing the data delay method of the present invention.
The figure which shows the transfer function of a filter.
【図4】図3の伝達関数を伝達関数を実現するデジタル
・フィルタの構成を示すシグナル・フロー・グラフを示
す図。FIG. 4 is a diagram showing a signal flow graph showing a configuration of a digital filter that realizes the transfer function of FIG.
【図5】図4の構成によるフィルタ演算に対して本発明
のデータ遅延方法を実施したときのデータ・バッファの
構成の説明図。5 is an explanatory diagram of a configuration of a data buffer when the data delay method of the present invention is applied to the filter operation according to the configuration of FIG.
【図6】本発明の実施例における各データ・バッファの
入力アドレス及び出力アドレスの位置関係とタイミング
の進行による変位を示す説明図。FIG. 6 is an explanatory view showing the positional relationship between the input address and the output address of each data buffer and the displacement due to the progress of timing in the embodiment of the present invention.
【図7】本発明の実施例における各データ・バッファの
出力アドレスのデータ・バッファ全体の先頭アドレスか
らの相対アドレスの算出方法と相対アドレスを示す図。FIG. 7 is a diagram showing a method of calculating a relative address from the start address of the entire data buffer of the output address of each data buffer and the relative address in the embodiment of the present invention.
【図8】本発明の実施例における各データ・バッファの
入力アドレスのデータ・バッファ全体の先頭アドレスか
らの相対アドレスの算出方法と相対アドレスを示す図。FIG. 8 is a diagram showing a relative address calculation method and a relative address from the start address of the entire data buffer of the input address of each data buffer in the embodiment of the present invention.
【図9】フィルタ演算の開始から出力までのデータ・バ
ッファに対するデータの入出力アルゴリズムを示すフロ
ーチャート。FIG. 9 is a flowchart showing a data input / output algorithm for a data buffer from the start of filter operation to output.
【図10】(a) 及び(b) は本発明の実施例における各タ
イミングでのデータの出力アルゴリズム及び入力アルゴ
リズムを示すフローチャート。10A and 10B are flowcharts showing an output algorithm and an input algorithm of data at each timing in the embodiment of the present invention.
【図11】本発明の他の実施例における各データ・バッ
ファの入力アドレス及び出力アドレスの位置関係とタイ
ミングの進行による変位を示す説明図。FIG. 11 is an explanatory view showing the positional relationship between the input address and the output address of each data buffer and the displacement due to the progress of timing in another embodiment of the present invention.
【図12】本発明の他の実施例における各データ・バッ
ファの出力アドレスのデータ・バッファ全体の先頭アド
レスからの相対アドレスの算出方法と相対アドレスを示
す図。FIG. 12 is a diagram showing a method of calculating a relative address from the start address of the entire data buffer and the relative address of the output address of each data buffer in another embodiment of the present invention.
【図13】本発明の他の実施例における各データ・バッ
ファの入力アドレスのデータ・バッファ全体の先頭アド
レスからの相対アドレスの算出方法と相対アドレスを示
す図。FIG. 13 is a diagram showing a method of calculating a relative address from the start address of the entire data buffer and the relative address of the input address of each data buffer in another embodiment of the present invention.
【図14】(a) 及び(b) は本発明の他の実施例における
各タイミングでのデータの出力アルゴリズム及び入力ア
ルゴリズムを示す図である。14A and 14B are diagrams showing a data output algorithm and a data input algorithm at each timing in another embodiment of the present invention.
Claims (3)
カスケード接続により構成されるデジタル・フィルタの
演算データの遅延方法であって、 各基本フィルタに対して,遅延段数が最大の基本フィル
タの遅延データを格納可能なサイズの,同サイズのデー
タ・バッファを割り当ててメモリ上に連続して配置し、 各データ・バッファにデータを書き込む入力アドレス
を、各データ・バッファの先頭アドレスからの相対アド
レスが等しくなる位置関係に保ちつつ、タイミングの進
行と共に各データ・バッファ内で循環変位させ、 各データ・バッファの対応する基本フィルタの演算に必
要なタイミング数遅延されたデータを出力データとして
読み出すことを特徴とするデジタル・フィルタの演算デ
ータの遅延方法。1. A method of delaying operation data of a digital filter configured by cascade connection of basic filters in which the number of delay stages is sequentially increased, and for each basic filter, delay data of the basic filter having the maximum number of delay stages. Allocate data buffers of the same size that can store data, allocate them consecutively in memory, and set the input address to write data to each data buffer to the same relative address from the start address of each data buffer. It is characterized by cyclically displacing each data buffer as the timing progresses while maintaining the following positional relationship, and reading the data delayed by the number of timings necessary for the operation of the corresponding basic filter of each data buffer as output data. Method for delaying calculated data of digital filter.
カスケード接続により構成されるデジタル・フィルタの
演算データの遅延方法であって、 各基本フィルタに対して,遅延段数が最大の基本フィル
タの遅延データを格納可能なサイズの,同サイズのデー
タ・バッファを割り当ててメモリ上に連続して配置し、 各データ・バッファにデータを書き込む入力アドレス
を、各データ・バッファの出力アドレスの各データ・バ
ッファの先頭アドレスからの相対アドレスが等しくなる
ような位置関係に保ちつつ、タイミングの進行と共に各
データ・バッファ内で循環変位させることを特徴とする
デジタル・フィルタの演算データの遅延方法。2. A method of delaying operation data of a digital filter configured by cascade connection of basic filters in which the number of delay stages is sequentially increased, wherein the delay data of the basic filter having the maximum number of delay stages is set for each basic filter. Allocating data buffers of the same size that can store data, and arranging them sequentially in memory, and inputting the address to write data to each data buffer, and inputting the address of each data buffer of the output address of each data buffer A method of delaying operation data of a digital filter, which is characterized by cyclically displacing each data buffer as timing progresses while maintaining a positional relationship such that relative addresses from a head address become equal.
ードに接続して構成するディジタル・フィルタにおい
て、遅延データ・バッファからの遅延データのアクセス
及び当該遅延データ・バッファへの新規データの格納を
行うに際し、 各基本フィルタ毎に等しいサイズの遅延データ・バッフ
ァと、遅延データ・バッファ・サイズに等しい周期で1
づつ変化するポインタと、遅延データ・バッファ内の遅
延データを抽出する遅延データ・アクセス部と、新規入
力データを遅延データ・バッファ内に格納する新規デー
タ格納部とを備えたことを特徴とするデータ遅延装置。3. A digital filter configured by connecting basic filters having different numbers of delay stages in cascade, when accessing delayed data from a delayed data buffer and storing new data in the delayed data buffer, A delay data buffer of equal size for each basic filter, and 1 with a period equal to the delay data buffer size
Data characterized by having a pointer that changes in sequence, a delay data access unit that extracts the delay data in the delay data buffer, and a new data storage unit that stores new input data in the delay data buffer Delay device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22944191A JP3154759B2 (en) | 1991-08-15 | 1991-08-15 | Method and apparatus for delaying operation data of digital filter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22944191A JP3154759B2 (en) | 1991-08-15 | 1991-08-15 | Method and apparatus for delaying operation data of digital filter |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0697772A true JPH0697772A (en) | 1994-04-08 |
JP3154759B2 JP3154759B2 (en) | 2001-04-09 |
Family
ID=16892268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22944191A Expired - Fee Related JP3154759B2 (en) | 1991-08-15 | 1991-08-15 | Method and apparatus for delaying operation data of digital filter |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3154759B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004107573A1 (en) * | 2003-05-28 | 2004-12-09 | Mitsubishi Denki Kabushiki Kaisha | Audio quality adjustment device |
-
1991
- 1991-08-15 JP JP22944191A patent/JP3154759B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004107573A1 (en) * | 2003-05-28 | 2004-12-09 | Mitsubishi Denki Kabushiki Kaisha | Audio quality adjustment device |
Also Published As
Publication number | Publication date |
---|---|
JP3154759B2 (en) | 2001-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1099216B1 (en) | Audio signal time scale modification | |
US4149242A (en) | Data interface apparatus for multiple sequential processors | |
JPH0697772A (en) | Method and device for delaying arithmetic data of digital filter | |
JPH06103225A (en) | Chain type dma system and dma controller therefor | |
JPS6260755B2 (en) | ||
JPS60108973A (en) | Method for finding the minimum value of array elements and element number of the minimum element | |
JP2895892B2 (en) | Data processing device | |
JP2591362B2 (en) | Data selection processing method | |
JPS59188779A (en) | Vector processor | |
JP2507399B2 (en) | Database equipment | |
JPS6391756A (en) | Partial write instruction processing system for storage device | |
JP2945668B2 (en) | Pipeline processing equipment | |
JPS63204593A (en) | Method for accessing dynamic memory | |
JPS59197920A (en) | Address controlling device | |
JPH0431130B2 (en) | ||
JPS6074074A (en) | Priority control system | |
JPH01284926A (en) | Instruction reading system for arithmetic unit | |
JPS60235274A (en) | Picture signal processing device | |
JPS6116365A (en) | Vector data processor | |
JP2001520429A (en) | How to emulate shift registers using RAM | |
JPH0477948A (en) | Memory access control system and information processor using the system | |
JPS635432A (en) | Microprocessor | |
JPS60218146A (en) | Storage device address control system | |
JPH03251940A (en) | Method and device for storage | |
JPH01114962A (en) | Direct memory access controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |