This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MMWCAS-RF-EVM: Purpose of the range scale factor coefficients

Part Number: MMWCAS-RF-EVM

Hi, I am not sure what the purpose of the scaleFactor in the module_param.m script is. Please assist. 

scaleFactor         = [0.0625, 0.03125, 0.015625, 0.0078125, 0.00390625, 0.001953125, 0.0009765625, 0.00048828125]*4;

.

.

.

rangeProcCascade_scaleFactorRange = 0; 
rangeProcCascade_FFTOutScaleOn = 0; %1: apply scaleFactorRange; 0: scaling factor not applied

  • Hi,

    Unfortunately the developer of this matlab code is no longer available for support.

    That being said, it looks like the scaleFactor array is as follows

    (1/16; 1/32; 1/64...)

    These are probably used for scaling the range FFT to avoid overflow

    thank you

    Cesar

  • Hi, 

    Could you please elaborate on how overflow is avoided using this method? There does not seem to be any code that checks rangeProcCascade_FFTOutScaleOn. Why are there 8 values and why are they multiplied by 4? I understand it is not your code, would like your opinion.

    Thanks

  • Hi,

    The unit building block to compute FFT is the FFT butterfly. In this operation, due to the Multiply Accumulate operation overflow can occur.

    Usually to avoid overflow scaling by 2 is performed after each radix-2 stage.

    Thank you

    Cesar

  • Hi,  

    Yes that makes sense. It must be a radix-2 DIT algorithm which is used in the MATLAB fft() function. I am still not sure why these values are multiplied by 4, would be nice to know but not critical at the moment.

    Thanks

  • Thank you

    Multiplying by 4 is also probably a scaling

    Unfortunately the developer of this code is no longer available for support

    Thank you

    Cesar