Hi,

I want to use the carrier_mixer_us in ocpi.comp.sdr.dsp component to down convert a signal.

Ideally I would want the input wave to have the same amplitude as the output wave however this does not seem to be possible due to the carrier_amplitude property having a maximum allowed value of 14,060.

Since the property is scaled by 1.646760258, this brings the amplitude of the mixer wave to 23170.475 or roughly sqrt(2) * 2^15. I would understand if the amplitude was limited to 2^15 to prevent overflow but what is the reason for this sqrt(2) factor?

Before outputting, the result of each multiplication is shifted right by 15 (both I and Q) i.e scaled by 1 / 2^15. Therefore with the maximum mixer amplitude, the resulting wave’s amplitude will be roughly 1/sqrt(2) that of the input wave.

It is also quite counterintuitive that the input amplitude of the carrier wave is being scaled this way. Would it not be possible to provide the true amplitude to the carrier_amplitude property and have the worker do the necessary scaling? If not, renaming the property to indicate that it is not the actual amplitude would be useful.

Thanks,
Dan