地震波信号滤波及matlab代码
时间: 2023-12-25 12:02:54 浏览: 87
地震波信号滤波是地震学中常用的信号处理方法,通过滤波可以去除噪声、强化信号等。常见的滤波方法包括低通滤波、高通滤波、带通滤波等。以下是matlab代码示例:
% 读取地震波信号
load('earthquake.mat');
signal = earthquake;
% 绘制原始地震波信号图像
figure;
subplot(2,1,1);
plot(signal);
title('原始地震波信号');
% 应用低通滤波器
fs = 1000; % 采样频率
fc = 100; % 截止频率
[b,a] = butter(4,fc/(fs/2),'low'); % 4阶巴特沃斯低通滤波器
filtered_signal = filter(b,a,signal);
% 绘制低通滤波后的地震波信号图像
subplot(2,1,2);
plot(filtered_signal);
title('低通滤波后的地震波信号');
% 应用高通滤波器
fc = 10; % 截止频率
[b,a] = butter(4,fc/(fs/2),'high'); % 4阶巴特沃斯高通滤波器
filtered_signal = filter(b,a,signal);
% 绘制高通滤波后的地震波信号图像
figure;
subplot(2,1,1);
plot(filtered_signal);
title('高通滤波后的地震波信号');
% 应用带通滤波器
fc1 = 10; % 低频截止频率
fc2 = 100; % 高频截止频率
[b,a] = butter(4,[fc1/(fs/2),fc2/(fs/2)],'bandpass'); % 4阶巴特沃斯带通滤波器
filtered_signal = filter(b,a,signal);
% 绘制带通滤波后的地震波信号图像
subplot(2,1,2);
plot(filtered_signal);
title('带通滤波后的地震波信号');