clear
clc
close all
% 生成衰减曲线带有随机信号
fs = 50; % 采样率
t = 0:1/fs:100; % 时间向量,总时长为5秒
signal = exp(-0.05* t).*sin(t)+0.05*rand(size(t)); % 衰减曲线带有随机信号
% 绘制原始曲线
figure;
subplot(2,2,1);
plot(t, signal);
title('原始曲线');
xlabel('时间 (秒)');
ylabel('振幅');
% 计算原始曲线的功率谱密度
subplot(2,2,2);
[p_orig, f_orig] = pwelch(signal, [], [], [], fs);
plot(f_orig, 10*log10(p_orig));
title('原始曲线功率谱密度');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');
% 对曲线进行滤波
cutoff_frequency = 1; % 截止频率
order = 5; % 滤波器阶数
[b, a] = butter(order, cutoff_frequency/(fs/2), 'low'); % 低通滤波器设计
filtered_signal = filter(b, a, signal);
% 绘制滤波后的曲线
subplot(2,2,3);
plot(t, filtered_signal);
title('滤波后曲线');
xlabel('时间 (秒)');
ylabel('振幅');
% 计算滤波后曲线的功率谱密度
subplot(2,2,4);
[p_filtered, f_filtered] = pwelch(filtered_signal, [], [], [], fs);
plot(f_filtered, 10*log10(p_filtered));
title('滤波后功率谱密度');
xlabel('频率 (Hz)');
ylabel('功率谱密度 (dB/Hz)');