Why symbols have to be upsampling, 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 &quot;pulse-shaping filter&quot;), 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)$.