国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Matlab小波去噪——基于wden函數(shù)的去噪分析

這篇具有很好參考價(jià)值的文章主要介紹了Matlab小波去噪——基于wden函數(shù)的去噪分析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


一、問(wèn)題描述

1.利用MATLAB繪制原始信號(hào),對(duì)其加6分貝高斯白噪聲;
2.以Minimaxi閾值法,軟閾值函數(shù),3層分解層數(shù),分別用dbN和symN小波對(duì)加噪信號(hào)去噪,獲得分解圖和去噪后的圖,并用信噪比和均方根誤差作為評(píng)判標(biāo)準(zhǔn),確定合適的小波基函數(shù);
3.用第2步確定的小波基函數(shù),軟閾值函數(shù),分解層數(shù)為3層,對(duì)無(wú)偏估計(jì)閾值(RigrSure)、固定式閾值(Sqtwolog)、啟發(fā)式閾值(HeurSure)和極大極小閾值(Minimaxi)四種分別去噪,獲得去噪后的圖,并用信噪比和均方根誤差作為評(píng)判標(biāo)準(zhǔn),確定最合適的閾值計(jì)算估計(jì)方法;
4.用第2步確定的小波基函數(shù),第3步確定的閾值計(jì)算估計(jì)準(zhǔn)則,分別用分解層數(shù)為1,2,3,4,5,6對(duì)加噪信號(hào)進(jìn)行去噪,獲得去噪后得到圖,并用信噪比和均方根誤差作為評(píng)判標(biāo)準(zhǔn);
5.用實(shí)際的信號(hào)加6分貝噪聲對(duì)前面確定的小波基函數(shù),閾值計(jì)算方法以及分解層數(shù)用小波閾值進(jìn)行去噪,并求信噪比和均方根誤差。
6、確定好小波基函數(shù)、閾值函數(shù)和分解層數(shù)后,分別模擬加入不同量的噪聲與4階巴特沃斯低通濾波器濾波對(duì)比

二、代碼

問(wèn)題1:原始信號(hào)加6分貝高斯白噪聲

代碼如下(示例):

clear
clc
close all
%% MATLAB繪制原始信號(hào)
load('data.mat'); %私聊發(fā)數(shù)據(jù)
data=data;
%%6分貝高斯白噪聲
SNR=6; %6dB
noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
s=data+noise;
figure;
subplot(211)
plot(data);ylabel('P/MPa');title('原始信號(hào)')
subplot(212)
plot(s);ylabel('P/MPa');title('加6dB高斯白噪聲')

問(wèn)題2:確定合適的小波基函數(shù)

代碼如下(示例):

clear
clc
close all
%% MATLAB繪制原始信號(hào)
load('data.mat');
data=data;
%%6分貝高斯白噪聲
SNR=6; %6dB
noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
s=data+noise;
%% Minimaxi閾值法,軟閾值函數(shù),3層分解層數(shù),db5去噪
wname=strvcat('sym4','sym5','db4','db5');
for i=1:4
    [C,L] = wavedec(s,3,wname(i,:));  %進(jìn)行3層小波包分解
    s1=wden(s,'minimaxi','s','mln',3,wname(i,:)); %Minimaxi、軟閾值,3層,db5
    figure;
    subplot(311)
    plot(data);xlabel('t/ms');ylabel('P/MPa');title('原始信號(hào)')
    subplot(312)
    plot(s);xlabel('t/ms');ylabel('P/MPa');title('加6dB高斯白噪聲')
    subplot(313)
    plot(s1);xlabel('t/ms');ylabel('P/MPa');title(['Minimaxi-軟閾值-3層-',wname(i,:)])
    figure
    subplot(511)
    plot(data,'r');ylabel('s');title([wname(i,:),'小波分解圖'])
    set(gca,'ytick',[]) 
    set(gca,'xtick',[]) 
    subplot(512)
    plot(C(1:L(2)),'b');ylabel('a3')
    set(gca,'ytick',[]) 
    set(gca,'xtick',[]) 
    subplot(513)
    plot(C(L(2):L(3)));ylabel('d3')
    set(gca,'ytick',[]) 
    set(gca,'xtick',[]) 
    subplot(514)
    plot(C(L(3):L(4)));ylabel('d2')
    set(gca,'ytick',[]) 
    set(gca,'xtick',[]) 
    subplot(515)
    plot(C(L(4):L(5)));ylabel('d1')
    SNR_s1(i)=snr(data,s1-data);RMSE_s1(i)=sqrt(mse(data-s1));   
    SNR_s11(i)=snr(s,s1-s);
    disp(['Minimaxi-軟閾值-3層-',wname(i,:),':信噪比=',num2str(SNR_s1(i)),'dB,均方根誤差=',num2str(RMSE_s1(i))])
    disp(['加噪后信噪比=',num2str(SNR_s11(i)),'dB'])
    disp('-----------------------------------------------------------')
end
%% 根據(jù)SNR選取較好的小波基函數(shù)
[m,index]=max(SNR_s1);
disp(['最合適的閾值計(jì)算估計(jì)方法為:',wname(index,:)])
disp('-----------------------------------------------------------')

問(wèn)題3:確定最合適的閾值計(jì)算估計(jì)方法

代碼如下(示例):

clear
clc
close all
%% MATLAB繪制原始信號(hào)
load('data.mat');
data=data;
%%6分貝高斯白噪聲
SNR=6; %6dB
noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
s=data+noise;
%% main2已經(jīng)確定最合適的小波基函數(shù)
wname='sym5';
%% 無(wú)偏估計(jì)閾值(RigrSure)、固定式閾值(Sqtwolog)、啟發(fā)式閾值(HeurSure)和極大極小閾值(Minimaxi)
TPTR=['rigrsure';'sqtwolog';'heursure';'minimaxi'];
for i=1:4
    s3=wden(s,TPTR(i,:),'s','mln',3,wname); %依次進(jìn)行濾波
    figure
    subplot(311)
    plot(data);xlabel('t/ms');ylabel('P/MPa');title('原始信號(hào)')
    subplot(312)
    plot(s);xlabel('t/ms');ylabel('P/MPa');title('加6dB高斯白噪聲')
    subplot(313)
    plot(s3);xlabel('t/ms');ylabel('P/MPa');title(['采用',TPTR(i,:),'進(jìn)行濾波'])
    snr_s3(i)=snr(data,s3-data);RMSE_s3(i)=sqrt(mse(data-s3));
    snr_s33(i)=snr(s,s3-s);
    disp([TPTR(i,:),'-軟閾值-3層-',wname,':信噪比=',num2str(snr_s3(i)),'dB,均方根誤差=',num2str(RMSE_s3(i))])
    disp(['加噪后信噪比=',num2str(snr_s33(i)),'dB'])
    disp('-----------------------------------------------------------')
end
%% 根據(jù)SNR選取較好的閾值計(jì)算估計(jì)方法
[m,index]=max(snr_s3);
disp(['最合適的閾值計(jì)算估計(jì)方法為:',TPTR(index,:)])
disp('-----------------------------------------------------------')

問(wèn)題4:確定合適的分解層數(shù)

代碼如下(示例):

clear
clc
close all
%% MATLAB繪制原始信號(hào)
load('data.mat');
data=data;
%%6分貝高斯白噪聲
SNR=6; %6dB
noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
s=data+noise;
%% main2和main3確定的小波基函數(shù)和閾值計(jì)算估計(jì)方法
wname='sym5';
TPTR='sqtwolog';
%% 分解層數(shù)為1,23,4,5,6
for i=1:6
    s4=wden(s,TPTR,'s','mln',i,wname); %依次進(jìn)行濾波
    figure
    subplot(311)
    plot(data);xlabel('t/ms');ylabel('P/MPa');title('原始信號(hào)')
    subplot(312)
    plot(s);xlabel('t/ms');ylabel('P/MPa');title('加6dB高斯白噪聲')
    subplot(313)
    plot(s4);xlabel('t/ms');ylabel('P/MPa');title(['分解層數(shù)=',num2str(i)])
    snr_s4(i)=snr(data,s4-data);RMSE_s4(i)=sqrt(mse(data-s4));
    snr_s44(i)=snr(s,s4-s);
    disp([TPTR,'-軟閾值-',num2str(i),'層-',wname,':信噪比=',num2str(snr_s4(i)),'dB,均方根誤差=',num2str(RMSE_s4(i))])
    disp(['加噪后信噪比=',num2str(snr_s44(i)),'dB'])
    disp('-----------------------------------------------------------')
end
%% 根據(jù)SNR選取較好的分解層數(shù)
[m,index]=max(snr_s4);
disp(['最合適的分解層數(shù)為:',num2str(index)])
disp('-----------------------------------------------------------')

問(wèn)題5:實(shí)際信號(hào)去噪

代碼如下(示例):

clear
clc
close all
%% 讀取實(shí)際的信號(hào)
data=xlsread('14#c1.csv');
data=data(:,2);
%%6分貝高斯白噪聲
SNR=6; %6dB
noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
s=data+noise;
%% 根據(jù)(2)(3)(4)確定參數(shù)
wname='sym5';
TPTR='sqtwolog';
lev=6;
%% 進(jìn)行濾波
s5=wden(s,TPTR,'s','mln',lev,wname); %進(jìn)行濾波
%% 繪制
figure;
subplot(311)
plot(data);xlabel('t/ms');ylabel('P/MPa');title('實(shí)際信號(hào)')
subplot(312)
plot(s);xlabel('t/ms');ylabel('P/MPa');title('加6dB高斯白噪聲')
subplot(313)
plot(s5);xlabel('t/ms');ylabel('P/MPa');title('信號(hào)去噪')
snr_s55=snr(s,s5-s);
snr_s5=snr(data,s5-data);RMSE_s5=sqrt(mse(data-s5));
disp([TPTR,'-軟閾值-',num2str(lev),'層-',wname,':信噪比=',num2str(snr_s5),'dB,均方根誤差=',num2str(RMSE_s5)])
disp(['加噪后信噪比=',num2str(snr_s55),'dB'])

問(wèn)題6:對(duì)比

代碼如下(示例):

clear
clc
close all
%% 讀取實(shí)際的信號(hào)
data=xlsread('14#c1.csv');
data=data(:,2);
fs=125000; 
%%
wname='sym5';
TPTR='sqtwolog';
lev=6;
%% 設(shè)計(jì)4階巴特沃斯低通濾波器
fc=10000;
n=4;  %階數(shù)
[b,a]=butter(n,fc/(fs/2), 'low');
%%1-16分貝高斯白噪聲
for SNR=1:16 %6dB
    noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
    s=data+noise;
    s1=filter(b,a,s);  %filter既能進(jìn)行IIR濾波又能進(jìn)行FIR濾波
    s2=wden(s,TPTR,'s','mln',lev,wname); %進(jìn)行濾波
    snr_s1(SNR)=snr(data,s1-data);RMSE_s1(SNR)=sqrt(mse(data-s1));
    snr_s2(SNR)=snr(data,s2-data);RMSE_s2(SNR)=sqrt(mse(data-s2));
end
figure;
plot(1:16,snr_s1,'o-r');
hold on
plot(1:16,snr_s2,'*-b');
xlabel('高斯白噪聲dB');ylabel('SNR')
legend('FIR濾波','小波濾波')
title('信噪比曲線(xiàn)')
%% 
for SNR=2:2:10 %6dB
    noise=0.2*randn(size(data))*std(data)/db2mag(SNR);
    s=data+noise;
    s1=filter(b,a,s);  %filter既能進(jìn)行IIR濾波又能進(jìn)行FIR濾波
    s2=wden(s,TPTR,'s','mln',lev,wname); %進(jìn)行濾波
    figure;
    subplot(411)
    plot(data);xlabel('t/ms');ylabel('P/MPa');title('實(shí)際信號(hào)')
    subplot(412)
    plot(s);xlabel('t/ms');ylabel('P/MPa');title('加16dB高斯白噪聲')
    subplot(413)
    plot(s1);xlabel('t/ms');ylabel('P/MPa');title('FIR信號(hào)去噪')
    subplot(414)
    plot(s1);xlabel('t/ms');ylabel('P/MPa');title('小波信號(hào)去噪')
    suptitle(['噪聲大小=',num2str(SNR),'dB'])
end


三、演示視頻

基于wden函數(shù)的去噪演示

最后

如果你想要進(jìn)一步了解更多的相關(guān)知識(shí),可以關(guān)注下面公眾號(hào)聯(lián)系~會(huì)不定期發(fā)布相關(guān)設(shè)計(jì)內(nèi)容包括但不限于如下內(nèi)容:信號(hào)處理、通信仿真、算法設(shè)計(jì)、matlab appdesigner,gui設(shè)計(jì)、simulink仿真…希望能幫到你!
Matlab小波去噪——基于wden函數(shù)的去噪分析文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-443403.html

到了這里,關(guān)于Matlab小波去噪——基于wden函數(shù)的去噪分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Matlab小波變換-音頻去噪

    Matlab小波變換-音頻去噪

    小波變換-音頻去噪 使用小波變換進(jìn)行音頻去噪,實(shí)驗(yàn)環(huán)境:Matlab 推薦課程:數(shù)字信號(hào)處理(北京交通大學(xué) 陳后金) 第八章內(nèi)容 B站鏈接:https://www.bilibili.com/video/BV1at411Q75D?p=101 (慕課上也有) 一、原音頻加噪 二、sym8小波去噪 也不一定非選這個(gè)sym8,也可以選其他的小波,matl

    2024年02月11日
    瀏覽(29)
  • 【M波段2D雙樹(shù)(希爾伯特)小波多分量圖像去噪】基于定向M波段雙樹(shù)(希爾伯特)小波對(duì)多分量/彩色圖像進(jìn)行降噪研究(Matlab代碼實(shí)現(xiàn))

    【M波段2D雙樹(shù)(希爾伯特)小波多分量圖像去噪】基于定向M波段雙樹(shù)(希爾伯特)小波對(duì)多分量/彩色圖像進(jìn)行降噪研究(Matlab代碼實(shí)現(xiàn))

    ????????? 歡迎來(lái)到本博客 ???????? ??博主優(yōu)勢(shì): ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運(yùn)行結(jié)果 ??3?參考文獻(xiàn) ??4 Matlab代碼實(shí)現(xiàn) 本文實(shí)

    2024年02月13日
    瀏覽(18)
  • 【高光譜圖像的去噪算法】通過(guò)全變異最小化對(duì)受激拉曼光譜圖像進(jìn)行去噪研究(Matlab代碼實(shí)現(xiàn))

    【高光譜圖像的去噪算法】通過(guò)全變異最小化對(duì)受激拉曼光譜圖像進(jìn)行去噪研究(Matlab代碼實(shí)現(xiàn))

    ???????? 歡迎來(lái)到本博客 ???????? ??博主優(yōu)勢(shì): ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運(yùn)行結(jié)果 ??3?參考文獻(xiàn) ??4 Matlab代碼、數(shù)據(jù)、文章

    2024年02月14日
    瀏覽(22)
  • 基于ICEEMDAN-SpEn(樣本熵)聯(lián)合小波閾值去噪

    基于ICEEMDAN-SpEn(樣本熵)聯(lián)合小波閾值去噪

    以樣本熵為閾值的ICEEMDAN(Incomplete Ensemble Empirical Mode Decomposition with Adaptive Noise)聯(lián)合小波閾值去噪是一種信號(hào)處理方法,用于去除信號(hào)中的噪聲。它結(jié)合了ICEEMDAN分解和小波閾值去噪方法。 以下是該方法的步驟: 1. ICEEMDAN分解:將原始信號(hào)通過(guò)ICEEMDAN方法進(jìn)行分解,得到多個(gè)

    2024年01月22日
    瀏覽(29)
  • matlab小波變換、離散小波變換函數(shù)使用

    matlab小波變換、離散小波變換函數(shù)使用

    matlab中,連續(xù)小波變換、離散小波變換函數(shù)使用比較復(fù)雜,最近做了個(gè)總結(jié)。 參考1:https://www.jianshu.com/p/56733f6c0a10 參考2:小波變換工具箱(7頁(yè))-原創(chuàng)力文檔 參考3:《Matlab信號(hào)處理》 沈再陽(yáng),清華大學(xué)出版社,第8章 注意:以下所有函數(shù)均為matlab 2020a環(huán)境中測(cè)試,更早的版

    2024年02月02日
    瀏覽(27)
  • 如何評(píng)價(jià)濾波器的去噪效果?

    如何評(píng)價(jià)濾波器的去噪效果?

    假如使用兩種濾波器,那么濾波效果如何去評(píng)價(jià) 1 ? 為了能夠得到高質(zhì)量的去噪后信號(hào),需要對(duì)濾波器的濾波效果進(jìn)行評(píng)價(jià),選取去噪效果最好的濾波器對(duì)原始信號(hào)進(jìn)行去噪處理。 一般使用 信噪比和峰值信噪比 對(duì)濾波器進(jìn)行量化評(píng)價(jià), 信噪比和峰值信噪比的值越大,說(shuō)明

    2024年02月03日
    瀏覽(58)
  • Matlab 離散小波變換函數(shù) dwt2() 原理介紹與實(shí)驗(yàn)

    Matlab 離散小波變換函數(shù) dwt2() 原理介紹與實(shí)驗(yàn)

    離散小波變換(DWT)的原理介紹和說(shuō)明請(qǐng)參考文章: 【DWT筆記】傅里葉變換與小波變換 這篇文章寫(xiě)的通俗易懂,小白也能看懂。 1.1 小波變換簡(jiǎn)介 離散小波變換(DWT)的原理介紹和說(shuō)明請(qǐng)參考文章:【DWT筆記】傅里葉變換與小波變換 這篇文章寫(xiě)的通俗易懂,小白也能看懂。

    2024年02月04日
    瀏覽(23)
  • 基于MATLAB的語(yǔ)音去噪處理系統(tǒng)

    基于MATLAB的語(yǔ)音去噪處理系統(tǒng)

    一.濾波器的簡(jiǎn)述 在MATLAB環(huán)境下IIR數(shù)字濾波器和FIR數(shù)字濾波器的設(shè)計(jì)方 法即實(shí)現(xiàn)辦法,并進(jìn)行圖形用戶(hù)界面設(shè)計(jì),以顯示所介紹迷你濾波器的設(shè)計(jì)特性。 在無(wú)線(xiàn)脈沖響應(yīng)(IIR)數(shù)字濾波器設(shè)計(jì)中,先進(jìn)行模擬濾波器的設(shè)計(jì),然后進(jìn)行模擬數(shù)字濾波器轉(zhuǎn)換,即采取脈沖響應(yīng)不

    2024年02月11日
    瀏覽(21)
  • 169基于matlab的小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)

    169基于matlab的小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)

    基于matlab的小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè),通過(guò)權(quán)值參數(shù)更新得到誤差較小模型,進(jìn)行多輸出單輸出預(yù)測(cè)。輸出預(yù)測(cè)可視化結(jié)果。程序已調(diào)通,可直接運(yùn)行。 169matlab小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè) 多輸入單輸出 (xiaohongshu.com)

    2024年02月22日
    瀏覽(23)
  • c++仿寫(xiě)小波分解和去噪代碼(只使用基礎(chǔ)庫(kù))

    c++仿寫(xiě)小波分解和去噪代碼(只使用基礎(chǔ)庫(kù))

    參考了一些Github的代碼 最終代碼可從鏈接下載。 main函數(shù)如果打不開(kāi)的話(huà),使用 Matlab自帶函數(shù)去噪效果更好,改寫(xiě)的C++因?yàn)橛?jì)算精度和邏輯有所差異,但改變軟閾值的值或者改成硬閾值去噪法也能改善結(jié)果。

    2024年02月07日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包