指数高通滤波器”、“巴特沃斯高通滤波器”的matlab代码
时间: 2023-08-05 21:05:58 浏览: 58
以下是指数高通滤波器和巴特沃斯高通滤波器在MATLAB中的代码示例:
指数高通滤波器:
```matlab
% 采样频率
fs = 1000;
% 截止频率
fc = 10;
% 指数高通滤波器的时间常数
tau = 1/(2*pi*fc);
% 滤波器系数
alpha = tau/(tau+1/fs);
% 生成随机信号
t = 0:1/fs:1;
x = sin(2*pi*50*t)+0.5*sin(2*pi*200*t)+randn(size(t));
% 滤波
y = zeros(size(x));
y(1) = x(1);
for n=2:length(x)
y(n) = alpha*y(n-1) + alpha*(x(n)-x(n-1));
end
% 绘图
figure;
plot(t,x,'b',t,y,'r');
legend('原始信号','滤波后信号');
xlabel('时间/s');
ylabel('幅值');
```
巴特沃斯高通滤波器:
```matlab
% 采样频率
fs = 1000;
% 截止频率
fc = 10;
% 滤波器阶数
order = 4;
% 计算滤波器系数
[b,a] = butter(order,2*pi*fc,'high');
% 生成随机信号
t = 0:1/fs:1;
x = sin(2*pi*50*t)+0.5*sin(2*pi*200*t)+randn(size(t));
% 滤波
y = filter(b,a,x);
% 绘图
figure;
plot(t,x,'b',t,y,'r');
legend('原始信号','滤波后信号');
xlabel('时间/s');
ylabel('幅值');
```
以上代码仅供参考,实际应用时需要根据具体情况进行调整。