ディレイ、エコー 3/3 ディレイの信号処理

ソフトウェア開発 - 音声のデジタル信号処理
技術開発 ソフトウェア
DSPボード デジタル信号処理 image 高速DSP/信号処理 image オーディオ信号処理とデジタル信号処理 image DSP デジタル信号処理 image 音響信号とデジタルストレージ image

音響技術とソフトウェア、ハードウェア開発

音響と開発 : Sound & Development
株式会社エーアールアイ / ARI
ARI CO.,LTD.

ディレイ、エコーの信号処理
リバーブなどの時間遅延処理系

ディレイ,エコー 3/3 : ソフトウェアと音響のデジタル信号処理

ディレイ(エコー)の信号処理は、遅延させた波形にゲインを掛けてミックスすることで簡単に実現できます。 繰り返しのためのフィードバックとエコーのようにディレイ音が高域減衰するようにハイダンプとして1次のフィルタをフィードバックに持たせます。

ディレイの信号ブロック図 ハイダンプ付き
ディレイ(エコー)の信号ブロック図
τ ディレイ時間
( サンプル数 = ディレイ時間/サンプリング時間 )
FB フィードバック
±ゲイン
HF ハイダンプ
( LPFの係数ゲイン )
D ダイレクト音
E エフェクト音

ディレイの原理と信号処理

ディレイの信号処理原理は、入力信号をメモリにディレイタイム分記録した後、出力する処理を繰り返すことで実現します。 ディレイ時間が最大数百ミリ秒から数秒にも達するため、DSPなどで実装する場合にはディレイ部を外部メモリのリング・バッファに取ります。

ディレイの動作
ディレイの動作

音響処理に利用されるDSPは、信号用のメモリと係数メモリを内蔵しているケースが多いですが、 ディレイに利用するメモリはサンプル数が多いため、外部メモリの補助が必要になるケースがほとんどです。

ディレイメモリ = リングバッファ
ディレイメモリ = リングバッファ

毎サンプルごとに書き込み、読み出しインデックスが進むアルゴリズムはディレイに限らず、デジタルフィルタなどでも多用されるため、インデックス更新を自動的に処理されるようなアドレッシングが容易になるように設計されています。 そのため、DSPの場合にはディレイタイムの演算に関しては時間からサンプル数を算出する単純な計算のみです。CPUで実現する場合には、リングバッファの進行もソフトウェア処理することで実現します。

フィードバック部の演算

フィードバック
フィードバック

フィードバック・ゲインは、正負の両極性を取ることができます。 負の極性の場合には、ディレイメモリを通過する度に極性が反転することになります。

フィードバックの係数が±1.0の値を最大とした場合、絶対値が1.0未満でないとディレイ信号が永続し、発振/発散してオーバーフローを引き起こし、激しいノイズを出すので注意が必要です。

通常、フィードバック係数は、±0.9などのように1.0未満となるように操作設定上制限されています。 ディレイメモリには、フィードバックと入力の加算結果が書き込まれます。

飽和演算(サチュレーション)

この加算時には、単純に2つの信号を加算するため、最大振幅を超える可能性があります。 音響信号の信号処理では、最大振幅を超えた信号に対して飽和演算(saturate)を行います。DSPの乗加算命令やPCのSIMD(MMX)命令などは、計算結果に飽和演算とラップアラウンド演算が選択できるようになっている場合がありますが、飽和演算を選択します(飽和演算命令を使う)

加算部でサチュレーション
加算部でサチュレーション

ディレイのフィードバック加算部でサチュレーション(saturation)させると、記録されるディレイ音はクリッピングされた結果が繰り返し再生されるため、一次的なミキサーのサチュレーションに比較して品質に対する影響が大きくなります。

演算語長と丸め

フィードバックの乗算結果はゲインによって小さくなる演算になりますから、ゲイン計算から加算までは十分な精度の演算語長を持たないとフィードバック部で音質劣化が発生します。

ディレイメモリは、通常、整数の信号を記録していますので記録する整数語長に丸める必要があります。 ゲインによって信号が小さくなり有効な語長が少なくなって行くため、精度を確保したい所ですが、演算結果は切り捨て方向に丸める必要があります。

切り上げを含む四捨五入のような丸めを行うとゲインによっては整数丸めのために、フィードバックが収束していった最後の1ビットが残り続けて、無音にならなくなります。

動的な変更とゼロクリア

フィードバックゲインやディレイタイムなどを動作中に動的に変更する場合には、変化点の信号がディレイメモリに入力されて繰り返されるため、ディレイ出力を停止するなどの処理が行われる場合があります。

ディレイ入力にノイズを乗せない

フォードバック付きのディレイの場合、全般にディレイの入力信号にノイズを載せるとディレイ時間とフィードバックによって、長時間ノイズがリピートされるため、注意を要する部分です。

