Upsampling by zero padding or duplicating sequence
Matlab’s ‘upsample()’ command does not “pad” a sequence with zero-valued samples.  The ‘upsample()’ command “stuffs” a sequence with zero-valued samples.  “Zero padding” and “zero stuffing” are two different operations.  “Zero padding” means appending a sequential string (a sequence) of zero-valued samples to the beginning or end of a sequence.

I believe what you want to do is: ‘Upsample()” your time-domain sequence to the desired final sample rate that's compatible with your 2.4 GHz carrier sequence.  Next, lowpass filter the upsampled sequence.  Then multiply the filtered sequence by your high-frequency carrier sequence.