[音声ノイズ除去] matlabウェーブレットハードしきい値音声ノイズ除去に基づく[Matlabソースコード532を含む]

1.はじめに

通常、機器から収集する信号には一定のノイズがありますが、ほとんどの場合、このノイズはガウスホワイトノイズと見なすことができます。ノイズで汚染された信号=クリーンな信号+ノイズ。

しきい値を使用する理由:信号は空間(または時間領域)である程度の連続性を持っているため、ウェーブレット領域では、有効な信号によって生成されたウェーブレット係数の係数値が大きくなる傾向がありますが、ガウスホワイトノイズは空間(または時間領域)です)には連続性がないため、ウェーブレット変換後も、ノイズはウェーブレットしきい値で強いランダム性を示します。これは通常、ガウスホワイトノイズと見なされます。次に、そのような結論が得られます。ウェーブレット領域では、実効信号に対応する係数は非常に大きく、ノイズに対応する係数は非常に小さいです。先ほど述べたように、ウェーブレット領域のノイズに対応する係数は、依然としてガウスホワイトノイズ分布を満たしています。ウェーブレット領域で、ノイズのウェーブレット係数に対応する分散がシグマである場合、ガウス分布の特性によれば、ノイズ係数の大部分(99.99%)は[-3sigma、3sigma]の間隔にあります。 (チェビシェフの不等式、3シグマ基準)。したがって、区間[-3sigma、3sigma]の係数がゼロに設定されている限り(これは一般的に使用されるハードしきい値関数の関数です)、効果をわずかに損なうだけで、ノイズを最大限に抑えることができます。信号。しきい値処理後のウェーブレット係数が再構築され、ノイズ除去された信号を取得できます。一般的に使用されるソフトしきい値関数は、ハードしきい値関数の「1つのサイズですべてに適合する」影響を解決することです(モジュラスが3シグマ未満のウェーブレット係数はすべて削除され、3シグマを超えるすべての係数が保持されます。これにより必然的に生成されます。ウェーブレットドメインの急激な変化により、ノイズ除去後に局所的なジッタが発生します。、フーリエ変換の周波数ドメインのステップと同様に、時間ドメインにテールが生成されます)。ソフトしきい値関数は、モジュラスが3シグマ未満のすべてのウェーブレット係数をゼロに設定し、モジュラスが3シグマを超えるものに対して特別な処理を行います。3シグマを超えるウェーブレット係数は3シグマから差し引かれ、-3シグマ未満のウェーブレット係数は均一に加算されます。 3シグマ。ソフトスレッショルド関数の後、ウェーブレット係数はウェーブレットドメインでより滑らかになるため、ソフトスレッショルドでノイズ除去して得られた画像は、冬の窓から外を見るのと同じように、の画像上の霧の層のように滑らかに見えます。

ハードしきい値関数のノイズ除去とソフトしきい値関数のノイズ除去を比較します。ハードしきい値関数のノイズ除去によって得られるピーク信号対雑音比(PSNR)は高くなりますが、局所的なジッタの現象があります。ソフトしきい値関数のノイズ除去によって得られるPSNRはそうではありません。ハードスレッショルドと同じくらい良い関数はノイズ除去しますが、結果は非常にスムーズに見えます。その理由は、ソフトスレッショルド関数がウェーブレット係数に対して大きな「社会主義変換」を実行し、ウェーブレット係数が大幅に変化したためです。そのため、さまざまなしきい値関数が登場しましたが、その目的は、小さな係数を排除しながら大きな係数を維持することであり、ウェーブレット領域での係数の遷移はスムーズである必要があります。
ウェーブレットドメインのノイズ分散シグマを推定する方法は非常に簡単です。信号に対してウェーブレット変換を実行し、各サブバンドでロ​​バスト推定器を使用して推定します(高周波数帯域と低周波数帯域の分散は異なる場合があります) 。ロバスト推定器は、サイズに従ってサブバンドにウェーブレット係数モジュールを配置し、次に中央のモジュールを取り、次に中央のモジュールを0.6745で除算して、特定のサブバンドのノイズの分散シグマを取得します。このシグマを使用し、しきい値関数を選択すると、ノイズを除去できます。matlabには実装APIがあります。
ここに画像の説明を挿入します
近似と詳細は、信号の高スケール、つまり低周波情報を近似的に表すウェーブレット分析でよく使用されます。詳細は、信号の低スケール、つまり高周波情報を表します。ノイズの多い信号の場合、ノイズ成分の主なエネルギーはウェーブレットソリューションの詳細成分に集中します。
上記のプロセスでは、ウェーブレット基底の選択と分解層の数、しきい値の選択ルール、およびしきい値関数の設計はすべて、最終的なノイズ除去効果に影響を与える重要な要素です。
ウェーブレット係数(ドメイン)でガウスホワイトノイズのしきい値しきい値を決定した後、ウェーブレット係数をノイズ係数でフィルタリングしてガウスノイズ係数を削除するしきい値関数が必要です。一般的に使用されるしきい値関数には、ソフトしきい値とハードしきい値の方法があります。多くの文献論文には、しきい値関数に多くの改善と最適化もあります。
ここに画像の説明を挿入します

