我可以为激光锁箱中的低通滤波器设置较低的转折频率吗?
Moku:Lab激光锁箱使用 2 级二阶 IIR 滤波器。在 iPad 应用程序中,滤波器默认仅使用 1 级或 2 级二阶滤波器。由于计算过程中位数有限,因此将我们的转角限制在 ~1 kHz。为了获得具有较低转角频率的滤波器,可以手动加载 2 级一阶滤波器,该滤波器应在 1 Hz 或以下工作。
要手动加载自定义滤波器,请在滤波器配置器中选择自定义滤波器类型,然后从 SD 卡、剪贴板或我的文件中的 .txt 文件加载滤波器系数,如下面的屏幕截图所示。
该 .txt 文件应有两行、六列,格式如下:
s1 | b0.1 | b1.1 | b2.1 | a1.1 | a2.1 |
s2 | b0.2 | b1.2 | b2.2 | a1.2 | a2.2 |
s1 和 s2 表示第 1 阶段和第 2 阶段的总增益。bx.1 到 ax.1 表示第 1 阶段的滤波器系数,bx.2 到 ax.2 表示第 2 阶段的滤波器系数。这些滤波器系数可以通过 Python scipy 或带有信号处理工具箱的 MATLAB 生成。在这里,我们提供了一个 Python 脚本来生成 .txt 文件。
进口 numpy 作为 NP 进口 matplotlib.pyplot 作为 血小板 从 scipy 进口 信号 进口 数学 定义 主要的(): 角频率 = 1 #在 赫兹 filter_type = 1 #1 为了 第一的 命令 2阶段, 2 为了 第二 命令 1阶段 生成滤波器数组(角频率,滤波器类型, 阴谋 = 错误的) 定义 生成滤波器数组(角频率、滤波器顺序、图): 采样率 = 31.25e6 标准化角 = 角频率 / (采样率 / 2) 如果 过滤顺序 == 1: b, 一个 = 信号.黄油(1, 标准化角, '低的', 模拟 = 错误的) 一个 = np.append(a,0) b = np.append(b,0) gen_coe_array(b, 一个, filter_order,str(corner_frequency)+'Hz'+str(filter_order)+'order_filter') 如果 阴谋 == 真的: plot_fra(b,a,过滤顺序) elif 过滤顺序 == 2: b, 一个 = 信号.黄油(2, 标准化角, '低的', 模拟 = 错误的) gen_coe_array(b,a,filter_order,str(corner_frequency)+'Hz'+str(filter_order)+'order_filter') 如果 阴谋 == 真的: plot_fra(b,a,过滤顺序) 定义 plot_fra(b,a,顺序): 瓦, 时长 = 信号.频率(b, 一个, 工作 = 2048*2048) 如果 命令 == 1: 时长 = np.multiply(h,h) plt.semilogx(w*采样率/math.pi/2, 20 * np.log10(np.absolute(h))) plt.title('巴特沃斯 筛选 频率 回复') plt.xlabel('频率 [赫兹]') plt.ylabel('振幅 [分贝]') plt.grid(其中='both', 轴='both') plt.显示() 定义 gen_coe_array(b,a,订单,名称): 如果 命令 == 1: 系数数组 = [[1.0, b[0], b[1], 0, 一个[1], 0], [1.0, b[0], b[1], 0, 一个[1], 0]] elif 命令 == 2: 系数数组 = [[1.0, b[0], b[1], b[2], 一个[1], a[2]], [1.0, 1.0, 0.0, 0.0, 0.0, 0.0]] np.savetxt(名称 +'.txt',系数数组, 分隔符 = “,”) 如果 __姓名__ == '__主要的__': 主要的()