用BUTTER函数设计一个数字低通滤波器matlab
时间: 2024-03-21 19:43:27 浏览: 92
好的,下面是用 MATLAB 中的 BUTTER 函数设计数字低通滤波器的步骤:
1. 确定采样率 Fs 和截止频率 Fc。
2. 计算归一化截止频率 Wn = 2*Fc/Fs。
3. 使用 BUTTER 函数设计数字低通滤波器,语法如下:
[b, a] = butter(n, Wn, 'low')
其中,n 是滤波器的阶数,Wn 是归一化截止频率,'low' 表示低通滤波器。b 和 a 是滤波器的系数。
4. 使用 FILTER 函数将滤波器应用于信号,语法如下:
y = filter(b, a, x)
其中,b 和 a 是滤波器系数,x 是输入信号,y 是输出信号。
需要注意的是,BUTTER 函数设计的是归一化数字滤波器,需要根据实际情况进行归一化,如将截止频率除以采样率等。
以下是一个示例代码,用于设计一个三阶数字低通滤波器并将其应用于一个信号:
```matlab
% 设计数字低通滤波器
fs = 1000; % 采样率
fc = 100; % 截止频率
wn = 2*fc/fs; % 归一化截止频率
n = 3; % 滤波器阶数
[b, a] = butter(n, wn, 'low'); % 设计数字低通滤波器
% 生成信号并应用滤波器
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*120*t); % 生成信号
y = filter(b, a, x); % 应用滤波器
% 绘制原始信号和滤波后的信号
figure;
subplot(2,1,1); plot(t,x); xlabel('Time (s)'); ylabel('Amplitude'); title('Original Signal');
subplot(2,1,2); plot(t,y); xlabel('Time (s)'); ylabel('Amplitude'); title('Filtered Signal');
```
希望这个示例代码能够帮助你了解如何使用 BUTTER 函数设计数字低通滤波器。
阅读全文