第二に、ソースコード

clear all; clc; close all;

[xx, fs] = wavread('C5_4_y.wav');           % 读入数据文件
xx=xx-mean(xx);                         % 消除直流分量
x=xx/max(abs(xx));                      % 幅值归一化
N=length(x);
%-------------------------加入指定强度的噪声---------------------------------
SNR=5;
s=awgn(x,SNR,'measured','db');               % 叠加噪声
wname='db7';

jN=6;  %分解的层数
snrs=20*log10(norm(x)/norm(s-x));
signal=Wavelet_Hard(s,jN,wname);
signal=signal/max(abs(signal));
snr1=SNR_Calc(x,s);            % 计算初始信噪比
snr2=SNR_Calc(x,signal);            % 计算降噪后的信噪比
snr=snr2-snr1;
fprintf('snr1=%5.4f   snr2=%5.4f   snr=%5.4f\n',snr1,snr2,snr);
% 作图
time=(0:N-1)/fs;                        % 设置时间
subplot 311; plot(time,x,'k'); grid; axis tight;
title('纯语音波形'); ylabel('幅值')
subplot 312; plot(time,s,'k'); grid; axis tight;
%小波硬阈值函数
function signal=Wavelet_Hard(s,jN,wname)
[c,l]=wavedec(s,jN,wname);
%高频分量的索引
first = cumsum(l)+1;
first1=first;
first = first(end-2:-1:1);
ld   = l(end-1:-1:2);
last = first+ld-1;
%--------------------------------------------------------------------------
%硬阈值
cxdhard=c;
for j=1:jN                                      %j是分解尺度
    flk = first(j):last(j);                      %flk是di在c中的索引
    thr(j)=sqrt(2*log((j+1)/j))*median(c(flk))/0.6745;
    for k=0:(length(flk)-1)                 %k是位移尺度
        djk2=c(first(j)+k);
        absdjk=abs(djk2);
        thr1=thr(j);
        %阈值处理
       if absdjk<thr1
           djk2=0;
       end 

3、実行中の結果

ここに画像の説明を挿入します

四、備考

