信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理
主要是对matlab的模糊推理系统工具箱中的这个例子做一些探讨说明:
这个例子的模型是,有一个有用信号记为x,这个有用信号x必须在有噪声源n1的环境中才能测量出来,而一般我们能测量到的信号m可以看作是有用信号x和噪声源信号n1经过环境信道(从噪声源到传感器)后的噪声信号n2的叠加。即:
m=x+n2
n2=f(n1)
在实际应用中,我们通常可以获得测量信号m,可以推测,或者说是估计噪声源信号n1,但很难说n1经过环境信道后的n2到底变成什么样子了,因为一般这个变换f是一个非线性处理的过程。但是这个n2又非常有用,因为根据m=x+n2,一旦知道n2,就知道真正的有用信号m。matlab的这个示例就是用ANFIS的方法,来估计出n2,从而估计出我们真正想要的有用信号m。
ANFIS((Adaptive Network-based Fuzzy Inference System:自适应神经模糊推测系统),是一种将模糊逻辑和神经元网络有机结合的新型的模糊推理系统结构,采用反向传播算法和最小二乘法的混合算法调整前提参数和结论参数,并能自动产生If-Then规则。matlab中提供了anfis 和 genfis两个指令函数,直接调用这个方法。
在这个示例中,给了一个6秒采样率为100的有用信号x:
time = (0:0.01:6)';
x = sin(40./(time+0.01));
plot(time,x)
假定噪声源为高斯白噪声n1:
n1 = randn(size(time));
plot(time,n1)
randn是产生标准正态分布随机数序列,默认均值为0,时域上的幅值成正态分布,均值为0,对应频域中是均匀分布的,功率谱也是均匀的,因此实际上是产生了高斯白噪声。
假定从噪声源n1到干扰信号n2的非线性过程方程是:
n2是关于n1(k)和n1(k-1)的函数,因为从噪声源到传感器采集首先有噪声源信号的传播过程,然后会混杂环境中的一些加性、乘性噪声造成非线性。n2这样假定兼顾了噪声源信号传播即时移带来的n1(k-1)和其他噪声导致的非线性。
以n1(k)和n1(k-1)作为两个信号维度,查看n2的分布特征:
domain = linspace(min(n1),max(n1),20);
[xx,yy] = meshgrid(domain,domain);
zz = 4*sin(xx).*yy./(1+yy.^2);surf(xx,yy,zz);
xlabel('n_1(k)','fontsize',10);
ylabel('n_1(k-1)','fontsize',10);
zlabel('n_2(k)','fontsize',10);
title('Unknown Interference Channel Characteristics','fontsize',10);
meshgrid函数用于构建网络矩阵,surf用于绘制高维平面图。
依据方程绘制出n1和n2的信号对比图:
n1d0 = n1; % n1 with delay 0
n1d1 = [0; n1d0(1:length(n1d0)-1)]; % n1 with delay 1
n2 = 4*sin(n1d0).*n1d1./(1+n1d1.^2); % interference
subplot(2,1,1)
plot(time,n1);
ylabel(‘noise n_1’,‘fontsize’,10);
subplot(2,1,2)
plot(time,n2);
ylabel(‘interference n_2’,‘fontsize’,10);
真正得到的测量信号m=x+n2,再把测量信号绘制出来:
m = x + n2; % measured signal
subplot(1,1,1)
plot(time, m)
title('Measured Signal','fontsize',10)
xlabel('time','fontsize',10)
ylabel('m','fontsize',10)
对信号有了基本的认识后,下边通过构建ANFIS模型,估计出从n1到n2的这种非线性处理过程关系。
假设非线性信道的阶数已知(在本例中为2),因此可以使用2输入ANFIS模型进行训练。训练的输入数据为n1(k)、n1(k-1)以及测量信号m。虽然n2不直接可用,但可以假设m是用于培训的n2的“污染”版本,因为m=n2+x,即在ANFIS训练模型的非线性拟合中,把x视为噪声,n2=m-x。
delayed_n1 = [0; n1(1:length(n1)-1)];
data = [delayed_n1 n1 m];
产生初始的fis模型对象,默认采用网格区分算法,网格划分算法对每个输入变量使用两个隶属函数,从而生成四个模糊规则进行学习。算法设定与数据特征,数据类型有关,除了示例中使用的基于网格的划分聚类算法GridPartition,还可选择减法聚类SubtractiveClustering,FCMClustering模糊C均值聚类(Fuzzy C-means)。
设定好模型对象后,使用genfis指令由数据生成模糊推理系统:
genOpt = genfisOptions('GridPartition');
inFIS = genfis(data(:,1:end-1),data(:,end),genOpt);
使用anfis命令调整FIS,初始训练步长为0.2,然后开始训练:
trainOpt = anfisOptions('InitialFIS',inFIS,'InitialStepSize',0.2);
outFIS = anfis(data,trainOpt);
利用训练好的ANFIS模型,由初始的n1(k)和n1(k-1)信号,得到估计的信号n2*,然后将估计的n2信号与实际的n2信号绘制出,进行对比:
estimated_n2 = evalfis(outFIS,data(:,1:2));
subplot(2,1,1)
plot(time, n2)
ylabel('n_2 (unknown)'); subplot(2,1,2)
plot(time, estimated_n2)
ylabel('Estimated n_2');
有了估计信号n2*,则估计有用信号x*=m-n2*,绘制出估计的有用信号x*和实际的有用信号x,进行对比:
figure
plot(time,estimated_x,'b',time,x,'r')
legend('Estimated x','Actual x (unknown)','Location','SouthEast')
可以看出使用ANFIS模型给出了实际信号x在趋势上十分接近的估计值。
信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理相关推荐
- 基于自适应神经模糊推理系统的乳腺癌分类
前言 第三弹分享,本实验设计了一种自适应神经模糊推理系统,用于乳腺癌分类问题. 引言 乳腺癌是女性死亡率第二高的癌症.尽早发现是战胜这种疾病的关键.可以使用一种叫做细针穿刺的技术在早期检测体内的癌细胞 ...
- matlab神经模糊推理系统
%数据点个数51 numpts=51; x1=linspace(0,1,numpts); y=.6*sin(pi*x1)+.3*sin(3*pi*x1)+.1*sin(5*pi*x1); data=[ ...
- 【ANFIS分类】基于遗传算法优化模糊和ANFIS实现数据分类附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
- 【信号去噪】基于奇异值分解(SVD)实现数字信号降噪含Matlab源码
1 简介 2 部分代码 clear;% 调用MATLAB中含有噪声的数据文件 leleccum; load leleccum; index=1:3000;x=leleccum(index);N=8 ...
- 新息自适应卡尔曼滤波matlab代码,基于自适应卡尔曼滤波的弱信号跟踪方法与流程...
本发明涉及卫星导航接收机中在微弱信号下的跟踪技术,提供了一种基于自适应卡尔曼滤波的弱信号跟踪方法. 背景技术: 随着众多新的导航卫星系统的投入和运行,全球导航卫星系统(globalnavigation ...
- 人声抑制 深度学习_一种融合骨振动传感器和麦克风信号的深度学习语音提取和降噪方法与流程...
本发明涉及电子设备语音降噪技术领域,更具体地说,涉及一种融合骨振动传感器和麦克风信号的深度学习降噪方法. 背景技术: 语音降噪技术是指从带噪语音信号中分离出语音信号,该技术拥有广泛的应用,通常有单麦克 ...
- CVPR 2019 论文解读 | 基于多级神经纹理迁移的图像超分辨方法 (Adobe Research)
基于多级神经纹理迁移的图像超分辨方法 超分辨(Super-Resolution)图像恢复旨在从低分辨模糊图像中恢复出高分辨的清晰图像,是计算机视觉中的一个重要任务,在工业界有非常强的应用前景.CVPR ...
- matlab形态学降噪,基于MATLAB的荧光分子图像降噪方法
基于MATLAB的荧光分子图像降噪方法 [摘要]:医学成像是一种身体内部的视觉显示的技术,用于临床分析和医学干预.其目它旨在揭示身体的内部结构,以便进行诊断和治疗.医学成像产生了大量数据,可形成常规解 ...
- dncnn图像去噪_一种基于DnCNNs改进的图像降噪方法与流程
本发明涉及图像处理技术领域,具体涉及一种基于dncnns改进的图像降噪方法. 背景技术: 随着科技进步,新的图像技术在逐渐推广,在日常生活中人们对于图像的要求也越来越高,针对阴天或夜晚等弱光条件下拍摄 ...
- matlab模拟神经模糊自适应控制器
神经模糊自适应控制器 神经模糊自适应控制器的结构 该分析系统由一个普通的反馈控制器(FC)和一个神经控制器(NNC)组成,两控制器的输出信号之和作为实际控制量对系统进行控制,即 而神经控制器的 ...
最新文章
- python多久能上手_小白学习Python,怎样能够快速入门上手
- django配置数据驱动,python安装失败问题
- leetcode算法刷题记录表
- 被动模式下FTP不能建立数据会话问题
- Android仿人人客户端(v5.7.1)——网络模块处理的架构
- 全文搜索引擎 Elasticsearch 入门概念
- 商人Larry Ellison炮轰云计算
- 去除 AutoCAD 2013 x64 教育版打印戳记
- Python安装shapely包出现WindowsError: [Error 126]解决方案
- dataframe新增一列的方法
- 【SPEA】T100BT 全能型电池测试仪——精度高、智能化
- log4cxx vs2019编译
- 一、Azure Kinect 传感器 SDK 下载——Azure Kinect DK入门
- java web简单的网上名片管理系统
- 去除csdn博客上的图片水印
- unity制作和输出摄像机环绕动画
- [数据结构] UVa1471 Defense Lines 防线
- 一文详解什么是RNN(循环神经网络)
- CodeVIO:基于可学习优化密集深度的视觉惯性里程计(ICRA2021)
- PyQt5四种窗口布局