19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)

1、中值滤波:medfilt1()函数

说明:一维中值滤波

1)语法

语法1:y = medfilt1(x) 将输入向量x应用3阶一维中值滤波器。

语法2:y = medfilt1(x,n) 将一个n阶一维中值滤波器应用于x。

语法3:y = medfilt1(x,n,[],dim)  指定过滤器操作的维度dim。

2)参数说明

x:输入信号    y:输出信号   dim:筛选维度 

3)NaN(信号数据缺失)处理

 'includenan' :返回过滤信号,以便包含NaN的任何段的中值也是NaN。

'omitnan'  返回过滤后的信号,使得包含 NaN 的任何段的中值为非 NaN 值的中值。如果一个段的
所有元素都是 NaN,则结果为 NaN终点过滤,指定为'零填充'或'截断'。

'zeropad' 在端点之外,信号被视为零。 'truncate' 在接近信号边缘时计算较小段的中位数。

 2、中值滤波实验

1)通过中值滤波进行降噪

代码

fs = 200;%频率
t = 0:1/fs:2;
x = sin(2*pi*t*5)+0.25*sin(2*pi*t*80);
y = medfilt1(x,3);
plot(t,x,'-','color','r')
hold on;
plot(t,y,'-^','color','g')
legend('原始信号','滤波后信号')

视图效果 

2)带有尖峰和丢失样本的多通道信号中值滤波

说明:

生成一个由不同频率正弦波组成的双通道信号。在随机位置加入尖峰。在随机位置用NaN添加缺失样本。重置随机数生成器设置加入噪声位置。

多通道信号生成代码

rng('default')
n = 59;
x = sin(pi./[10 20]'*(1:n)+pi/6)';
spk = randi(100,9,1);
x(spk) = x(spk)*2;
x(randi(100,6,1)) = NaN;
plot(x,'color','r')
legend('信号1','信号2')

试图效果 

 

中值滤波效果对比

代码

rng('default')
n = 59;
x = sin(pi./[10 20]'*(1:n)+pi/6)';
spk = randi(100,9,1);
x(spk) = x(spk)*2;
x(randi(100,6,1)) = NaN;
plot(x,'color','r')
legend('信号1','信号2')
hold on;
y = medfilt1(x,8);
plot(y,'color','g')
legend('信号1中值滤波','信号2中值滤波')

试图效果 

 

信号缺失部分处理(NaN)

代码

y = medfilt1(x,4,'omitnan');
plot(y)

边缘滤波

代码

y = medfilt1(x,4,'omitnan','truncate');
plot(y)

视图效果 

3、 萨维茨基-戈雷滤波滤波器:sgolayfilt()

说明:萨维茨基-戈雷滤波

语法

语法1:y = sgolayfilt(x,order,framelen)  对向量 x 中的数据应用多项式阶数为 order、帧长度为
framelen 的萨维茨基-戈雷有限冲激响应 (FIR) 平滑滤波器。
语法2:y = sgolayfilt(x,order,framelen,weights) 指定在最小二乘最小化过程中要使用的加权向量。
语法3:y = sgolayfilt(x,order,framelen,weights,dim) 指定滤波器沿其运算的维度。

参数

x:输入信号 order:多项式阶数 framelen:帧长度 weights:加权数组 dim:要沿其滤波的维度

 1)稳态和瞬变萨维茨基-戈雷滤波器

萨维茨基-戈雷滤波器滤波代码

order = 4;%参数设置 可以根据需求设置
framelen = 13;
l = 40;
x = randn(l,1);
sgf = sgolayfilt(x,order,framelen);
plot(x,':')
hold on
plot(sgf,'.-')
legend('原信号','戈雷滤波信号')
hold on

视图效果 

2) 稳态萨维茨基-戈雷滤波器滤波代码

