Analysis, design and FPGA implementation of a Numerically Controlled Oscillator (NCO)