[音声ノイズ除去] matlabLMSスペクトル減算音声ノイズ除去に基づく[Matlabソースコード529を含む]

1.はじめに

最小平均二乗(LMS、最小平均二乗)は、最も基本的な適応フィルタリングアルゴリズムです。
LMSアルゴリズムは、適応フィルターで一般的に使用されるアルゴリズムです。Wienerアルゴリズムとの違いは、システムの係数が入力シーケンスによって変化することです。Wienerアルゴリズムでは、入力シーケンスの自己相関関数のセクションがインターセプトされて、システムの最適な係数が構築されます。LMSアルゴリズムは、最小平均二乗誤差基準に従って初期化されたフィルター係数を継続的に修正することによって実装されます。したがって、理論的には、LMSアルゴリズムのパフォーマンスは、同じ条件下でWienerよりも優れています。ただし、LMSは初期値の下で段階的に調整されるため、システムが安定する前に調整時間の期間があります。調整時間はステップ係数によって制御されます。一定の範囲内では、ステップが大きくなります。係数、調整時間は短く、ステップ係数の最大値はRのトレースです。LMSは、最小平均二乗誤差の原理ではなく最小二乗誤差の原理を採用しており、基本的な信号の関係は次のとおりです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

第二に、ソースコード

clear all;clc; close  all;
%filedir=[D:\Program Files\MATLAB\speech.wav];  %路径设置不对,以下用不到就省略掉,直接用下行代码的文件名
filename='speech.wav';  
%fle=[filedir filename];       %无用行,以下没用到
[s,fs] =audioread(filename);   %wavread函数在此版本后不能用了,改用audioread
s=s/max(abs(s));     %将语音信号幅值归一化
N=length(s);         %求信号的长度
time=(0:N-1)/fs;     %设置横坐标的时间
ns=0.5*cos(2* pi* 50* time);   %计算出50Hz的工频信号
x=s+ns';      %语音信号和50Hz的工频信号叠加
snr1=SNR_singlech(s,x);     %计算叠加后50Hz工频信号之后的信噪比
x1=cos(2* pi * 50 * time);  %设置x1和x2
x2=cos(2* pi * 50 * time);
w1=0.1;        %初始化w1和w2
w2=0.1;
e=zeros(1,N);  %初始化e和y
y=zeros(1,N);
mu=0.05;       %设置mu
for i=1:N 
    y(i)=w1* x1(i)+ w2* x2(i);   %LMS自适应陷波器滤波
    e(i)=x(i)-y(i);
    w1=w1+mu* e(i) * x1(i);
    w2=w2+mu* e(i) * x2(i);
end
output=e';    %陷波器输出
snr2=SNR_singlech(s,output);     %计算滤波后的输出
snr=snr2-snr1;
fprintf('snr1=%5.4f  snr2=%5.4f  snr=%5.4f\n',snr1,snr2,snr);
%wavpaly(x,fs);        %从声卡发声比较
audioplayer(x,fs)
pause(1);
audioplayer(output,fs);
wavwrite(output,'hehe.wav');

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/114871082