Matlab bandwidth implementation

I have 2 unprocessed signals X and Y measuring the vibrations of a rotating shaft at const. speed 633.33 Hz. My goal is to extract only a specific frequency component (say, 1X or .35X) and plot orbits (X signal plotted on the Y-signal) for them. I took a raw signal and I applied a low pass filter using a Butterworth filter. he gave me a smooth signal in the time domain. Now when I try to apply an oil filter passband filter between frequencies (from 630 Hz to 640 Hz), it does not work properly. I do not know if I am doing this correctly. The following picture after applying a low-pass filter (butterworth).

enter image description here

This is another time when I applied low pass and band pass filters. The original signal is a complete change.

enter image description here , - 1X.

enter image description here

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. - .

+4
1

(.. [b2, a2] = (6,5 * 633/(fs/2), "low" );), 2 ~ 4 . , .

. resample (x, 1500), 2 4 . . .

, , , . , 4- ( ) .

+1

All Articles