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');

视图效果

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

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

相关文章

【C语言】05.数组

一、数组的概念 本文来介绍数组,首先我们需要了解数组是什么? 数组是⼀组相同类型元素的集合。 • 数组中存放的是1个或者多个数据,但是数组元素个数不能为0。 • 数组中存放的多个数据,类型是相同的。 数组分为⼀维数组和多维数组…

Go源码--sync库(2)

简介 这边文章主要讲解 Sync.Cond和Sync.Rwmutex Sync.Cond 简介 sync.Cond 经常用来处理 多个协程等待 一个协程通知 这种场景, 主要 是阻塞在某一协程中 等待被另一个协程唤醒 继续执行 这个协程后续的功能。cond经常被用来协调协程对某一资源的访问 ants协程池…

Win10 Edge提示兼容性问题打不开|解决浏览器兼容性问题

Edge有时候会与某些安全软件不兼容,导致报错 报错代码:STATUS_INVALID_IMAGE_HASH 解决Edge浏览器兼容性问题方法/步骤: 1、按 Win R 组合键,打开运行,并输入 regedit 命令,确定或回车,可以…

SAP ERP系统主要模块简介

SAP系统通过提供一系列高度灵活的模块,满足企业在不同业务领域的需求。这些模块不仅功能齐全且相对独立,但它们之间又能紧密协作,共同构筑一个协同高效的工作环境。 财务会计(FI)模块 它涵盖了总账、应收账款、应付账…

DexCap——斯坦福李飞飞团队泡茶机器人:更好数据收集系统的原理解析、源码剖析

前言 2023年7月,我司组建大模型项目开发团队,从最开始的论文审稿,演变成目前的两大赋能方向 大模型应用方面,以微调和RAG为代表 除了论文审稿微调之外,目前我司内部正在逐一开发论文翻译、论文对话、论文idea提炼、论…

k8s:优雅关闭pod的简单例子

先通过Dockerfile创建一个image vim Dockerfie <<<< 内容如下&#xff1a; FROM centosRUN sed -i -e "s|mirrorlist|#mirrorlist|g" /etc/yum.repos.d/CentOS-* RUN sed -i -e "s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.o…

Qsemaphore

Qsemaphore 实现 给while循环阻塞延时 基本思路就是&#xff1a; whlie循环里面 通过m&#xff3f;bthreadFlag&m_bStatus这两个标志位&#xff0c;判断是否进入while循环&#xff0c;再根据40行的acquire&#xff08;&#xff09;来阻塞循环&#xff0c;因为定时器的槽函数…

SQL Server数据库xp_cmdshell提权笔记

文章目录 一、简介二、搭建环境三、利用条件1、查询 xp_cmdshell 是否开启&#xff0c;返回为1则证明存在2、判断权限是不是sa&#xff0c;回是1说明是sa3、开启xp_cmdshell4、关闭xp_cmdshell 四、获取数据库权限1、成功获取sqlserver&#xff0c;进行登陆2、开启xp_cmdshell权…

代码随想录算法训练营第31天(py)| 贪心 | 455.分发饼干、376. 摆动序列、53. 最大子序和

455.分发饼干 力扣链接 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#…

Docker|了解容器镜像层(1)

引言 容器非常神奇。它们允许简单的进程表现得像虚拟机。在这种优雅的底层是一组模式和实践&#xff0c;最终使一切运作起来。在设计的根本是层。层是存储和分发容器化文件系统内容的基本方式。这种设计既出人意料地简单&#xff0c;同时又非常强大。在今天的帖子[1]中&#xf…

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

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

继承-进阶

父子类成员共享 普通成员对象/父子间不共享&#xff0c; 成员独立 函数成员共享&#xff08;函数不存储在对象中&#xff09; 子类由两部分构成&#xff1a;父类中继承的成员和子类中新定义成员 继承方式 子类中存在父类private成员但不可直接访问&#xff08;及时在类中&am…

微信如何防止被对方拉黑删除?一招教你解决!文末附软件!

你一定不知道&#xff0c;微信可以防止被对方拉黑删除&#xff0c;秒变无敌。只需一招就能解决&#xff01;赶快来学&#xff01;文末有惊喜&#xff01; 惹到某些重要人物&#xff08;比如女朋友&#xff09;&#xff0c;被删除拉黑一条龙&#xff0c;那真的是太令人沮丧了&a…

加密经济浪潮:探索Web3对金融体系的颠覆

随着区块链技术的快速发展&#xff0c;加密经济正在成为全球金融领域的一股新的浪潮。而Web3作为下一代互联网的代表&#xff0c;以其去中心化、可编程的特性&#xff0c;正深刻影响着传统金融体系的格局和运作方式。本文将深入探讨加密经济对金融体系的颠覆&#xff0c;探索We…

机器学习实验----支持向量机(SVM)实现二分类

目录 一、介绍 (1)解释算法 (2)数据集解释 二、算法实现和代码介绍 1.超平面 2.分类判别模型 3.点到超平面的距离 4.margin 间隔 5.拉格朗日乘数法KKT不等式 (1)介绍 (2)对偶问题 (3)惩罚参数 (4)求解 6.核函数解决非线性问题 7.SMO (1)更新w (2)更新b 三、代…

此表单不安全,因此系统已关闭自动填充功能

问题截图&#xff1a; 截图就不放了&#xff0c;公司的系统不方便&#xff0c;就是form表单会有个提示“此表单不安全&#xff0c;因此系统已关闭自动填充功能” 解决思路&#xff1a; 1、问题原因 使用https访问&#xff0c;但表单提交地址是http的 2、查看表单配置 表单…

MSP430单片机控制流水灯,Proteus仿真

作品功能 本项目利用MSP430单片机控制一个简单的流水灯&#xff0c;通过按键切换流水灯的模式。用户可以通过按键控制LED灯的方向&#xff0c;从左向右或从右向左依次点亮。 作品的硬件材料 MSP430单片机 具体型号&#xff1a;MSP430G2553 LED灯 数量&#xff1a;8个类型&…

文本审核纠错

探索高效文本审查利器&#xff1a;Word Checker-CSDN博客 GitHub - shibing624/pycorrector: pycorrector is a toolkit for text error correction. 文本纠错&#xff0c;实现了Kenlm&#xff0c;T5&#xff0c;MacBERT&#xff0c;ChatGLM3&#xff0c;LLaMA等模型应用在纠错…

如何设置vue3项目中默认的背景为白色

方法1&#xff1a;通过CSS全局样式 在全局CSS文件中设置&#xff1a; 如果你的项目中有全局的CSS文件&#xff08;如App.vue或专门的CSS文件&#xff09;&#xff0c;你可以直接设置body或html标签的背景颜色。 在src/assets文件夹中&#xff08;或者任何你存放CSS文件的地方&a…

js解析成语法树以及还原

const {parse} require("babel/parser"); const traverse require("babel/traverse").default; const generator require("babel/generator").default;// 1.定义要处理的代码 const jscode function square(n) {return n * n; };// 2.使用ba…