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