Tuesday, August 6, 2019

interpolation - Resampling of signal with non uniform sampling frequency


I have a non uniform sampling frequency signal and I have to convert it in a constant sampling frequency. I tried to interpolate it with an Hermite spline interpolation but it make a lot of wrong peaks, like in the figure: enter image description here


For example at 14887433 there is a peak too big.


A cubic (4 point) interpolation is too sharp for me.


Which method can I use to resampling this signal? Is there a way to filter a not constant sampled signal in order to use a sinc or a similar window?



Answer




Without specific constraints on the data/noise properties or sampling assumptions, smoothing splines could be helpful. Indeed, constraining the curve to pass exactly through the given points could be too harsh.


One example of such a toolbox in Matlab is SPLINEFIT with several examples:


spline fitting



Direct spline interpolation of noisy data may result in a curve with unwanted oscillations. This is particularly bad if the slope of the curve is important. A better approach is to reduce the degrees of freedom for the spline and use the method of least squares to fit the spline to the noisy data. The deegres of freedom are connected to the number of breaks (knots), so the smoothing effect is controlled by the selection of breaks.



Matlab also has Cubic smoothing spline (csaps).


One possible reading:



No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...