Forum Discussion
Altera_Forum
Honored Contributor
11 years agoI am doing the sanity test now.
Let me inquire about some points here: --- Quote Start --- I did some experiments on this design in matlab running 1 Msamples and it locks for all cases nicely (symbols at +1 all = single tone, symbols at +1/-1 = single tone with jitter and random data. Though I used complex I/Q RF to avoid extra filter (for speed). So I am convinced it should lock eventually). It does not lock if I changed input to QPSK or 16QAM. The main point I noticed was that I have to update the NCO word once only every say 10 error updates (ignore 9) and revert back to initial nco word. The scaling is essential to match your phase resolution word of nco. You will get a nice oscillation that converges to perfect result or so (I got zero jitter at .01Fs). I did not use proportional term. Remember what aplies to software dsp does not apply to FPGA nco. DSP engineers do not know about fpga and are only orientated to their platform. Our nco has one control over phase and frequency (nco increment value). --- Quote End --- 1) You mean the Matlab design that I sent you? 2) Complex I/Q RF mean you used exp() instead of cos/sin functions and separate filters for channels right? 3) Regarding this point: --- Quote Start --- The main point I noticed was that I have to update the NCO word once only every say 10 error updates (ignore 9) and revert back to initial nco word. The scaling is essential to match your phase resolution word of nco. --- Quote End --- You did that in Matlab or in ModelSim? 4) You are right about proportional term... it seemed useless to me too.