matlab 使用fir
时间: 2023-08-23 10:08:51 浏览: 40
MATLAB中使用FIR滤波器可以通过以下步骤完成:
1. 确定滤波器的设计要求,包括滤波器类型(低通、高通、带通等)、截止频率、滤波器阶数等。
2. 使用`fir1`函数设计FIR滤波器。该函数的语法如下:
```
b = fir1(N, Wn, type)
```
其中,N是滤波器的阶数,Wn是归一化的截止频率(在0到1之间),type是滤波器类型(如'low'表示低通滤波器)。
3. 将待滤波的信号传入`filter`函数进行滤波。该函数的语法如下:
```
y = filter(b, 1, x)
```
其中,b是FIR滤波器系数,x是待滤波的信号。
下面是一个简单的示例,演示如何使用FIR滤波器对信号进行低通滤波:
```matlab
% 设计FIR低通滤波器
fs = 1000; % 采样率
fc = 100; % 截止频率
N = 50; % 滤波器阶数
Wn = fc / (fs/2);
b = fir1(N, Wn, 'low');
% 生成测试信号
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + sin(2*pi*150*t); % 50Hz和150Hz的正弦信号求和
% 对信号进行滤波
y = filter(b, 1, x);
% 绘制原始信号和滤波后的信号
subplot(2,1,1);
plot(t, x);
xlabel('时间');
ylabel('幅值');
title('原始信号');
subplot(2,1,2);
plot(t, y);
xlabel('时间');
ylabel('幅值');
title('滤波后的信号');
```
上述代码首先使用`fir1`函数设计了一个50阶的低通滤波器,截止频率为100Hz。接着生成了一个包含50Hz和150Hz正弦信号的测试信号,并使用`filter`函数对其进行滤波。最后,绘制了原始信号和滤波后的信号的时域波形图。