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

【小波去噪】【matlab】基于小波分析的一维信号滤波(对照组:中值滤波、均值滤波、高斯滤波)

链接1-傅里叶变换
链接2-傅立叶分析和小波分析间的关系
链接3-小波变换(wavelet transform)的通俗解释
链接4-小波基的选择

1.示例代码

function main_wavelet
clc
clear
close all
warning off
%% 1.信号生成
time_length = 10;%总时长,秒
sample_rate = 100;% 采样率,Hz
freq = 10; % 生成的信号的频率,Hz
t = linspace(0, time_length, time_length * sample_rate);  % 生成时间轴
signal = 2*sin(2 * pi * freq * t);% 生成正弦信号
noise = 0.5 * randn(size(signal));% 生成白噪声,高斯过程
noisy_signal = signal + noise;% 将正弦信号和噪声信号相加生成含噪采集数据figure(1)
plot(t,signal,'b-')
hold on
plot(t, noisy_signal,'r-');
hold on
plot(t, noise,'k-');
xlabel('Time (s)');
ylabel('Amplitude');
legend('原信号','含噪信号','噪声')% save('noise.mat','noisy_signal')
%% 2.小波变换
% 设置小波函数和变换阶数
wname = 'db4';  % 选用 Daubechies 4 小波
level = 2;      % 小波变换的阶数
% 进行小波变换
[C, L] = wavedec(noisy_signal, level, wname);
% 提取细节系数
D = detcoef(C, L, level); 
% 对细节系数进行阈值处理
sigma = median(abs(D)) / 0.6745;  % 计算阈值,robust estimator估计方法
D = wthresh(D, 'h', sigma);       % 硬阈值处理
% 重构信号
data_denoised = wrcoef('a', C, L, wname, level);%% 3.绘制结果
figure(3)
subplot(3,1,1); plot(t, noisy_signal,'b-'); title('原始信号(含噪声)');
subplot(3,1,2); plot(t,signal,'b-'); title('原始信号(无噪声)');
subplot(3,1,3); plot(t,data_denoised,'b-'); title('降噪后的信号');figure(4)
plot(t,signal,'b-')
hold on
plot(t,data_denoised,'r-')
legend('原始信号(无噪声)','降噪后的信号')

2.对比滤波器

作为对比,以下代码直接在第1节的main_wavelet.m之后运行即可
中值滤波、均值滤波、高斯滤波

%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 一维中值滤波
n=21;                % n为模板长度,值可以改变
y=medfilt1(noisy_signal,n);
figure(101)
plot(t,noisy_signal,'b-')
hold on
plot(t,y,'r-')
legend('中值滤波前的序列','中值滤波后的序列')
%% 一维均值滤波
n=5;                 % n为模板长度,值可以改变
mean=ones(1,n)./n;   % mean为1×n的模板,各数组元素的值均为1/n
y = conv(noisy_signal,mean);
y=y(1:length(y)-length(mean)+1);
figure(102);
plot(t,noisy_signal,'b-')
hold on
plot(t,y,'r-')
legend('均值滤波前的序列','均值滤波后的序列')
%% 一维高斯滤波
gau=[0.0009 0.0175 0.1295 0.3521 0.3521 0.1295 0.0175 0.0009];   % 标准差为1时的高斯函数一维模板,如果标准差不为1,则要修改模板
% gau=[0.0090,0.4910,0.4910,0.0090];                               % 标准差为0.5时的高斯函数一维模板,如果标准差不为0.5,则要修改模板
y=conv(noisy_signal,gau);
y=y(1:length(y)-length(gau)+1);
figure(103);
plot(t,noisy_signal,'b-')
hold on
plot(t,y,'r-')
legend('高斯滤波前的序列','高斯滤波后的序列')

3.封装代码

主代码

