How to Correct Signal Waveform (may use some filter)

6 views (last 30 days)
Hello, I would like to ask is there a way to process below data so that, when y goes from -1 to 1 (or from 1 to -1), there are no small dips near 1 (or -1). The force applied to generate such data has squre waveform. But my data waveform is distorted.
I have tried using lowpass(), but the dips are still there. Data and figure are attached.
Manny thanks and best regards,
Ryanne
  1 Comment
Runzi Hao
Runzi Hao on 2 May 2023
Edited: Runzi Hao on 3 May 2023
Also I hope the near 1 (or near -1) signals before the dips can be increased to 1 (or -1).
The sampling rate is 1e11 Hz. Data in first column is in nanoseconds.

Sign in to comment.

Accepted Answer

Chunru
Chunru on 3 May 2023
You can try to use a low pass filter.
websave("data.mat", "https://www.mathworks.com/matlabcentral/answers/uploaded_files/1372834/ask_matlab_community.mat")
ans = '/users/mss.system.ENlxcn/data.mat'
load data
% design a low pass filter
d = designfilt("lowpassfir", PassbandFrequency=0.04, StopbandFrequency=0.12, ...
PassbandRipple=1, StopbandAttenuation=60);
x = filtfilt(d, dataAsk(:,2));
plot(dataAsk(:,1), dataAsk(:, 2))
hold on;
plot(dataAsk(:,1), x)
  1 Comment
Runzi Hao
Runzi Hao on 3 May 2023
Cool! It works well and thank you so much for the solution!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!