Professional Documents
Culture Documents
Major Project
Major Project
on
SYSTEM IDENTIFICATION USING ADAPTIVE
EXPONENTIAL FUNCTIONAL LINK NETWORK-BASED
Click to edit
NONLINEAR FILTERS
PRESENTED
1. Introduction
2. Functional Link Network
3. Nonlinear Filter
4. Non-Linear Adaptive Filter
5. Adaptive Signal Processing
6. Least Mean Square Algorithm
7. System Identification Using FLN
Filter
8. Adaptive Exponential FLN
9. Results and Simulation
10. Conclusion
Adaptive filters are used as models to
estimate the characteristics of an unknown
system.there is an unknown system called
Introduction ‘plant’, that is to be identified or model it
by finding its transfer function
The system is modeled by an FIR filter
with M adjustable coefficients. Both the
plant and model are excited by the same
input sequence x(n). If y(n) denotes the
output of the plant and y^(n) denotes the
output of the model then
An adaptive filter is no more than a digital filter, which can adjust its
characteristics. It adapts to changes in its input signals automatically
according to a given algorithm. The algorithm will vary the coefficients
according to a given criteria, typically an error signal to improve it's
performance. In essence an adaptive filter is a digital filter combined with
an adaptive algorithm, which is used to modify the coefficients of the
filter. Adaptive filters are used in many diverse applications in today's
world for example telephone echo canceling, radar signal processing,
equalization of communication channels and biomedical signal
enhancement. Adaptive filters are useful · when the characteristics of a
given filter must be variable · when the spectrum of a given signal
overlaps with the noise spectrum · if the frequency band occupied by noise
is unknown or may vary with time. In most real world scenarios adaptive
filters are realized.using Finite Impulse Response (FIR) filters, since they
are guaranteed to be stable and are simple to use
LEAST MEAN SQUARE ALGORITHM
clc;
no_of_independent_trials = 10;
zeta = 0.1;
zeta_a = 0.1;
for itr=1:no_of_independent_trials
clc;
no_of_inputs = 2e3;
input=rand(1,no_of_inputs) - 0.5;
desired_output = zeros(1,no_of_inputs);
N=10;
AEFLN_order = 1;
input_buffer= zeros(1,N);
M = (2*AEFLN_order+1)*N + 1;
AEFLN_weights= zeros(1,M);
mu_weight= 0.05;
mu_a= 0.1;
noise = awgn(input,30)-input;
a(1)= 0;
x_tap = zeros(1,4);
for i=1:length(input)
input_buffer=[input(i) input_buffer(1:end-1)];
AE_FEB=[];
for k =1:N
for l =1:AEFLN_order
AE_FEB=[AE_FEB, exp(-1*a(i)*abs(input_buffer(k)))*sin(pi*l*input_buffer(k)),
exp(-1*a(i)*abs(input_buffer(k)))*cos(pi*l*input_buffer(k))];
end
end
AEFLN_after_FEB= [1,input_buffer,AE_FEB];
z=[];
for k =1:N
for l =1:AEFLN_order
z=[z, -1*abs(input_buffer(k))*exp(-
1*a(i)*abs(input_buffer(k)))*sin(pi*l*input_buffer(k)), -1*abs(input_buffer(k))*exp(-
1*a(i)*abs(input_buffer(k)))*cos(pi*l*input_buffer(k))];
end
end
z_final= [0,zeros(1,N),z];
normalized_weight = (AEFLN_after_FEB*AEFLN_after_FEB')+zeta;
err(itr,:)=error.^2;
end
length_of_smoothing_filter = 200;
smoothing_filter_coeff =
(1/length_of_smoothing_filter)*ones(1,length_of_smoothing_filter);
for i=1:no_of_independent_trials
err_smooth(i,:) = filter(smoothing_filter_coeff,1,err(i,:));
end
figure
plot(10*log10(mean(err_smooth)));
xlabel('Iterations');
ylabel('MSE (dB)');
grid on;
AEFLN_mse=10*log10(mean(mean(err(end-1000:end))));
fprintf('Average MSE Value over the last 1000 iterations is %f', AEFLN_mse);
xlabel('Iterations');
ylabel('MSE (dB)');
grid on;