Explaining BPSK Demodulation ?

2 次查看(过去 30 天)
Jason Hathaway
Jason Hathaway 2017-2-6
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.

回答(1 个)

Hari
Hari 2025-1-6
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 个评论
Jason Hathaway
Jason Hathaway 2025-1-6

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!

请先登录,再进行评论。

标签

Community Treasure Hunt

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

Start Hunting!

Translated by