VSPA NCO Formula & Parameter Mapping (LA12xx)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VSPA NCO Formula & Parameter Mapping (LA12xx)

Jump to solution
533 Views
Fengsq
Contributor II
I’m currently working with the VSPA processor and have a few technical questions about the NCO instruction. This numerically controlled oscillator instruction is designed for complex sequence generation, as referenced in Chapter 4.21 of the LA12xx VSPA3 ISA reference manual.
 
I have questions about the mathematical formula for NCO output described in the official document. In the given formula, the initial phase variable (nco_phase) is placed within parentheses and multiplied by the frequency value (nco_freq).
 
For my application, I need to generate a signal following this standard complex exponential form:
 
2π × frequency × index + initial phase.
 
I would like to confirm the precise mapping between this standard formula and the two configuration parameters: nco_phase and nco_freq. Additionally, I need to know if a scaling factor is required to convert normalized floating-point values into valid 32-bit integer inputs for this processor.
 
Thank you for your time and technical support. 
0 Kudos
Reply
1 Solution
450 Views
yipingwang
NXP TechSupport
NXP TechSupport

In fr1_fr2_test_tool there is the feature to configure NCO to send complex single tone at DAC sample rate with script send_single_tone.sh, for example,
./send_single_tone.sh 0 1000000 80 will send on antenna 0 with 1Mhz 80% scale single tone."
above command converts the 1MHz into the value to be set in NCO register, you can also see below description in in DFE_Ref_User_Guide.pdf,
Frequency factor =
4294967296*frequency/sampling_rate.
Frequency range from 1- 122880000Hz. Sampling rate=DCS sampling rate.
example: to send 1Mhz at sampling 491520000, freq_factor=4294967296*1000000/491520000 =
0x855555

Regarding phase, default is starting from 0. Each NCO iteration generates 32 complex samples for example, then phase increase 32*phase_step automatically
phase_new = phase_old + 32*phase_step
the phase_step is your tone freq divided by sample_rate

View solution in original post

0 Kudos
Reply
1 Reply
451 Views
yipingwang
NXP TechSupport
NXP TechSupport

In fr1_fr2_test_tool there is the feature to configure NCO to send complex single tone at DAC sample rate with script send_single_tone.sh, for example,
./send_single_tone.sh 0 1000000 80 will send on antenna 0 with 1Mhz 80% scale single tone."
above command converts the 1MHz into the value to be set in NCO register, you can also see below description in in DFE_Ref_User_Guide.pdf,
Frequency factor =
4294967296*frequency/sampling_rate.
Frequency range from 1- 122880000Hz. Sampling rate=DCS sampling rate.
example: to send 1Mhz at sampling 491520000, freq_factor=4294967296*1000000/491520000 =
0x855555

Regarding phase, default is starting from 0. Each NCO iteration generates 32 complex samples for example, then phase increase 32*phase_step automatically
phase_new = phase_old + 32*phase_step
the phase_step is your tone freq divided by sample_rate

0 Kudos
Reply