主要内容

基于ANFIS的自适应噪声抵消

这个例子展示了如何通过构造和调整ANFIS模型来进行自适应非线性噪声抵消。

信号和噪声

定义一个假设的信息信号,x,采样频率为100hz,超过6秒。

时间=(0:0.01:6);(x=sin(40./(时间+0.01));绘图(时间,x)标题(“信息信号x”)包含(“时间”) ylabel (“x”)

图中包含一个轴对象。标题为信息信号x的轴对象包含一个类型为line的对象。

假定x无法在没有干扰信号的情况下进行测量, N 2. ,这是由另一个噪声源产生的, N 1. ,通过某种未知的非线性过程。

生成并绘制噪声源 N 1.

n1 = randn(大小(时间));情节(时间、n1)标题(“噪声源n_1”)包含(“时间”) ylabel (‘n_1’)

图中包含一个轴对象。标题为N o i s e blank s o u r c e blank N indexOf 1基线的轴对象包含一个line类型的对象。

假设干扰信号, N 2. ,在被测信号中出现的是通过一个未知的非线性方程产生的:

N 2. ( K ) = 4. ( N 1. ( K ) ) N 1. ( K - 1. ) 1. + N 1. ( K - 1. ) 2.

将此非线性函数绘制为曲面。

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)”) ylabel (‘n_1(k-1)’)兹拉贝尔(‘n_2(k)’)标题(“未知干扰信道特性”)

图中包含一个轴对象。标题为“未知干涉通道特征”的轴对象包含一个类型为“曲面”的对象。

计算干扰信号, N 2. ,从噪声源, N 1. ,并绘制两种信号。

n1d0 = n1;%延迟为0的n1n1d1 = [0;n1d0(1:长度(n1d0) 1)];%具有延迟1的n1n2 = 4 * sin (n1d0)。* n1d1. / (1 + n1d1。^ 2);%干扰子地块(2,1,1)绘图(时间,n1)标签(‘n_1’)包含(“时间”)标题(“噪声源”) subplot(2,1,2) plot(time,n2) ylabel(‘n_2’)标题(“干扰信号”)包含(“时间”)

图中包含2个轴对象。带有标题噪声源的轴对象1包含线条类型的对象。带有标题干扰信号的轴对象2包含线条类型的对象。

N 2. 有关 N 1. 通过前面所示的高度非线性过程。然而,从图上看,这两个信号似乎没有以任何方式相互关联。

被测信号,M,为原始信息信号的和,x,以及干扰, N 2. .然而, N 2. 是未知的。唯一可用的信号是噪声信号, N 1. ,以及被测信号M

M = x + n2;子图(1,1,1)图(时间,m)标题(“测量信号”)包含(“时间”) ylabel (“米”)

图中包含一个轴对象。标题为“测量信号”的轴对象包含一个line类型的对象。

你可以恢复原始的信息信号,x,通过ANFIS训练使用自适应噪声抵消。

建立ANFIS模型

使用简称anfis命令来识别两者之间的非线性关系 N 1. N 2. 虽然 N 2. 不是直接可用的,你可以假设M是嘈杂版的吗 N 2. 用于培训。此假设适用于x为这种非线性拟合中的“噪声”。

假设非线性信道的阶数已知(在这种情况下,2.)。您可以使用双输入ANFIS模型进行培训。

定义训练数据。的前两列数据是ANFIS模型的输入, N 1. 还有一个延迟版本的 N 1. .最后一栏数据为被测信号,M

delayed_n1 = [0;n1(1:长度(n1) 1)];数据= [delayed_n1 n1 m];

生成初始FIS对象。默认情况下,网格划分算法对每个输入变量使用两个隶属函数,从而生成四个模糊规则进行学习。

genOpt=genfisOptions(“GridPartition”);inFIS=genfis(数据(:,1:end-1),数据(:,end),genOpt);

使用简称anfis初始训练步长为0.2

trainOpt = anfisOptions (“InitialFIS”,英菲斯,“初始步长”, 0.2);人物=简称anfis(数据、trainOpt);
ANFIS信息:节点数:21个线性参数数:12个非线性参数数:12个参数总数:24个训练数据对数:601个检查数据对数:0个模糊规则数:4个开始训练ANFIS…10.761817 2 0.748426 3 0.739315 4 0.733993第5纪元后步长增加到0.220000。5 0.7294926 0.725382 7 0.721269 8 0.717621步长在第9纪元后增加到0.242000。9 0.714474 10 0.71207指定纪元数达到。ANFIS训练在第10纪元完成。最小训练RMSE=0.71207

调金融中间人,人物》的二阶关系模型 N 1. N 2.

评估模型

计算估计的干扰信号,估计值,通过使用原始训练数据评估调整后的FIS。

estimated_n2 = evalfis(人物、数据(:1:2));

绘制实际的 N 2. 信号和ANFIS输出的估计版本。

Subplot (2,1,1) plot(time, n2) ylabel(‘n_2’)包含(“时间”)标题(“未知干扰信号”) subplot(2,1,2) plot(time, estimated_n2) ylabel(‘n_2’)包含(“时间”)标题(“估计干扰信号”)

图中包含2个轴对象。标题为未知干扰信号的轴对象1包含类型为line的对象。标题为“估计干扰信号”的轴对象2包含一个类型为line的对象。

估计的信息信号等于被测信号之间的差,M,估计干扰(ANFIS输出)。

估计的_x=m-估计的_n2;

比较原始信息信号,x,以及估计,估计值

图2:曲线图(时间、估计值),“b”,时间,x,“r”)包含(“时间”) ylabel (“x”)标题(“实际信号与估计信号的比较”)传奇(“估计x”,'实际x(未知)',“位置”,“东南”)

图中包含一个Axis对象。标题为“实际信号与估计信号比较”的Axis对象包含2个line类型的对象。这些对象表示估计x、实际x(未知)。

在没有大量训练的情况下,ANFIS模型可以对信息信号做出相对准确的估计。

另见

||

相关的话题