admin管理员组

文章数量:1404942

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?

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')

本文标签: matlabHow to use lowfrequency filtering to process the rising signalStack Overflow