Smooth step changes in a array

Hello,
I'm currently working with a robot, and because of some calulations, the commanded signal has step changes which I want to somehow smooth this steps to a progressive curve. My question is if there is proper matlab tool which can help me with this task or if I have to do it manually. Here my data and a plot .
Thanks in advance

3 Comments

Um, not really. But your question is pretty vague. It souds as if you want to approximate a stepwise function,, which in your case seems to be just a boolean thing, either on or off, at seemingly random intervals. What would you approximate it with? Perhaps some function which has the same average behaviour locally? Yes, you could do something, but you would need to write at least some minor amount of code, depending on your goals, and what that approximation would mean.
Or, are you asking about the curve on top? Yes, you could probably use a smoothing spline for that curve.
hello
you may want to implement a discrete low pass filter in your command signal
the very simple first approach I can suggest is in the form a first order recursive filter
a = constant between 0 and 1
out_new = out_old*a + input*(1-a)
A simple moving mean filter might be working also.

Sign in to comment.

Answers (1)

Swaraj
Swaraj on 5 Apr 2023
There can be multiple ways of doing it. One common method is to use a low-pass filter which can remove high frequency components and smooth the signal.
You can go through the following Documentations for more details.

Products

Release

R2022b

Tags

Asked:

on 10 Mar 2023

Answered:

on 5 Apr 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!