MATLAB: Resampling two signals to the same sampling time and length

accelerationacceleration signalconcatenateddigital signal processingfilterinterpolationlengthMATLABmatrixresamplingsamplingsampling timesignalsignal processingsystem identificationvectorvectors

Hi guys !
For further system analysis I need to adapt two signals to the same length and sampling time. The signals are measured outputs of the system and the underlying input signals. They are sampled as follows:
t_input = 5ms
t_output = 2ms
Consequently, the signal vectors are of different lengths, too. My goal is to resample the signals to the output sampling time of t_output = 2ms and to make them equal-length. As an interpolation I want to use a linear interpolation. I have tried different methods and wrote functions to obtain the results, but have not been successful for days now. I used interp1 to interpolate between the input signal values, but it either didn't work or I haven't been able to make it work. I now seek help from you guys to fight this task! I do not want to use the matlab resampling function!
I have attached the input signal sine_input and the output signal sine_output. They consist of two columns, the first is the time stamp vector, the second column contains the measured output values or given input values, respectively.
I hope you guys can help !!!
Thank YOU !

Best Answer

Interp1 should work fine here
if size_input is the number of samples of your input, and size_output is the number of samples of your output, then simply.
input_resampled = interp1(linspace(0,1,size_input), input, (linspace(0,1,size_output));