I would like to apply Wavelet in MATLAB as a denoising technique on Non-Intrusive load Monitoring data. The data was captured by sensors on each appliance and one sensor on the smart meter (Normally called Aggregated Data). The dataset contains the following:

  1. timestamp
  2. Aggregate
  3. and Appliance from 1 - 9

Why Denoising and with Wavelets

Research has shown that denoising signals before passing it through your Machine Learning Algorithm give better results. This result can improve prediction accuracy. And I am interested in investigating using wavelet to remove uncertainties since my dataset is in the time domain.

This is a sample dataset

NILM Dataset of a household

Approach Used

function allXd = denoiseSignalToCsvFile(filePath,saveAs)

allData=csvread(filePath,1,1); allXd = []; %allX = []; [row,col] = size(allData); % disp(col); % disp(row);

for applicantIndex = 2:col

   % disp(applicantIndex)

       xd = waveletTransform(x);

       allXd = [allXd; xd];

       %allX  = [allX; {xd}];

end allXd = allXd' ;



function denoisedOutput= waveletTransform(input) %Wavelet Function wname = 'db7'; % number of levels n = 4; denoisedOutput = cmddenoise(input,wname,n); %denoisedOutput = wdenoise(input,n); end


  1. Is the approach corrects?

Thank you.

  • $\begingroup$ Welcome to SE.DSP. Typical targets on Nonintrusive Appliance Load Monitoring are related to source separation, to recover each appliance from the Aggregate. Which signals do you want to denoising, why (with what kind of noise), and more importantly, why with wavelets? $\endgroup$ – Laurent Duval Dec 29 '19 at 12:57
  • $\begingroup$ One possible source : Nonintrusive Load Monitoring Using Wavelet Design and Machine Learning, 2015 $\endgroup$ – Laurent Duval Dec 29 '19 at 13:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.