一、背景
输入信号input分别经过bp(带通滤波器)和bs(带阻滤波器)处理后相加输出。分析输出信号的幅值和相位受到的影响。
根据上图公式推导可知,并联滤波器对输出的影响可以直接分析,带通滤波器与带阻滤波器在频域上的加和。
二、matlab仿真
使用matlab的fdatool设计滤波器
close all
% 工作空间中导出SOS 和 G
% 使用 sos2tf 转换为传递函数形式
[b_bp, a_bp] = sos2tf(SOSpass, Gpass); % 带通滤波器
[b_bs, a_bs] = sos2tf(SOSstop, Gstop); % 带通滤波器
% % 获取滤波器的分子和分母系数
% [b_bp, a_bp] = tf(bandpass); % 带通滤波器
% [b_bs, a_bs] = tf(bandstop); % 带通滤波器% 频率响应
fs = 48000; % 获取采样频率
N = 4096 * 32; % 增加频率点数提高分辨率
[H_bp, f] = freqz(b_bp, a_bp, N, fs); % 带通滤波器频率响应
[H_bs, ~] = freqz(b_bs, a_bs, N, fs); % 带阻滤波器频率响应% 相加频率响应
H_combined = H_bp + H_bs; % 复数形式直接相加% 绘制频率响应对比
figure;
% 1. 幅度响应对比
% subplot(2, 1, 1);
plot(f, 20*log10(abs(H_bp)), 'b', 'LineWidth', 1.5); hold on;
plot(f, 20*log10(abs(H_bs)), 'g', 'LineWidth', 1.5);
plot(f, 20*log10(abs(H_combined)), 'r', 'LineWidth', 1.5);
title('幅度响应对比');
xlabel('频率 (Hz)');
ylabel('幅度 (dB)');
legend('带通滤波器', '带阻滤波器', '滤波器相加');
grid on;
%%
figure;
% 2. 相位响应对比
% subplot(2, 1, 2);
plot(f, (angle(H_bp)), 'b', 'LineWidth', 1.5); hold on;
plot(f, (angle(H_bs)), 'g', 'LineWidth', 1.5);
plot(f, (angle(H_combined)), 'r', 'LineWidth', 1.5);
title('相位响应对比');
xlabel('频率 (Hz)');
ylabel('相位 (rad)');
legend('带通滤波器', '带阻滤波器', '滤波器相加');
grid on;
幅度影响:在200Hz和5000Hz有衰减的影响
相位影响:0Hz-200Hz(负)、200Hz-1kHz(正)、1kHz-5kHz(负)、5kHz-20k(正)