У меня есть 2 необработанных сигнала X и Y, измеряющих вибрации вращающегося вала при постоянной скорости. скорость 633,33 Гц. Моя цель состоит в том, чтобы извлечь только определенную частотную составляющую (скажем, 1X или 0,35X) и построить для них орбиты (сигнал X, построенный по отношению к сигналу Y). Я взял необработанный сигнал и применил фильтр нижних частот, используя фильтр Баттерворта. это дало мне ровный сигнал во временной области. Теперь, когда я пытаюсь применить полосовой фильтр Баттерворта между частотами (от 630 Гц до 640 Гц), он не работает должным образом. Я не знаю, правильно ли я делаю. Следующее изображение после применения фильтра нижних частот (баттерворта).
Это еще одно после того, как я применил низкочастотный и полосовой фильтры Баттерворта. Исходный сигнал полностью изменен.
Я ожидаю, что фильтр сделает что-то вроде этого, более чистую орбиту для частотной составляющей 1X.
Мой код MATLAB выглядит следующим образом.
L = length(X); % length of signal
fs= 2e6; % sampling frequency
df = fs/L; % Frequency window
dt = 1/df; % time window
%calculate time axis
T = (0:dt:(L-1)*dt)';
subplot(3,2,1);
plot(T,X);
title('before filtering X signal')
subplot (3,2,2);
plot(T,Y);
title('before filtering Y signal')
subplot(3,2,5);
plot(X,Y);
title('Orbits before filtering')
X = detrend(X,0); % Removing DC Offset
Y = detrend(Y,0); % Removing DC Offset
% Butterworth low pass filter to remove high frequency components
[b2,a2] = butter(6,5*633/(fs/2),'low');
dataInX = X;
X = filter(b2,a2,dataInX); %filter command filters
dataInY = Y;
Y = filter(b2,a2,dataInY);
% butter worth band pass to only plot for 1X frequency component
[b1,a1] = butter(1,[633/(fs/2) 640/(fs/2)],'bandpass');
dataInX = X;
X = filter(b1,a1,dataInX); %filter command filters
dataInY = Y;
Y = filter(b1,a1,dataInY);
subplot(3, 2 ,3);
plot(T,X);
axis tight
title('X signal after filtering')
subplot(3,2,4);
plot(T,Y);
axis tight
title('Y signal after filtering')
subplot(3,2,6);
plot(X,Y);
title('Orbit after filtering')
axis tight
Я также прилагаю свой файл данных для справки.
Я новичок в мире фильтров и DSP. Может ли кто-нибудь помочь исправить это с предложениями, подсказками или идеями.