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

30、matlab现代滤波:维纳滤波/LMS算法滤波/小波变换滤波

1、信号1和信号2的维纳滤波

实现代码

N = 2000; %采样点数
Fs = 2000; %采样频率
t = 0:1 / Fs:1 - 1 / Fs; %时间序列
Signal1= sin(2*pi*20* t) + sin(2*pi*40* t) + sin(2*pi*60* t);
Signal2=[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1*ones(1,100),zeros(1,50),];
NoiseGauss= [randn(1,2000)]; %高斯分部白噪声
NoiseWhite= [rand(1,2000)]; %均匀分布白噪声
NoiseSignal1= Signal1+NoiseGauss; %设计混合信号1
NoiseSignal2= Signal1+NoiseWhite; %设计混合信号2
NSignal1= Signal2+NoiseGauss; %设计混合信号3
NSignal2= Signal2+NoiseWhite; %设计混合信号4
%混合信号1维纳滤波
Rxx=xcorr(NoiseSignal1,NoiseSignal1);%混合信号的自相关函数
M=50;%维纳滤波器阶数
for i=1:M %得到混合信号的自相关矩阵for j=1:Mrxx(i,j)=Rxx(abs(j-i)+N);end
end
Rxy=xcorr(NoiseSignal1,Signal1); %混合信号和原信号的互相关函数
for i=1:M%得到混合信号和原信号的互相关向量rxy(i)=Rxy(i+N-1);
end                                                          
h = inv(rxx)*rxy'; %得到所要涉及的维纳滤波器系数
Signal_Filter1=filter(h,1,NoiseSignal1); %输入信号通过维纳滤波器
%混合信号2维纳滤波
Rxx=xcorr(NoiseSignal2,NoiseSignal2); %混合信号的自相关函数
M=50;                                                            
for i=1:M %得到混合信号的自相关矩阵for j=1:Mrxx(i,j)=Rxx(abs(j-i)+N);end
end
Rxy=xcorr(NoiseSignal2,Signal1); %混合信号和原信号的互相关函数
for i=1:Mrxy(i)=Rxy(i+N-1);
end %混合信号和原信号的互相关向量
h=inv(rxx)*rxy'; %得到所要涉及的维纳滤波器系数
Signal_Filter2=filter(h,1,NoiseSignal2);%将输入信号通过维纳滤波器
figure(1);
subplot(3,2,1);                                                 
plot(Signal1);%原始信号
title('原始信号1');
subplot(3,2,3);                         
plot(NoiseSignal1);%信号1
title('信号1');
subplot(3,2,5);  
plot(Signal_Filter1);%维纳滤波后的信号
title('维纳滤波后高斯的信号');
subplot(3,2,2);                                                 
plot(Signal1);%原始信号
title('原始信号1');
subplot(3,2,4);                         
plot(NoiseSignal2);%信号1
title('信号1');
subplot(3,2,6);  
plot(Signal_Filter2);%维纳滤波后的信号
title('维纳滤波后白的信号');

视图效果

 

2、信号3和信号4的维纳滤波 

实现代码