function wavelet_fun_main240919
clc
clear
close all
warning off
%% 1.信号生成
time_length = 10;%总时长,秒
sample_rate = 100;% 采样率,Hz
freq = 10; % 生成的信号的频率,Hz
t = linspace(0, time_length, time_length * sample_rate);  % 生成时间轴
noise = 0.5 * randn(size(t));% 生成白噪声,高斯过程
Results_JGLD_ideal = 2*sin(2 * pi * freq * t);% 生成正弦信号
Results_JGLD_error = Results_JGLD_ideal + noise;% 将正弦信号和噪声信号相加生成含噪采集数据%% 小波降噪处理
dt=1/sample_rate;%采样时间间隔
data_denoised=WaveletGenerate(Results_JGLD_ideal,Results_JGLD_error,dt);%% 画图
figure(1)
plot(t,Results_JGLD_ideal,'b-')
hold on
plot(t,data_denoised,'r-')
legend('原始信号(无噪声)','降噪后的信号')

WaveletGenerate.m

function data_denoised=WaveletGenerate(Results_JGLD_ideal,Results_JGLD_error,dt)
%% 1.信号生成
signal = Results_JGLD_ideal;% 原始信号
noisy_signal = Results_JGLD_error;%含噪采集数据
% dt=0.01;%时间间隔
t=dt:dt:(length(signal))*dt;
%% 2.小波变换
% 设置小波函数和变换阶数
wname = 'db4';  % 选用 Daubechies 4 小波
level = 1;      % 小波变换的阶数
% 进行小波变换
[C, L] = wavedec(noisy_signal, level, wname);
% 提取细节系数
D = detcoef(C, L, level); 
% 对细节系数进行阈值处理
sigma = median(abs(D)) / 0.6745;  % 计算阈值,robust estimator估计方法
D = wthresh(D, 'h', sigma);       % 硬阈值处理
% 重构信号
data_denoised = wrcoef('a', C, L, wname, level);

相关文章:

【小波去噪】【matlab】基于小波分析的一维信号滤波(对照组:中值滤波、均值滤波、高斯滤波)

链接1-傅里叶变换 链接2-傅立叶分析和小波分析间的关系 链接3-小波变换(wavelet transform)的通俗解释 链接4-小波基的选择 1.示例代码 function main_wavelet clc clear close all warning off %% 1.信号生成 time_length 10;%总时长,秒 …...

CentOS 7官方源停服,配置本机光盘yum源

1、挂载系统光盘 mkdir /mnt/iso mount -o loop /tools/CentOS-7-x86_64-DVD-1810.iso /mnt/iso cd /mnt/iso/Packages/ rpm -ivh /mnt/iso/Packages/yum-utils-1.1.31-50.el7.noarch.rpm(图形界面安装,默契已安装) 如安装yum-utils依赖错误&#x…...

2024年汉字小达人区级自由报名备考冲刺:2024官方模拟题练一练(续)

2024年第十一届汉字小达人的区级活动的时间9月25-30日正式开赛,满打满算还有9天时间。 今天继续回答一些问题关于汉字小达人的常见问题,再做几道2024年官方模拟题,帮助大家直观地了解汉字小达人的比赛题型和那你程度。 本专题在比赛前持续更…...

实战Redis与MySQL双写一致性的缓存模式

​Redis和MySQL都是常用的数据存储系统,它们各自有自己的优缺点。在实际应用中,我们可能需要将它们结合起来使用,比如将Redis作为缓存,MySQL作为持久化存储。 在这种情况下,我们需要保证Redis和MySQL的数据一致性&…...

KVM环境下制作ubuntu qcow2格式镜像

如果是Ubuntu KVM环境是VMware虚拟机,需要CPU开启虚拟化 1、配置镜像源 wget -O /etc/apt/sources.list https://www.qingtongqing.cc/ubuntu/sources.list2、安装kvm qemu-img libvirt kvm虚拟化所需环境组件 apt -y install qemu-kvm virt-manager libvirt-da…...

基于SpringBoot+Vue的高校竞赛管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…...

PHP发邮件教程:配置SMTP服务器发送邮件?

PHP发邮件的几种方式?如何使用PHP通过SMTP协议发信? PHP作为一种广泛使用的服务器端脚本语言,提供了多种方式来发送邮件。AokSend将详细介绍如何通过配置SMTP服务器来实现PHP发邮件教程的核心内容。 PHP发邮件教程:设置参数 这…...

SpringBootWeb增删改查入门案例

