Auswertung Experiment
Database tüddelei DBHanlder läuft gut für DIESE Datanbank struktur... App begonnen aber weit entfernt von gutem Stand
This commit is contained in:
@@ -1,4 +1,15 @@
|
||||
function duobinary_signaling()
|
||||
function [eq_signal,eq_noise,ber,numErrors] = duobinary_signaling(EQ, MLSE,M ,rx_signal, tx_symbols, tx_bits)
|
||||
%Duobinary Signaling
|
||||
|
||||
[eq_signal, eq_noise] = EQ.process(rx_signal,tx_symbols);
|
||||
|
||||
eq_signal = MLSE.process(eq_signal);
|
||||
|
||||
eq_signal = Duobinary().decode(eq_signal);
|
||||
|
||||
% M = numel(unique(eq_signal.signal));
|
||||
rx_bits = PAMmapper(M,0).demap(eq_signal);
|
||||
|
||||
[~,numErrors,ber,~] = calc_ber(rx_bits.signal,tx_bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1);
|
||||
|
||||
end
|
||||
@@ -1,4 +1,17 @@
|
||||
function duobinary_target()
|
||||
function [eq_signal,eq_noise,ber,numErrors] = duobinary_target(EQ, MLSE,M, rx_signal, tx_symbols, tx_bits)
|
||||
|
||||
%Duobinary Targeting
|
||||
|
||||
[eq_signal, eq_noise] = EQ.process(rx_signal,Duobinary().encode(tx_symbols));
|
||||
|
||||
% dir = [1,1];
|
||||
eq_signal = MLSE.process(eq_signal);
|
||||
|
||||
eq_signal = Duobinary().decode(eq_signal);
|
||||
|
||||
% M = numel(unique(tx_symbols.signal));
|
||||
rx_bits = PAMmapper(M,0).demap(eq_signal);
|
||||
|
||||
[~,numErrors,ber,~] = calc_ber(rx_bits.signal,tx_bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1);
|
||||
|
||||
end
|
||||
@@ -1,4 +1,25 @@
|
||||
function eq_signal = vnle(EQ,rx_signal,tx_symbols)
|
||||
%VNLE
|
||||
eq_signal = EQ.process(rx_signal,tx_symbols);
|
||||
function [eq_signal,eq_noise,ber,numErrors] = vnle(EQ,M,rx_signal,tx_symbols,tx_bits)
|
||||
%VNLE Apply an equalization algorithm to the received signal and calculate BER
|
||||
% This function takes an equalizer object, a received signal, and the
|
||||
% transmitted symbols to apply equalization, map the received signal back to bits,
|
||||
% and compute the bit error rate (BER).
|
||||
%
|
||||
% Inputs:
|
||||
% EQ - Equalizer object that provides the equalization method
|
||||
% rx_signal - Received signal that needs to be equalized
|
||||
% tx_symbols - Transmitted symbols used as a reference for BER calculation
|
||||
%
|
||||
% Outputs:
|
||||
% eq_signal - Equalized version of the received signal
|
||||
% ber - Bit error rate after equalization
|
||||
% numErrors - Number of bit errors detected
|
||||
|
||||
%FFE or VNLE
|
||||
[eq_signal,eq_noise] = EQ.process(rx_signal,tx_symbols);
|
||||
|
||||
% M = numel(unique(tx_symbols.signal));
|
||||
rx_bits = PAMmapper(M,0).demap(eq_signal);
|
||||
|
||||
[~,numErrors,ber,~] = calc_ber(rx_bits.signal,tx_bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1);
|
||||
|
||||
end
|
||||
@@ -1,4 +1,18 @@
|
||||
function vnle_postfilter_mlse()
|
||||
function [eq_signal,eq_noise,ber,numErrors] = vnle_postfilter_mlse(eq_,pf_,mlse_,M,rx_signal,tx_symbols,tx_bits)
|
||||
|
||||
%FFE or VNLE
|
||||
[eq_signal,eq_noise] = eq_.process(rx_signal,tx_symbols);
|
||||
|
||||
eq_signal = pf_.process(eq_signal,eq_noise);
|
||||
|
||||
%M = numel(unique(tx_symbols.signal));
|
||||
mlse_.DIR = pf_.burg_coeff;
|
||||
mlse_.trellis_states = PAMmapper(M,0).levels;
|
||||
mlse_.M = M;
|
||||
eq_signal = mlse_.process(eq_signal);
|
||||
|
||||
rx_bits = PAMmapper(M,0).demap(eq_signal);
|
||||
|
||||
[~,numErrors,ber,~] = calc_ber(rx_bits.signal,tx_bits.signal,"skip_front",100,"skip_end",150,"returnErrorLocation",1);
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user