%混合信号3维纳滤波
Rxx=xcorr(NSignal1,NSignal1);%混合信号的自相关函数
M=400;%维纳滤波器阶数
for i=1:M %得到混合信号的自相关矩阵for j=1:Mrxx(i,j)=Rxx(abs(j-i)+N);end
end
Rxy=xcorr(NSignal1,Signal2); %混合信号和原信号的互相关函数
for i=1:M%得到混合信号和原信号的互相关向量rxy(i)=Rxy(i+N-1);
end                                                          
h = inv(rxx)*rxy'; %得到所要涉及的维纳滤波器系数
Signal_Filter1=filter(h,1,NSignal1); %输入信号通过维纳滤波器
%混合信号2维纳滤波
Rxx=xcorr(NSignal2,NSignal2); %混合信号的自相关函数
M=400;                                                            
for i=1:M %得到混合信号的自相关矩阵for j=1:Mrxx(i,j)=Rxx(abs(j-i)+N);end
end
Rxy=xcorr(NSignal2,Signal2); %混合信号和原信号的互相关函数
for i=1:Mrxy(i)=Rxy(i+N-1);
end %混合信号和原信号的互相关向量
h=inv(rxx)*rxy'; %得到所要涉及的维纳滤波器系数
Signal_Filter2=filter(h,1,NSignal2);%将输入信号通过维纳滤波器
figure(2);
subplot(3,2,1);                                                 
plot(Signal2);%原始信号
title('原始信号2');
subplot(3,2,3);                         
plot(NSignal1);%信号3
title('信号3');
subplot(3,2,5);  
plot(Signal_Filter1);%维纳滤波后的信号
title('维纳滤波后高斯的信号');
subplot(3,2,2);                                                 
plot(Signal2);%原始信号
title('原始信号2');
subplot(3,2,4);                         
plot(NSignal2);%信号4
title('信号4');
subplot(3,2,6);  
plot(Signal_Filter2);%维纳滤波后的信号
title('维纳滤波后白的信号');

视图效果

 

3、 混合信号1和信号2LMS算法滤波

实现代码

k=300; %时域LMS(最小均方)算法滤波器阶数
u=0.001;%步长因子
yn_1=zeros(1,N);%output signal
yn_2=zeros(1,N);%output signa2
yn_1(1:k)=NoiseSignal1(1:k);%将输入信号1的前k个值作为输出yn_1的前k个值
yn_2(1:k)=NoiseSignal2(1:k);%将输入信号2的前k个值作为输出yn_2的前k个值
w=zeros(1,k);%设置加权初值
w1=zeros(1,k);%设置加权初值
e=zeros(1,N);%误差信号
e1=zeros(1,N);%误差信号
%用LMS算法迭代滤波
for i=(k+1):NXN=NoiseSignal1((i-k+1):(i));XN1=NoiseSignal2((i-k+1):(i));yn_1(i)=w*XN';yn_2(i)=w1*XN1';e(i)=Signal1(i)-yn_1(i);e1(i)=Signal1(i)-yn_2(i);w=w+2*u*e(i)*XN;w1=w1+2*u*e1(i)*XN1;
end
subplot(3,2,1);
plot(Signal1); %Signal1信号
axis([k+1,2000,-4,4]);
title('原始信号1');
subplot(3,2,3);
plot(NoiseSignal1); %NoiseSignal1信号
axis([k+1,2000,-4,4]);
title('信号1');
subplot(3,2,5);
plot(yn_1);%NoiseSignal1自适应滤波后信号
% axis([k+1,2000,-4,4]);
title('自适应滤波后信号1');
subplot(3,2,2);
plot(Signal1); %Signal1信号
axis([k+1,2000,-4,4]);
title('原始信号1');
subplot(3,2,4);
plot(NoiseSignal2); %NoiseSignal1信号
axis([k+1,2000,-4,4]);
title('信号2');
subplot(3,2,6);
plot(yn_2);%NoiseSignal1自适应滤波后信号
% axis([k+1,2000,-4,4]);
title('自适应滤波后信号2');

视图效果

4、 混合信号3和信号4LMS算法滤波

实现代码

