此示例显示如何通过构造和调整ANFI模型来进行自适应非线性噪声消除。
定义一个假设的信息信号,x
,在6秒内以100 Hz进行抽样。
时间= (0:0.01:6)';x =罪(40. /(时间+ 0.01));情节(时间,x)标题('信息信号x')Xlabel(“时间”)ylabel(“x”)
假设x
在没有干扰信号的情况下无法测量,
,它是由另一个噪声源产生的,
,由一个未知的非线性过程。
生成并绘制噪声源 .
n1 = randn(大小(时间));情节(时间,n1)标题(“噪声源n_1”)Xlabel(“时间”)ylabel(“n_1”)
假设干扰信号, ,在测量信号中出现的是通过未知的非线性方程生成:
把这个非线性函数画成一个曲面。
域= linspace (min (n1), max (n1), 20);[xx, yy] = meshgrid(域、域);zz = 4 * sin (xx)。* yy. / (1 + yy。^ 2);冲浪(yy, xx zz)包含('n_1(k)')ylabel(“n_1 (k - 1)”) zlabel (的甲烷(k)的) 标题(“未知干扰信道特性”)
计算干扰信号, ,从噪声源, ,并绘制两个信号。
n1d0 = n1;% n1延迟0n1d1 = [0;n1d0(1:长度(n1d0)-1)];% n1延迟1n2 = 4 * sin(n1d0)。* n1d1./(1 +n1d1.^2);%的干扰次要情节(2,1,1)情节(时间、n1) ylabel (“n_1”)Xlabel(“时间”) 标题(的噪声源)子图(2,1,2)图(时间,n2)ylabel(“甲烷”) 标题(干扰信号的)Xlabel(“时间”)
与之相关 通过前面展示的高度非线性过程。然而,从图中可以看出,这两个信号之间并没有任何关联。
被测信号,米
,是原始信息信号的总和,x
,以及干扰,
.然而,
是未知的。唯一可用信号是噪声信号,
和测量信号米
.
m = x + n2;子图(1,1,1)图(时间,m)标题(被测信号的)Xlabel(“时间”)ylabel('M')
您可以恢复原始信息信号,x
,通过ANFIS训练使用自适应噪声消除。
使用ANFIS.
命令识别之间的非线性关系
和
.而
不可直接可用,您可以假设米
是一个嘈杂的版本
进行训练。这种假设对x
这种非线性配件中的“噪音”。
假设已知非线性信道的阶数(在本例中,2
).您可以使用双输入ANFIS模型进行训练。
定义培训数据。前两列数据
为ANFIS模型的输入,
还有延迟版的
.最后一栏数据
是测量的信号,米
.
delayed_n1 = [0;n1(1:长度(n1)-1)];data = [delayed_n1 n1 m];
生成初始FIS对象。默认情况下,网格划分算法对每个输入变量使用两个隶属函数,产生4个模糊学习规则。
genOpt = genfisOptions ('gridpartition');不定式= genfis(数据(:,1:end-1),数据(:,结束),genOpt);
调整FIS使用ANFIS.
初始训练步长的命令0.2
.
trainopt = anfisoptions(“InitialFIS”不定式,“InitialStepSize”,0.2);Outfis = ANFIS(数据,RATEPOPT);
ANFIS info: Number of nodes: 21 Number of linear parameters: 12 Number of nonlinear parameters: 12 Total Number of parameters: 24 training data pairs: 601 Number of checking data pairs: 0 Number of fuzzy rules: 4 Start training ANFIS…1 0.761817 2 0.748426 3 0.739315 4 0.733993步长在历元5后增加到0.220000。5 0.729492 6 0.725382 7 0.721269 8 0.717621历元9后步长增加到0.242000。9 0.714474 10 0.71207到达指定的历元数。ANFIS训练完成于纪元10。最小训练RMSE = 0.71207
调谐的FIS,出局
,模拟二阶关系
和
.
计算估计的干扰信号,estimated_n2
,通过使用原始训练数据评估调谐FIS。
估计_n2 = evalfis(outfis,数据(:,1:2));
情节的实际 信号和来自ANFIS输出的估计版本。
子图(2,1,1)图(时间,n2)ylabel(“甲烷”)Xlabel(“时间”) 标题('未知干扰信号')子图(2,1,2)绘制(时间,估计_n2)ylabel(“甲烷”)Xlabel(“时间”) 标题(“估计干扰信号”)
估计的信息信号等于测量信号之间的差异,米
以及估计干扰(ANFIS输出)。
Estimated_x = m - estimated_n2;
比较原始信息信号,x
,估计,estimated_x
.
图绘制(时间、estimated_x“b”、时间、x,“r”)Xlabel(“时间”)ylabel(“x”) 标题(“实际信号与估计信号的比较”)传说(“估计x”,“实际x(未知的)”,'地点','东南')
如果没有广泛的培训,ANFIS模型会产生实际准确的信息信号估计。