首页 > 解决方案 > 有人可以解释 cheby1 和 cheb1ord scipy 函数参数吗

问题描述

我有一个 .wav 音频文件。我生成给定频率的正弦波(比如说 2000Hz)。然后我将正弦波添加到文件中,所以我得到带有“吱吱声”的文件。然后我需要使用切比雪夫滤波器过滤掉这个正弦波。这是代码:

def filt (signal, frequency, sample_rate):
    wp = 1900
    ws = 1950
    gpass = 0.0001
    gstop = 10
    order, wn = sl.cheb1ord (wp, ws, gpass, gstop, fs = sample_rate)
    sos = sl.cheby1 (order, 0.001, wn,
                     btype='lowpass', output =
                         'sos', fs = sample_rate)
    filtered = sl.sosfilt (sos, signal)
    wp = 2050
    ws = 2100
    order, wn = sl.cheb1ord (wp, ws, gpass, gstop, fs = sample_rate)
    sos = sl.cheby1 (order, 0.01, wn,
                     btype='highpass', output =
                         'sos', fs = sample_rate)
    filtered2 = sl.sosfilt (sos, signal)
    return filtered + filtered2

但它不会过滤掉正弦波。它使文件更安静,但仅此而已。我哪里错了?文件中的振幅都小于 2,因此 gstop 似乎足够小。该文件的采样率为 22500 Hz。

标签: pythonscipyfilteringsignal-processing

解决方案


推荐阅读