k=100; %时域LMS(最小均方)算法滤波器阶数
u=0.001;%步长因子
yn_1=zeros(1,N);%output signal
yn_2=zeros(1,N);%output signa2
yn_1(1:k)=NSignal1(1:k);%将输入信号1的前k个值作为输出yn_1的前k个值
yn_2(1:k)=NSignal2(1:k);%将输入信号2的前k个值作为输出yn_1的前k个值
w=zeros(1,k);%设置加权初值
w1=zeros(1,k);%设置加权初值
e=zeros(1,N);%误差信号
%用LMS算法迭代滤波
for i=(k+1):NXN=NSignal1((i-k+1):(i));XN1=NSignal2((i-k+1):(i));yn_1(i)=w*XN';yn_2(i)=w1*XN1';e(i)=Signal2(i)-yn_1(i);e1(i)=Signal2(i)-yn_2(i);w=w+2*u*e(i)*XN;w1=w1+2*u*e1(i)*XN1;
end
subplot(3,2,1);
plot(Signal2,'r'); %Signal1信号
axis([k+1,2000,-4,4]);
title('原始信号2');
subplot(3,2,3);
plot(NSignal1,'g'); %NoiseSignal1信号
axis([k+1,2000,-4,4]);
title('信号3');
subplot(3,2,5);
plot(yn_1,'b');%NoiseSignal1自适应滤波后信号
axis([k+1,2000,-4,4]);
title('自适应滤波后信号3');
subplot(3,2,2);
plot(Signal2); %Signal1信号
axis([k+1,2000,-4,4]);
title('原始信号2');
subplot(3,2,4);
plot(NSignal2); %NoiseSignal1信号
axis([k+1,2000,-4,4]);
title('信号4');
subplot(3,2,6);
plot(yn_2);%NoiseSignal1自适应滤波后信号
axis([k+1,2000,-4,4]);
title('自适应滤波后信号4');

试图效果

5、信号1和信号2 小波滤波

实现代码

%混合信号1/2/3/4小波变换滤波
[xd1,cxd1,lxd1] = wden(NoiseSignal1,'sqtwolog','s','one',6,'db3');%NoiseSignal1小波滤波 S为软阈值H为硬阈值
[xd2,cxd2,lxd2] = wden(NoiseSignal2,'sqtwolog','h','sln',6,'db3');%NoiseSignal2小波滤波 
[xd3,cxd3,lxd3] = wden(NSignal1,'sqtwolog','s','one',6,'db3');%NSignal1小波滤波
[xd4,cxd4,lxd4] = wden(NSignal2,'sqtwolog','h','sln',6,'db3');%NSignal2小波滤波
figure(1)
subplot(3,2,1);
plot(Signal1);
title('原始信号1');
subplot(3,2,3);
plot(NoiseSignal1);
title('信号1');
subplot(3,2,5);
plot(xd1);
title('小波滤波信号1');
subplot(3,2,2);
plot(Signal1);
title('原始信号1');
subplot(3,2,4);
plot(NoiseSignal2);
title('信号2');
subplot(3,2,6);
plot(xd2);
title('小波滤波信号2');

视图效果 

6、信号3和信号4小波滤波

实现代码

%混合信号1/2/3/4小波变换滤波
[xd1,cxd1,lxd1] = wden(NoiseSignal1,'sqtwolog','s','one',6,'db3');%NoiseSignal1小波滤波 S为软阈值H为硬阈值
[xd2,cxd2,lxd2] = wden(NoiseSignal2,'sqtwolog','h','sln',6,'db3');%NoiseSignal2小波滤波 
[xd3,cxd3,lxd3] = wden(NSignal1,'sqtwolog','s','one',6,'db3');%NSignal1小波滤波
[xd4,cxd4,lxd4] = wden(NSignal2,'sqtwolog','h','sln',6,'db3');%NSignal2小波滤波
figure(2)
subplot(3,2,1);
plot(Signal2);
title('原始信号1');
subplot(3,2,3);
plot(NSignal1);
title('信号1');
subplot(3,2,5);
plot(xd3);
title('小波滤波信号1');
subplot(3,2,2);
plot(Signal2);
title('原始信号1');
subplot(3,2,4);
plot(NSignal2);
title('信号2');
subplot(3,2,6);
plot(xd4);
title('小波滤波信号2');

视图效果

相关文章:

30、matlab现代滤波:维纳滤波/LMS算法滤波/小波变换滤波

