私はこれまでDSP.SEでこの質問をしましたが、私の質問には何の注意もありません。たぶんそれは信号処理にはあまり関係していなかったでしょう。オーディオ信号にゼロローカル信号を得る良い方法はありますか?
個別のオーディオ信号をいくつかのセグメントに分割して統計処理と分析を行う必要がありました。したがって、局所的に固定されたセグメントは、私の場合に非常に役立ちます。セグメントの長さは予め定義されている。 サンプル。
私はいくつかのことを試しました。私は、セグメントにオーディオ信号を分割するreshape()
関数を使用しない、そして次にとして各セグメントの手段を計算する:各seg(:,k)
からx(k)
を引くと各局所平均がゼロになるだろう
L = 512; % Length of segment
N = floor(length(audio(:,1))/L); % Number of segments
seg = reshape(audio(1:N*L,1), L, N); % Reshape into LxN sized matrix
x = mean(seg); % Calculate mean of each column
、まだときセグメントは、オーディオ信号をたくさん歪めることになります再び結合される。
ので、ハニング窓の平均値は、ほぼ0.5、各seg(:,k)
から2*x(k)*hann(L)
をsubstractingされているので、私が試した最初のものでした。しかし、今度は、 (ハニング窓の平均をとほぼ等しくする)を乗じては、各セグメント自体の中点の近傍を歪めた。
そして、私の代わりに直接乗算し、各seg(:,k)
から(下図に示すように)これらを減算小さいハニング窓により畳み込みを使用しています。
この最後のステップは、より良い結果を与え、まだセグメントが小さい場合、それはまだ非常に便利ではありません。私はさまざまな問題のためにこのサイトで多くの素晴らしいアプローチを見てきました。だから私はちょうど巧妙な方法やオーディオ信号を少なく歪めるローカルゼロを得るための既存の方法があるのだろうかと思う。私はこれを読んで、このプロパティは、EMDのようないくつかの分解で有用です。だから私はそのような分解が必要かもしれない?
おそらくあなたは、局所的な平均、プロセスを引く必要があり、その後、一緒にバックセグメントに参加する前に、再び背中に局所的な平均を追加します。また、セグメントを重ねて(たとえば50%)、再結合するとセグメント間でフェードすることもできます。 – mikado
@mikado私は地元の手段を戻さない。私はブラインド処理のためにこの操作が必要です。私は、各セグメントのローカル平均値をゼロにしながらオーディオファイルの歪みを少なくする良い方法を探しています。あなたの助言に感謝します。 – kdrtkl