A list,

1 Wavelet transform application field: signal processing, image processing 2 applications in the field: signal (image) denoising, compression 3 advantages of wavelet transform: In orthogonal wavelet, the selection of orthogonal basis is closer to the actual signal itself than the traditional method, so it is easier to separate noise or other information we do not need through wavelet transform. Therefore, in this kind of application, wavelet analysis has incomparable advantages over the traditional method.

4 Noise reduction and compression these two applications have a common point is that they are trying to eliminate useless information from the original signal, so Matlab provides a general command wdencmp, processing noise reduction and compression.

5 Noise reduction criteria

• Smoothness: in most cases, the denoised signal should be at least as smooth as the original signal;

• Similarity: the variance estimation of the denoised signal and the original signal should be the lowest in the worst case; (MinmaxEstimator);

6 Noise reduction process

(1) Decomposition process: select a kind of wavelet and decompose the signal by n-layer wavelet (wavelet packet);

(2) Threshold process: select a threshold value for each layer coefficient obtained by decomposition, and apply soft threshold to detail coefficient;

(3) Reconstruction process: the original signal is reconstructed by wavelet (wavelet packet) for the processed coefficients.



In the process of wavelet analysis for noise reduction, the step of the sum signal is to apply the threshold value on the coefficient. Because the selection of threshold directly affects the quality of noise reduction, various theoretical and empirical models have been proposed. But no model is universal, they all have their own scope of use.

In the process of wavelet analysis for noise reduction, the step of the sum signal is to apply the threshold value on the coefficient. Because the selection of threshold directly affects the quality of noise reduction, various theoretical and empirical models have been proposed. But no model is universal, they all have their own scope of use.

In wavelet transform, the threshold required for denoising the coefficients of each layer is generally obtained according to the signal-to-noise ratio of the original signal, which is used in Formula (1) in the theoretical model







Ii. Source code

clear all; clc; close all;

[xx, fs] = wavread('C5_4_y.wav'); % read data file xx=xx-mean(xx); % Eliminate dc component x=xx/ Max (abs(xx)); % amplitude normalized N=length(x); % -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- to join specified intensity noise -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- SNR =5;
s=awgn(x,SNR,'measured'.'db'); % Add noise wname='db7';

jN=6; % Number of decomposed layers SNRS =20*log10(norm(x)/norm(s-x));
signal=Wavelet_Hard(s,jN,wname);
signal=signal/max(abs(signal)); snr1=SNR_Calc(x,s); % Calculate the initial SNR2 =SNR_Calc(x,signal); % SNR = SNR2-SNR1 after denoising;fprintf('snr1 = % 5.4 f snr2 = % 5.4 f SNR = % 5.4 f \ n',snr1,snr2,snr); % drawing time = (0:N- 1)/fs; % Set the time subplot311; plot(time,x,'k'); grid; axis tight;
title('Pure speech waveform'); ylabel('value')
subplot 312; plot(time,s,'k'); grid; axis tight;
title(['Voice noise ratio with noise =' num2str(SNR) 'dB']); ylabel('value') unction SNR =SNR_Calc(I,In) % Calculates the SNR of noisy speech signals. % I is pure speech signals. % In is noisy speech signals10*log10(Esignal/Enoise)
I=I(:)'; In=In(:)';
Ps=sum((I-mean(I)).^2); Function signal=Wavelet_Soft(S,jN,wname) [C, L]= Wavedec (S,jN,wname); First = cumsum(l)+1;
first1=first;
first = first(end2 -:- 1:1);
ld   = l(end- 1:- 1:2);
last = first+ld- 1; % -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- % soft threshold cxdsoft = c;for j=1:jN %j is the decomposition scale FLK = first(j):last(j); % FLK is the index of di in c THR (j)=sqrt(2*log((j+1)/j))*median(c(flk))/0.6745;
    for k=0:(length(flk)- 1DJK =c(first(j)+k); % To simplify the program absdjK =abs(djk);
        thr1=thr(j);
        if absdjk<thr1
           djk=0;
Copy the code

3. Operation results

Fourth, note

Version: 2014 a