日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

一、信号处理 ——3.维纳滤波(含matlab代码)

發(fā)布時(shí)間:2023/12/14 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一、信号处理 ——3.维纳滤波(含matlab代码) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文適合快速了解維納濾波,并能夠進(jìn)行實(shí)際數(shù)據(jù)的處理。


一. 維納濾波的原理

* 有蠻多視頻進(jìn)行了詳細(xì)的講解,這里不在贅述。參考如下:

語音增強(qiáng)-維納濾波1_嗶哩嗶哩_bilibili

語音增強(qiáng)-維納濾波2_嗶哩嗶哩_bilibili

二. 應(yīng)用維納濾波注意事項(xiàng)

1. 維納濾波是根據(jù)全部過去觀測值當(dāng)前觀測值來估計(jì)信號的當(dāng)前值;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2. 維納濾波只適用于平穩(wěn)隨機(jī)過程

3.設(shè)計(jì)維納濾波器要求已知信號與噪聲的相關(guān)函數(shù)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

三. 維納濾波實(shí)現(xiàn)

1. 構(gòu)建一維信號并混合噪聲信號:

(1) 原始一維信號:Signal_Original =?sin(2 * pi * 10 * t) + sin(2 * pi * 20 * t) + sin(2 * pi * 30 * t)

Fs = 1000; # 采樣率 N = 1000; # 采樣點(diǎn)數(shù) n = 0:N - 1; t = 0:1 / Fs:1 - 1 / Fs; # 時(shí)間序列 ##期望信號 Signal_Original = sin(2 * pi * 10 * t) + sin(2 * pi * 20 * t) + sin(2 * pi * 30 * t); plot(Signal_Original) title('期望信號'); axis([0 1000 -4 4]); # 設(shè)置坐標(biāo)軸在指定的區(qū)間 xlabel('Time(n)'); ylabel('Amplitude');

(2) 噪聲信號:Noise_White

##噪聲信號 ##前500點(diǎn)高斯分布白噪聲,后500點(diǎn)均勻分布白噪聲 Noise_White = [0.3 * randn(1, 500), rand(1, 500)]; plot(Noise_White) title('噪聲信號'); xlabel('Time(n)'); ylabel('Amplitude');

(3) 混合信號:Signal_Original +?Noise_White

##噪聲干擾后信號 Mix_Signal = Signal_Original + Noise_White; # 構(gòu)造的混合信號 subplot(2,2,3) plot(Mix_Signal) title('噪聲干擾后混合信號'); axis([0 1000 -4 4]); # 設(shè)置坐標(biāo)軸在指定的區(qū)間 xlabel('Time(n)'); ylabel('Amplitude');

2. 維納濾波器設(shè)計(jì):

* 結(jié)合下面整體結(jié)構(gòu)框架的關(guān)鍵點(diǎn),再學(xué)習(xí)維納濾波原理,會更有幫助~

* 主要步驟如下:

(1) 混合信號的自相關(guān)系數(shù)Rxx?(維納濾波原理中有提及)

(2) 混合信號與原始信號的互相關(guān)系數(shù)Rxy?(維納濾波原理中有提及);?

xcorr函數(shù):用于計(jì)算兩數(shù)據(jù)的相關(guān)系數(shù)

(3)設(shè)定階數(shù)M = 100 (可調(diào)參數(shù),影響濾波效果);

(4)通過循環(huán)構(gòu)建混合信號自相關(guān)矩陣rxx(i,j) (維納濾波原理中有提及);

(5)得到混合信號與原始信號的互相關(guān)向量rxy(i) (維納濾波原理中有提及);

(6)得到設(shè)計(jì)的Wiener濾波器系數(shù)(關(guān)鍵數(shù)據(jù),用于后續(xù)對信號進(jìn)行維納濾波操作):

h = inv(rxx)*rxy'

inv函數(shù):用于求逆矩陣;若出現(xiàn)報(bào)錯(cuò)可采用pinv函數(shù),求偽逆矩陣。

##維納濾波 Rxx = xcorr(Mix_Signal,Mix_Signal);# 得到混合信號的自相關(guān)函數(shù) Rxy = xcorr(Mix_Signal,Signal_Original);# 得到混合信號和原始信號的互相關(guān)函數(shù) M = 100;# 維納濾波階數(shù) for i = 1:M # 得到混合信號的自相關(guān)矩陣for j = 1:Mrxx(i,j) = Rxx(N-i+j);end end for i = 1:M # 得到混合信號和原信號的互相關(guān)向量rxy(i) = Rxy(i+N-1); end # 得到所要設(shè)計(jì)的Wiener濾波器系數(shù) h = pinv(rxx)*rxy';

3. 含噪信號維納濾波處理

filter函數(shù):用于根據(jù)所設(shè)計(jì)濾波器對信號進(jìn)行濾波處理。

##維納濾波后的信號 Signal_Filter = filter(h,1,Mix_Signal);# 將輸入信號通過維納濾波器 plot(Signal_Filter); title('維納濾波后的信號'); axis([0 1000 -4 4]); # 設(shè)置坐標(biāo)軸在指定的區(qū)間 xlabel('Time(n)'); ylabel('Amplitude');

應(yīng)用subplot函數(shù),將四幅圖同時(shí)顯示,最終效果如下:

4. 均方誤差

*均方誤差常用于評價(jià)濾波前后的信號差異

(通過數(shù)值方式評價(jià)濾波效果,而不是通過圖像顯示直接觀察,更有說服力)

*通常根據(jù)不同的實(shí)際情況,可采用不同的評價(jià)指標(biāo)。

fprintf('引入噪聲后信號相對原信號的統(tǒng)計(jì)均方誤差:\n'); mse1 = mean((Mix_Signal-Signal_Original).^2); # 濾波后的信號相對原信號的統(tǒng)計(jì)均方誤差 mse1 fprintf('濾波后的信號相對原信號的統(tǒng)計(jì)均方誤差:\n'); mse2 = mean((Signal_Filter-Signal_Original).^2); # 濾波后的信號相對原信號的統(tǒng)計(jì)均方誤差 mse2

mean函數(shù):平均值計(jì)算。

* 引入噪聲后信號相對原信號的統(tǒng)計(jì)均方誤差:

mse1 =?0.2172

* 濾波后的信號相對原信號的統(tǒng)計(jì)均方誤差:

mse2 = 0.0306

應(yīng)用維納濾波后,信號更接近于原始信號。


總結(jié)

以上是生活随笔為你收集整理的一、信号处理 ——3.维纳滤波(含matlab代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。