%% System Identification Using Voltera Least Mean Square (VLMS) algorithm
% Plant identification simulation
% Author: SHUJAAT KHAN (shujaat123@gmail.com)
%% Start
clc;
clear all;
close all;
%% signal and system parameters
N = 1e5; % Number of samples
noise_var = 1e-2; % Noise level
h = [-0.76 -1.0 1.0 0.5 0 2.0 -1.6 0.8 1.2]; % system coefficients
order = 2; % delay elements
power = 2; % highest polynomial power
memory = order+1; % memory elements (current value + order)
x = sqrt(0.1)*rand(1,N); % random signal uniformly distributed
x = filter([1 -0.95],1,x); % all-pole filter
x = [zeros(1,memory) x]; % Zero padding
for i=1:N % Input passed trought system(h)
r(i)=h(1)*x(i+1)+h(2)*x(i+2)+h(3)*x(i+3)+h(4)*x(i+1)^2+h(5)*x(i+1)*x(i+2)+h(6)*x(i+1)*x(i+3)+h(7)*x(i+2)^2+h(8)*x(i+2)*x(i+3)+h(9)*x(i+3)^2;
end
x= x((memory+1):end); % Removing Zero padding
SNR = 10*log10(1/noise_var); % SNR calculation
d = awgn(r, SNR); % Addition of white Gaussian noise of SNR value defined above
%% VLMS parameter
eta1 = 2e-0; % Learning rate1 for VLMS
eta2 = 2e-0; % Learning rate2 for VLMS
Wvlms = zeros(1,length(h)); % Initial weights of VLMS
Uv1 = zeros(1,memory); % Input frame1 length of VLMS
Uv2 = zeros(1,length(Wvlms)-memory); % Input frame2 length of VLMS
for n = 1 : N
%% VLMS
Uv1(1,1:end-1) = Uv1(1,2:end); % Shifting of frame window
% Input of VLMS
Uv1(1,end) = x(n);
Uv2 = [Uv1(1)^2 Uv1(1)*Uv1(2) Uv1(1)*Uv1(3) Uv1(2)^2 Uv1(2)*Uv1(3) Uv1(3)^2];
ys = (Wvlms)*[Uv1 Uv2]'; % Output of VLMS
es = d(n) - ys; % Instantaneous error of VLMS
Wvlms = Wvlms + es * [eta1*Uv1 eta2*Uv2]; % Weight update rule of VLMS
%% Normalized weight difference (NWD)
NWD_VLMS(n) = norm(h-Wvlms)./norm(h); % Normalized weight difference of VLMS
end
% %% Cost function plots
figure
plot(20*log10(NWD_VLMS),'','linewidth',2)
hold on
line ([0 N],[-SNR -SNR],'linewidth',2,'color','r')
xlabel('Iterations');
ylabel('Normalized Weight Deviation (dB)');
grid minor
legend('VLMS','Noise Level');
[h;Wvlms]
天天Matlab代码科研顾问
- 粉丝: 3w+
- 资源: 2775
最新资源
- 基于Vue.js的在线购物系统的设计与实现+vue(Java毕业设计,附源码,数据库,教程).zip
- 基于springboot+Vue的制造装备物联及生产管理erp系统2(Java毕业设计,附源码,部署教程).zip
- 基于springboot+Vue的高校教师电子名片系统(Java毕业设计,附源码,部署教程).zip
- 基于springboot+Vue的高校教师电子名片系统2(Java毕业设计,附源码,部署教程).zip
- 基于SpringBoot+Vue的房地产销售管理系统的设计与实现2(Java毕业设计,附源码,部署教程).zip
- 基于JavaEE的龙腾公司员工信息管理系统的设计与实现+jsp(Java毕业设计,附源码,数据库,教程).zip
- 基于springboot+Vue的智慧校园之家长子系统(Java毕业设计,附源码,部署教程).zip
- 基于springboot+Vue的周边游平台个人管理模块的设计与实现(Java毕业设计,附源码,部署教程).zip
- 基于Web的智慧城市实验室主页系统设计与实现+vue(Java毕业设计,附源码,数据库,教程).zip
- 基于springboot+Vue的反欺诈平台的建设(Java毕业设计,附源码,部署教程).zip
- 基于springboot+Vue的反欺诈平台的建设2(Java毕业设计,附源码,部署教程).zip
- 基于springboot+Vue的制造装备物联及生产管理erp系统(Java毕业设计,附源码,部署教程).zip
- 基于SpringBoot+Vue的房地产销售管理系统的设计与实现(Java毕业设计,附源码,部署教程).zip
- 基于 Java Web 的校园驿站管理系统+jsp(Java毕业设计,附源码,数据库,教程).zip
- 基于springboot+Vue的志同道合交友网站(Java毕业设计,附源码,部署教程).zip
- 基于SpringBoot+Vue的政府管理的系统设计(Java毕业设计,附源码,部署教程).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