So I have this signal sampled at 300 Hz to begin with and this is the frequency domain:
I apply a second order butterworth filter using scipy with a cutoff frequency of 12.6 Hz and this is the resultant signal in time and frequency domains:
sos = signal.butter(2, 12.6, 'low', fs=300, output='sos')
x_filt = signal.sosfiltfilt(sos, x)
My question is shouldn't those frequencies around 300 Hz be filtered out and appear as zero and why aren't they? Should I be using a higher order filter in order to filter out those higher frequencies?