Python 在音频信号中应用高通滤波器
我想在我的音频文件中实现高通滤波器,以滤除低于6kHz的任何信号。代码如下:Python 在音频信号中应用高通滤波器,python,filter,signal-processing,highpass-filter,Python,Filter,Signal Processing,Highpass Filter,我想在我的音频文件中实现高通滤波器,以滤除低于6kHz的任何信号。代码如下: 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_filt
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()
但是,结果输出不正确,即应在6kHz以下移除信号分量,相反,它们仍然处于活动状态,并更改为从kHz开始是我错了还是您正在绘制原始的
fs
和速率
?过滤后的y
是什么样子的?是我错了还是你在绘制原始fs
和速率
?过滤后的y
外观如何?