基于Wi-Fi CSI的摔倒检测(三):CSI 数据降噪
14997 打赏
技术凯 2020-12-21 18:20:26

  由于巴特沃斯滤波器具有通频带内最平坦的特性,且在正频率范围内是随频率升高而单调下降的,3DB不变特性等等优良特性使得巴特沃斯滤波器是在数字信号处理中最常用的滤波器之一。所以我们在考虑降噪时首先考虑巴特沃斯低通滤波器。   在使用Butterworth 低通滤波器之前我们简单介绍一下数字滤波器的原理。   首先输入和输出都是数字信号,通过特定的数学算法或者运算关系或是一种数字式处理设备,改变按输入信号所含频率成分的相对比例或滤除某些频率成分的数字器件或者程序。数字滤波器是一个线性时不变系统(LSI)。数字滤波器的设计是已知它的频率特性H(e^jw),求它的系统函数H(z)或单位脉冲响应h(n)。完全实现一个理想频率特性的理想滤波器在理论上确实可以做到,但是由于实际情况的限制,实现起来很困难。所以实际的滤波器是逼近理想滤波器。 滤波器阶数越大越逼近理想滤波器但伴随着运算成本就越大,由于基于WiFi CSI的摔倒检测是一个实时性的检测程序,所以在满足降噪要求时我们尽可能要使得滤波器的阶数更低。 MATLAB 自带函数butter 就是用来设计巴特沃斯滤波器的 。 [B,A] = BUTTER(order,Wn,'high') ---用来设计高通滤波器 [B,A] = BUTTER(order,Wn,'low') designs a lowpass filter.—设计低通滤波器 [B,A] = BUTTER(order,Wn)—如果没有指示types 则表示设计带通滤波器。

其中order为滤波器阶数,wn是自然频率,也称归一化的截止频率。Wn=截止频率x2/采样频率。根据要求设计后的滤波器参数返回为B,A。 得到滤波器系数后,就可以直接用了。y=filter(B,A,x)。

巴特沃斯低通滤波器处理原始信号代码如下:

hfc = 175; %截止频率
lfc = 0;
fs = 1000; %采样频率
order = 25;

[b,a] = butter(order, hfc/(fs/2));
figure(3)
freqz(b,a)

dataIn = randn(1000,1);
dataOut = filter(b,a,y);
figure(4)
subplot(2,1,1)
plot(y)
title('original');
axis([0 1000 5 25]);
subplot(2,1,2)
plot(dataOut)
title('afterbutterworth');

结果如图: 滤波器的幅频响应和相频响应如下: 巴特沃斯高通滤波器的代码如下:

hfc =300; %截止频率
lfc = 175;
fs = 1000; % 采样频率
order = 15;

[b,a] = butter(order,hfc/(fs/2),'high'); 
figure(3)
freqz(b,a)

dataIn = randn(1000,1);
dataOut = filter(b,a,y);
figure(4)
subplot(2,1,1)
plot(y)
title('original');
axis([0 1000 5 25]);
subplot(2,1,2)
plot(dataOut)
title('afterbutterworth');

结果如图: 高通滤波器的幅频响应: 巴特沃斯带通滤波器代码如下:

hfc =200; 
lfc = 50;
fs = 1000;
order = 15;

[b,a] = butter(order,[lfc/(fs/2) hfc/(fs/2)]); 
figure(3)
freqz(b,a)

dataIn = randn(1000,1);
dataOut = filter(b,a,y);
figure(4)
subplot(2,1,1)
plot(y)
title('original');
axis([0 1000 5 25]);
subplot(2,1,2)
plot(dataOut)
title('afterbutterworth');

带通滤波器处理前后后结果对比: 带通滤波器的幅频响应:

  通过对比我们可以发现,低通滤波器可以在滤除噪声的前提下很好的保留信号的特征,所以我们选择巴特沃斯低通滤波器。但是由于巴特沃斯滤波器是基于傅里叶变换的,其变换分解的基函数是周期函数。但是由于实际情况下我们所使用的信号是随机信号,所以下节我们采用更适合本信号处理的离散小波变换对CSI信号进行进一步处理。但是尽管巴特沃斯滤波器的性能并不是最好的,但是也是数据处理中必不可少的一环。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
评论
0个
时间排序
内容存在敏感词
    0 条记录 第 0 /
    相关专栏
    打赏作者
    易百纳技术社区
    技术凯
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    活动规则
    • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
    • 2.发布在平台的专栏需为原创技术专栏,且社区作为首次发布的平台,在其他平台发布需注明为转载
    • 3.周任务中的专栏需要达到一定质量才会被计入完成总数中。具体以平台审核为准,如有疑问,可联系社区客服(ebainacs)。
    • 4.专栏/资料的任务以审核通过的篇数为准,每个任务数量不做累计。
    • 5.任务完成后,现金奖励直接打款到微信账户EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换。
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区