前言
本文使用Python完成对5Hz频率的输入锯齿波信号进行均匀中跨量化的仿真,给出Python仿真代码与仿真结果。
一、一阶IIR滤波器示例说明
本示例是关于获取滤波器的特性,如(a)冲激响应,(b)零极点图和(c)滤波器的幅度和相位响应。
用于获取滤波器响应的内建函数包括:
(1)freqz。所属库:signal.scipy。功能:获取滤波器的频率响应,由幅度响应和相位响应组合而成的。
(2)tf2zpk。所属库:signal.scipy。功能:获取滤波器的极点、零点和增益。
Python代码包括五个步骤:
(1)生成冲激信号以获取滤波器的冲激响应。
(2)根据系统的传递函数定义系统。
(3)处理获取滤波器的冲激响应,其中滤波器的输入是单位样本信号。
(4)处理获取滤波器的频率响应;
(5)处理绘制滤波器的特性。
二、一阶IIR滤波器的特性的Python仿真代码
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# S1: 生成冲激输入信号
x = np.zeros(100) # 创建一个长度为100的零数组
x[0] = 1 # 将第一个元素设置为1,代表冲激信号
# S2: 定义系统
num, den = [1], [1, -1] # 分子为1,分母为1和-1,定义了一阶IIR滤波器的系数
# S3: 获取冲激响应
h = signal.lfilter(num, den, x) # 使用lfilter函数计算系统的冲激响应