Center for New Music and Audio Technologies

next up previous
Next: Conclusion Up: Results Previous: Area Usage and Performance

Error

The use of CORDIC for computing sine introduces precision errors because of the limited number of iterations and the limited resolution of values in the CORDIC lookup table. The error results in distortion of the generated sine wave. Figure 1.10 illustrates the magnitude error of a CORDIC-based sine wave with a frequency of $ 375$Hz when compared to a reference sine wave. Both are normalized and sampled at $ 48$kHz. The error results in high frequency added to the $ 375$Hz sine wave, as represented by the spectrum in Figure 1.11.

The values are taken from data produced by the logic simulation within the XILINX Foundation software and are analyzed using a FFT1.3 with Hamming window in MATLAB.

The energy of the error obtained can be also expressed by the equation:

$\displaystyle \rho_{RMS}$ $\displaystyle =$ $\displaystyle \sqrt{\frac{1}{N} \cdot \sum_{n=0}^{N}\rho^2 } \;
= \; 5.8578 \cdot 10^{-5}$ (1.22)

where $ \rho$ is the magnitude error. With $ S_{RMS}$ is the root-mean-square amplitude of the reference signal we get for the signal-to-noise ratio:
$\displaystyle \textrm{SNR}$ $\displaystyle =$ $\displaystyle 20 \log_{10}
\left(\frac{S_{RMS}}{\rho_{RMS}}\right)\; =\; 81.6
\textrm{dB}$ (1.23)

In the context of additive synthesis, where multiple sinusoids are added together, the SNR obtained here is an acceptable result.

Figure 1.10: Magnitude error of a sine wave generated by a CORDIC-based oscillator with 16 bit resolution.
\begin{figure}
\centerline {\epsfig{figure=error_prima.eps, width=100mm}}\end{figure}

Figure 1.11: Spectrum of a sine wave generated by a CORDIC-based oscillator with 16 bit resolution.
\begin{figure}
\centerline {\epsfig{figure=spectrum16bit.eps,width=100mm}}\end{figure}


next up previous
Next: Conclusion Up: Results Previous: Area Usage and Performance
Home
Norbert Lindlbauer
2000-01-19