【matlab 代码的python复现】 Matlab实现的滤波器设计实现与Python 的库函数相同实现Scipy

实现一个IIR滤波器的设计

背景

Matlab 设计的滤波器通常封装过于完整,虽然在DSP中能够实现更多功能的滤波器设计但是很难实现Python端口的实现。
我们以一段原始的生物电信号EEG信号进行处理。

EEG信号

1.信号获取

EEG信号通常通过头皮电极,经过多通道采样芯片采样,将获取到的微弱的头皮模拟电信号,转化为数字信号。获取到的数字信号在处理,通常需要数字信号处理技术与脑机接口技术。例如,滤波、通道选择、频谱分析等。我们通过电极帽获取到的数字信号,按照电路的放大比例进行的放大。因此获取到的信号可能是存在基线漂移的信号,或者非零点的信号。这些都是相对于设备采集来说的。但是信号中存在的特征往往存在是主要的。我们复现Matlab的高质量设计的滤波器,python实现更有助于工程实现。

2.Matlab滤波器设计函数

打开Matlab的信号分析器。这是一个功能强大的信号可视化APP,可以完成简单的信号的预处理的工作。
在这里插入图片描述
导入的是一个1000个采样点的EEg原始信号,这个原始信号设置采样频率为250Hz。经过分析我们得到该信号幅值位于-900,并非处于基线附近因此我们认识到,这个信号存在基线漂移问题。我们打算通过高通或者带通滤波器实现解决。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/21b8045c82f6468b833cdb0af601be11.png

1点击显示按钮中的频谱和时频率图像,有助于我们直接观察信号的原始成分。

频谱显示的是功率谱图像,区别是频谱图他更加的光滑。具体区别见这里功率谱,功率、功率密度http://t.csdnimg.cn/Qzldh。

能看到低频能量特别高,还有50Hz、100Hz的中间的工频噪声,以及高频噪声。

2点击分析器,设置带通滤波器
在这里插入图片描述
3设置滤波范围6,48Hz
在这里插入图片描述

此时此刻我们观察到这个波形是去除基线漂移并且能过去除高频的波形。位于0基线附近。

点击分析器生成函数,matlab 在工作台生成一个预处理的函数。
在这里插入图片描述
在这里插入图片描述

data =load("output.mat")
data2 =squeeze(data.data(1,1,1,:));

% 定义采样频率 (Hz)
fs = 250;

% 定义采样点数
num_samples = 1000;

% 计算采样周期 (seconds)
Ts = 1/fs;

% 创建时间向量tx,范围从0到( num_samples - 1 ) * Ts
tx = (0 : num_samples - 1) * Ts;
y = preprocess(data2,tx);
plot(y)
hold on
plot(data2)

运行结果显示出来/在这里插入图片描述
这是一个我认为完美的信号。

通过了解Matlab使用的是IIR auto设计的滤波系数。因此我尝试用Python实现。

3 基于Python 的Scipy.io实现滤波

def preprocess_input(x, tx):
    """
    预处理输入信号 x,根据时间向量 tx 进行带通滤波。

    参数:
        x (array_like): 输入信号数据.
        tx (array_like): 时间向量(单位:秒).

    返回:
        array_like: 经过带通滤波处理后的信号数据.
    """
    # 计算平均采样率
    import numpy as np
    from scipy.signal import ellip, butter, lfilter, freqz, iirdesign, cheby2, buttord, cheb2ord

    Wpass1, Wpass2 = (0.0480, 0.3840)
    Wstop1, Wstop2 = (0.0405, 0.3915)
    Apass, Astop = 0.1, 60

    b, a = iirdesign(wp=[Wpass1, Wpass2], ws=[Wstop1, Wstop2],
                     gpass=Apass, gstop=Astop,
                     analog=False, ftype='elliptic')
    # 设计滤波器
    y = filtfilt(b, a, x)

    return y


