04-28-2012 02:29 AM
I am implementing GMSK modulator using FPGA(spartan 3), using below block diagram.
Fig.(a) : Block Diagram Of GMSK Modulator
I am describing the block diagram as I have implemented it.
NRZ signal : To generate serial data from parallel data I did use Parallel In Serial Out shift register. Parallel data is 16 bit and the data pettern is “0001101111010100”.
Integrator : To generate phase trajectory I have used 8 bit up - down counter.
Gaussian Filter : To implement Gaussian Filter, I have used the FIR filter and the required coefficients are generated in MATLAB. Input to the FIR filter is from Integrator.
SIN COS LUT / I Q Generator : To generate I/Q component I have used the CORDIC IP. The phase_in to the CORDIC is the output of Gaussian Filter. The expected output of CORDIC is as shown in the attachment, but I am not getting the expected output form my design.
The parameters of CORDIC IP which I had set as below:
Functional Selection: SIN COS.
Archeitectural Configuration : Parallel.
Pipelining Mode : Optimal.
Phase format : Scaled Radians.
Input Width : 10 bit.
Output Width : 10 bit.
Round Mode : Truncate.
Iteration and Precision : 0.
Coarse Rotation : ON.
I am getting the expected output upto the Gaussian Filter, but after that when I am using CORDIC IP to generate I/Q component I am not getting the expected output. Is there any problem in implementation of CORDIC IP or am I fail to interpreat the output of CORDIC?.
I have attached the file which shows the waveform of expected output and the output which I am getting.
Please help me regarding the same.
05-18-2012 04:06 PM
I am using CORDIC and did not find a general problem so far.
I do not understand your design in detail, but do you wand to control der cordic's phase by the gaussian output?
I expected to gaussian output to be distinguished in IQ by multiplication wiith both Sin/Cos. In Other words, where do the signals mixed with Sin/Cos come from?
If the circuit is right, then you maybe did no scale the phase correctly. The phase rund fomr -PI ... PI and for Matlab Simulink, I remember it is scaled from 0....1.