1、前言
在 MATLAB 中可以通过不同的函数和工具箱实现均值滤波、中值滤波、Butterworth 滤波和线性相位 FIR 滤波。以下是一些基本示例代码,演示如何在 MATLAB 中实现这些滤波器:
均值滤波:
img = imread('lena.jpg'); % 读取图像
filtered_img = imfilter(img, fspecial('average', [3 3])); % 应用3x3 均值滤波器
imshow(filtered_img); % 显示滤波后的图像
中值滤波
img = imread('lena.jpg'); % 读取图像
filtered_img = medfilt2(img, [3 3]); % 应用3x3 中值滤波
imshow(filtered_img); % 显示滤波后的图像
Butterworth 滤波: 示例代码处理一维信号:
x = randn(1,10000); % 生成随机信号
[b, a] = butter(6, 0.5); % 创建6阶 Butterworth 滤波器系数
filtered_signal = filter(b, a, x); % 应用滤波器
线性相位 FIR 滤波器: 示例代码处理一维信号:
Fs = 1000; % 采样频率
t = 0:1/Fs:1; % 时间向量