python高通滤波_python - Python scipy.signal.remez高通滤波器设计产生奇怪的传递函数 - 堆栈内存溢出...

我正在尝试使用python的scipy.signal.remez函数设计equiripple高通滤波器。 然而,由此产生的传递函数对我来说非常奇怪,在通带中达到~15 dB峰值,并且仅有6 dB阻带衰减。 相应的低通设计看起来不错(~0.1 dB通带纹波和40 dB阻带衰减):

#!/usr/bin/env python

# -*- coding: iso-8859-15 -*-

# Minimum working example for remez (equiripple) filter designs:

from __future__ import division, print_function

import numpy as np

import scipy.signal as sig

import matplotlib.pyplot as plt

F_PB = 0.1 # corner frequency of pass band

F_SB = 0.15 # corner frequency of stop band

W_PB = 1 # weight factor for pass band

W_SB = 1 # weight factor for stop band

L = 40 # filter order

#b = sig.remez(L, [0, F_PB, F_SB, 0.5], [1, 0], [W_PB, W_SB], Hz = 1) # low pass

b = sig.remez(L, [0, F_PB, F_SB, 0.5], [0, 1], [W_PB, W_SB], Hz = 1) # high pass

# Calculate H(w), w = 0 ... pi, 1024 Pts.

[w, H] = sig.freqz(b, worN = 1024)

# Translate w to normalized frequencies F = 0 ... 0.5:

F = w / (2 * np.pi)

plt.figure(1)

plt.plot(F, 20 * np.log10(abs(H)))

plt.title(r'Magnitude transfer function in dB')

plt.show()

任何人都可以向我解释发生了什么事吗?

干杯,基督徒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值