order = 4;%参数设置 可以根据需求设置
framelen = 13;
l = 40;
x = randn(l,1);
sgf = sgolayfilt(x,order,framelen);
plot(x,':')
hold on
plot(sgf,'.-')
% legend('原信号','戈雷滤波信号')
hold on
m = (framelen-1)/2;
B = sgolay(order,framelen);
steady = conv(x,B(m+1,:),'same');%原信号与过滤信号卷积滤波 得到稳态部分
plot(steady)
legend('原信号','戈雷滤波信号','稳态部分')

视图效果

 3)启动瞬态和终止瞬态代码

order = 4;%参数设置 可以根据需求设置
framelen = 13;
l = 40;
x = randn(l,1);
sgf = sgolayfilt(x,order,framelen);
plot(x,':')
hold on
plot(sgf,'.-')
% legend('原信号','戈雷滤波信号')
hold on
m = (framelen-1)/2;
B = sgolay(order,framelen);
steady = conv(x,B(m+1,:),'same');%原信号与过滤信号卷积滤波 得到稳态部分
plot(steady)
legend('原信号','戈雷滤波信号','稳态部分')ybeg = B(1:m,:)*x(1:framelen);%启动瞬态
yend = B(framelen-m+1:framelen,:)*x(l-framelen+1:l);%终止瞬态
cmplt = steady;
cmplt(1:m) = ybeg;
cmplt(l-m+1:l) = yend;plot(cmplt)
legend('原信号','戈雷滤波信号','稳态部分','完整信号')

视图效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年项目任务管理软件大盘点:12款值得一试的主流工具

12款优秀的项目任务管理软件:PingCode、Worktile、AIrTable、ClickUp、Teambition、Asana、Todoist、TAPD、Monday.com、Notion、Microsoft Project、Trello。 任务管理软件对于生活繁忙的人来说极为重要。它帮助用户有效跟踪他们需要完成的各项任务,包括…

牛客热题:没有重复数字的全排列

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:没有重复数字的全排列题目链接方…

LeetCode - 二分查找(Binary Search)算法集合(Python)[左右边界|旋转数组|双列表]

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/139419653 二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。其基本原理是将待搜索的区间分成两半&am…

小猪APP分发:如何轻松进行在线封装APP

你是否曾经因为需要封装一个新版本的APP而感到头疼?传统的封装过程往往繁琐且耗时。但是,别担心,现在有了“小猪APP分发”,一切变得如此简单。 小猪APP分发www.appzhu.net是一个专门提供在线APP封装服务的平台。无论你是开发者还…

Thingsboard物联网网关接入ThingsBoard物联网平台的操作说明

本文包含关于如何配置ThingsBoard 平台和连接钡铼技术R40设备的说明。ThingsBoard平台是一个用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准MQTT协议实现设备连接。ThingsBoard结合了可扩展性、容错性和性能,因此您永远不会丢失数据。 4G L…

因为侵权只能重装系统后的必备软件List

前因:自从上次被adobe警告了后,又被source insight警告了… 正好得升级系统,不如直接清清爽爽的重装系统吧,一切回到解放前,重新配置电脑, 该文记载了我办公必备的宝贝软件们 1、Firefox-火狐浏览器&#x…

18、matlab信号生成与预处理--剔除异常值:hampel()函数

1、语法 说明:对输入向量x应用Hampel滤波器来检测和去除异常值。 1)y hampel(x) 参数:x:输入信号 y:预处理的输出信号 对于x的每个样本,函数计算由样本及其周围的六个样本组成的窗口的中位数,每边三…

PHPStudy(xp 小皮)V8.1.1 通过cmd进入MySQL命令行模式

PHPStudy是一个PHP开发环境集成包,可用在本地电脑或者服务器上,该程序包集成最新的PHP/MySql/Apache/Nginx/Redis/FTP/Composer,一次性安装,无须配置即可使用。MySQL MySQL是一个关系型数据库管理系统,由瑞典 MySQL A…

元宇宙NFG结合IPO线上营销模型合理降税

在当今快速演进的互联网和区块链技术背景下,我们见证了从移动端购物到区块链热潮,再到如今市场竞争日趋激烈的变革。尤其是在2024年这个关键节点,许多平台为了吸引用户,推出了各种创新的商业模式。然而,如何在这样的环…

