I'm given a signal that has been passed through a noisy channel using binary polar signaling with a pulse value of p(t) = 1. The receiver is coherent and the length of each pulse (in samples) is 10 samples. I'm given:
the pulse signal used to represent the symbol/bit '1' = [3.1623, 3.1623, 3.1623, 3.1623, 3.1623, 3.1623, 3.1623, 3.1623, 3.1623, 3.1623] the number of samples taken from each symbol = 10 the number of symbols, i.e., bits, sent in the signal (there are 8-bits per character) = 248 the variance of the noise in the AWGN channel = 28 the mean of the noise in the AWGN channel = 0 the energy of the p_sampled signal = 100
Using this information I need to find the values of the received symbols using an optimal receiver or a matched filter.
So for my example, I've chosen
T0 = 10 and since polar signalizing is used, I threshold the sampled signal as
m = 1 if y(T0) > 0 else m = 0
This is my code:
p_of_t = [3.1623 3.1623 3.1623 3.1623 3.1623 3.1623 3.1623 3.1623 3.1623 3.1623] for idx = 1:numSymbols % for each symbol transmitted r_of_t = x_of_t(tmp+1 : idx*samplesPerSymbol); % 10 samples of the received noise + message y_of_t_at_tm(idx) = sum(r_of_t .* p_of_t); if(y_of_t_at_tm(idx) > 0) decision(idx) = 1; else decision(idx) = 0; end tmp = idx*samplesPerSymbol; end
I have two questions:
- Will the Optimal filter decode ALL the bits from the received signal, correctly?
- Is my implementation of the filter correct?
The reason I ask is that when I try to verify my implementation by generating my own polar signal for a message and using the above implementation as a receiver and decode the sampled bits, I do not get the original message back. There is an error of one bit.
I will appreciate any leads. Thank you.