冲击响应不变法设计巴特沃斯数字带通滤波器的代码
以下是一个MATLAB代码示例,用于使用冲击响应不变法设计巴特沃斯数字带通滤波器:
% 指定滤波器参数
fs = 1000; % 采样频率
fc1 = 50; % 通带1截止频率
fc2 = 150; % 通带2截止频率
N = 4; % 阶数
% 计算模拟滤波器的截止频率
analog_fc1 = tan(pi*fc1/fs);
analog_fc2 = tan(pi*fc2/fs);
% 使用巴特沃斯滤波器设计函数设计数字滤波器
[b, a] = butter(N, [analog_fc1, analog_fc2], 'bandpass', 's');
% 使用冲击响应不变法将模拟滤波器转换为数字滤波器
[num, den] = impinvar(b, a, fs);
% 绘制滤波器的幅频响应
freqz(num, den, 512, fs);
在上面的代码中,首先指定了滤波器的采样频率、通带截止频率和滤波器阶数。然后,使用巴特沃斯滤波器设计函数 butter 设计了一个模拟滤波器,并计算了模拟滤波器的截止频率。接下来,使用冲击响应不变法将模拟滤波器转换为数字滤波器,并使用 freqz 函数绘制了滤波器的幅频响应图
原文地址: https://www.cveoy.top/t/topic/hkw9 著作权归作者所有。请勿转载和采集!