# 示例使用参数
import numpy as np
data =np.load(r"2024-04-09 14_36_5_eegdata.npy")
print(data.shape

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/564957.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

35K的鸿蒙音视频开发岗位面经分享~

一个月前,阿里云在官网音视频终端 SDK 栏目发布适配 HarmonyOS NEXT 的操作文档和 SDK,官宣 MediaBox 音视频终端 SDK 全面适配 HarmonyOS NEXT。 此外,阿里云播放器 SDK 也在华为开发者联盟官网鸿蒙生态伙伴 SDK 专区同步上线,面…

OpenTelemetry-1.介绍

目录 1.是什么 2.为什么使用 OpenTelemetry 3.数据类型 Tracing Metrics Logging Baggage 4.架构图 5.核心概念 6.相关开源项目 ​编辑 7.分布式追踪的起源 8.百花齐放的分布式追踪 Zipkin Skywalking Pinpoint Jaeger OpenCensus OpenTracing 9.Openteleme…

「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!

4月26日(周五),PolarDB开源社区联合康恩贝将共同举办开源数据库技术沙龙! 时间:4月26日13:30 地点:浙江省杭州市滨江区滨康路568号康恩贝中心2楼 活动亮点 浙江英诺珐医药有限公司信息经理 朱常青 分享《…

数据结构-二叉树-堆

一、物理结构和逻辑结构 在内存中的存储结构,逻辑结构为想象出来的存储结构。 二、完全二叉树的顺序存储结构 parent (child - 1)/2 leftchild 2*parent 1; rightchild 2*parent 2 上面的顺序结构只适合存储完全二叉树。如果存储,会浪费很多的空…

清华大学:序列推荐模型稳定性飙升,STDP框架惊艳登场

获取本文论文原文PDF,请公众号留言:论文解读 引言:在线平台推荐系统的挑战与机遇 在线平台已成为我们日常生活中不可或缺的一部分,它们提供了丰富多样的商品和服务。然而,如何为用户推荐感兴趣的项目仍然是一个挑战。…

对接浦发银行支付(八)-- 对账接口

一、背景 本文不是要讲述支付服务的对账模块具体怎么做,仅是介绍如何对接浦发银行的对账接口。 也就是说,本文限读取到对账文件的内容,不会进一步去讲述如何与支付平台进行对账。 如果要获取商户的对账单,需要遵循以下步骤&…

使用自购服务器部署RustDesk - 远程桌面服务

服务器官网:雨云 - 新一代云服务提供商 推荐购买宿迁主机,使用NAT网络不购买独立IP,国内主机独立IP价格很贵,这种方式虽然不能省略端口号,但是可以确保访问速度很快,NAT给的10个端口基本够用; …

探索RadSystems:低代码开发的新选择(二)

系列文章目录 探索RadSystems:低代码开发的新选择(一)🚪 文章目录 系列文章目录前言一、RadSystems Studio是什么?二、用户认证三、系统角色许可四、用户记录管理五、时间戳记录总结 前言 在数字化时代,低…

路由过滤,路由策略小实验

目录 一,实验拓扑: 二,实验要求: 三,实验思路: 四,实验过程: 1,IP配置: 2、R1 和R2 运行 RIPv2,R2,R3 和R4运行 oSPF&#xff0…

8款有效删除Android锁屏的手机解锁软件

为了保护重要数据,许多手机用户倾向于使用图案锁、密码、指纹甚至面部识别来锁定他们的设备。但有时,他们无法解锁手机,因为忘记了复杂的密码、多次重复错误的锁定图案、或者手机被恶意代码攻击等。 8款有效删除Android锁屏的手机解锁软件 那…

光伏无人机勘探技术应用分析

光伏无人机勘探与传统勘探想必,具有智能化作业、测控精度高、环境适应性强等明显优势;卫星勘探辅助其能更快速甚至实时完成测绘拼图;在进行勘察时,可根据需要自由更换机载设备;自动诗经建模使数据更直观,工…

在Rockey操作系统上安装Asterisk和DAHDI的详细步骤,拷贝粘贴就能用

目录 RockyAsterisk验证 Rocky Centos之后,Rocky和Alma Linux接棒前行。今天我们选择Rocky Linux操作系统来介绍,如何安装Asterisk和DAHDI等开源软件。 Asterisk 首先我们下载DAHDI 3.2 和Asterisk,在本文下载连接里有。下载到Rocky操作系…

腾讯云服务器,部署mysql数据库后无法远程访问?

一,首先确定自己部署的数据库,是否可以正常登录,验证部署是否是否成功 mysql -u root -p二、放开mysql远程访问权限,依次输入这些命令 create user root% identified with mysql_native_password by xxxxx; grant all privilege…

AI预测福彩3D第9套算法实战化测试第1弹2024年4月22日第1次测试

经过前面多套算法的测试,总结了一些规律,对模型优化了一些参数,比如第8套算法的测试,7码的命中率由最开始的20%提高到了50%。虽然命中率有了很大的提高,但是由于咱们之前的算法只是为了测试和记录,提供的方…

软考134-上午题-【软件工程】-进度管理

一、甘特图(了解) 1-1、定义 Gantt图是一种简单的水平条形图,它以日历为基准描述项目任务。 水平轴表示日历时间线(如时、天、周、月和年等),每个条形表示一个任务,任务名称垂直地列在左边的列中,图中水…

67条tips实战案例渗透测试大佬的技巧总结

67条tips实战案例渗透测试大佬的技巧总结。 Tips 1. 手动端口探测 nmap的-sV可以探测出服务版本,但有些情况下必须手动探测去验证 使用Wireshark获取响应包未免大材小用,可通过nc简单判断 eg. 对于8001端口,nc连接上去,随便输…

在Qt creator中使用多光标

2024年4月22日,周一下午 Qt Creator 支持多光标模式。 多光标模式允许你在同一时间在多个光标位置进行编辑,从而可以更快地进行一些重复性的编辑操作。 要启用多光标模式,请按住 Alt 键,并用鼠标左键在文本编辑器中选择多个光标…

目标检测——绝缘子数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

Spring Boot入门(20):轻松搞定多数据源配置,Spring Boot与Mybatis-Plus的完美结合!

前言 本文将介绍如何在Spring Boot框架下使用mybatis-plus实现多数据源配置。多数据源配置是一个常见的需求,在实际项目中也经常遇到,因此掌握多数据源配置的技巧是非常重要的。 摘要 本文将为大家介绍如何使用Spring Boot和mybatis-plus实现多数据源…

深度学习的炼金术:转化数据为黄金的秘密

深度学习的炼金术:转化数据为黄金的秘密 1 引言 在现代深度学习的壮阔疆域中,数据是王冠上耀眼的宝石,而性能优化则是锻造这顶王冠的炼金术。这份融合了数据和算法魔力的艺术,不仅仅依赖于强大的计算资源和复杂的网络结构&#x…