1、信号1和信号2的维纳滤波 实现代码 N 2000; %采样点数 Fs 2000; %采样频率 t 0:1 / Fs:1 - 1 / Fs; %时间序列 Signal1 sin(2*pi*20* t) sin(2*pi*40* t) sin(2*pi*60* t); Signal2[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1…...

HTML5 视频 Vedio 标签详解

HTML5 引入了 <video> 标签&#xff0c;允许开发者在网页中直接嵌入视频文件&#xff0c;而不需要依赖第三方插件。本文将全面介绍 <video> 标签的各种属性&#xff0c;并通过实例代码详细说明其用法。 一、基础用法 1. 基本结构 HTML5 中使用 <video> 标…...

三十五篇:数字化转型的引擎:赋能企业的ERP系统全景

数字化转型的引擎&#xff1a;赋能企业的ERP系统全景 1. 引言 在这个快速变化的数字时代&#xff0c;现代企业面临着前所未有的挑战和机遇。企业资源计划&#xff08;ERP&#xff09;系统&#xff0c;作为数字化转型的核心&#xff0c;扮演着至关重要的角色。它不仅是企业运营…...

利用ArcGIS对长江三角洲地区的gdp水平进行聚类

1、导入矢量图、数据 长三角地区矢量图 长三角地区矢量图对应数据 2、连接 3、设置属性将人均gdp数据导入 4、设置标注和图例 选择布局视图 5、聚类 2020年人均gdp地区聚类 6、2005~2020年各地区人均gdp可视化及聚类汇总 &#xff08;1&#xff09;2005~2020可视化 2005 …...

释放视频潜力:Topaz Video AI for mac/win 一款全新的视频增强与修复利器

在数字时代&#xff0c;视频已经成为我们记录生活、分享经历的重要方式。然而&#xff0c;有时候我们所拍摄的视频可能并不完美&#xff0c;可能存在模糊、噪点、抖动等问题。这时候&#xff0c;就需要一款强大的视频增强和修复工具来帮助我们提升视频质量&#xff0c;让它们更…...

MongoDB 正则表达式详解:高效数据查询与处理技巧

MongoDB 的正则表达式&#xff08;Regular Expression&#xff09;功能允许在查询中进行模式匹配和文本搜索&#xff0c;为用户提供了强大的灵活性。 基本语法 MongoDB 中使用正则表达式时&#xff0c;通常是在查询语句中使用 $regex 操作符。基本语法如下&#xff1a; { &l…...

第二十六章HTML与CSS书写规范

1.HTML书写规范 1.文档类型声明及编码 统一为html5 声明类型。编码统一为utf-8。 2.页面tdk TDK是一个缩写&#xff0c;其中“T”表示为网页定义标题&#xff0c;“D”表示为网页定义描述 description&#xff0c;“K”表示为搜索引擎定义关键词keywords。 1、<title&g…...

基于FPGA的AD5753(DAC数模转换器)的控制 II(SPI驱动)

基于FPGA的AD5753&#xff08;DAC数模转换器&#xff09;的控制 II&#xff08;已上板验证&#xff09; 语言 &#xff1a;Verilg HDL EDA工具&#xff1a;Vivado 基于FPGA的AD5753&#xff08;DAC数模转换器&#xff09;的控制 II&#xff08;已上板验证&#xff09;一、引言二…...

【全开源】Java同城服务同城信息同城任务发布平台小程序APP公众号源码

&#x1f4e2; 连接你我&#xff0c;让任务触手可及 &#x1f31f; 引言 在快节奏的现代生活中&#xff0c;我们时常需要寻找一些便捷的方式来处理生活中的琐事。同城任务发布平台系统应运而生&#xff0c;它为我们提供了一个高效、便捷的平台&#xff0c;让我们能够轻松发布…...

[Redis]List类型

列表类型来存储多个有序的字符串&#xff0c;a、b、c、d、e 五个元素从左到右组成了一个有序的列表&#xff0c;列表中的每个字符串称为元素&#xff0c;一个列表最多可以存储个元素。在 Redis 中&#xff0c;可以对列表两端插入&#xff08;push&#xff09;和弹出&#xff08…...

export 和 export default 的区别

在 JavaScript 中&#xff0c;export 和 export default 都是用于导出模块中的内容的关键字&#xff0c;但它们有一些区别&#xff1a; export: export 关键字用于导出多个变量、函数或对象。可以一次导出多个内容&#xff0c;并且在导入时需要使用对应的名称。例如&#xff1a…...

29网课交单平台 epay.php SQL注入漏洞复现

0x01 产品简介 29网课交单平台是一个专注于在线教育和知识付费领域的交单平台。该平台基于PHP开发,通过全开源修复和优化,为用户提供了高效、稳定、安全的在线学习和交易环境。作为知识付费系统的重要组成部分,充分利用了互联网的优势,为用户提供了便捷的支付方式、高效的…...

推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析

5月14日凌晨1点、太平洋时间的上午 10 点&#xff0c;OpenAI的GPT-4o的横空出世&#xff0c;再次巩固了其作为行业颠覆者的地位。GPT-4o的发布不仅仅是一个产品的揭晓&#xff0c;它更像是向世界宣告AI技术已迈入了一个全新的纪元&#xff0c;连OpenAI的领航者萨姆奥特曼也不禁…...

rollup.js(入门篇)

前沿 Rollup 是一个用于 JavaScript 的模块打包工具&#xff0c;它将小的代码片段编译成更大、更复杂的代码&#xff0c;例如库或应用程序。它使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式&#xff0c;而不是以前的 CommonJS 和 AMD 等特殊解决方案。ES 模块允许…...

【Spring Cloud Alibaba】开源组件Sentinel

目录 什么是Sentinel发展历史与Hystrix的异同 Sentinel可以做什么&#xff1f;Sentinel的功能Sentinel的开源生态Sentinel的用户安装Sentinel控制台预备环境准备Sentinel 分为两个部分:下载地址 项目集成Sentinel创建项目修改依赖信息添加启动注解添加配置信息在控制器类中新增…...

Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端

Android14 WMS-窗口添加流程(一)-Client端-CSDN博客 Android14 WMS-窗口添加流程(二)-Server端-CSDN博客 经过上述两个流程后&#xff0c;窗口的信息都已经传入了WMS端。 1. ViewRootImpl#setView 在窗口添加流程(一)中&#xff0c;有这个方法&#xff1a; http://aospxref…...

JVM学习-Jprofiler

JProfiler 基本概述 特点 使用方便&#xff0c;界面操作友好对被分析的应用影响小(提供模板)CPU&#xff0c;Tread&#xff0c;Memory分析功能尤其强大支持对jdbc,noSql,jsp,servlet,socket进行分析支持多种模式(离线、在线)的分析支持监控本地、远程JVM跨平台&#xff0c;拥…...

Skins

本主题解释如何将DevExpress主题/皮肤应用到应用程序中&#xff0c;如何允许用户在运行时在主题之间切换&#xff0c;如何自定义现有皮肤或创建自己的皮肤&#xff0c;等等。 WinForms订阅包括许多基本控件&#xff1a;按钮、复选框、表单、消息框、对话框、对话框等。 我们实现…...

【Meetup】探索Apache SeaTunnel的二次开发与实战案例

在数据科技快速演进的今天&#xff0c;业务场景的复杂化和数据量的激增&#xff0c;推动了大数据技术的迅速发展&#xff0c;在众多开源大数据处理工具中&#xff0c;Apache SeaTunnel以其强大的数据集成能力&#xff0c;成为众多企业的首选。 但随着应用深入&#xff0c;企业面…...

嵌入式Linux系统中RTC应用的操作详解

第一:RTC的作用以及时间简介 “RTC”的英文全称是Reul-Time Clock,翻译过来是实时时钟芯片.实时时钟芯片是日常生活中应用最为广泛的电子器件之一,它为人们或者电子系统提供精确的实时时间,实时时钟芯片通过引脚对外提供时间读写接口,通常内部带有电池,保证在外部系统关…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

GAN模式奔溃的探讨论文综述(一)

简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...