View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Maximum Correlated Kurtosis Deconvolution (MCKD)

4.5 | 2 ratings Rate this file 19 Downloads (last 30 days) File Size: 3.88 KB File ID: #31326 Version: 1.2
image thumbnail

Maximum Correlated Kurtosis Deconvolution (MCKD)



05 May 2011 (Updated )

A method to extract periodic impulses from a 1d signal.

| Watch this File

File Information

code and method by Geoff McDonald (, May 2011
This code file is an external reference for the paper:
G. L. McDonald, Q. Zhao, and M. Zuo, “Maximum correlated kurtosis deconvolution and application on gear tooth chip fault detection,” Mechanical Systems and Signal Processing, July 2012. Available online:


   This method tries to deconvolve a periodic series of impulses from
   a 1d vector. It does this by designing a FIR filter to maximize
   a norm criterion called Correlated Kurtosis. This method is has
   applications in fault detection of rotating machinery (such as
   ball bearing and gear faults).

Algorithm Reference:
   (Paper link coming soon. If you are interested in this, please
   contact me at I will add the link if/when the
   paper is available online)

Example Usage:
     % We want to extract the periodic impulses
     % from the very strong white noise!
     n = 0:999;
     x = 3*(mod(n,100)==0) + randn(size(n));
     [y_final f_final ck_iter] = mckd(x,400,30,100,7,1); % M = 7
                    % T = 100

      Signal to perform deconvolution on. This should be a 1d vector.
      MCKD will be performed on this vector by designing a FIR

      This is the length of the finite impulse filter filter to
      design. Using a value of around 100 is appropriate depending on
      the data. Investigate the performance difference using
      different values.

   termIter: (OPTIONAL)
      This is the termination number of iterations. If the
      the number of iterations exceeds this number, the MCKD process
      will complete. Specify [] to use default value of 30.

      This is the period for the deconvolution. The algorithm will
      try to deconvolve periodic impulses separated by this period.
      This period should be specified in number of samples and can be
      fractional (such as 106.29). In the case of a fractional T, the
      method will resample the data to the nearest larger integer T:
       i.e. 106.29 -> 107
      and the y_final output will still be at this resampled factor.

      This is the shift order of the deconvolution algorithm.
      Typically an integer value between 1 and 5 is good. Increasing
      the number increases the number of periodic impulses it tries
      to find in a row. For example M = 5 would try to extract at
      least 5 impulses in a row. When you use a larger M you need a
      better estimate of T. Using too large a M (approx M > 10) will
      result in a loss of numerical precision.

      If this value is > 0, plots will be generated of the iterative
      performance and of the resulting signal.

      The input signal x filtered by the resulting MCKD filter.
      This is obtained simply as: y_final = filter(f_final,1,x);

      The final MCKD filter in finite impulse response format.

      Correlated Kurtosis of shift M according to MED iteration.
      ckIter(end) is the final ck.

  The solution is not guaranteed to be the optimal solution to the
  correlated kurtosis maximization problem, the solution is just a
  local maximum and therefore a good pick.


This file inspired Minimum Entropy Deconvolution Multipack (Med, Meda, Omeda, Momeda, Mckd).

Required Products Signal Processing Toolbox
MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (2)
09 Jul 2016 danhe

danhe (view profile)

24 Jun 2012 Santhana Raj

Santhana Raj (view profile)

Good work...

06 May 2011 1.1

- Updated the method to select the best match result, not the final result. This was added because the higher-order M deconvolutions aren't necessarily monotonically convergent.
- Added dependency on signal processing.

14 Nov 2012 1.2

Added the published paper where this algorithm is presented in detail to the description.

Contact us