ディレイメモリのクリア
ディレイメモリのゼロクリアの処理

ディレイ音を停止、再動作するには、一旦、エフェクト音を高速且つ滑らかにミュートし、ディレイメモリを無音状態にクリアした後、エフェクト音のミュートを解除して再開する必要があります。

無音状態を発生させないで動作するようにするためには、この切替のために複数系統のシグナルブロックが必要になったり、基本ブロック以外のミキサーやボリューム制御が必要となるため、ディレイでは、多くの場合、無音になる仕様とされています。

ディレイ時間を変更する場合も、変更によるノイズが発生するため、同様にミュート処理される場合があります(ダイレクトに変更している場合もあります)

さらに、ディレイメモリのクリアを入力信号を絞ることで実現しようとすると、仕様上のディレイ時間の最長時間分の時間が必要となるため、ディレイメモリのクリアのためのコード(高速なゼロクリア)が実装されます。 ディレイメモリが必要量の2倍以上取れる場合には、2バンクの切替にすることで高速化することも考えられます。

入出力の積分器付きボリューム

これらの処理の必要から、実際には、上の図のような基本的なシグナルブロック以外に入力部にボリュームを設けたり、出力段のミキサーの係数を積分器で補間するようにしたりと、もう少し処理が必要となります。

ディレイメモリのクリアや補間の問題は、リバーブなど遅延処理系全般に共通したものです。

出力のミキサー 補間器付きボリューム

出力部のミキサーは、ミュートを兼ねて利用することもあり、補間器付きのボリュームにしておく必要があります。

補間器付きボリュームとミュート

通常、シグナルフローのゲインは、係数と信号の乗算を表し、係数を変化させると次のサンプリングデータから即時新しい係数で演算されます。

ボリューム、ミュートを補間器付きゲインに

しかし、音声信号のボリュームを1サンプル時間で大きく変更するとクリックノイズが発生しますので、動的に変更するボリュームは、現在のボリュームから次のボリュームへと係数自体を補間するような信号処理を行います。

ミュートスイッチも、係数の乗算で実現されますが、ミュートも1サンプルで動作させるとノイズになるため、ボリュームとミュートは補間器付きのボリュームを共用してノイズの出ないものにする必要があります。

通常、ボリュームとミュートは、柔らかなスイッチ音になる30〜50ms程度の次定数を持たせた積分器を補間に利用します。 積分器の補間カーブは理想的というわけでもなく、他の補間方法でもかまわないのですが、リアルタイムに処理する部分であり、演算量を少なくするのに適しているためです。

ミュートのON/OFFとボリューム値は、制御コードで論理合成したものを使います。

エフェクトレベルとバランス

エフェクト値のボリュームは、ディレイの場合にはエフェクトレベル(Wetレベル)が適していますが、コーラスで使われる場合には、ドライ・エフェクトバランスにする方が適しています。

レベルの場合には、dB(デシベル)値で、バランス型の場合には、比率で設定されます。 バランスの場合には、バランスを変更しても音量感が一定になるよう、パワーミックスになるようボリュームを設定します。

ステレオ化、クロスディレイ、マルチタップ

ステレオ化は、左右同様の処理を行い、クロスディレイやクロスフィードバックは、左右のディレイメモリの読み出し先(アドレス)を入替えるだけで実現できます。

マルチタップディレイは、ディレイ計算による読み出しと出力レベルの加算の集合になるだけで、簡単な応用範囲で実現できます。

何れの場合でも、ゼロクリアなどの事情は同様です。

マルチタップディレイのシグナルブロック
マルチタップディレイのシグナルブロック例

Artifit Voice JFHF-EC1401VC

高速H∞フィルタを使った高性能なエコーキャンセラのDSPソフトウェア製品 J-FHFの高いロバスト性によって良好な音声通話システムを実現します。

ハイパフォーマンス・エコーキャンセラー Artifit Voice JFHF-EC1401VC for TMS320C67

株式会社エーアールアイ/ARI CO.,LTD.
東京都八王子市横山町6丁目9番 丸多屋ビル8F
tel:042-656-2771 fax:042-656-2654

ARIは、音響製品や試作、研究開発、DSPやCPUのファームウェア、ハードウェア制御をするPC用ソフトウェア、PCアプリケーション、これらの技術を総合的に生かしたシステム等を受託開発業務として行っております。

エーアールアイ会社情報
製品情報と販売
音響と開発・サービス
音響機器メーカーと代理店

ご利用案内 | 免責事項 | ARI 音響と開発のサイトマップ | 株式会社エーアールアイ | 東京都八王子市横山町6丁目9番 丸多屋ビル8F

Copyright(c) 2001-2015 ARI Co.,Ltd. all rights reserved.