完全なコードまたは書き込み追加QQ1564658423過去のレビュー
>>>>>>
[機能の抽出] matlabウェーブレット変換に基づくオーディオ透かしの埋め込みと抽出[Matlabソースコード053を含む]
[音声処理] matlabGUIに基づく音声信号処理[Matlabを含むソースコードの問題290]
[音声取得] matlabGUI音声信号収集に基づく[Matlabソースコード291を含む]
[音声変調] matlabGUI音声振幅変調に基づく[Matlabソースコード292を含む]
[音声合成] matlabGUI音声に基づく合成[Matlabソースコードの問題293を含む]
[音声暗号化] matlabGUI音声信号の暗号化と復号化に基づく[Matlabソースコード295を含む]
[音声拡張] Matlabウェーブレット変換ベースの音声拡張[Matlabソースコード296]
[音声認識] matlabGUI音声ベース周波数認識に基づく[Matlabソースコード294を含む]
[音声拡張] Matlab GUIWienerフィルタリングベースの音声拡張[Matlabソースコード298を含む]
[音声処理] matlabGUI音声信号処理に基づく[Matlabソースコード299を含む]
[信号処理] Matlab音声信号スペクトルアナライザーに基づく[Matlabソースコード325を含む]
[変調信号] matlabGUIに基づくデジタル変調信号シミュレーション[Matlabソースコード336を含む]
[感情認識] matlabBPニューラルに基づく音声感情認識ネットワーク[Matlabソースコード349の​​問題を含む]
[音声ステガノグラフィー] Matlabウェーブレット変換に基づく定量化されたオーディオデジタルウォーターマーキング[Matlabソースコードの問題351を含む]
[特徴抽出] matlabオーディオ透かしの埋め込みと抽出に基づく[Matlabソースコード350期間を含む]
[音声ノイズ除去] matlabローパスと適応フィルターノイズ除去に基づく[Matlabソースコード352期間を含む]
[感情認識] matlabGUI音声に基づく感情分類認識[Matlabソースコード354期間を含む]
[基本処理] Matlabベースの音声信号前処理[Matlabソースコード364期間を含む]
[音声認識] Matlabフーリエ変換0-9デジタル音声認識[Matlabソースコード384期間を含む]
[音声認識] 0-9 matlab GUIDTWに基づくデジタル音声認識[Matlabソースコード385を含む]
[音声再生] Matlab GUIMP3設計[Matlabソースコード425を含む]
[音声処理]人間の耳のマスキング効果に基づく音声強調アルゴリズムノイズ比の計算[Matlabソースコード428を含む]
[音声ノイズ除去] matlabスペクトル減算ノイズ除去に基づく[Matlabソースコード429を含む]
[音声認識] matlabの運動量項目に基づくBPニューラルネットワーク音声認識[Matlabソースコード430を含む]
[音声ステガノグラフィ] matlabLSB音声隠蔽に基づく[Matlabソースコード431を含む]
[音声認識] matlabの男性と女性の音声認識に基づく[Matlabソースコード452を含む]
[音声処理] matlab音声ノイズの追加とノイズリダクション処理に基づく[MatlabソースコードIssue473を含む]
[音声ノイズ除去] matlab最小二乗(LMS)適応フィルターに基づく[ Matlabソースコード481を含む]
[音声強調] matlabスペクトル減算、最小平均二乗、およびWienerフィルター音声強調に基づく[Matlabを含むソースコード482期間】
[通信] matlab GUIデジタル周波数帯域(ASK、PSK、QAM)変調シミュレーションに
基づく[ Matlabソースコード483を含む] [信号処理] matlabECG信号処理に基づく[Matlabソースコード484を含む]
[音声放送] matlabに基づく音声ブロードキャスト[Matlabソースコード507を含む]
[信号処理] EEG信号特徴抽出に基づくMatlabウェーブレット変換[Matlabソースコード511を含む]
[音声処理] matlab GUIデュアルトーンマルチ周波数(DTMF)信号検出に基づく[Matlabを含むソースコード512】
【音声ステガノグラフィー】音声信号のデジタル透かしを実現するmatlabLSBに基づく【Matlabソースコード513を含む】
【音声強調】matlab一致フィルターに基づく音声認識【Matlabソースコード514を含む】
【音声処理】ベースmatlabGUI音声周波数ドメインスペクトログラム分析[Matlabソースコード527を含む]
[音声ノイズ除去] matlab LMSに基づく、RLSアルゴリズム音声ノイズ除去[Matlabソースコード528を含む]
[音声ノイズ除去] matlabLMSスペクトル減算音声ノイズ除去[Matlabを含むソースコードの問題529]
[音声ノイズ除去] matlabソフトしきい値、ハードしきい値、妥協しきい値に基づく音声ノイズ除去[Matlabソースコード530を含む]
[音声認識] matlab特定の人の音声認識識別に基づく[Matlabソースコード534を含む]
[音声ノイズ除去] matlabウェーブレットソフトしきい値音声ノイズ除去に基づく[Matlabソースコード531を含む]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/114876490