1
$\begingroup$

I'm working on simulating an uplink scenario in satellite communication. The goal is to send a preamble + data to the satellite from ground station. Data symbols have a bandwidth of $15\ \rm kHz$ and the preamble has a bandwidth of $180\ \rm kHz$.

I'm simulating the transmitter, channel and receiver in MATLAB. I've a question regarding how to introduce white noise.

I read that variance of white noise depends on the bandwidth of the signal. $$SNR = \frac{P}{NB}$$ Where $P$ is the power of signal, $N$ is PSD of white noise, $B$ is the bandwidth of the signal. In above case, the signal contains 2 parts, preamble + Data. Preamble has $180\ \rm kHz$ of bandwidth, whereas data has only $15\ \rm kHz$.

How to generate the white noise in this scenario? What should be the variance of the noise?

$\endgroup$
0
$\begingroup$

One technicality to be aware of is that white Gaussian noise has infinite bandwidth. What you are asking for is filtered white noise, which has a flat PSD in a given bandwidth, and zero power outside of it. It is common to call this filtered noise "white noise", but you should be aware of the difference.

With that out of the way, consider the channel between the ground station and the satellite. The noise in this channel is modeled as white Gaussian, with $\text{PSD} = N/2$. Assuming a filter with bandwidth $B$, the power of the filtered noise is, as you say, $NB$ (because the power is the integral of the PSD from minus infinity to infinity, which includes negative frequencies).

Now you need to define the receiver filter. It is very unusual, in my experience, to transmit a signal with two different bandwidths. You have two choices for the receiver design: a single filter with bandwidth 180 kHz, or two filters, one of 180 kHz and another of 15 kHz.

The single-filter design is obviously cheaper and much simpler to implement. The drawback is that it is quite suboptimal, as the data signal will be subject to much more noise than it would with a 15 kHz filter.

The two-filter design will be much more complex (I have never seen a real system implemented like this). The benefit is that it will be optimal.

In Matlab, you can generate filtered white noise of variance 1 with randn. After that, it's just a matter of scaling the noise appropriately to get the variance you want.

$\endgroup$
2
  • $\begingroup$ Currently I generate the white noise as follows, white_noise = (rms(txSignal)*sqrt((10^-(snr_db/10)))/sqrt(2))*(randn(txSignal) + 1i * randn(txSignal); When I plot the BER, it is much worse than I expected. I believe this is due to noise scaling. Am I scaling the noise correctly while generating? Is there better way to scale, since both the preamble + data have different bandwidths? $\endgroup$ – spectre Dec 9 '20 at 15:18
  • $\begingroup$ Regarding filter design at the rx: Since the data belongs to single user, & preamble is used for time sync & freq offset correction, there is no need for designing 2 filters. Currently I design single filter with pass band of around 200 kHz. $\endgroup$ – spectre Dec 9 '20 at 15:27
0
$\begingroup$

Regarding the bandwidth, this should be the channel bandwidth from the channel symbol rate $R_{ch}$. The preamble and stuff like ASMs (attached synch markers) are used for synchronization purposes and are appended to the data before the modulator. Everything (data + preamble/ASM) is then transmitted as one block from the modulator, and this constitutes the channel data. You then get the channel symbol rate $$ R_{ch} = \frac{R_b}{r_{ch}} $$ Where $R_b$ is the raw bit rate, and $r_{ch}$ is the channel code rate.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.