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?
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
Δ = upsample(ak, L) is the discrete-time equivalent of $\Delta(t)$, and
s[n] = conv(Δ, p)
is the discrete-time equivalent of $s(t)$.