1) Умножения считать как (A*B >> 15). Таким образом при A и B в формате Q.15 выход тоже будет в Q.15
2) БПЗ (блочная плавающая запятая). Посчитать экспоненты всех Re и Im, и выровнять так, чтобы максимальное число оказалось придвинуто первым значащим битом в бит 30. А взять биты 16..31 от них. Экспоненту (на сколько двигали) сохранить. Получается как бы real, но экспонента одна на блок данных.
Второй подход приводит к лучшему отношению сигнал/шум на выходе.