滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码

滤波器设计:FIR和IIR高、低、带通滤波器的实现及Matlab代码

引言:
滤波器作为信号处理中非常重要的一部分,广泛应用于数字信号处理、音频处理、图像处理等领域。本文主要讨论FIR(有限长冲激响应)和IIR(无限长冲激响应)两种常见滤波器的设计及其实现。

  1. FIR滤波器
    FIR滤波器的优点是具有稳定性、线性相位特性等,但是其计算复杂度比较高。下面通过实例介绍FIR滤波器的高通、低通、带通滤波器的设计及其实现。

1.1 实现流程

  1. 确定滤波器的类型(高通、低通、带通)
  2. 确定截止频率或通带、阻带范围和衰减系数等参数
  3. 计算滤波器的系数
  4. 利用Matlab实现滤波器

1.2 示例代码
% 高通滤波器
fs = 1000; % 采样频率
fc = 100; % 截止频率
N = 50; % 滤波器阶数
wn = fc/(fs/2);
b = fir1(N,wn,‘high’);
freqz(b,1);

% 低通滤波器
fs = 1000; % 采样频率
fc = 100; % 截止频率
N = 50; % 滤波器阶数
wn = fc/(fs/2);
b = fir1(N,wn,‘low’);
freqz(b,1);

% 带通滤波器
fs = 1000; % 采样频率
f1 = 100; % 通带左侧频率
f2 = 200; % 通带右侧频率
N = 50; % 滤波器阶数
wn = [f1 f2]/(fs/2);
b = fir1(N,wn,‘bandpass’

猜你喜欢

转载自blog.csdn.net/wellcoder/article/details/130073626