0

My strain time-domain data shown in figure 1 contains significant high-frequency noise. The segment I focus on is the strain rising phase shown in figure 2, where the amplitude can be truncated at 1e4. When applying FFT-based low-frequency filtering, I found that the selected time duration of the filtering region significantly affects the filtering results. How should I resolve this issue?

enter image description here

enter image description here

signal-data

clc;clear;close all; %% load data load('20250310signal1.mat'); t=ttt'; y=yyy'; %% fs = fix(1/(t(2)-t(1))); n = length(y); Y = fft(y); f = (0:n-1)*(fs/n); %% Low-pass filtering (retain DC and low-frequency components) cutoff = 12500; % cut-off frequency Y_filtered = Y; Y_filtered(f > cutoff) = 0; %% Inverse FFT to obtain filtered signal y_filtered = ifft(Y_filtered, 'symmetric'); %% Plot results figure; plot(t, y);hold on; plot(t, y_filtered); xlabel('Time (s)'); ylabel('Amplitude'); legend('data','filtered data') 
2
  • If you apply low-pass filtering to remove high-frequency noise, that is also going to soften the sharp rise, because the rise is composed of high frequencies. I don't think you can avoid that if you use (linear, time-invariant) filtering. However, your plot suggests there may be some other issue, because there is a very slow increase on the left but the right part is horizontal with a very sharp upper corner. Please post a minimum working example Commented Mar 10 at 11:45
  • @LuisMendo In figure 2, only the slow increase on the left needs consideration; regions with y>1e4 need be ignored. Commented Mar 10 at 12:01

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.