当前位置: 首页 > news >正文

补偿 FIR 滤波器引入的延迟

补偿 FIR 滤波器引入的延迟

对信号进行滤波会引入延迟。这意味着相对于输入,输出信号在时间上有所偏移。此示例向您说明如何抵消这种影响。

有限冲激响应滤波器经常将所有频率分量延迟相同的时间量。这样,我们就很容易通过对信号进行时移处理来针对延迟进行校正。

以 500 Hz 的频率对心电图读数采样,采样时间为 1 秒。添加随机噪声。重置随机数生成器以获得可再现性。

Fs = 500;
N = 500;
rng defaultxn = ecg(N)+0.25*randn([1 N]);
tn = (0:N-1)/Fs;

使用滤波器阻挡 75 Hz 以上的频率,以消除一部分噪声。使用 designfilt 设计一个阶数为 70 的滤波器。

nfilt = 70;
Fst = 75;d = designfilt('lowpassfir','FilterOrder',nfilt, ...'CutoffFrequency',Fst,'SampleRate',Fs);

对信号进行滤波并绘图。与原始信号相比,结果更平滑,但存在滞后。

xf = filter(d,xn);plot(tn,xn)
hold on, plot(tn,xf,'-r','linewidth',1.5), hold off
title 'Electrocardiogram'
xlabel 'Time (s)', legend('Original Signal','Filtered Signal')

使用 grpdelay 检查滤波器造成的延迟是否等于滤波器阶数的一半。

grpdelay(d,N,Fs)

delay = mean(grpdelay(d))
delay = 35

对滤波后的信号进行时移以对齐数据。删除信号的前 delay 个采样。删除原始采样和时间向量的最后 delay 个采样。

tt = tn(1:end-delay);
sn = xn(1:end-delay);sf = xf;
sf(1:delay) = [];

对信号绘图,并验证它们是否对齐。

plot(tt,sn)
hold on, plot(tt,sf,'-r','linewidth',1.5), hold off
title 'Electrocardiogram'
xlabel('Time (s)'), legend('Original Signal','Filtered Shifted Signal')

另请参阅

designfilt | filter | filtfilt | grpdelay

相关主题

  • 补偿 IIR 滤波器引入的延迟
  • 数字滤波实践介绍

http://www.lryc.cn/news/224699.html

相关文章:

  • 图数据库Neo4j详解
  • 系列一、Shiro概述
  • SpringCloudAlibaba——Sentinel
  • Java编写简易rabbitmq生产者与消费者
  • 3.0.3版vsftpd所支持的FTP命令
  • OTA包添加自定义内容
  • Luatos Air700 改变BL0942串口波特率
  • 不可忽视的国外服务器地址IP选择指南
  • C语言 预处理详解
  • c++ async 使用详解,创建异步任务的多种方法
  • 万物皆数——用matlab求解二阶微分方程
  • jmeter接口自动化部署jenkins教程
  • 前端js实现将数组对象组装成自己需要的属性,或者去掉对象中不必要的属性
  • MeterSphere 任意文件读取漏洞(CVE-2023-25814)
  • 设计模式-01-单例设计模式
  • 霍尔电流传感器如何进行可靠性测试?主要应用在哪些领域?
  • pandas按行按列遍历Dataframe的三种方式
  • Api接口如何防止被刷?
  • Django——orm模块创建表关系
  • Django知识点
  • 基于单片机设计的智能风扇(红外线无线控制开关调速定时)
  • k8s报错pause 3.2 解决方案
  • 基于遗传算法的电器分类,基于GA的电器分类
  • 某XX自考小程序的AES加密分析
  • 加密算法笔记
  • Sa-Token拦截全部接口必须登录-然后自定义注解来匿名登录-作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下:
  • 公司企业端口映射
  • gitlab安装和使用
  • 【论文阅读】DALL·E: Zero-Shot Text-to-Image Generation
  • 说一下 toRef、toRefs,以及他们的区别