scaling: DAC resolution 11 bits signed
coeffs = round( 1023* coeffs/max(coeffs));
Regarding your steps:
mapping is straight forward with qpsk (1 => 1, 0 => -1 or the reverse)
upsampling: You are mixing up between upsampling term used by two sets of people. DSP upsampling is achieved by interpolation.
You can if you wish add zeros e.g. one sample followed by 7 zeros then apply filter.
this is physical zero insertion prior to filtering but it will waste resource as you can assume zeros then filter according to polyphase approach.
if you instead of zero insertion repeat the values it will I believe add massive dc
So to follow your plan:
map => assume zeros => apply RRC (requires up2 at least) => mix => DAC
it ended up same as I first described with polyphase structure.
It will help you if you can model in matlab your chain. Just like modelsim helps with usual logic.