JP3282573B2 - 可変遅延装置および方法 - Google Patents
可変遅延装置および方法Info
- Publication number
- JP3282573B2 JP3282573B2 JP34409697A JP34409697A JP3282573B2 JP 3282573 B2 JP3282573 B2 JP 3282573B2 JP 34409697 A JP34409697 A JP 34409697A JP 34409697 A JP34409697 A JP 34409697A JP 3282573 B2 JP3282573 B2 JP 3282573B2
- Authority
- JP
- Japan
- Prior art keywords
- coefficient
- delay
- multiplication
- apf
- multiplier
- 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.)
- Expired - Fee Related
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
どに適用して好適な可変遅延装置および方法に関する。
ュレートしたモデルを動作させ、これにより自然楽器の
楽音を合成する楽音合成装置が各種開発されている。こ
の種の楽音合成装置(以下、遅延フィードバック音源と
呼ぶ)では、図16に示すような、加算器1601、遅
延回路(Delay)1602、オールパスフィルタ
(APF)1603、およびフィルタ1604を閉ルー
プ状に接続したループ部を備えた構成が知られている。
ジスタからなる。各段は、加算器1601の加算結果を
記憶できるだけのビット数を持つ。遅延回路1602に
は所定サンプリング周期ごとにクロックが供給される。
そして、サンプリング周期ごとに加算器1601から加
算結果が入力し、遅延回路1602の第1段に書き込ま
れる。遅延回路1602の各段のデータは、サンプリン
グ周期ごとに次の段へとシフトされる。遅延回路160
2からのデータ読み出しは、指定された任意の段から読
み出し可能である。したがって、サンプリング周期の整
数倍の遅延時間だけ遅延したデータを得ることができ
る。遅延回路1602から読み出した所定の遅延時間だ
け遅延されたデータは、APF1603に入力する。
グ周期の整数倍の遅延時間しか設定できないので、サン
プリング周期の整数倍からずれた遅延時間を設定するた
めにAPF1603を用いる。図17に、APF160
3の典型的なブロック構成を示す。この図のAPF16
03は、1次のディジタルフィルタであり、乗算器(乗
算係数をaとする)1701,1702、加算器170
3,1704、および遅延回路(1段のレジスタ)17
05から構成されている。これら各部には、サンプリン
グ周期ごとにクロックが供給される。APF1603
は、周波数特性がフラットであるとともに、乗算係数a
を適宜設定することにより、自己の遅延時間を調整する
ことが可能である。これにより、サンプリング周期の整
数倍からずれた値の遅延時間を設定できる。APF16
03の出力は、フィルタ1604に入力する。
の他のフィルタであり、このループ部内を循環する信号
に所望の減衰特性を付与したり、所望の音色となるよう
に加工するためのものである。フィルタ1604の出力
は、加算器1601に入力し、入力信号と加算される。
号のような多くの周波数成分を含んだアナログ信号をサ
ンプリング周期ごとにPCM符号化し、この結果得られ
た時系列ディジタル信号を加算器1601への入力信号
とする。この入力信号は、加算器1601を介して、遅
延回路1602でサンプリング周期の整数倍だけ遅延さ
れ、さらにAPF1603でサンプリング周期の整数倍
からのずれ分だけ遅延されて、フィルタ1604に入力
し、再び加算器1601にフィードバックされて、ルー
プ部内を循環する。
回路1602およびAPF1603の遅延時間により決
定される(フィルタ1604の位相遅れは無視するもの
とする)。したがって、遅延回路1602およびAPF
1603による遅延時間(遅延回路1602で全体の遅
延長の整数分の遅延を行ない,APF1603で全体の
遅延長の小数分の遅延を行なう)を制御することによ
り、このループ部を循環する楽音信号の音高を制御する
ことができる。出力は、ループ内のどこから楽音信号を
取り出してもよい。図16では、加算器1601から楽
音信号を取り出して出力している。
うな従来のAPFでは、遅延長の小数部を変更するため
に乗算器1701,1702の乗算係数を変更すると、
ノイズが発生するという問題点があった。以下、その問
題点について説明する。
17のAPF1603の動作を示す図である。簡単のた
め入力値の変化がない場合を考え、入力値を「1」で固
定とする。時間t=0のとき乗算係数a=0、t=1の
とき乗算係数a=−0.5という変化を与えたとする。
tはサンプリング周期を単位として数えた時間を示す。
「1」が加算器1703に入力するとともに、乗算器1
701に入力する。乗算係数a=0であるから、乗算器
1701の乗算結果は「0」であり、この「0」が加算
器1704に入力する。遅延回路1705からは「1」
が出力されているから、加算器1704の加算結果(乗
算器1701の乗算結果の符号を変えて加算する)は
「1」であり、この「1」がAPFの出力となる。ま
た、加算器1704の加算結果「1」は、乗算器170
2に入力して乗算係数a=0と乗算され、乗算結果
「0」が加算器1703に入力する。加算器1703
は、入力値「1」とこの乗算結果「0」とを加算し、加
算結果「1」を遅延回路1705に入力する。
の時点で乗算係数はa=−0.5に変更されたとする。
入力値「1」が加算器1703に入力するとともに、乗
算器1701に入力する。乗算係数a=−0.5である
から、乗算器1701の乗算結果は「−0.5」であ
り、この「−0.5」が加算器1704に入力する。遅
延回路1705からは「1」が出力されているから、加
算器1704の加算結果(乗算器1701の乗算結果の
符号を変えて加算する)は、「1.5」であり、この
「1.5」がAPFの出力となる。また、加算器170
4の加算結果「1.5」は、乗算器1702に入力して
乗算係数a=−0.5と乗算され、乗算結果「−0.7
5」が加算器1703に入力する。加算器1703は、
入力値「1」とこの乗算結果「−0.75」とを加算
し、加算結果「0.25」を遅延回路1705に入力す
る。
2,3,4の状態を示す。結果として、t=2では
「0.75」が、t=3では「1.125」が、t=4
では「0.9375」が、それぞれAPFから出力され
ることになる。この後も、APFの出力は、「1」を中
心にして上下交互に振れるが、やがて「1」に収束して
いく。収束は、APFの乗算係数aの絶対値が大きい程
遅い。
と、入力値が一定でもあるにかかわらず、出力に振動
(リプル)が生じるという問題がある。これは、APF
のフィードフォワード側の乗算器1701の乗算係数と
フィードバック側の乗算器1702の乗算係数とを同時
に変化させても、フィードバック側の乗算係数が作用し
た値が遅延回路1705を通ってから出てくるため、1
ディレイタイミング(1サンプリング周期)ずれること
が原因である。
を変化させたとしても、不要なノイズを生じることのな
い可変遅延装置および方法を提供することを目的とす
る。
め、請求項1に係る発明は、所定サンプリング周期ごと
に入力するディジタル入力信号を、指定された係数に応
じた遅延時間だけ遅延して出力する可変遅延装置であっ
て、前記係数を装置内部の各部に作用させる際に、係数
変更の効果が出力に波及するタイミングが同じになるよ
うに、前記係数を作用させる各部に対して、それぞれ所
定の遅延時間の後に前記係数を作用させるようにしたこ
とを特徴とする。すなわち、遅延時間を指定する係数は
可変遅延装置の内部の各部に作用させるが、作用させる
際に、その係数変更の効果が出力に同時に波及するよう
に、各部に作用させる係数を所定時間遅延させて作用さ
せるようにする。これにより、係数変更の効果が同時に
出力信号に波及するようになり、係数を変化させた際の
不要なノイズを生じることがないようにできる。
周期ごとに入力するディジタル入力信号を、指定された
係数に応じた遅延時間だけ遅延して出力する可変遅延装
置であって、前記係数を1サンプリング周期だけ遅延し
て出力する係数遅延手段と、前記入力信号に、前記係数
遅延手段で遅延された係数を乗算する第1の乗算手段
と、出力信号に、前記係数遅延手段を介さずに、前記係
数を乗算する第2の乗算手段と、前記入力信号と前記第
2の乗算手段の乗算結果とを加算する第1の加算手段
と、前記第1の加算手段の加算結果を1サンプリング周
期だけ遅延して出力する遅延手段と、前記遅延手段の出
力と前記第1の乗算手段の乗算結果とを加算して、出力
信号として出力する第2の加算手段とを備えたことを特
徴とする。これは、発明の実施の形態の欄で後述するオ
ールパスフィルタの構成を明らかにしたものである。
周期ごとに入力するディジタル入力信号を、指定された
係数に応じた遅延時間だけ遅延して出力する可変遅延方
法であって、前記係数を装置内部の各部に作用させる際
に、係数変更の効果が出力に波及するタイミングが同じ
になるように、前記係数を作用させる各部に対して、そ
れぞれ所定の遅延時間の後に前記係数を作用させるよう
にしたことを特徴とする。
周期ごとに入力するディジタル入力信号を、指定された
係数に応じた遅延時間だけ遅延して出力する可変遅延方
法であって、前記係数を1サンプリング周期だけ遅延し
て出力する係数遅延ステップと、前記入力信号に、前記
係数遅延ステップで遅延された係数を乗算する第1の乗
算ステップと、出力信号に、前記係数遅延ステップの処
理を介さずに、前記係数を乗算する第2の乗算ステップ
と、前記入力信号と前記第2の乗算ステップの乗算結果
とを加算する第1の加算ステップと、前記第1の加算ス
テップの加算結果を1サンプリング周期だけ遅延して出
力する遅延ステップと、前記遅延ステップの出力と前記
第1の乗算ステップの乗算結果とを加算して、出力信号
として出力する第2の加算ステップとを備えたことを特
徴とする。
施の形態を説明する。
APFでは係数を変化させたときに実際に係数の効くタ
イミングが1ディレイ(1サンプリング周期分)だけず
れてしまい、これによりノイズ(リプル)が生じる。そ
こで、この発明に係るAPFではフィードフォワード側
の乗算器に与える乗算係数を1ディレイずらして与え
る。これにより、タイミングのずれはなくなり、従来例
で説明したような入力値一定で係数を変化させたときに
もリプルは発生しないようにできる。
APFのブロック構成を示す。この図のAPFは、乗算
器101,102、加算器103,104、および遅延
回路(1段のレジスタ)105を備えており、これらは
図17のAPFと同じである。図1のAPFは、さらに
フィードフォワード側の乗算器101に与える乗算係数
を1ディレイずらして与えるための係数遅延回路106
を備えている。
る。簡単のため入力値の変化がない場合を考え、入力値
を「1」で固定とする。いま、乗算係数aがa=0の状
態からa=−0.5に変化したとする。
変化した直後のAPFの状態を示す。入力値「1」が加
算器103に入力するとともに、乗算器101に入力す
る。乗算係数a=−0.5は既にこのAPFに与えられ
ているが、遅延回路106があるため、この時点では乗
算係数a=0が乗算器101に入力している。したがっ
て、乗算器101の乗算結果は「0」であり、この
「0」が加算器104に入力する。遅延回路105から
は「1」が出力されているから、加算器104の加算結
果(乗算器101の乗算結果の符号を変えて加算)は
「1」であり、この「1」がAPFの出力となる。加算
器104の加算結果「1」は、乗算器102に入力す
る。乗算器102の乗算係数はa=−0.5に変更され
ているから、乗算器102の乗算結果は「−0.5」と
なり、この乗算結果「−0.5」が加算器103に入力
する。加算器103は、入力値「1」とこの乗算結果
「−0.5」とを加算し、加算結果「0.5」を遅延回
路105に入力する。
グにおけるAPFの状態を示す。入力値「1」が加算器
103に入力するとともに、乗算器101に入力する。
変更後の乗算係数a=−0.5は、遅延回路106を経
て乗算器101に入力する。したがって、乗算器101
の乗算結果は「−0.5」であり、この「−0.5」が
加算器104に入力する。遅延回路105からは「0.
5」が出力されているから、加算器104の加算結果
(乗算器101の乗算結果の符号を変えて加算)は
「1」であり、この「1」がAPFの出力となる。加算
器104の加算結果「1」は、乗算器102に入力す
る。乗算器102の乗算係数はa=−0.5であるか
ら、乗算器102の乗算結果は「−0.5」となり、こ
の乗算結果「−0.5」が加算器103に入力する。加
算器103は、入力値「1」とこの乗算結果「−0.
5」とを加算し、加算結果「0.5」を遅延回路105
に入力する。
説明した状態が引き続くから、従来技術で説明したよう
なリプルを生ずること無しに、APFから「1」が出力
され続ける。
例について説明する。図3は、図1のAPFを音源部に
適用した電子楽器の全体構成を示すブロック図である。
この図の電子楽器は、中央処理装置(CPU)301、
メモリ302、表示部303、演奏操作子304、設定
操作子305、ディジタルシグナルプロセッサ(DS
P)306、DSP用のランダムアクセスメモリ(DS
P−RAM)308、ディジタルアナログ変換器(DA
C)309、および各部を接続するバスライン310を
備える。
作を制御する。メモリ302には、CPU301が実行
する各種制御プログラムが記憶されるとともに、ワーク
エリアおよびワークレジスタなどの領域が設けられる。
表示部303は、各種の情報を表示するためのものであ
る。設定操作子305は、各種の情報を設定するための
パネルスイッチあるいは補助操作子である。ユーザは、
表示部303に表示された情報を参照しながら設定操作
子305を操作することにより、この電子楽器で発生す
る楽音の音色などを設定することができる。
るための鍵盤などである。ユーザが演奏操作子304を
操作すると、CPU301はその操作を検出し、現在設
定されている音色情報TC、演奏操作子304の操作に
応じた音高情報PITCH、およびキーオン信号KON
などをDSP306に送出して楽音の発生を指示する。
DSP306は、内部のマイクロプログラムメモリ30
7にロードされたマイクロプログラムにしたがって、か
つCPU301から送出された音色情報TC、音高情報
PITCH、およびキーオン信号KONにしたがって、
演算処理(信号処理)を行ない、楽音を合成する音源と
して機能する。DSP−RAM308は、DSP306
が信号処理を行なう際に、主として信号遅延用として用
いるRAMである。DSP306で合成され出力された
ディジタル楽音信号は、DAC309によりアナログ楽
音信号に変換され、不図示のサウンドシステムへと出力
される。
楽音合成モデルを示すブロック図である。このモデル
は、上述したように実際にはDSP306とDSP−R
AM308とマイクロプログラムメモリ307にロード
されたマイクロプログラムとにより実現されている。
らのキーオン信号KONの入力にしたがって、励振波形
EXWVの発生を開始する。励振波形EXWVは、加算
器402に入力することにより、ループ部410に注入
される。加算器402は、励振波形EXWVと信号遅延
部404からの出力DLYWを加算し、加算結果ADW
Vをフィルタ403に向けて出力する。フィルタ403
は、入力信号ADWVをフィルタリングし、所望の音色
となるように、かつ所望の通りに減衰するように特性を
付与する。フィルタ403の出力信号は、信号遅延部4
04に入力し、指定された遅延時間DLYだけ遅延され
たのち出力される。信号遅延部404からの出力信号D
LYWは、加算器402にフィードバックされる。ルー
プ部410は、図16で説明した従来の遅延フィードバ
ック音源のループ部に相当するものである。
り指定された音色情報TCおよび音高情報PITCHを
入力し、それらに応じたフィルタ係数FCOEFをフィ
ルタ403に向けて出力する。フィルタ403は、この
フィルタ係数FCOEFに応じてフィルタリングを行な
う。
1により指定された音高情報PITCHに応じて信号遅
延部404における遅延量DLY(フィルタ403によ
る遅延は無視するので、信号遅延部404における遅延
量DLYがループ部410全体の遅延量となる)を決定
する。信号遅延部404は、図5で後述するように、整
数分の遅延を行なうシフトレジスタと少数分の遅延を行
なうAPFとで構成される。そこで、ループ制御部40
5は、全体の遅延量DLYを整数部(シフトレジスタに
よる遅延量)Diと小数部(APFによる遅延量)Df
とに分け、さらに小数部Df分の遅延を実現するために
APFに与える係数(APF内の乗算器に与える乗算係
数)Cを算出して、この整数部Diおよび係数Cを信号
遅延部404に向けて出力する。信号遅延部404は、
入力した整数部Diの分の遅延をシフトレジスタにより
行ない、さらに入力した係数Cに対応する分の遅延Df
をAPFにより行ない、入力データを全体としてDLY
(=Di+Df)だけ遅延したのち出力する。
すブロック図である。信号遅延部404は、シフトレジ
スタ510およびこの発明に係るAPF520からな
る。信号遅延部404に入力した励振波形データは、シ
フトレジスタ510の第1段DD1に順次書き込まれ
る。シフトレジスタ510の各段のデータは、サンプリ
ング周期ごとに次の段へとシフトされる。シフトレジス
タ510からのデータの読み出しは、ループ制御部40
5により指定された整数部Diの位置DDiから読み出
される。読み出されたデータ、すなわち整数部Diだけ
遅延されたデータは、APF520に入力する。
06は、図1および図2で説明したこの発明に係るAP
Fの各部101から106(付番は100番台と500
番台とで異なるが1の位の数字が同じものは共通のもの
を示す)に対応し、その動作も図1および図2で説明し
たものと同じである。すなわち、APF520は、ルー
プ制御部405から指定された係数Cに対応する遅延量
Dfだけの遅延を行なうが、その際、係数Cをフィード
バック側の乗算器502には直接与え、フィードフォワ
ード側の乗算器501には遅延回路506で1クロック
分遅延して乗算係数Cを与える。これにより、APF5
20では、入力する係数Cの値が変更された場合でもリ
プルが発生しないようにしている。
法を示すフローチャートである。この制御手法は、特開
平6−67674号に示されたものであり、この制御手
法のみでも遅延フィードバック音源のループ部で発生す
るノイズを抑える効果があるが、この制御手法とこの発
明に係るAPFとを併用することにより、さらにノイズ
発生を抑えることができる。以下、この制御手法につい
て説明する。
で、整数部Diと小数部Dfとを制御して発生楽音の音
高を変化させる場合、例えばループ部全体の遅延量DL
Y=(Di+Df)が「9.999」から「10.00
0」に変化する場合は、整数部Diが「9」から「1
0」に変化し、小数部Dfが「0.999」から「0」
に変化することになる。このように、整数部Diと小数
部Dfを不連続に制御すると、APF内の遅延回路(レ
ジスタ)に以前の値が保持されていたために生じる値の
不連続が原因してノイズ発生の要因となる。
と小数部Dfとにより決まるループ部全体の遅延量DL
Yが上記変化(整数部Diと小数部Dfの切り替え)の
前後でほぼ等しくなるようにAPFの係数Cを制御す
る。さらに、ループ部410からの出力信号の振幅値が
上記変化の前後で等しくなるように制御する必要があ
る。以下、このような制御手法について説明する。
説明する。典型的な例として、遅延量DLYが「9.9
99」から「10.000」に変化する場合、すなわち
Di=9,Df=0.999からDi=10,Df=0
に変化する場合を考える。この場合、遅延量DLYが
「10.000」になる直前においてDi=9,Df=
0.999であり、APFの遅延がほぼ1になってい
る。次のサンプリング周期では、遅延量DLYが「1
0.000」になるように、シフトレジスタの遅延量D
i=10、APFの遅延量Df=0で、かつ、そのとき
の出力振幅が直前の振幅と同一であるようにする。その
ためには、APFの係数Cを「−1」と置けばよい(C
=−1のとき、APFの伝達関数H(z)=(z-1−
C)/(1−Cz-1)はH(z)=1となり、遅延量D
f=0となる)。さらに、Di,Dfの変化の前後で出
力振幅を等しくするために、z-1=0とする(すなわ
ち、図5のAPF520内のレジスタDz505を
「0」に初期化する)。ただし、実際には係数Cを「−
1」とすると、APFの動作が不安定になるので、上述
のタイミングの前後で遅延量の差が問題とならない範囲
で「−1」に近く、しかも|C|<1、かつ安定な動作
が確保できる値を選択するものとする。
場合でも同様にすればよい。すなわち、遅延量の整数部
Diが増加したときに、レジスタDz505を「0」に
初期化して、APF520に与える係数Cを「−1」と
設定する。そして、その次のサンプリング周期で、指定
された係数Cの値を設定すればよい。
について説明する。典型的な例として、遅延量DLYが
「10.000」から「9.999」に変化する場合、
すなわちDi=10,Df=0からDi=9,Df=
0.999に変化する場合を考える。この場合、遅延量
DLYが「9.999」になる直前においてDi=1
0,Df=0であり、APFの遅延は「0」になってい
る。次のサンプリング周期では、Diが「9」でDfが
「1」になるように、かつ、そのときの出力振幅が直前
の振幅と同一であるようにする。そのためには、APF
の係数Cを「0」と置けばよい(C=0のとき、APF
の伝達関数H(z)=(z-1−C)/(1−Cz-1)は
H(z)=z-1となり、遅延量Df=1となる)。さら
に、Di,Dfの変化の前後で出力振幅を等しくするた
めに、z-1、すなわちレジスタDz505に1サンプル
前の値を設定する。
場合でも同様にすればよい。すなわち、遅延量の整数部
Diが減少したときに、レジスタDzに1サンプル前の
値を設定して、APF520に与える係数Cを「0」と
設定する。そして、その次のサンプリング周期で、指定
された係数Cの値を設定すればよい。
た制御手法を実現するDSP306の動作を説明する。
図6は、ループ制御部405から遅延量の整数部Diと
APFの係数Cとを信号遅延部404に与える際の動作
手順を示すものであり、サンプリング周期ごとに実行さ
れる。
の整数部Diが変化したか否かを判断する。Diが変化
していないときは、ステップ602で、ループ制御部4
05から図5のAPF520に向けて、遅延量DLYの
小数部Dfに対応する係数Cを出力し設定する。これに
より、図5のAPF520の遅延量として、指定された
小数部Dfが設定される。
iが変化していたときは、ステップ603で、整数部D
iが増加したか否か判断する。増加した場合(例えば図
5で、データの読み出し位置がDDi-1からDDiに変
化する場合)は、上述した制御を行なうため、ステップ
604でレジスタDz505に「0」を設定し、ステッ
プ605でAPF520に対し整数部Diと係数Cとを
設定する。すなわち、整数部Diは増加後の新たな値と
し、係数Cは「−1」に近く、しかも|C|<1、かつ
安定な動作が確保できる値とする。ステップ603で整
数部Diが減少した場合(例えば図5で、データの読み
出し位置がDDi+1からDDiに変化する場合)は、上
述した制御を行なうため、ステップ606でレジスタD
z505に1サンプル前の値を設定し(図5でDDi+1
からDDiに変化する場合、DDi+1のデータをレジス
タDz505に設定)、ステップ607でAPF520
に対し整数部Diと係数Cとを設定する。すなわち、整
数部Diは減少後の新たな値とし、係数Cは「0」とす
る。
Dfを不連続に制御する場合でも、ノイズがなく、かつ
出力信号の振幅値が整数部Diと小数部Dfの変化の前
後で等しくなるようにできる。さらに、図5のAPF5
20では、図1,2で説明したように係数Cが変更され
た際のノイズを抑えることができる。すなわち、図6の
手順のうち、ステップ602,605,607における
係数Cの設定は、乗算器502に対しては直接、乗算器
501に対しては遅延回路506を介して1クロック遅
延して、それぞれ与えられ、これにより係数Cの変更に
伴うノイズを抑えることができる。
す。図7において、図5と同一の付番は共通のものを示
し、説明は省略する。図7の信号遅延部は、図5の構成
に加え、係数Cを補間して乗算器501,502に与え
る補間器710を備えている。補間器710は、入力し
た係数Cに係数αを乗算する乗算器701、乗算器70
1の乗算結果αCに乗算器703からの乗算結果を加算
する加算器702、加算器702の加算結果を入力して
1クロック遅延して出力する遅延回路(レジスタ)50
6、および、遅延回路506の出力に1−αを乗算して
乗算結果を加算器702に出力する乗算器703からな
る。
遅延して乗算器501に入力するための遅延回路506
を補間器710と共用している。そして、遅延回路50
6の入力側(加算器702の出力側)から取り出した係
数を乗算器502に入力し、遅延回路506の出力側か
ら取り出した係数を乗算器501に入力するようにして
いる。
延回路506の出力とを用いて補間を行ない、補間結果
を新たに遅延回路506の入力とする。したがって、係
数Cが急激に変化する場合でも、補間結果(乗算器50
1,502へ与える乗算係数)は急激に変化しないよう
にできる。さらに、補間器710の遅延回路506の入
力側から乗算器502の乗算係数を取り出し、遅延回路
506の出力側から乗算器501の乗算係数を取り出し
ているので、図1,2で説明したように、係数が変化し
たときのノイズを抑えることができる。
ものではなく、遅延量DLYの整数部Diが変化したと
きには、図6の制御手法と等価となるように、乗算器7
01と加算器702は素通りさせる。すなわち、図7の
信号遅延部404で図6の制御手法を適用する際には、
ステップ602で設定する係数Cは補間器710を介し
て与え、ステップ605,607で設定する係数Cは乗
算器701と加算器702は素通りさせるものとする。
した電子楽器への適用例に関するAPFの変形例であ
る。すなわち、図3〜5の適用例において、特に図5の
APF520(遅延回路506も含める)を、図8〜1
0の何れかのAPFに置き換えることができる。
遅延回路802,805、および加算器803,804
からなる。図8のAPFは、図1のAPFのフィードフ
ォワード側とフィードバック側のループをそれぞれ独立
に構成したものである。この構成によれば、乗算器80
1,806の乗算係数を変更した場合に、その変更の効
果が同時に出るので、それらの乗算係数を同時に与える
ことができる。
901,905、および加算器902,903からな
る。図9のAPFは、図8の2個の乗算器801,80
6を1個に集約したものである。乗算器が1個のみ(乗
算器904)であるので、図1のように乗算係数を与え
るタイミングをずらす必要はない。
を、前段のシフトレジスタ(図5の510)と共用した
ものである。図10において、図8と同じ付番は共通の
ものを示すものとする。図10のAPFでは、APFの
前段の整数部Diの分の遅延を行なうシフトレジスタ
の、整数部Diだけ遅延した位置から読み出したデータ
を乗算器801に入力し、さらに1アドレスずらした位
置から読み出したデータ(さらに1クロック遅延したデ
ータ)を加算器803に入力するようにしている。同様
にして、図9のAPFを変形することもできる。
Fを用いた場合、遅延量の整数部Diが変化したときの
レジスタリセットの方式としては、以下の図11または
図12に示す方式とすればよい。
加したときは、図11(a)に示すように、遅延回路8
02,805を構成するレジスタを「0」にリセットす
るとともに、乗算器801,806の係数Cを「−1」
とする。また、整数部Diが減少したときは、図11
(b)に示すように、遅延回路802に1サンプル前の
値を設定する(例えば図5で、読み出し位置がDDi+1
からDDiに変化した場合は、DDi+1の遅延データを
遅延回路802に設定する)とともに、乗算器801,
806の係数Cを「0」とする。
ときは、図12(a)に示すように、加算器804の出
力を、整数分の遅延を行なうシフトレジスタからの出力
値に、一時的にすり替える(例えば図5で、データの読
み出し位置がDDi-1からDDiに変化する場合は、D
Di-1のデータを図12(a)の矢印1201の位置に
一時的に設定する)。また、整数部Diが減少したとき
は、図12(b)に示すように、加算器804の出力
を、整数分の遅延を行なうシフトレジスタの1サンプル
前の値に、一時的にすり替える(例えば図5で、データ
の読み出し位置がDDi+1からDDiに変化する場合
は、DDi+1のデータを図12(b)の矢印1202の
位置に一時的に設定する)。このように加算器804の
出力のすり替えを行なえば、遅延回路802,805の
リセットや乗算器801,806の乗算係数のリセット
は不要である。
た形態例を示したが、この発明は、他のフィルタ、例え
ばFIR(Finite Impulse Respo
nse)フィルタなどにも適用可能である。図13は従
来例であり、FIRフィルタで複数の係数を連動させて
変化させたときの様子を示す図である。図13(a)の
FIRフィルタは、乗算器1301,1302、遅延回
路(1クロック分の遅延を行なう)1303、および加
算器1304からなる。乗算器1301,1302の乗
算係数は、乗算器1302の乗算係数をaとしたとき
に、乗算器1301の乗算係数が−a+1となるよう
に、連動して乗算係数が変化するようになっている。そ
のため、係数aの符号を変えて「1」を加算して乗算器
1301に入力するようにするための加算器1305を
備えている。
FIRフィルタにおいて、係数aがa=0からa=1に
変化したときの様子を示す。簡単のため入力値の変化が
ない場合を考え、入力値を「1」で固定とする。時間t
=0のとき係数a=0、t=1のとき係数a=1という
変化を与えたとする。tはサンプリング周期を単位とし
て数えた時間を示す。
数a=0であるので、乗算器1302の乗算係数は
「0」、乗算器1301の乗算係数は「1」(加算器1
305で−a+1とされる)である。乗算器1301
は、入力値「1」と乗算係数「1」とを乗算する。乗算
結果「1」は加算器1304に入力する。乗算器130
2は、入力値「1」と乗算係数「0」とを乗算する。乗
算結果「0」は遅延回路1303に入力する。この時点
で遅延回路1303からは「0」が出力されており、こ
の「0」が加算器1304に入力する。加算器1304
は、乗算器1301からの「1」と遅延回路1303か
らの「0」とを加算し、加算結果「1」を出力する。
の時点で係数a=1に変更されたとする。係数a=1で
あるので、乗算器1302の乗算係数は「1」、乗算器
1301の乗算係数は「0」(加算器1305で−a+
1とされる)である。乗算器1301は、入力値「1」
と乗算係数「0」とを乗算する。乗算結果「0」は加算
器1304に入力する。乗算器1302は、入力値
「1」と乗算係数「1」とを乗算する。乗算結果「1」
は遅延回路1303に入力する。この時点で遅延回路1
303からは「0」が出力されており、この「0」が加
算器1304に入力する。加算器1304は、乗算器1
301からの「0」と遅延回路1303からの「0」と
を加算し、加算結果「0」を出力する。
数a=1であるので、乗算器1302の乗算係数は
「1」、乗算器1301の乗算係数は「0」である。乗
算器1301は、入力値「1」と乗算係数「0」とを乗
算する。乗算結果「0」は加算器1304に入力する。
乗算器1302は、入力値「1」と乗算係数「1」とを
乗算する。乗算結果「1」は遅延回路1303に入力す
る。この時点で遅延回路1303からは「1」が出力さ
れており、この「1」が加算器1304に入力する。加
算器1304は、乗算器1301からの「0」と遅延回
路1303からの「1」とを加算し、加算結果「1」を
出力する。これ以降は、図13(d)の状態が続く。
Rフィルタで複数の係数を連動させて変化させると、入
力値が一定であるにもかかわらず、出力が変動する。こ
れは、乗算器1302の乗算係数が作用した値が遅延回
路1303を通ってから出てくるため、1クロック分ず
れることが原因である。
にこの発明を適用した例である。図14(a)では、図
13(a)の構成に加え、乗算器1301に与える乗算
係数を1クロック分遅延させるための遅延回路1306
が備えられている。これにより、乗算器1301,13
02の乗算係数の変化の効果が加算器1304に波及す
るタイミングが同じとなり、図13(b)〜(d)で説
明した係数の変化による出力の変動は抑えられる。
ィルタと同様の構成であるが、図13(a)のものと比
較して、乗算器1302と遅延回路1303とが入れ替
わっている。すなわち、図13(a)のものでは乗算器
1302で入力値に乗算係数aを乗算してから遅延回路
1303で遅延しているところを、図14(b)のもの
では入力値を遅延回路1303で遅延したのち乗算器1
302で乗算係数aを乗算するようにしている。これに
より、乗算器1301,1302の乗算係数の変化の効
果が、同じタイミングで加算器1304に波及するよう
になるので、図13(b)〜(d)で説明した出力の変
動は抑えられる。
施の形態を多次のFIRフィルタに一般化した例を示
す。図15(a)は、図14(a)のFIRフィルタを
多次に一般化したものである。図15(a)において、
入力データはn個の系列に分けられ、それぞれ、乗算器
1501〜150nにより所定の乗算係数と乗算され
る。各乗算器1501〜150nの乗算結果は、それぞ
れ、遅延回路1511〜151nで所定遅延時間だけ遅
延されて加算器1520に入力し、加算されて出力され
る。この構成において、乗算器1501〜150nの乗
算係数を連動して変化させた場合、それらの変化の効果
はそれぞれ遅延回路1511〜151nの遅延時間の後
に加算器1520に現れる。そのため、遅延回路151
1〜151nの遅延時間が区々である場合、乗算器15
01〜150nの乗算係数を同時に変更すると出力にノ
イズが出るという問題が生じる。
を解決するFIRフィルタの構成を示す。図15(b)
のものは、図15(a)において各系列の乗算器150
jと遅延回路151jの順序を入れ替えたものである
(j=1〜n)。すなわち、図15(a)の乗算器15
01と遅延回路1511、乗算器1502と遅延回路1
512、…、乗算器150nと遅延回路151nを、そ
れぞれ入れ替えたものが、図15(b)のFIRフィル
タである。これにより、乗算器1501〜150nの乗
算係数を連動して変化させた場合、その効果は同時に加
算器1520に現れるようにできるので、ノイズの発生
は抑えられる。
構成自体は図15(a)と同じであるが、各乗算器15
01〜150nに与える乗算係数を遅延回路1531〜
153nで遅延して与えるようにした点が異なる。遅延
回路153j(j=1〜n)の遅延時間は、対応する乗
算器150jの乗算結果を遅延する遅延回路151jの
遅延時間をDjとしたとき、Dmax−Djとなるように
する。Dmaxは、遅延回路1511〜151nの何れの
遅延時間D1〜Dnよりも大きい遅延量とする。これに
より、乗算器1501〜150nの乗算係数を連動して
変化させた場合、実際に乗算器150j(j=1〜n)
に乗算係数が与えられるのはDmax−Djの後となり、
その乗算係数の変化の効果が加算器1520に現れるの
はさらにDjの後となる。したがって、j=1〜nの何
れの系列でも乗算係数の変化の効果が加算器1520に
現れるのは、(Dmax−Dj)+Dj=Dmaxの後という
ことになり、乗算係数を連動して変化させた場合のノイ
ズは抑えられる。
はハードイメージで図示したが、DSPで構成する場
合、信号の遅延、または信号の遅延を含む各種の信号処
理はソフト的に行なうことも可能である。例えば、図1
のAPFは図3のDSP306およびDSP−RAM3
08により実現されているが、図1の遅延回路106
は、マイクロプログラムで明示的に記載してもよいし、
DSPで実行している処理において1周期分待ってから
係数を用いるようにして実質的に遅延回路106を実現
することもできる。
ロセッサ(MPU)で実行してもよいし、パソコンその
他各種コンピュータシステムのソフトウェアとしてもよ
い。また、楽音合成の他、信号遅延を含む残響、コーラ
スなどの音響効果付加処理にも当然、適用可能である。
ば、APFなどの可変遅延装置および方法において、係
数変更の効果が同時に出力信号に波及するようにできる
ので、係数を変化させた際の不要なノイズを生じること
がないという効果を奏する。
ック構成図
体構成を示すブロック図
すブロック図
(その1)を示す図
(その2)を示す図
(その3)を示す図
タリセットの方式(その1)を示す図
タリセットの方式(その2)を示す図
図
す図
図
ック構成図
04,503,504…加算器、105,505…遅延
回路(1段のレジスタ)、106,506…係数遅延回
路、301…中央処理装置(CPU)、302…メモ
リ、303…表示部、304…演奏操作子、305…設
定操作子、306…ディジタルシグナルプロセッサ(D
SP)、308…DSP用のランダムアクセスメモリ
(DSP−RAM)、309…ディジタルアナログ変換
器(DAC)、310…バスライン、401…励振波形
発生部、402…加算器、403…フィルタ、404…
信号遅延部、405…ループ制御部、410…ループ
部、510…シフトレジスタ、520…オールパスフィ
ルタ(APF)、DLY…信号遅延部による全体遅延
量、Di…遅延量DLYのうちの整数部、Df…遅延量
DLYのうちの小数部、C…小数部Dfだけ遅延させる
ためにAPFに与える係数。
Claims (4)
- 【請求項1】所定サンプリング周期ごとに入力するディ
ジタル入力信号を、指定された係数に応じた遅延時間だ
け遅延して出力する可変遅延装置であって、 前記係数を装置内部の各部に作用させる際に、係数変更
の効果が出力に波及するタイミングが同じになるよう
に、前記係数を作用させる各部に対して、それぞれ所定
の遅延時間の後に前記係数を作用させるようにしたこと
を特徴とする可変遅延装置。 - 【請求項2】所定サンプリング周期ごとに入力するディ
ジタル入力信号を、指定された係数に応じた遅延時間だ
け遅延して出力する可変遅延装置であって、 前記係数を1サンプリング周期だけ遅延して出力する係
数遅延手段と、 前記入力信号に、前記係数遅延手段で遅延された係数を
乗算する第1の乗算手段と、 出力信号に、前記係数遅延手段を介さずに、前記係数を
乗算する第2の乗算手段と、 前記入力信号と前記第2の乗算手段の乗算結果とを加算
する第1の加算手段と、 前記第1の加算手段の加算結果を1サンプリング周期だ
け遅延して出力する遅延手段と、 前記遅延手段の出力と前記第1の乗算手段の乗算結果と
を加算して、出力信号として出力する第2の加算手段と
を備えたことを特徴とする可変遅延装置。 - 【請求項3】所定サンプリング周期ごとに入力するディ
ジタル入力信号を、指定された係数に応じた遅延時間だ
け遅延して出力する可変遅延方法であって、 前記係数を装置内部の各部に作用させる際に、係数変更
の効果が出力に波及するタイミングが同じになるよう
に、前記係数を作用させる各部に対して、それぞれ所定
の遅延時間の後に前記係数を作用させるようにしたこと
を特徴とする可変遅延方法。 - 【請求項4】所定サンプリング周期ごとに入力するディ
ジタル入力信号を、指定された係数に応じた遅延時間だ
け遅延して出力する可変遅延方法であって、 前記係数を1サンプリング周期だけ遅延して出力する係
数遅延ステップと、 前記入力信号に、前記係数遅延ステップで遅延された係
数を乗算する第1の乗算ステップと、 出力信号に、前記係数遅延ステップの処理を介さずに、
前記係数を乗算する第2の乗算ステップと、 前記入力信号と前記第2の乗算ステップの乗算結果とを
加算する第1の加算ステップと、 前記第1の加算ステップの加算結果を1サンプリング周
期だけ遅延して出力する遅延ステップと、 前記遅延ステップの出力と前記第1の乗算ステップの乗
算結果とを加算して、出力信号として出力する第2の加
算ステップとを備えたことを特徴とする可変遅延方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34409697A JP3282573B2 (ja) | 1997-11-28 | 1997-11-28 | 可変遅延装置および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34409697A JP3282573B2 (ja) | 1997-11-28 | 1997-11-28 | 可変遅延装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11161275A JPH11161275A (ja) | 1999-06-18 |
JP3282573B2 true JP3282573B2 (ja) | 2002-05-13 |
Family
ID=18366622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34409697A Expired - Fee Related JP3282573B2 (ja) | 1997-11-28 | 1997-11-28 | 可変遅延装置および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3282573B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007201520A (ja) * | 2004-02-16 | 2007-08-09 | Neuro Solution Corp | 直流成分除去フィルタ、方法およびプログラム |
JP2007201521A (ja) * | 2004-02-16 | 2007-08-09 | Neuro Solution Corp | 周波数成分分離フィルタ、方法およびプログラム |
WO2005086347A1 (ja) * | 2004-03-05 | 2005-09-15 | Neuro Solution Corp. | 直流成分抽出フィルタ、方法およびプログラム |
JP5407403B2 (ja) | 2009-02-18 | 2014-02-05 | 富士通株式会社 | 信号処理装置および光受信装置 |
JP7424411B2 (ja) * | 2021-09-21 | 2024-01-30 | カシオ計算機株式会社 | 楽音信号発生装置、電子機器、楽音信号発生方法、及びプログラム |
-
1997
- 1997-11-28 JP JP34409697A patent/JP3282573B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11161275A (ja) | 1999-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5007095A (en) | System for synthesizing speech having fluctuation | |
US7612281B2 (en) | Reverberation effect adding device | |
AU713438B2 (en) | System and method for generating fractional length delay lines in a digital signal processing system | |
JP3282573B2 (ja) | 可変遅延装置および方法 | |
US5496964A (en) | Tone generator for electronic musical instrument including multiple feedback paths | |
JPH05181485A (ja) | 電子楽器 | |
JP2003263178A (ja) | 残響付与装置、残響付与方法、プログラムおよび記録媒体 | |
JP2682257B2 (ja) | 楽音合成装置 | |
JP3743625B2 (ja) | 可変遅延装置 | |
JPH06318092A (ja) | 可変遅延回路 | |
JPH04116598A (ja) | 楽音信号生成装置 | |
JP3347338B2 (ja) | 楽音合成装置 | |
JP3013746B2 (ja) | デジタル輪郭補償装置 | |
US5426262A (en) | Electronic musical instrument capable of simulating small pitch variation at initiation of musical tone generation | |
JPH07325581A (ja) | 楽音発生装置 | |
JP2504196B2 (ja) | 楽音合成装置 | |
JP3371469B2 (ja) | 楽音信号合成装置 | |
JPH08292764A (ja) | 信号切換装置 | |
JP3480063B2 (ja) | 楽音合成装置 | |
JP2643717B2 (ja) | 楽音合成装置 | |
JP2933186B2 (ja) | 楽音合成装置 | |
JP3104281B2 (ja) | 楽音発生装置 | |
JPH02108099A (ja) | 波形補間装置 | |
JP3489713B2 (ja) | 楽音合成装置および方法 | |
JP2007034099A (ja) | 楽音合成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090301 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090301 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100301 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110301 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110301 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120301 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |