導航:首頁 > 五金知識 > matlab2014a工具箱進行信號去噪

matlab2014a工具箱進行信號去噪

發布時間:2022-07-05 18:08:28

A. 使用matlab對故障軸承振動信號去噪

% 將以下程序到matlab編輯器中運行,或直接在工作區運行即可

fs = 20e3; % 采樣頻率
fn = 3e3; % 固有頻率
y0 = 5; % 位移常數
g = 0.1; % 阻尼系數
T = 0.01; % 重復周期
N = 4096; % 采樣點數
NT = round(fs*T); % 單周期采樣點數
t = 0:1/fs:(N-1)/fs; % 采樣時刻
t0 = 0:1/fs:(NT-1)/fs; % 單周期采樣時刻
K = ceil(N/NT)+1; % 重復次數
y = [];
for i = 1:K
y = [y,y0*exp(-g*2*pi*fn*t0).*sin(2*pi*fn*sqrt(1-g^2)*t0)];
end
y = y(1:N);
Yf = fft(y); % 頻譜
figure(1)
plot(t,y);
axis([0,inf,-4,5])
title('軸承故障模擬信號時域波形圖')
xlabel('Time(s)')
ylabel('Amplitude')
figure(2)
f = 0:fs/N:fs-fs/N;
plot(f/1e3,abs(Yf));
xlabel('Frequency(KHz)');
ylabel('\itY\rm(\itf\rm)')
title('軸承故障模擬信號幅度譜圖')

B. 請問如何在matlab中對信號進行去噪操作。最好用函數的形式,方便其他程序調用

去噪有很多種方法,現在小波去噪最為常用,在matlab中有自帶的函數進行小波去噪,簡單易行。最常用且簡單的是閾值去噪,用函數ddencmp()生成信號的默認閾值,然後利用函數wdencmp()進行去噪。如:
%對含噪信號s進行3層小波分解
[c,l]=wavedec(s,3,'db1'); %s為含噪信號,3為小波分解層數,db1為採用的小波基

%獲取信號默認值
[thr,sorh,keepapp]=ddencmp('den','wv',s);
%參數den代表去噪,wv代表小波,s代表含有雜訊的信號

%實現去噪過程
s2=wdencmp('gbl',c,l,'db1',3,thr,sorh,keepapp);
%參數gbl表示採用全局去噪

C. 怎麼用matlab給地震信號去噪,程序

去噪有很多種方法,現在小波去噪最為常用,在matlab中有自帶的函數進行小波去噪,簡單易行。最常用且簡單的是閾值去噪,用函數ddencmp()生成信號的默認閾值,然後利用函數wdencmp()進行去噪。

D. matlab中給信號加入白雜訊,如何利用傅里葉變換去噪

小波的閾值去噪效果比較好。可以調用wden函數,比較簡單

本題中前面改一下比較直觀,可以把原始信號輸出來subplot(2,2,1)後面去噪信號subplot(2,2,2)頻譜圖subplot(2,2,3)後面可加程序

xd=wden(x,'rigrsure','s','sln',5,'sym8');
subplot(2,2,4);plot(xd);
title('去噪信號');
err=x-xd;

函數wden的調用格式有以下兩種:
(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'wname')
(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'wname')
函數wden用於一維信號的自動消噪。X為原始信號,[C,L]為信號的小波分解,N為小波分解的層數。
THR為閾值選擇規則:
*TPTR='rigrsure',自適應閾值選擇使用Stein的無偏風險估計原理。
*TPTR='heursure',使用啟發式閾值選擇。
*TPTR='sqtwolog',閾值等於sqrt(2*log(length(X))).
*TPTR='minimaxi',用極大極小原理選擇閾值。
SORH是軟閾值或硬閾值的選擇(分別對應's'和'h')。
SCAL指所使用的閾值是否需要重新調整,包含下面三種:
*SCAL='one' 不調整;
*SCAL='sln' 根據第一層的系數進行雜訊層的估計來調整閾值。
*SCAL='mln' 根據不同的雜訊估計來調整閾值。
XD為消噪後的信號,[CXD,LXD]為消噪後信號的小波分解結構。

E. matlab怎樣過濾噪音

要過濾,首先要預估噪音模型,即噪音信號產生的信號模型,再通過去噪處理來還原真實信號。
如果在實際應用過程中,只有一種噪音模型產生影響,這個好是很好解決的,只要這種影響是確定性的、周期的。但通常情況下,都是多種噪音同時產生影響,這個比較麻煩。
如果想看噪音處理模型的話,建議從簡單的學起,例如:數據擬合去噪(最小二乘、多項式)等。
之後,可以看看kalman、小波變換等。

F. matlab小波分析工具箱的使用方法 求詳細過程

  1. 將原始數據文件夾到裝有matlab的電腦

  2. 打開matlab軟體,進入軟體主界面

  3. 在軟體的左下方找到start按鈕,點擊選擇toolbox,然後選擇wavelet

  4. 進入wavemenu界面,選擇一維小波中的wavelet1-D並進入

5.將數據文件(.Mat格式)托到matlab軟體主界面的workspace

6.在wavemenu主界面中選擇file-load signal或者import from workspace—import signal

7.選擇要處理的信號,界面出現loaded信號,這就是沒有去噪前的原

始信號

8.右上角選擇用於小波分析的小波基以及分解層數並點擊analyse開始分析

9.分析後在左邊欄目中出現s,a*,d*,其中s為原信號,a*為近似信號,d*為細節信號

10.然後點擊denoise去噪

11.閾值方法常用的有4種fixed(固定閾值),rigorsure,heusure,minmax根據需要選擇,一般情況下rigorsure方式去噪效果較好

12.oft(軟閾值),hard(硬閾值)一般選擇軟閾值去噪後的信號較為平滑

13.在雜訊結構中選擇unscaled white noise,因為在工程應用中的雜訊一般不僅僅含有白雜訊

14.在雜訊結構下面的數值不要隨意改,這是系統默認的去噪幅度

15.點擊denoise開始正式去噪

16.在此窗口下點擊file-save denoised singal,保存輸出去噪後的信號

17.去噪結束

18.去噪結束後,把去噪後信號(.mat格式)拖至matlab主界面的workspace中,與原信號一起打包,以便以後計算統計量

19.Matlab編程計算相關統計量以及特徵量

20.得出統計量和特徵量後結束

G. 求教用matlab如何錄音,去噪,端點檢測。。。求高手

MATLAB中實現了信號的閾值去噪,主要包括閾值去噪和閾值獲取兩方面。

1.閾值獲取
MATLAB中實現閾值獲取的函數有ddencmp、thselect、wbmpen和wwdcbm,下面對它們的用法進行簡單的說明。

ddencmp的調用格式有以下三種:
(1)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,IN2,X)
(2)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wp',X)
(3)[THR,SORH,KEEPAPP,CRIT]=ddencmp(IN1,'wv',X)
函數ddencmp用於獲取信號在消噪或壓縮過程中的默認閾值。輸入參數X為一維或二維信號;IN1取值為'den'或'cmp','den'表示進行去噪,'cmp'表示進行壓縮;IN2取值為'wv'或'wp',wv表示選擇小波,wp表示選擇小波包。返回值THR是返回的閾值;SORH是軟閾值或硬閾值選擇參數;KEEPAPP表示保存低頻信號;CRIT是熵名(只在選擇小波包時使用)。

