#python #filter #signal-processing #highpass-filter
#python #Фильтр #обработка сигналов #highpass-filter
Вопрос:
Я хочу установить фильтр высоких частот в своих аудиофайлах, чтобы отфильтровывать любые сигналы ниже 6 кГц. Ниже приведен код:
def butter_highpass(cutoff, fs, order=5):
nyq = 0.5 * fs
normal_cutoff = cutoff / nyq
b, a = signal.butter(order, normal_cutoff, btype='high', analog=False)
return b, a
def butter_highpass_filter(data, cutoff, fs, order=5):
b, a = butter_highpass(cutoff, fs, order=order)
y = signal.filtfilt(b, a, data)
return y
(fs,rate)=wav.read('2020_09_02-21_21_16_51.wav')
y=butter_highpass_filter(rate,6000, fs, order=5)
plt.figure(3)
frequencies, times, spectrogram =
signal.spectrogram(rate,fs)
plt.pcolormesh(times, frequencies, spectrogram)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()
Однако вывод результата неверен, поскольку компоненты сигнала должны быть удалены ниже 6 кГц, вместо этого они все еще активны и изменены, чтобы начинаться с кГц
Комментарии:
1. Я ошибаюсь или вы рисуете оригинал
fs
иrate
? Как выглядит отфильтрованныйy
?