how to convert the given algorithm adaptable for denoising?
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Hello
The purpose of the given code is system identification.But using the same algorithm i need to formulate a code for denoising seismic data.how can i convert the same code for denoising purpose.
function[model_out_evss,e_evss]=myEVSSLMS(y)
sys_desired = [86 -294 -287 -262 -120 140 438 641 613 276 -325 -1009 -1487 -1451 -680 856 2954 5206 7106 8192 8192 7106 5206 2954 856 -680 -1451 -1487 -1009 -325 276 613 641 438 140 -120 -262 -287 -294 86] * 2^(-15);
%sys_desired = [-3 0 19 32 19 0 -3]*2^(-15);
%a=importdata("G:\Project\BKHL.HHE.new.dat");
%digfilt = designfilt('lowpassfir', 'PassbandFrequency', 10, 'StopbandFrequency',20,'SampleRate', 100);
%sys_desired = digfilt.Coefficients;
length_fir = length(sys_desired);
for itr=1:100
    %% Defining input and initial Model Coefficients
    %input 
    x=y';
    %a=importdata("G:\Project\BKHL.HHE.new.dat");
    %x=a';
    %% EVSS LMS 
    model_coeff_evss = zeros(1,length_fir);
    %% Initial Values of Model Tap
    model_tap = zeros(1,length_fir);
    %% System Output where a 40 dB Noise floor is added
    noise_floor = 40;
    d = randn(size(x))*10^(-noise_floor/20);
    sys_opt = filter(sys_desired,1,x)+d;
    mu_min = 0.007;
    % input variance
    input_var = var(x);
    % upper bound = 1/(filter_length * input variance)
    mu_max = 1/(input_var*length_fir);
    %% Defining initial parameters for EVSS-LMS algorithm
    mu_EVSS(1) = 0.025;
    mu_EXTRA = 1.5*10^(-4);
    %% EVSS LMS ALGORITHM
    for i=1:length(x)
        % model tap values (shifting of tap values by one sample to right)
        model_tap=[x(i) model_tap(1:end-1)];
        % model output
        model_out_evss(i) = model_tap * model_coeff_evss';
        % error
        e_evss(i) = sys_opt(i) - model_out_evss(i);
        %Updating the coefficients
        model_coeff_evss = model_coeff_evss + mu_EVSS(i) * e_evss(i) * model_tap;
        if mu_EVSS(i)>mu_min
            c=1;
        else mu_EVSS(i)<=mu_min;
            c=2^(-5); 
            mu_EVSS(i) = mu_min; 
        end
        if mu_EVSS(i)>mu_max
            mu_EVSS(i) = mu_max; 
        mu_EVSS(i+1) = c * mu_EVSS(i) + mu_EXTRA * sign(e_evss(i));
    end
    %% Storing the e_square values after a whole run of VSS LMS algorithm
    err_EVSS(itr,:) = e_evss.^2;
    %% Printing the iteration number
    clc
    disp(char(strcat('iteration no : ',{' '}, num2str(itr) )))
end
figure;
plot(10*log10(mean(err_EVSS,1)),'-b');
title('VSS LMS Algorithms'); xlabel('iterations');ylabel('MSE(dB)');
grid on;
0 Commenti
Risposte (1)
  Vanshika Vaishnav
    
 il 9 Mar 2023
        For a detailed overview of the various filtering and enhancement operations that is supported by MATLAB as part of the Image Processing Toolbox, please refer to the following documentation link:
Specifically, refer to the 'Image Filtering' section in the above page. Some of the examples that demonstrate various denoising applications can be found below (and more can be found in the 'Image Filtering' section):
While these applications use various image processing tools to perform denoising, you can also consider using a deep neural network trained on noisy and denoised images to perform this operation and this can be done easily using the 'denoiseImage' function that is part of the 'Image Processing Toollbox'. More information and examples for this approach can be found in this documentation link:
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

