matlab fdesign 设计出的滤波器如何使用
时间: 2023-12-01 21:03:26 浏览: 368
使用MATLAB中基于fdesign工具箱设计出的数字滤波器,可以通过以下步骤实现:
1. 创建滤波器对象
使用fdesign工具箱创建一个滤波器对象,例如:
```matlab
% 创建一个fdesign.lowpass滤波器对象
d = fdesign.lowpass('Fp,Fst,Ap,Ast',0.1,0.2,1,60);
```
这里创建了一个低通滤波器对象,具有通带截止频率为0.1,阻带截止频率为0.2,通带最大衰减为1dB,阻带最小衰减为60dB。
2. 将滤波器对象转换为数字滤波器
使用design方法将滤波器对象转换为数字滤波器,例如:
```matlab
% 使用design方法将滤波器对象转换为数字滤波器
Hd = design(d,'equiripple');
```
这里将滤波器对象d转换为数字滤波器Hd,使用的是equiripple算法。
3. 应用滤波器
将数字滤波器应用于信号,例如:
```matlab
% 生成一个测试信号
fs = 1000;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*50*t) + sin(2*pi*120*t);
% 应用数字滤波器
y = filter(Hd,x);
```
这里生成了一个包含50Hz和120Hz正弦波的测试信号x,然后使用filter函数将数字滤波器Hd应用于信号x,得到滤波后的信号y。
4. 可视化滤波效果
使用MATLAB中的绘图函数,可视化滤波后的信号效果,例如:
```matlab
% 绘制滤波前后的信号波形和频谱
figure;
subplot(2,2,1);
plot(t,x);
title('原始信号');
xlabel('时间(秒)');
ylabel('幅值');
subplot(2,2,2);
plot(t,y);
title('滤波后的信号');
xlabel('时间(秒)');
ylabel('幅值');
subplot(2,2,3);
pwelch(x,[],[],[],fs);
title('原始信号频谱');
subplot(2,2,4);
pwelch(y,[],[],[],fs);
title('滤波后的信号频谱');
```
这里使用subplot函数将滤波前后的信号波形和频谱绘制在同一个图中,方便比较滤波效果。
综上所述,使用MATLAB中基于fdesign工具箱设计出的数字滤波器,可以通过创建滤波器对象、将滤波器对象转换为数字滤波器、应用数字滤波器和可视化滤波效果等步骤实现。
阅读全文