In digital modulation process, after constellation mapping and before pulse shaping, the symbols are upsampled with the number L(samples per symbol). At this moment, why symbol have to be upsampled, if the symbol rate and sample rate is same what happen?
-
$\begingroup$ If upsampling was not applied, and the symbol rate and sampling rate were the same, it would mean that every sample is a new symbol. This might cause decoding errors in low SNR. I would imagine the upsampling operation is done to perform the correlation operation on the discrete samples. $\endgroup$– AnVijMay 17, 2021 at 14:21
1 Answer
The baseband information-bearing signal $s(t)$ is a train of time-shifted orthogonal pulses: $$s(t) = \sum_k a_k p(t-kT),$$ where $a_k$ is the sequence of symbols and $T$ is the symbol rate. The problem is, how to generate this signal in Matlab (or any other discrete-time numerical language)?
To start, note that the $j$-th pulse $a_j p(t-jT)$ can be written as $$a_j \delta(t-jT) \ast p(t).$$ Here, the pulse $p(t)$ is interpreted as the impulse response of a filter (the "pulse-shaping filter"), which allows us to write the pulse as the result of a filtering operation (a convolution). If we define the train of impulses $\Delta(t) = \sum_k a_k\delta(t-kT)$, then the entire pulse train may then be written as the convolution $$s(t) = \Delta(t) \ast p(t).$$
This signal is easy to generate in a computer. Assume that the sampling frequency is fs
, the sampling interval is Ts = 1/fs
, and the symbol interval is T=LTs
for integer L
, which is the number of samples per symbol. Assume also that we have a vector of symbols ak
, and samples from the prototype pulse p
. Then, Δ = upsample(ak, L)
is the discrete-time equivalent of $\Delta(t)$, and
s[n] = conv(Δ, p)
is the discrete-time equivalent of $s(t)$.
-
1
-