ssh远程转发22端口,使用shell工具进行连接|使用服务器地址ssh连接本地ubuntu|端口映射

☆ 问题描述 我在内网主机中,使用docker创建了多个虚拟机,我希望能通过我的公网ip服务器端口进行shell访问 ★ 解决方案 我创建一个新的虚拟机为例 1. 创建并打开容器 docker run -itd --name test ubuntu2. 进入容器 docker exec -it test /bin/b…

react 中使用 swiper

最近项目中需要用到轮播图,我立马想起了 swiper ,那么本文就来带大家体验一下如何在 React 中使用这个插件,使用的是 函数组 hooks 的形式。 需求非常简单,就是一个可以自动播放、点击切换的轮播图(跑马灯&#xff0…

心理咨询系统|心理咨询系统成品开发功能

心理咨询系统开发后端设计是一个复杂且精细的过程,涉及多个关键领域的专业知识和技术。本文将详细探讨心理咨询系统开发后端设计的各个方面,包括系统架构、数据库设计、接口开发、安全性保障以及性能优化等。 首先,我们来谈谈系统架构。在心理…

小白跟做江科大32单片机之光敏传感器控制蜂鸣器

代码部分 1.思路 通过光敏电阻,控制蜂鸣器的发声 2.butter.h代码 #ifndef _BUTTER__H #define _BUTTER__H void butter_Init(void); void butter_on(void); void butter_off(void); #endif 3.butter.c代码 #include "stm32f10x.h" void butter…

【vue】@、@/、../和./的区别

:表示vue语法中v-on的简写;绑定事件的专用格式。当事件触发的时候,函数才会来调用; /:在build文件夹下webpack.base.conf.js找到,便能知道代表什么了; 这里指向src文件夹 . /:表示当前目录下&…

水位雨量监测站解析

水位雨量监测站是一种集水位和雨量监测功能于一体的重要气象和水文监测设备。其设计和功能旨在实时、准确地监测和记录河流水位、降雨量等关键数据,为气象、水文、环保等领域提供重要的信息支持。以下是关于水位雨量监测站的详细扩写: 系统组成 水位雨…

SpringBoot快速部署(1)—docker不使用nginx

方法一:使用 link docker run -d --restartalways -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD123456 -e MYSQL_DATABASEqr_code_test -v /mnt/docker/files/qr_board_system/qr_code_test.sql:/docker-entrypoint-initdb.d/database.sql mysql:5.6 docker r…

MyBatis快速入门教程

文章目录 一、介绍什么是持久层为什么要学MyBatis? 二、如何获得MyBatis?三、第一个Mybatis程序数据库导入maven依赖bean 实体类dao持久层resources编写对应的映射文件 mybatis主配置文件测试类运行遇到报错Could not find resource com/qibu/dao/IUserD…

超越Devin!姚班带队,他们创大模型编程新世界纪录

超越Devin!SWEBench排行榜上迎来了新玩家—— StarShip CodeGen Agent,姚班带队初创公司OpenCSG出品,以23.67%的成绩获得全球第二名的成绩。 同时创造了非GPT-4o基模的最高纪录(SOTA)。 我们都知道,SWEBe…

TinyMCE 富文本编辑器:打造个性化编辑体验

本文由ScriptEcho平台提供技术支持 项目地址:传送门 TinyMCE 富文本编辑器:打造个性化编辑体验 应用场景介绍 TinyMCE 是一款功能强大的富文本编辑器,广泛应用于网站内容管理、博客创作、在线文档编辑等场景。它提供了一系列丰富的编辑功…

微服务学习Day8-Sentinel

文章目录 Sentinel雪崩问题服务保护框架Sentinel配置 限流规则快速入门流控模式流控效果热点参数限流 隔离和降级FeignClient整合Sentinel线程隔离(舱壁模式)熔断降级 授权规则及规则持久化授权规则自定义异常结果持久化 Sentinel 雪崩问题 服务保护框架…