前言 为了快速入门一个SpringBootWeb项目,这里就将基础的增删改查的案例进行总结,作为对SpringBootMybatis的基础用法的一个巩固。 准备工作 需求说明 对员工表进行增删改查操作环境搭建 准备数据表 -- 员工管理(带约束) create table emp (id int …...

pytorch实现RNN网络

目录 1.导包 2. 加载本地文本数据 3.构建循环神经网络层 4.初始化隐藏状态state 5.创建随机的数据,检测一下代码是否能正常运行 6. 构建一个完整的循环神经网络 7.模型训练 8.个人知识点理解 1.导包 import torch from torch import nn from torch.nn imp…...

智能工厂的软件设计 “程序program”表达式,即 接口模型的代理模式表达式

Q1、前面将“智能工厂的软件设计”中绝无仅有的“程序”视为 专注于 给定的某个单一面(语言面/逻辑面/数学面)中的 问题,专注于分析问题和解决问题的程序活动的组织,每一面都是一个“组织者”就像一个“独角兽”,并提出…...

leetcode 难度【简单模式】标签【数据库】题型整理大全

文章目录 175. 组合两个表181. 超过经理收入的员工182. 查找重复的电子邮箱COUNT(*)COUNT(*) 与 COUNT(column) 的区别 where和vaing之间的区别用法 183.从不订购的客户196.删除重复的电子邮箱197.上升的温度511.游戏玩法分析I512.游戏玩法分析II577.员工奖金584.寻找用户推荐人…...

利士策分享,自我和解:通往赚钱与内心富足的和谐之道

利士策分享,自我和解:通往赚钱与内心富足的和谐之道 在这个快节奏、高压力的时代,我们往往在追求物质财富的同时,忽略了内心世界的和谐与平衡。 赚钱,作为现代生活中不可或缺的一部分,它不仅仅是生存的手段…...

【物联网】深入解析时序数据库TDengine及其Java应用实践

文章目录 一、什么是时序数据库?二、TDengine简介三、TDengine的Java应用实践(1)环境准备(2)数据插入(3)数据查询 一、什么是时序数据库? 时序数据库(Time-Series Datab…...

2023北华大学程序设计新生赛部分题解

时光如流水般逝去,我已在校园中奋战大二!(≧▽≦) 今天,静静回顾去年的新生赛,心中涌起无尽感慨,仿佛那段青春岁月如烟花般绚烂。✧。(≧▽≦)。✧ 青春就像一场燃烧的盛宴,激情澎湃&…...

PPP的配置

概述:PPP模式,即公私合作模式(Public-Private Partnership),是一种公共部门与私营部门合作的模式。 一、实验拓扑 实验一:PPP基本功能 实验步骤: (1)配置AR1的接口IP地…...

回溯算法总结篇

组合问题:N个数里面按一定规则找出k个数的集合 如果题目要求的是组合的具体信息,则只能使用回溯算法,如果题目只是要求组合的某些最值,个数等信息,则使用动态规划(比如求组合中元素最少的组合,…...

机器学习-点击率预估-论文速读-20240916

1. [经典文章] 特征交叉: Factorization Machines, ICDM, 2010 分解机(Factorization Machines) 摘要 本文介绍了一种新的模型类——分解机(FM),它结合了支持向量机(SVM)和分解模型的优点。与…...

【leetcode】堆习题

215.数组中的第K个最大元素 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输…...

前端大模型入门:编码(Tokenizer)和嵌入(Embedding)解析 - llm的输入

LLM的核心是通过对语言进行建模来生成自然语言输出或理解输入,两个重要的概念在其中发挥关键作用:Tokenizer 和 Embedding。本篇文章将对这两个概念进行入门级介绍,并提供了针对前端的js示例代码,帮助读者理解它们的基本原理/作用和如何使用。 1. 什么是…...

一文读懂 JS 中的 Map 结构

你好,我是沐爸,欢迎点赞、收藏、评论和关注。 上次聊了 Set 数据结构,今天我们聊下 Map,看看它与 Set、与普通对象有什么区别?下面直接进入正题。 一、Set 和 Map 有什么区别? Set 是一个集合&#xff0…...

idea大量爆红问题解决

问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求&#xff…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...