在Python中表示低通滤波器时的直线

鲁滨逊·切拉

我尝试使用Hammond窗口实现低通滤波器。截止频率是0.3,滤波器的阶数是21。我的问题是我有一条直线,并且没有穿过表示的点。这是代码:

from pylab import *
import scipy.signal as signal
import matplotlib.pyplot as plt


#Plot step and impulse response
def impz(b,a=1):
    l = len(b)
    impulse = repeat(0.,l); impulse[0] =1.
    x = arange(0,l)
    response = signal.lfilter(b,a,impulse)
    subplot(211)
    stem(x, response)
    ylabel('Amplitude')
    xlabel(r'Index')
    title(r'Impulse response')
   
n = 21
a = signal.firwin(n, cutoff = 0.3, window = "hamming")
#Impulse and step response
figure(2)
impz(a)
show()

我已经附上了pyplot的外观: 正确的情节

这是我的情节: 我的错情节

为什么最后一张图片中的红线没有穿过绘图的点?有什么想法吗?谢谢!

约翰·C

plt.stem 绘制带有通过基线连接的垂直线的点,如第二个图所示。要绘制点和连接的线段,有plt.plot很多选择。

请注意,通常pyplot导入为plt这样,人们可以快速查看绘图相关代码的发生位置,从而更易于理解和维护。

同样,numpy作为导入npnumpy函数可以在完整的数组上工作,类似于使用单个变量(“广播”),仅当所有函数和数组都使用numpy时,该函数才能正常工作。前缀np有助于直观地进行检查。

这是带有导入pyplot和numpy的标准方法的示例代码。并要求plt.plot获得与所需图相似的图。重命名主代码中的变量,b以使对该impz函数的调用更易于遵循。

import matplotlib.pyplot as plt
import numpy as np
import scipy.signal as signal

# Plot step and impulse response
def impz(b, a=1):
    l = len(b)
    impulse = np.repeat(0., l)
    impulse[0] = 1.
    x = np.arange(0, l)
    response = signal.lfilter(b, a, impulse)
    plt.subplot(211)
    # plt.stem(x, response)
    plt.plot(x, response, color='blueviolet', marker='o', markerfacecolor='none', markeredgecolor='dodgerblue')
    plt.ylabel('Amplitude')
    plt.xlabel('Index')
    plt.title('Impulse response')

n = 21
b = signal.firwin(n, cutoff=0.3, window="hamming")
# Impulse and step response
plt.figure(2)
impz(b)
plt.show()

样地

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中的低通滤波器

来自分类Dev

应用低通滤波器

来自分类Dev

FFT低通滤波器

来自分类Dev

FPGA的低通滤波器

来自分类Dev

FFT低通滤波器

来自分类Dev

应用低通滤波器

来自分类Dev

在音频上使用低通滤波器

来自分类Dev

使用fft的Matlab低通滤波器

来自分类Dev

OpenCL中的低通滤波器

来自分类Dev

低通滤波器和采样频率

来自分类Dev

C中的低通滤波器

来自分类Dev

低通滤波器不起作用

来自分类Dev

固定点的简单低通滤波器

来自分类Dev

识别过滤器的方法。(低通滤波器/高通滤波器?)

来自分类Dev

识别过滤器的方法。(低通滤波器/高通滤波器?)

来自分类Dev

MATLAB中的低通滤波器返回NaN值

来自分类Dev

优化低通滤波器平滑代码以进行活动识别

来自分类Dev

Matlab-在系统上使用低通滤波器

来自分类Dev

IIR低通滤波器在C ++中的实现

来自分类Dev

将SOX低通滤波器与插孔配合使用

来自分类Dev

使用Pulseaudio在LFE上进行低通滤波器

来自分类Dev

在Matlab中设计一个低通滤波器

来自分类Dev

使用`scipy.signal.butter()`创建低通滤波器时,“阶次”和“临界频率”是什么

来自分类Dev

具有低通滤波器的脱机渲染会导致混叠和剪切

来自分类Dev

在SciPy中创建低通滤波器-了解方法和单位

来自分类Dev

关于在Matlab中使用'butter'功能的低通滤波器的问题

来自分类Dev

使用双线性方法将低通滤波器应用于信号-MATLAB

来自分类Dev

低通滤波器从熊猫数据框中获取数据的二阶导数

来自分类Dev

高通低通滤波器信号,去除边缘伪像Matlab