How to generate random data with a specific bandwidth I generate some random data (bits, actually, using MATLAB's randi) and then I convert such bits to BPSK (1 and -1). After that, I use a RRC pulse (roll-off factor of 0.35, 8 symbols and 4 samples per symbol) to create the waveform.

The bandwidth of the pulse-shaped BPSK then would be ($\beta$ is the roll-off factor):

$$
BW = R_S(1+\beta)
$$

My problem here is how to determine $R_s$ (data rate). I mean, I'm using randi, not an actual data source so initially I tried to make that value up. I suppose $R_s=1MHz$, after pulse shape the sampling frequency is $f_s = sps*R_S = 4MHz$ ($sps=4$ because of the 4 samples per symbol stated above), then the bandwidth should be something like $BW=(1+0.35)1MHz=1.35MHz$ and tried to plot the DFT of the pulse-shaped sequence for a final sampling rate of $4 MHz$:



As you can see, the bandwidth is nowhere near $1.35 MHz$.

So these are my questions:


How can I manipulate/control $R_S$
What's wrong with my calculations?


Thanks!
In the case of BPSK, the data rate equals the symbol rate (one bit per symbol). One way to control $R_S$ is to change the modulation. For example, you can increase the number of bits per symbol by choosing a higher order modulation like 16-QAM which has 4 bits per symbol. 
There is nothing wrong with your calculation. The plot is a single sided spectrum so you only see half the bandwidth. It roughly dies off around half of 1.35 MHz so assuming your code is correct, I see nothing particularly wrong with the plot or calculation.