函數thselect的調用格式如下:
THR=thselect(X,TPTR);
THR=thselect(X,TPTR)根據字元串TPTR定義的閾值選擇規則來選擇信號X的自適應閾值。
自適應閾值的選擇規則包括以下四種:
*TPTR='rigrsure',自適應閾值選擇使用Stein的無偏風險估計原理。
*TPTR='heursure',使用啟發式閾值選擇。
*TPTR='sqtwolog',閾值等於sqrt(2*log(length(X))).
*TPTR='minimaxi',用極大極小原理選擇閾值。
閾值選擇規則基於模型 y = f(t) + e,e是高斯白雜訊N(0,1)。

函數wbmpen的調用格式如下:
THR=wbmpen(C,L,SIGMA,ALPHA);
THR=wbmpen(C,L,SIGMA,ALPHA)返回去噪的全局閾值THR。THR通過給定的一種小波系數選擇規則計算得到,小波系數選擇規則使用Birge-Massart的處罰演算法。{C,L]是進行去噪的信號或圖像的小波分解結構;SIGMA是零均值的高斯白雜訊的標准偏差;ALPHA是用於處罰的調整參數,它必須是一個大於1的實數,一般取ALPHA=2。
設t*使crit(t)=-sum(c(k)^2,k<=t) + 2 * SIGMA^2 * t*(ALPHA+log(n/t))的最小值,其中c(k)是按絕對值從大到小排列的小波包系數,n是系數的個數,則THR=|c(t*)|。
wbmpen(C,L,SIGMA,ALPHA,ARG)計算閾值並畫出三條曲線。
2 * SIGMA^2 * t*(ALPHA+log(n/t))
sum(c(k)^2, k<=t)
crit(t)

wdcbm的調用格式有以下兩種:
(1)[THR,NKEEP]=wdcbm(C,L,ALPHA);
(2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M);
函數wdcbm是使用Birge-Massart演算法獲取一維小波變換的閾值。返回值THR是與尺度無關的閾值,NKEEP是系數的個數。[C,L]是要進行壓縮或消噪的信號在j=length(L)-2層的分解結構;LAPHA和M必須是大於1的實數;THR是關於j的向量,THR(i)是第i層的閾值;NKEEP也是關於j的向量,NKEEP(i)是第i層的系數個數。一般壓縮時ALPHA取1.5,去噪時ALPHA取3.

2.信號的閾值去噪
MATLAB中實現信號的閾值去噪的函數有wden、wdencmp、wthresh、wthcoef、wpthcoef以及wpdencmp。下面對它們的用法作簡單的介紹。

函數wden的調用格式有以下兩種:
(1)[XD,CXD,LXD]=wden(X,TPTR,SORH,SCAL,N,'wname')
(2)[XD,CXD,LXD]=wden(C,L,TPTR,SORH,SCAL,N,'wname')
函數wden用於一維信號的自動消噪。X為原始信號,[C,L]為信號的小波分解,N為小波分解的層數。
THR為閾值選擇規則:
*TPTR='rigrsure',自適應閾值選擇使用Stein的無偏風險估計原理。
*TPTR='heursure',使用啟發式閾值選擇。
*TPTR='sqtwolog',閾值等於sqrt(2*log(length(X))).
*TPTR='minimaxi',用極大極小原理選擇閾值。
SORH是軟閾值或硬閾值的選擇(分別對應's'和'h')。
SCAL指所使用的閾值是否需要重新調整,包含下面三種:
*SCAL='one' 不調整;
*SCAL='sln' 根據第一層的系數進行雜訊層的估計來調整閾值。
*SCAL='mln' 根據不同的雜訊估計來調整閾值。
XD為消噪後的信號,[CXD,LXD]為消噪後信號的小波分解結構。格式(1)返回對信號X經過N層分解後的小波系數進行閾值處理後的消噪信號XD和信號XD的小波分解結構[CXD,LXD]。格式(2)返回參數與格式(1)相同,但其結構是由直接對信號的小波分解結構[C,L]進行閾值處理得到的。

