MATLAB: How to speed up the calculation time for the “rpmtrack” function

10e410e5computationinputr2018arpmtrackSignal Processing Toolboxspeedtimevector

I am using the "rpmtrack" function in the MATLAB R2018a prerelease. When my "x" signal input has ~ 10e5 elements, the "rpmtrack" function takes 15 minutes to run. If my "x" input signal has ~ 10e4 elements, it only takes a couple minutes to run. Is there any way I can decrease the run time of this function when inputting a vector with 10e5 elements? 

Best Answer

There are a couple methods of speeding up the computation time of the "rpmTrack" function:
  • Divide the signal into various segments. Then, estimate the rpm over each segment, and concatenate those rpm estimates.
  • Coarsen the frequency resolution to reduce FFT length, and then compensate the ridge estimation accuracy by specifying enough ridge points and penalty values. This can be done using the name-value pairs for this function such as "FrequencyResolution" and "FrequencyPenalty", as pointed out in the function's documentation page.