% 1. 导入数据
A=xlsread('baselinedata.xlsx'); %基线漂移明显的PPG信号
Fs=100; %采样频率,单位为Hz
% 2.IIR5Hz低通滤波,去高频噪声
A1=A(101:2148);
LA1=length(A1); %数据长度
tA1=(1:LA1)/Fs; %产生时间序列,A1的横坐标
% 2.1 对输入信号进行频率变换
A2=fft(A1,LA1); %计算傅立叶变换
ftA2=(2:LA1)*Fs/LA1; %产生频率序列,A2的横坐标,以Hz为单位
A2=A2(2:length(A2)); %去掉fft变换后异常的第一个数据
figure('Name','原始信号时频图');
subplot(2,1,1);
plot(tA1,A1);
xlabel('时间(s)');
ylabel('幅值');
title('原始信号时域波形');
subplot(2,1,2);
plot(ftA2,abs(A2)); %求得傅里叶变换后的A2振幅,abs:求绝对值
A=xlsread('baselinedata.xlsx'); %基线漂移明显的PPG信号
Fs=100; %采样频率,单位为Hz
% 2.IIR5Hz低通滤波,去高频噪声
A1=A(101:2148);
LA1=length(A1); %数据长度
tA1=(1:LA1)/Fs; %产生时间序列,A1的横坐标
% 2.1 对输入信号进行频率变换
A2=fft(A1,LA1); %计算傅立叶变换
ftA2=(2:LA1)*Fs/LA1; %产生频率序列,A2的横坐标,以Hz为单位
A2=A2(2:length(A2)); %去掉fft变换后异常的第一个数据
figure('Name','原始信号时频图');
subplot(2,1,1);
plot(tA1,A1);
xlabel('时间(s)');
ylabel('幅值');
title('原始信号时域波形');
subplot(2,1,2);
plot(ftA2,abs(A2)); %求得傅里叶变换后的A2振幅,abs:求绝对值

该博客详细介绍了如何在MATLAB中对包含基线漂移的PPG信号进行IIR5Hz低通滤波,以去除高频噪声。首先导入数据,然后计算傅立叶变换,接着设计并应用巴特沃斯滤波器,最后展示滤波前后的时频图,证明了滤波的有效性。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



