How to do BPSK modulation using Rayleigh fadding channel?
11 views (last 30 days)
Show older comments
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 Comments
Answers (1)
possibility
on 12 May 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.
See Also
Categories
Find more on BPSK in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!