函數wdencmp的調用格式有以下三種:
(1)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('gbl',X,'wname',N,THTR,SORH,KEEPAPP);
(2)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',X,'wname',N,THTR,SORH);
(3)[XC,CXC,LXC,PERF0,PERFL2]=wdencmp('lvd',C,L,'wname',N,THTR,SORH);
函數wdencmp用於一維或二維信號的消噪或壓縮。wname是所用的小波函數,gbl(global的縮寫)表示每一層都採用同一個閾值進行處理,lvd表示每層採用不同的閾值進行處理,N表示小波分解的層數,THR為閾值向量,對於格式(2)和(3)每層都要求有一個閾值,因此閾值向量THR的長度為N,SORH表示選擇軟閾值或硬閾值(分別取值為's'和'h'),參數KEEPAPP取值為1時,則低頻系數不進行閾值量化,反之,低頻系數要進行閾值量化。XC是要進行消噪或壓縮的信號,[CXC,LXC]是XC的小波分解結構,PERF0和PERFL2是恢復或壓縮L^2的范數百分比。如果[C,L]是X的小波分解結構,則PERFL2=100*(CXC向量的范數/C向量的范數)^2;如果X是一維信號,小波wname是一個正交小波,則PERFL2=100||XC||^2/||X||^2。

函數wthresh的調用格式如下:
Y=wthresh(X,SORH,T)
Y=wthresh(X,SORH,T) 返回輸入向量或矩陣X經過軟閾值(如果SORH='s')或硬閾值(如果SORH='h')處理後的信號。T是閾值。
Y=wthresh(X,'s',T)返回的是Y=SIG(X)*(|X|-T)+,即把信號的絕對值與閾值進行比較,小於或等於閾值的點變為零,大於閾值的點為該點值與閾值的差值。
Y=wthresh(X,'h',T)返回的是Y=X*1(|X|>T),即把信號的絕對值和閾值進行比較,小於或等於閾值的點變為零,大於閾值的點保持不變。一般來說,用硬閾值處理後的信號比用軟閾值處理後的信號更粗糙。

函數wthcoef的調用格式下面四種:
(1)NC=wthcoef('d',C,L,N,P)
(2)NC=wthcoef('d',C,L,N)
(3)NC=wthcoef('a',C,L)
(4)NC=wthcoef('t',C,L,N,T,SORH)
函數wthcoef用於一維信號小波系數的閾值處理。
格式(1)返回小波分解結構[C,L]經向量N和P定義的壓縮率處理後的新的小波分解向量NC,[NC,L]構成一個新的小波分解結構。N包含被壓縮的細節向量,P是把較小系數置0的百分比信息的向量。N和P的長度必須相同,向量N必須滿足1<=N(i)<=length(L)-2。
格式(2)返回小波分解結構[C,L]經過向量N中指定的細節系數置0後的小波分解向量NC。
格式(3)返回小波分解結構[C,L]經過近似系數置0後的小波分解向量NC。
格式(4)返回小波分解結構[C,L]經過將向量N作閾值處理後的小波分解向量NC。如果SORH=』s『,則為軟閾值;如果SORH='h'則為硬閾值。N包含細節的尺度向量,T是N相對應的閾值向量。N和T的長度必須相等。

函數wpdencmp的調用格式有以下兩種:
(1)[XD,TREED,PERF0,PERFL2]=wpdencmp(X,SORH,N,'wname',CRIT,PAR,KEEPAPP)
(2)[XD,TREED,PERF0,PERFL2]=wpdencmp(TREE,SORH,CRIT,PAR,KEEPAPP)
函數wpdencmp用於使用小波包變換進行信號的壓縮或去噪。
格式(1)返回輸入信號X(一維或二維)的去噪或壓縮後的信號XD。輸出參數TREED是XD的最佳小波包分解樹;PERFL2和PERF0是恢復和壓縮L2的能量百分比。PERFL2=100*(X的小波包系數范數/X的小波包系數)^2;如果X是一維信號,小波wname是一個正交小波,則PERFL2=100*||XD||^2/||X||^2。SORH的取值為's'或'h',表示的是軟閾值或硬閾值。
輸入參數N是小波包的分解層數,wname是包含小波名的字元串。函數使用由字元串CRIT定義的熵和閾值參數PAR實現最佳分解。如果KEEPAPP=1,則近似信號的小波系數不進行閾值量化;否則,進行閾值量化。
格式(2)與格式(1)的輸出參數相同,輸入選項也相同,只是它從信號的小波包分解樹TREE進行去噪或壓縮。

