时域信号高通和低通滤波器matlab代码
时间: 2023-07-26 16:25:05 浏览: 219
以下是在Matlab中实现时域信号的高通和低通滤波器的示例代码:
1. 高通滤波器
```matlab
% 设计一阶高通滤波器
fc = 100; % 截止频率
fs = 1000; % 采样频率
w = 2 * pi * fc / fs; % 截止频率对应的角频率
alpha = (1 - sin(w)) / cos(w); % 滤波器参数
b = [alpha, -alpha]; % FIR滤波器系数
a = [1, -(1 - alpha)]; % FIR滤波器系数
% 生成测试信号
t = 0:1/fs:1-1/fs;
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*250*t);
% 滤波
y = filter(b, a, x);
% 绘制结果
subplot(2,1,1);
plot(t, x);
title('原始信号');
subplot(2,1,2);
plot(t, y);
title('高通滤波后的信号');
```
2. 低通滤波器
```matlab
% 设计一阶低通滤波器
fc = 100; % 截止频率
fs = 1000; % 采样频率
w = 2 * pi * fc / fs; % 截止频率对应的角频率
alpha = sin(w) / (2 - cos(w)); % 滤波器参数
b = alpha * [1, 1]; % FIR滤波器系数
a = [1, -(1 - alpha)]; % FIR滤波器系数
% 生成测试信号
t = 0:1/fs:1-1/fs;
x = sin(2*pi*50*t) + sin(2*pi*150*t) + sin(2*pi*250*t);
% 滤波
y = filter(b, a, x);
% 绘制结果
subplot(2,1,1);
plot(t, x);
title('原始信号');
subplot(2,1,2);
plot(t, y);
title('低通滤波后的信号');
```
以上代码示例仅供参考,具体的滤波器设计参数和滤波器类型需要根据实际应用情况进行调整。
阅读全文