How to do BPSK modulation using Rayleigh fadding channel?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Given a signal y= h(x) + n where n is AWGN noise and x is binary signal, h is complex channel constant. We need to determine y and then obtain x from it using Cholaski Inverse Method.
clear
N = 10^6 % number of bits or symbols
% Transmitter
ip = rand(1,N)>0.5; % generating 0,1 with equal probability
s = 2*ip-1; % BPSK modulation 0 -> -1; 1 -> 0
Eb_N0_dB = [-3:35]; % multiple Eb/N0 values
for ii = 1:length(Eb_N0_dB)
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % white gaussian noise, 0dB variance
h = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Rayleigh channel
% Channel and noise Noise addition
y = h.*s + 10^(-Eb_N0_dB(ii)/20)*n;
% equalization
yHat = y./h;
% receiver - hard decision decoding
ipHat = real(yHat)>0;
% counting the errors
nErr(ii) = size(find([ip- ipHat]),2);
end
In the line
yHat = y./h;
it is a equalization process done by simple method. I need to do the same using Cholaski Decomposition. Any help will be highly apprecialbe.
0 Kommentare
Antworten (1)
possibility
am 12 Mai 2018
I am not sure how this is related to Cholesky decomposition. But let me describe a solution for it.
Assume, y=hs+n where h is the 1-by-N channel vector. If you know the channel at the receiver, you can do the following:
h'y=h'(hs+n)
h'y=h'hs + h'n % Since h'h is a N-by-N square matrix, inverse can be taken now. Multiply both sides with inv(h'h)
inv(h'h) h' y = inv(h'h) h'hs + inv(h'h)h'n
inv(h'h) h' y = s + inv(h'h)h'n = yhat
Hence, multiplying the received signal, y, with inv(h'h) h' results in the noisy version of s.
You can do it as follows:
yhat = inv(h'h)*h'*y
I couldn't see now whether it has to be "transpose" or "conjugate transpose". But this method is well-known as least squares.
Siehe auch
Kategorien
Mehr zu Propagation and Channel Models finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!