H. 用Matlab語言編寫一個語音信號或圖象信號去噪的程序請高手幫忙

不好意思,沒看到維納濾波,程序就不刪了

%譜減法語音增強
%輸入參數s 語音數據,fs 采樣頻率,p 下面有說明,共11個,可不輸入,有默認值
%「過度減法(oversubtraction)」作減法的時候,保留一小部分原來的背景噪音,用這部分背景噪音來掩蓋住音樂噪音的譜峰,從而消除了令人不悅的音樂噪音。

%通過給的參數p,估計噪音,做譜減法。從而消除噪音。
function [ss,po]=specsubm(s,fs,p)
%利用頻譜相減(spectral subtraction)增強 [SS,PO]=(S,FS,P)
%
% implementation of spectral subtraction algorithm by R Martin (rather slow)
% algorithm parameters: t* in seconds, f* in Hz, k* dimensionless
% 1: tg = smoothing time constant for signal power estimate (0.04): high=reverberant, low=musical
% 2: ta = smoothing time constant for signal power estimate
% used in noise estimation (0.1)
% 3: tw = fft window length (will be rounded up to 2^nw samples)
% 4: tm = length of minimum filter (1.5): high=slow response to noise increase, low=distortion
% 5: to = time constant for oversubtraction factor (0.08)
% 6: fo = oversubtraction corner frequency (800): high=distortion, low=musical
% 7: km = number of minimisation buffers to use (4): high=waste memory, low=noise molation
% 8: ks = oversampling constant (4)
% 9: kn = noise estimate compensation (1.5)
% 10:kf = subtraction floor (0.02): high=noisy, low=musical
% 11:ko = oversubtraction scale factor (4): high=distortion, low=musical

%檢查函數的輸入參數,如果輸入少於三個,po為默認值,po的參數上面有說明
if nargin<3 po=[0.04 0.1 0.032 1.5 0.08 400 4 4 1.5 0.02 4].'; else po=p; end

ns=length(s);
ts=1/fs;
ss=zeros(ns,1);

ni=pow2(nextpow2(fs*po(3)/po(8)));
ti=ni/fs;
nw=ni*po(8);
nf=1+floor((ns-nw)/ni);
nm=ceil(fs*po(4)/(ni*po(7)));

win=0.5*hamming(nw+1)/1.08;win(end)=[];
zg=exp(-ti/po(1));
za=exp(-ti/po(2));
zo=exp(-ti/po(5));

