fir高通滤波器matlab程序
时间: 2023-08-03 17:06:37 浏览: 48
下面是一个简单的FIR高通滤波器的MATLAB程序:
```matlab
% 设计FIR高通滤波器
% 采样频率为8kHz,通带截止频率为500Hz,阻带截止频率为200Hz
% 滤波器阶数为100
fs = 8000; % 采样频率
fc = 500; % 通带截止频率
fp = 200; % 阻带截止频率
N = 100; % 滤波器阶数
% 计算滤波器系数
h = fir1(N, fc/(fs/2), 'high');
% 绘制滤波器的幅频特性
[H, f] = freqz(h, 1, 1024, fs);
figure;
plot(f, 20*log10(abs(H)));
xlabel('频率(Hz)');
ylabel('幅值(dB)');
title('FIR高通滤波器的幅频特性');
% 生成测试信号
t = 0:1/fs:1;
x = sin(2*pi*100*t) + sin(2*pi*300*t);
% 滤波
y = filter(h, 1, x);
% 绘制原始信号和滤波后的信号
figure;
subplot(2,1,1);
plot(t, x);
xlabel('时间(s)');
ylabel('幅值');
title('原始信号');
subplot(2,1,2);
plot(t, y);
xlabel('时间(s)');
ylabel('幅值');
title('滤波后的信号');
```
在这个程序中,我们使用了MATLAB内置的`fir1`函数来计算滤波器的系数。`fir1`函数的第一个参数是滤波器的阶数,第二个参数是通带截止频率的比例(在这里,我们将其设置为采样频率的一半),第三个参数是滤波器类型(在这里,我们选择了“高通滤波器”)。然后,我们使用`freqz`函数计算滤波器的幅频特性,并绘制出来。接下来,我们生成了一个测试信号(在这里,我们使用了两个正弦波),并使用MATLAB的`filter`函数来对其进行滤波。最后,我们绘制出原始信号和滤波后的信号。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)