【注】:主要说滤波器的保存和调用。 一、打开App, 找到filter design; 二、根据要求设计你的滤波器; 以巴特沃夫带通滤波器为例: (1)如果解决了你的问题给我点个赞吧。 (2)点击DesignFilter, 设计好后,点击File->Export; 如下图所示设置:(也可以自己探索,下图带通以测试可用) 测试代码:
clear all;
close all;
clc;
% 采样频率:1000Hz
% 采样时间:就是画图显示的时间,适用于离线操作。
fs = 1000;
T = 1/fs;
L = 1500;
t = (0:L-1)*T;
xt = 0.7*sin(2*pi*2*t) + sin(2*pi*120*t) + 5*sin(2*pi*200*t) + 3*sin(2*pi*495*t);
figure(1); % 图1
plot(fs*t(1:1500),xt(1:1500))
title('原始信号');
xlabel('t (ms)');
ylabel('X(t)');
Y = fft(xt);
Y_Mognitude = fftshift(abs(Y))/L; % 求幅值
f = fs*(-L/2:L/2-1)/L;
figure(2); % 图2
plot(f,Y_Mognitude);
xlabel('f/Hz');
ylabel('原始幅频特性');
Y_Frequency = fftshift(angle(Y));
% 设计滤波器
load('testSaveF.mat', 'bp');
bp_xt = filter(bp,xt);
bp_Y_Mognitude = fftshift(abs(fft(bp_xt)))/L;
bp_Y_Frequency = fftshift(angle(fft(bp_xt)));
figure(5); % 图5
plot(f,bp_xt);
title('滤波后时域信号');
xlabel('t/ms');
ylabel('bp_x(t)');
figure(6); % 图6
plot(f,bp_Y_Mognitude);
title('滤波后幅频特性');
xlabel('Hz');
ylabel('幅值');
|