Explaining BPSK Demodulation ?

3 vues (au cours des 30 derniers jours)
Jason Hathaway
Jason Hathaway le 6 Fév 2017
Hi everyone,
I've a simple question (or it should be one).
I have a sequence, let's say it is u = [1 1 0]. I've modulate it using BPSK as u_BPSK = [-1 -1 1]. I've sent it through AWGN channel using the command I found on the internet.
y = u_BPSK + sqrt(N0/2)*(randn(size(u_BPSK))+i*randn(size(u_BPSK)));
where N0 is the noise power spectral density:
N0 = 1/(10^(SNRdB/10));
I just want to understand how this type of demodulation.
Thanks in advance.

Réponses (1)

Hari
Hari le 6 Jan 2025
Hi Jason,
I understand that you want to know how to perform BPSK demodulation on a sequence that has been transmitted through an AWGN channel. You have already modulated the sequence using BPSK and added noise to it.
Understanding BPSK Demodulation: BPSK demodulation involves detecting the transmitted bits from the received noisy signal. The process is simple: if the received signal is greater than zero, the bit is '1'; otherwise, it is '0'.
Noise Addition in the Channel: You added noise using the equation
y = u_BPSK + sqrt(N0/2)*(randn(size(u_BPSK))+i*randn(size(u_BPSK)));
This simulates the effect of an AWGN channel.
Demodulation Process:
First, you need to strip the imaginary part (if any) because BPSK is a real-valued modulation scheme.
Then, make a decision based on the sign of the real part of the received signal.
Begin by removing any imaginary components.
y_real = real(y);
Next, demodulate by checking the sign of the real part.
u_demodulated = y_real > 0;
Convert logical array to binary.
u_demodulated = double(u_demodulated);
Final Output: The demodulated sequence should match the original sequence, barring any errors introduced by the noise.
Refer to the documentation of "BPSK Modulation" for more details: https://www.mathworks.com/help/comm/ref/comm.bpskmodulator-system-object.html
Refer to the documentation of "AWGN Channel" for more details: https://www.mathworks.com/help/comm/ref/comm.awgnchannel-system-object.html
Refer to the documentation of "randn" function for more details: https://www.mathworks.com/help/matlab/ref/randn.html
Hope this helps!
  1 commentaire
Jason Hathaway
Jason Hathaway le 6 Jan 2025

Many thanks Hari for getting back on this after all these years. 😁

I have asked this question when I was working on one project during university. Time flies!

Thanks again!

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by