用matlab写一段陷波滤波器应用的代码
时间: 2024-06-02 10:13:38 浏览: 167
陷波滤波器matlab代码
5星 · 资源好评率100%
以下是一段用MATLAB实现陷波滤波器应用的代码:
% 生成测试信号
fs = 1000; % 采样频率为1000Hz
t = (0:1/fs:2); % 时域范围为0到2秒
f1 = 50; % 信号频率为50Hz
f2 = 150; % 信号频率为150Hz
s = sin(2*pi*f1*t) + sin(2*pi*f2*t); % 生成测试信号
% 设计陷波滤波器
f0 = 100; % 陷波中心频率为100Hz
BW = 10; % 陷波带宽为10Hz
Q = f0/BW; % 陷波品质因数
wo = 2*pi*f0/fs; % 数字滤波器中心频率
bw = wo/Q; % 数字滤波器带宽
num = [1, -2*cos(wo), 1]; % 陷波滤波器Numerator
den = [1, -2*cos(wo)+2j*bw, 1-bw^2]; % 陷波滤波器Denominator
% 应用陷波滤波器
filt_s = filter(num, den, s);
% 绘制原始信号和滤波后的信号
figure;
subplot(2,1,1);
plot(t, s);
title('Original Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(t, filt_s);
title('Filtered Signal');
xlabel('Time (s)');
ylabel('Amplitude');
阅读全文