px=zeros(1+nw/2,1);
pxn=px;
os=px;
mb=ones(1+nw/2,po(7))*nw/2;
im=0;
osf=po(11)*(1+(0:nw/2).'*fs/(nw*po(6))).^(-1);

imidx=[13 21]';
x2im=zeros(length(imidx),nf);
osim=x2im;
pnim=x2im;
pxnim=x2im;
qim=x2im;

for is=1:nf
idx=(1:nw)+(is-1)*ni;
x=rfft(s(idx).*win);
x2=x.*conj(x);

pxn=za*pxn+(1-za)*x2;
im=rem(im+1,nm);
if im
mb(:,1)=min(mb(:,1),pxn);
else
mb=[pxn,mb(:,1:po(7)-1)];
end
pn=po(9)*min(mb,[],2);
%os= oversubtraction factor
os=zo*os+(1-zo)*(1+osf.*pn./(pn+pxn));

px=zg*px+(1-zg)*x2;
q=max(po(10)*sqrt(pn./x2),1-sqrt(os.*pn./px));
ss(idx)=ss(idx)+irfft(x.*q);

end
if nargout==0
soundsc([s; ss],fs);
end

I. 如何用matlab濾掉信號中的小幅值白雜訊

1. WGN:產生高斯白雜訊
y = wgn(m,n,p) 產生一個m行n列的高斯白雜訊的矩陣,p以dBW為單位指定輸出雜訊的強度。
y = wgn(m,n,p,imp) 以歐姆(Ohm)為單位指定負載阻抗。
y = wgn(m,n,p,imp,state) 重置RANDN的狀態。

在數值變數後還可附加一些標志性參數:
y = wgn(…,POWERTYPE) 指定p的單位。POWERTYPE可以是'dBW', 'dBm'或'linear'。線性強度(linear power)以瓦特(Watt)為單位。
y = wgn(…,OUTPUTTYPE) 指定輸出類型。OUTPUTTYPE可以是'real'或'complex'。

2. AWGN:在某一信號中加入高斯白雜訊
y = awgn(x,SNR) 在信號x中加入高斯白雜訊。信噪比SNR以dB為單位。x的強度假定為0dBW。如果x是復數,就加入復雜訊。
y = awgn(x,SNR,SIGPOWER) 如果SIGPOWER是數值,則其代表以dBW為單位的信號強度;如果SIGPOWER為'measured',則函數將在加入雜訊之前測定信號強度。
y = awgn(x,SNR,SIGPOWER,STATE) 重置RANDN的狀態。
y = awgn(…,POWERTYPE) 指定SNR和SIGPOWER的單位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那麼SNR以dB為單位,而SIGPOWER以dBW為單位。如果POWERTYPE是'linear',那麼SNR作為比值來度量,而SIGPOWER以瓦特為單位

J. 用matlab中工具箱進行小波去噪步驟

matlab讀取excel文件比較方便,建議你把數據放到xls文件中保存,然後在matlab中用xlsread這個函數讀取出來。版

讀取出的數據應該是一權個一維數組了,用plot畫出圖的話,就是常見的曲線。

然後做小波分解:選用你覺得合適的小波基,例如haar,然後用這個小波基做小波分解,再把高頻部分去掉,然後用低頻部分還原,就得到了去噪後的信號。

其實你這個問題估計也可以用神經網路或者其它曲線擬合一類手段來解決。具體的情況要根據數據特徵來判斷。

以上。
專業路過的老狼

閱讀全文

與matlab2014a工具箱進行信號去噪相關的資料

熱點內容
軸承箱什麼意思 瀏覽:185
普車尾座自動進刀裝置 瀏覽:535
為什麼冰封散熱背夾不製冷 瀏覽:92
燃氣截止閥選什麼類型閥門好 瀏覽:955
刀組軸承如何拆 瀏覽:966
超聲波花邊機怎麼更換模具 瀏覽:96
小米手機設備激活失敗怎麼辦 瀏覽:185
機械鍵盤怎麼調打字就閃光 瀏覽:676
氣體滅火系統自動控制裝置型號 瀏覽:688
自貢不銹鋼精密鑄造怎麼樣價格 瀏覽:597
實驗室製取二氧化碳時如何檢查裝置氣密性 瀏覽:234
分餾實驗報告裝置圖 瀏覽:264
在我要吃雞裡面如何獲得機械暴龍 瀏覽:445
港華燃氣表閥門怎麼開 瀏覽:956
路上檢測噪音的扣分裝置是什麼 瀏覽:924
嘉善電動工具流水線裝配工 瀏覽:576
設備外借清單怎麼寫 瀏覽:789
軸承加熱對身體有什麼影響 瀏覽:68
修個汽車儀表盤多少錢 瀏覽:785
dnf機械王座如何看破防了 瀏覽:713