主要内容

ANFIS自适应噪声消除

此示例显示如何通过构造和调整ANFI模型来进行自适应非线性噪声消除。

信号和噪声

定义一个假设的信息信号,x,在6秒内以100 Hz进行抽样。

时间= (0:0.01:6)';x =罪(40. /(时间+ 0.01));情节(时间,x)标题('信息信号x')Xlabel(“时间”)ylabel(“x”

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

假设x在没有干扰信号的情况下无法测量, n 2 ,它是由另一个噪声源产生的, n 1 ,由一个未知的非线性过程。

生成并绘制噪声源 n 1

n1 = randn(大小(时间));情节(时间,n1)标题(“噪声源n_1”)Xlabel(“时间”)ylabel(“n_1”

图中包含一个坐标轴。具有标题噪声源N_1的轴包含类型线的对象。

假设干扰信号, n 2 ,在测量信号中出现的是通过未知的非线性方程生成:

n 2 k 4 n 1 k n 1 k - 1 1 + n 1 k - 1 2

把这个非线性函数画成一个曲面。

域= 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)的) 标题(“未知干扰信道特性”

图中包含一个坐标轴。标题为未知干扰信道特性的轴包含一个曲面类型的对象。

计算干扰信号, n 2 ,从噪声源, n 1 ,并绘制两个信号。

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(“时间”

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

n 2 与之相关 n 1 通过前面展示的高度非线性过程。然而,从图中可以看出,这两个信号之间并没有任何关联。

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

m = x + n2;子图(1,1,1)图(时间,m)标题(被测信号的)Xlabel(“时间”)ylabel('M'

图中包含一个坐标轴。标题为Measured Signal的轴包含一个类型为line的对象。

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

建立ANFIS模型

使用ANFIS.命令识别之间的非线性关系 n 1 n 2 .而 n 2 不可直接可用,您可以假设是一个嘈杂的版本 n 2 进行训练。这种假设对x这种非线性配件中的“噪音”。

假设已知非线性信道的阶数(在本例中,2).您可以使用双输入ANFIS模型进行训练。

定义培训数据。前两列数据为ANFIS模型的输入, n 1 还有延迟版的 n 1 .最后一栏数据是测量的信号,

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,出局,模拟二阶关系 n 1 n 2

评估模型

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

估计_n2 = evalfis(outfis,数据(:,1:2));

情节的实际 n 2 信号和来自ANFIS输出的估计版本。

子图(2,1,1)图(时间,n2)ylabel(“甲烷”)Xlabel(“时间”) 标题('未知干扰信号')子图(2,1,2)绘制(时间,估计_n2)ylabel(“甲烷”)Xlabel(“时间”) 标题(“估计干扰信号”

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

估计的信息信号等于测量信号之间的差异,以及估计干扰(ANFIS输出)。

Estimated_x = m - estimated_n2;

比较原始信息信号,x,估计,estimated_x

图绘制(时间、estimated_x“b”、时间、x,“r”)Xlabel(“时间”)ylabel(“x”) 标题(“实际信号与估计信号的比较”)传说(“估计x”“实际x(未知的)”'地点''东南'

图中包含一个坐标轴。具有实际和估计信号标题比较的轴包含2个类型的线。这些对象表示估计X,实际x(未知)。

如果没有广泛的培训,ANFIS模型会产生实际准确的信息信号估计。

另请参阅

||

相关话题