0 Òý ÑÔ
Êý¿ØÕñµ´Æ÷(Numerically Controlled Oscillators£¬NCOs)ÊÇÈí¼þÎÞÏßµçµÄÖØÒª×é³É²¿·ÖºÍÑо¿ÄÚÈÝ£¬Ëü¹ã·ºÓ¦ÓÃÓÚDSPÖУ¬ÈçͨÐÅÁìÓòµÄÐźŵ÷Öƽâµ÷£¬·äÎѵ绰¡¢»ùÕ¾¡¢À×´ïϵͳ¡¢Êý×ÖµçÊÓ¡¢GPSºÍÎÞÏßLANµÈ¡£
NCOs¿ÉÒÔͨ¹ý¸÷ÖÖ·½Ê½ÊµÏÖ£ºÎÞÏÞ³å»÷ÏìÓ¦Â˲¨Æ÷(IIR filters)£¬×ø±êÐýת(CORDIC rotations)£¬²éÕÒ±í¼¼Êõ(Lookup Tables£¬LUTs)¡£±¾ÎÄÔÚSimulinkÈí¼þƽ̨·ÂÕæLUTs¼¼ÊõʵÏÖNCOsʱ£¬ÀÛ¼ÓÆ÷²½³¤¡¢ÀÛ¼ÓÆ÷¿ØÖÆ×ֵȲÎÊý¶ÔNCOsÐÔÄܵÄÓ°Ïì¡£ÖصãÌÖÂÛNCOsµÄƵÆ×´¿¶ÈÎÊÌ⣬¼´ÈçºÎÒÖÖÆÔÓ²¨·ÖÁ¿£¬Ó°ÏìƵÆ×´¿¶ÈµÄÒòËØÒÔ¼°ÈçºÎÌá¸ßÎÞÔÓÉ¢¶¯Ì¬·¶Î§(SpuriousFree Dynamic Range£¬SFDR)¡£
1 NCOsµÄ¹¤×÷ÔÀí
NCOsÖ÷Òª°üÀ¨Ò»¸öÕýÏÒ²¨Ñùµã²éÕÒ±í(LUTs)ºÍÒ»¸ö²úÉúµØÖ·µÄÀÛ¼ÓÆ÷£¬Èçͼ1Ëùʾ¡£
ͼ1ÖÐnΪÀÛ¼ÓÆ÷²úÉúµÄµØַλÊý£¬ÔòLUTsÓÐN=2n¸öÊäÈë¡£LUTsµÄÊä³ö·Ö±æÂÊ£¯¾«¶ÈΪLλ(¸Ã²ÎÊýÓënÓйØ)£¬Æ乤×÷ÔÀí¼ûͼ2¡£
ÓÉͼ2¿ÉÒÔ¿´³ö£¬ÀÛ¼ÓÆ÷²úÉúµØÖ·Â룬ѻ·´ÓLUTsµØÖ·ÖÐÈ¡ÊýÕýÏÒ²¨µÄÑùµãÊý¾Ý£¬ÆäÈ¡ÊýµÄËÙÂÊÔ½¿ì£¬¼´²½³¤μÔ½´ó£¬Ôò²úÉúµÄÕýÏÒ²¨ÆµÂÊÔ½¸ß¡£
Éè²½³¤²ÎÊýμÓÉʽ(1)¾ö¶¨£º
ʽÖУºNΪLUTsµÄÑùµãÊý¾Ý×ÜÁ¿£»fsΪϵͳ²ÉÑùƵÂÊ£»fdΪÆÚÍûµÄÕýÏÒ²¨µÄƵÂÊ¡£
ÀýÈ磬ÀÛ¼ÓÆ÷µØÖ·Êý¾ÝÏß¿í¶ÈΪ8 b£¬Ôò¶ÔÓ¦µÄLUTsµÄÊý¾ÝÑùµãÊýΪN=2n=256¡£Èç¹û²ÉÑùƵÂÊΪ10 MHz£¬ÆÚÍûƵÂÊΪ2.5 MHz¡£
2 Ìá¸ßNCOsµÄÎÞÔÓÉ¢¶¯Ì¬·¶Î§
SFDRÊÇÎÞÏßϵͳÉè¼ÆÖÐÐèÒª¿¼ÂǵÄÖØÒª²ÎÊý¡£Èç¹ûÕñµ´Æ÷²úÉúµÄÐźŰüº¬¹ý¶àµÄÔÓ²¨(Spurs)ƵÂÊ£¬ÕâЩ¸ÉÈųɷֻáʹÐźŻìƵµÄÖÊÁ¿±ä²î£¬ÌرðÊǵ±ÔÓ²¨ÆµÂʽӽüÖÐÐÄƵÂÊʱ£¬ÔÚºóÐøµÄµç·ÖкÜÄÑÈ¥³ý¡£
2.1 Ïàλ½Ø¶Ï¶ÔƵÆ×´¿¶ÈµÄÓ°Ïì
µ±LUTÊä³öÕýÏÒ²¨ÑùµãÊý¾Ýʱ£¬Ö»ÓÐÕûÊý²¿·Ö¿ÉÒÔÓÃÓÚÊä³ö£¬¶øСÊý²¿·ÖÔò±»ºöÂÔ£¬Õâµ¼ÖÂÊä³öÏàλ²¿·ÖÓнضϡ£Ïàλ½Ø¶Ï(Phase Truncation)µÄÇé¿ö¾ö¶¨Á˲úÉúµÄÕýÏÒ²¨µÄ´¿¶È¡£È磺µ±²ÉÑùƵÂÊΪ100 kHzʱ£¬NCOsÊä³öµÄÆÚÍûƵÂÊΪ24.3 kHz£¬ÆäNCOsÉèÖòÎÊý¼û±í1¡£´Ó±í1ÖпÉÒÔ¿´³ö£¬LUTsµÄ·Ö±æÂÊΪ32 b£¬Ôò¿ÉÒÔºöÂÔ·ù¶ÈÖµÁ¿»¯µÄÓ°Ï죬¶øÔÓ²¨Ö÷ÒªÊÇÓÉÏàλ½Ø¶Ï²úÉúµÄ¡£