音声記録から環境ノイズを除去する方法を知りたい。
私はいくつかの研究を行いましたが、提案された方法のほとんどが高速フーリエ変換を使用していることに気付きました。しかし、なぜ古典的な電子フィルターを使用してノイズ周波数を除去できないのでしょうか?なぜFFTを行うことに煩わされるのですか?
音声記録から環境ノイズを除去する方法を知りたい。
私はいくつかの研究を行いましたが、提案された方法のほとんどが高速フーリエ変換を使用していることに気付きました。しかし、なぜ古典的な電子フィルターを使用してノイズ周波数を除去できないのでしょうか?なぜFFTを行うことに煩わされるのですか?
回答:
音声記録から環境ノイズを除去する方法を知りたい。
さて、今はデジタルで保存されていますよね?マイクをアナログフィルターの後にスピーカーの隣に置いて再録音する予定ですか
十分にいじって、真剣になります。
狭い範囲の周波数でフィルターをより減衰させ、周波数応答曲線をより垂直にするには、フィルターの次数を増やす必要があります。
これは、Matlabで簡単に実行できることです。また、後処理を実行するのが適切です。また、再現性も重要です。今日の晴れた日にフィルターを適用すると、雨が降っている明日と同じように機能することが期待されます。まったく同じように動作することを期待していますか?
アナログ回路には、これらすべての「5%抵抗」、「1%コンデンサ」、およびその他すべてのものがあります。そのため、正確なものを作りたい場合は、目的のフィルターに完全に一致するように、後で回路をトリミングする必要があります。フィルターの次数を上げたい場合は、悲しいことに..物理的にフィルターが非常に大きくなります。クレジットカードのサイズを使用する代わりに、フィルターの次数と何を使用するかによって、サイズが使用されます。
再現性については、今日何かをする..暖かい..明日..寒い...抵抗が少しずつ変化し、周波数応答が変化し、そこに数Hz、いくつかはそこに、あなたがあなたの回路に多くの部品を入れた、コンポーネントが値を変更する可能性が高くなります。そして、湿度があり、酸化します...
カセットテープを手に入れない限り、これを後処理することはできません。簡単に録音/削除するために使用されているアナログ音楽メディアが100%確実ではありません。LPディスクは悪夢です...
そして、価格を忘れないでください。1つはソフトウェアです。自分で作成する場合は基本的に無料で、もう1つはコンポーネント、物理部品が必要です。
しかし、アナログフィルターが悪いとは思わないでください。大型DCモーターの厄介な高調波を除去したり、電流を平滑化して3Dプリンター用の超静音ステッピングモーターを作成するなどの用途があります。そして、他の多くの用途。-また、アナログフィルターで解決する場合、誰もそれが悪い解決策だとは思わないでしょう。
後処理の観点から、なぜFFTがより良い方法なのかを間接的に答えていると思います。一番下の行は、それがはるかに安いことです。ノイズの周波数がわかっている場合は、ノッチフィルターを適用することもできます。または、より広い、別名バンドストップフィルター。
最後に付け加えたいのは、この答えが長すぎるのは残念です。しかし、アナログフィルターを使用している場合、...計算を台無しにして、それがすべてうまく機能していると思い、スウェーデンの王(Knugen)にインタビューするなどの重大なイベントでそれを使用します。そして、コンデンサーのサイズをめちゃくちゃにして、16kHzのノイズをフィルターするのではなく、4kHzの「ノイズ」をフィルターにかけています。代わりにデジタルで処理する場合は、いくつかの変数を変更するだけで、はんだを除去する必要はありません->別のコンポーネントをはんだ付けします。また、インタビューは台無しになります。
しかし、なぜ古典的な電子フィルターを使用してノイズ周波数を除去できないのでしょうか?
あなたはできないと誰が言いますか?これは、デジタル信号処理の前の時代に行われた方法です。問題は、ノイズを低減する一方で、希望する信号(音声、音楽)をそのままに保つことの間で、ノイズのフィルタリングが常に妥協点となることです。
カセットテープおよびDNLやDolbyなどの他のアナログテープ録音システムでは、信号が弱い場合にのみフィルター処理され、ノイズが聞こえやすくなります。その後、信号が強くなると、フィルターはフェードオフします。参照:ノイズ除去に関するウィキペディアの記事
音声は300 Hz〜3 kHzのような狭い周波数帯域に制限できますが、それでも完全に理解できます。その帯域に簡単なアナログフィルターを作成することもできますが、それによりノイズの抑制量が制限されます。この帯域外の周波数をより効果的に除去するには、複雑なアナログフィルターが必要です。このようなフィルターは、設計、構築、製造が困難です。
これがデジタル信号処理の出番です。デジタル領域では、多くの極と零点を持つ複雑なフィルターを実装するのがはるかに簡単です。また、これらの極と零点の位置(周波数領域)は、正確な(水晶)クロックであるDSP(デジタルシグナルプロセッサ)のクロックにリンクされているため、フィルターはアナログ実装と比較してはるかに正確です。 。
さて、FFTが必要な理由を理解するための最初のステップは、デジタルフィルタリングの仕組みを理解することです。
したがって、基本的には、複数のメモリ要素、入力、および出力を持つ、シフトレジスタのような構造を持っています。サンプル値は入力に入り、レジスタを介してシフトされ、出力に移動します。レジスタの各段階で、フィルター係数と呼ばれる数値が乗算されます。
このアイデアは、高速な乗算を実行する高速なレジスタがあり、サンプルが1つずつゆっくり入ってくる場合に有効です。
実際には、その代わりに、多くのサンプルで構成されるフレームを取得する可能性が高くなります。それをフィルタリングしたい場合、サンプルをフィルター係数で畳み込みます。これは前のアプローチと同じですが、見た目が少し異なります。
次に、FFTパートがあります。畳み込みは、サンプルの数とともに数値の複雑さが非常に急速に増加することがわかります。一方、FFTは最初は数値的に複雑ですが、必要な操作の数は、畳み込みと比較してフィルター係数の増加に伴い非常に遅くなります。
上記の意味は、特定のサンプル数を超えると、FFTを使用して信号を周波数領域に変換し、周波数領域で信号をフィルター処理してから、IFFTを使用して元に戻すと、はるかに高速になることです。使用しているトリックは、畳み込みの特性の1つです。つまり、状況によっては、時間領域での畳み込みを周波数領域での乗算としてモデル化することができます。
つまり、フィルタ係数の数が十分に大きい場合、FFTは高速です。「大きい」とは、100ほどの小さいこともあります。
FFTベースの方法(ウィンドウ処理とオーバーラップ加算またはオーバーラップシフトの修正を行う必要があります)の主な利点として、設計がしっかりと周波数領域にあり、Wienerフィルターまたはスペクトル減算または多くの信号統計とモデルに依存する他のシステムは、基本的に周波数領域で基本的に機能します。
対照的に、エコーキャンセレーションおよびさまざまなバリエーションは、ノイズのモデルに依存するのではなく、ノイズと高度に相関する不完全な記録に依存します。これらは、さまざまなフィルター(通常はFIR)を使用して行われ、信号からノイズ推定値を減算し、フィルターを更新して、残りの信号とノイズチャネルの相関を最小限に抑えます。これらの手法では、FFTはそれほど有用ではありません(結果の信号とフィルター更新のかなりの遅延が許容される場合、パフォーマンス上の理由で遅延のあるブラックボックスFIRのコンポーネントとして使用できますが、実際には有用ではありません周波数領域表現機能)。
アナログフィルターは設計が簡単ですが、制限は、特定の周波数のバンドストップフィルターを実現するために物理フィルター要素を追加し続ける必要があることです。ノッチを動かしたい場合は、コンポーネントの値を調整する必要があります。1つのオペアンプで1つのバンドストップノッチを実行できるため、必要なノッチごとに別のアンプを追加する必要があります。より選択的なノッチを作成するには、ノッチごとに2つのアンプが必要です。
実際には、単一のオペアンプで実行できる3次のローパスフィルター、またはおそらく2つを必要とする5次のローパスフィルターが最適です。ローパスフィルターを使用して、ナイキスト周波数(1/2サンプリング周波数)より上の周波数をある程度のマージンで減衰させると、後処理する高品質のデジタルサンプルが得られます。そのようなクリーンな録音では、FFTフィルターを適用して、必要に応じてハイパス、バンドパス、およびバンドストップフィルターを作成できます。
「古典的な電子フィルター」が行う線形時不変フィルタリングは、フーリエ領域での「ダム」乗算です。ただし、FFTで見つけた情報は、1つのフィルターの応答(これらのコンポーネントの線形結合)だけでなく、より多くの詳細を示します。その情報を使用して、データ処理を操作し、データに適合させることができます。ノイズには、明瞭なボーカルや音楽のトーンにはないいくつかの特性があります。たとえば、倍音間の相関は、ノイズと音声または音楽の相関はほとんど同じではありません。
したがって、周波数成分間の相関関係を特定できる場合、つまり何らかの方法で「グラウンドトーン」を見つけることができる場合、フィルタリングを操縦して、データにより適合させることができます。