ChannelFreqResp optimized and compared to move-it

minimal lab setup
This commit is contained in:
Silas Labor Zizou
2024-10-07 08:19:56 +02:00
parent 8577f5f6f4
commit 135d0e7cfc
16 changed files with 369 additions and 146 deletions

View File

@@ -148,18 +148,19 @@ classdef VNLE < handle
y(symbol,1) = obj.e.' * x_in; % Calculating output of LMS __ * |
if training
err(symbol) = y(symbol) - d(symbol); % Instantaneous error
err = y(symbol) - d(symbol); % Instantaneous error
else
[~,symbol_idx] = min(abs(y(symbol) - obj.constellation)); % decision for closest constellation point
d_hat(symbol,1) = obj.constellation(symbol_idx);
err(symbol) = y(symbol) - d_hat(symbol); % Instantaneous error
err = y(symbol) - d_hat(symbol); % Instantaneous error
end
if ~all(mu==0,'all') %mu has not only zeros
obj.e = obj.e - (mu * err(symbol) * x_in) ; % Weight update rule of LMS
% obj.e = obj.e - (mu * err * x_in) ; % Weight update rule of LMS
obj.e = obj.e - ( (mu * x_in) * err ) ; % Weight update rule of LMS
else
normalizationfactor = (x_in.' * x_in);
obj.e = obj.e - err(symbol) * x_in / normalizationfactor; % Weight update rule of NLMS
obj.e = obj.e - err * x_in / normalizationfactor; % Weight update rule of NLMS
end
if mod(sample,100) == 1 && showviz
@@ -173,7 +174,7 @@ classdef VNLE < handle
drawnow;
end
obj.error(epoch,symbol) = err(symbol) * err(symbol)'; % Instantaneous square error
obj.error(epoch,symbol) = err * err'; % Instantaneous square error
end
end