衰减时程曲线

本文通过Matlab代码展示了如何生成衰减曲线并添加随机信号,随后进行低通滤波,比较了滤波前后信号的功率谱密度变化。
摘要由CSDN通过智能技术生成

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)');

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值