In my project, the ADC is an 16-bit unipolar type, 0 - 3.3 V. This 16-bit data we are making as bipolar ($-1.65$ to $+1.65$ range), converting as Q15 data.
The conversion is as follows.
Q31_data = (q31_t) ((16bit_ADC_data- Offset) <<15)
Here I am making it as a Q30 format, so I'll get Q30 (range is $-2$ to $+2$).
We only have the Q format like Q31, Q15 and Q7 (the processor is a 32-bit ARM Cortex-M4), FFT and FIR is a Q31 format.
My input range is $-1.65$ to $+1.65$, and then I am doing the above scaling process.
If my input range is $-5$ to $+5$ that time I want to multiply with 3.03 (in hardware if the input is $-5$ to $5$ attenuate as $-1.65$ to $+1.65$ in software we are reconstruct to the $-5$ to $+5$ range).
Then this data I want to process to FIR and FFT. For this case, I didn't get an idea for scaling. How I can muliply 3.3 with a Q31 value? How do I do this? Is it possible to do?