I'm trying to build a costas loop to demodulate a BPSK signal from a non-geostationary satellite. I need to make it work at real time; since our computer can't store all the data during the transmission period. The base band signal has a frequency of 70 kHz.
In order to make a fast costas loop, I made a fast_atan2() function. I think it would be interesting to include it into the GNU Radio library. I create the function following the instructions of the site below. http://www.dspguru.com/comp.dsp/tricks/alg/fxdatan2.htm I would like to know if someone has developed a nco that use table technique to calculate the sin and -cos? It would be nice to make an gr_fast_nco that find the values of sin and cos in a table instead of calculate them at each nco step. float fast_atan2( float y, float x){ float r, theta; if ( x>=0 ){ // quadrante 1 ou 4 r = (x-y) / (x+y); theta = PI4 - PI4 * r; if ( y>=0 ) return theta; //quadrante 1 else return -theta; //quadrante 4 } else { // quadrante 2 ou 3 r = (x+y) / (x-y); theta = 3*PI4 - PI4 * r; if ( y>=0 ) return theta; // quadrante 2 else return -theta; // quadrante 3 } } _______________________________________________ Discuss-gnuradio mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
