微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻橀弻鐔虹磼閵忕姵鐏嶉梺绋块椤︻垶鈥﹂崸妤佸殝闂傚牊绋戦~宀€绱撴担鍝勭彙闁搞儜鍜佸晣闂佽瀛╃粙鎺曟懌闁诲繐娴氶崢濂告箒濠电姴锕ら幊搴㈢閹灔搴ㄥ炊瑜濋煬顒€鈹戦垾宕囧煟鐎规洜鍠栭、姗€鎮欏顔锯偓鎾⒒閸屾瑧顦﹂柟璇х節閹兘濡疯瀹曞弶鎱ㄥ璇蹭壕閻庢鍠栭…鐑藉极閹邦厼绶炲┑鐘插閸氬懘姊绘担鐟邦嚋缂佽鍊歌灋妞ゆ挾鍊e☉銏犵妞ゆ挾濮烽敍婊堟⒑缂佹ê濮﹂柛鎾寸懇瀹曟繈濡堕崱娆戭啎缂佺虎鍙冮ˉ鎾跺姬閳ь剟鎮楀▓鍨灈妞ゎ厾鍏橀獮鍐閵堝懎绐涙繝鐢靛Т鐎氼喛鍊撮梻鍌氬€风粈渚€骞夐敓鐘茬闁糕剝绋戝婵囥亜閺冨倻鎽傞柛鐔锋噽缁辨捇宕掑顑藉亾閹间礁纾归柣鎴eГ閸ゅ嫰鏌ら幖浣规锭闁搞劍姊归妵鍕箻閸楃偟浠奸梺鎼炲妼閸婂潡寮诲☉銏╂晝闁挎繂妫涢ˇ銉╂⒑閽樺鏆熼柛鐘崇墵瀵寮撮悢铏诡啎闂佺粯鍔﹂崜姘舵偟閺囥垺鈷戠紒瀣儥閸庡繑淇婇锝囩疄鐎殿喛顕ч埥澶婎潩椤愶絽濯伴梻浣告啞閹稿棝鍩€椤掆偓鍗遍柛顐g箥濞撳鏌曢崼婵囧殗闁绘稒绮撻弻鐔煎礄閵堝棗顏�04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌嶉埡浣告殲闁绘繃娲熷缁樻媴閽樺-鎾绘煥濮橆厹浜滈柨鏃囶嚙閺嬨倗绱掓潏銊︻棃鐎殿喗鎸虫慨鈧柍閿亾闁归绮换娑欐綇閸撗呅氬┑鐐叉嫅缁插潡寮灏栨闁靛骏绱曢崢閬嶆⒑閸濆嫬鏆婇柛瀣尰缁绘盯鎳犻鈧弸娑㈡煟濞戝崬娅嶇€殿喕绮欓、妯款槼闁哄懏绻堝娲濞戞艾顣哄┑鐐额嚋缁茶法鍒掗鐔风窞濠电姴瀛╃€靛矂姊洪棃娑氬婵☆偅绋掗弲鍫曟焼瀹ュ棛鍘遍柣搴秵閸撴瑦绂掗柆宥嗙厵妞ゆ洖妫涚弧鈧繝纰夌磿閸忔﹢宕洪敓鐘茬<婵犲﹤鍟粻娲⒒閸屾瑧顦﹂柟纰卞亜鐓ら柕濞炬櫅绾剧粯绻涢幋娆忕仼闁绘帒鐏氶妵鍕箳閸℃ぞ澹曟繝鐢靛Л閸嬫捇姊洪鈧粔鎾倿閸偁浜滈柟鍝勭Х閸忓矂鏌涢悢鍝ュ弨闁哄瞼鍠栧畷娆撳Χ閸℃浼�22闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌嶉埡浣告殲闁绘繃鐗犲缁樼瑹閳ь剟鍩€椤掑倸浠滈柤娲诲灡閺呭爼骞嶉鍓э紲濡炪倖娲栧Λ娑㈠礆娴煎瓨鎳氶柡宥庣亹瑜版帗鏅查柛顐ゅ櫏娴犫晛顪冮妶鍡樷拹婵炶尙鍠庨~蹇撁洪鍛画闂佽顔栭崰妤呭箟婵傚憡鈷戦柤濮愬€曢弸鍌炴煕鎼达絾鏆鐐插暙椤粓鍩€椤掑嫬鏄ラ柨鐔哄Т缁€鍐┿亜韫囨挻锛旂紒杈ㄧ叀濮婄粯鎷呴搹鐟扮闂佽崵鍠嗛崹钘夌暦閹达箑绠荤紓浣贯缚閸橀亶姊洪棃娴ㄥ綊宕曢幎钘夋槬闁挎繂娲犻崑鎾斥枔閸喗鐏堝銈庡弮閺€杈ㄧ┍婵犲洤绠瑰ù锝呮憸閸樻悂姊虹粙鎸庢拱闁活収鍠氶懞杈ㄧ鐎n偀鎷绘繛杈剧到閹虫瑨銇愰幒鎴濈彉濡炪倖甯掗崐濠氭儗濞嗘挻鐓欓弶鍫熷劤閻︽粓鏌℃担绋库偓鍧楀蓟閵娾晜鍋嗛柛灞剧☉椤忥拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涢梺缁樺姉閸庛倝宕戠€n喗鐓熸俊顖濆吹濠€浠嬫煃瑜滈崗娑氭濮橆剦鍤曢柟缁㈠枛椤懘鏌eΟ鑽ゅ灩闁搞儯鍔庨崢閬嶆煟韫囨洖浠滃褌绮欓幃锟狀敍濮樿偐鍞甸柣鐔哥懃鐎氼厾绮堥埀顒勬⒑鐎圭媭娼愰柛銊ユ健閵嗕礁鈻庨幋鐘碉紲闂佽鍎虫晶搴g玻濡ゅ懏鈷掑ù锝呮啞閸熺偞銇勯鐐搭棦鐎规洘锕㈤弫鎰板幢濞嗗苯浜炬繛宸簼閸婂灚顨ラ悙鑼虎闁告梹纰嶇换娑㈡嚑椤掆偓閳诲牏鈧娲橀崹鍧楃嵁濮椻偓閹虫粓妫冨☉娆戔偓顓㈡⒒娴e憡鍟炴繛璇х畵瀹曟粌鈽夐姀鈩冩珫濠电偞鍨崹娲煕閹达附鐓曟繛鎴炃氶惇瀣箾閸喐绀€闁宠鍨块幃娆戞嫚瑜戦崥顐︽⒑鐠団€虫灆闁告濞婇妴浣割潩鐠鸿櫣鍔﹀銈嗗坊閸嬫捇鏌i敐鍥у幋鐎规洖銈稿鎾Ω閿旇姤鐝滄繝鐢靛О閸ㄧ厧鈻斿☉銏╂晞闁糕剝銇涢弸宥夋倶閻愮紟鎺楀绩娴犲鐓熸俊顖濇娴犳盯鏌¢崱蹇旀珔闁宠鍨块、娆撴嚍閵夈儱鏀俊銈囧Х閸嬫盯鏁冮妷銉殫闁告洦鍨扮粻娑欍亜閹烘垵浜扮紒閬嶄憾濮婄粯鎷呯粵瀣秷閻庤娲橀敃銏ゃ€佸鎰佹▌闂佸搫琚崝鎴炰繆閸洖骞㈤柡鍥╁Х閻i箖姊绘笟鈧ḿ褔鎮ч崱娆屽亾濮樼厧鐏︾€规洘顨呴悾婵嬪礋椤掑倸骞堟繝鐢靛仜濡鎹㈤幋位澶愬閳╁啫寮挎繝鐢靛Т閹冲繘顢旈悩鐢电<閺夊牄鍔岀粭鎺楁懚閿濆鐓犲┑顔藉姇閳ь兙鍊曞嵄妞ゆ帒瀚埛鎺懨归敐鍛殘鐟滅増甯楅弲婵嬫煏閸繃瀚呴柤鏉挎健濮婃椽顢楅埀顒傜矓閹绢喗鍊块柛顭戝亖娴滄粓鏌熼崫鍕ラ柛蹇撶焸閺屾盯鎮㈤崫銉ュ绩闂佸搫鐬奸崰鏍х暦濞嗘挸围闁糕剝顨忔导锟�婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁诡垎鍐f寖缂備緡鍣崹鎶藉箲閵忕姭妲堥柕蹇曞Х椤撳搫鈹戦悙鍙夘棞缂佺粯甯楃粋鎺撱偅閸愨斁鎷虹紓浣割儐椤戞瑩宕曞澶嬬厱濠电姴鍟扮粻鐐碘偓娈垮枛椤嘲顕i幘顔藉亜闁惧繗顕栭崯搴ㄦ煟閻斿摜鐭婄紒澶屾嚀閻g兘顢涢悜鍡樻櫇闂佹寧妫佸Λ鍕焵椤掑啯纭鹃柍瑙勫灴閹晠宕f径濠庢П闂備焦濞婇弨閬嶅垂閸ф钃熼柣鏃囨閻瑩鏌熺粙鍨劉鐎规洖纾槐鎾存媴閸濆嫅锝夋煙缁嬫鐓煎┑锛勬暬瀹曠喖顢涘☉娆愮彆闂佽崵濮村ú鈺冧焊濞嗘劗顩锋い鏍ㄧ矌绾捐棄銆掑顒佹悙闁哄绋掗妵鍕敇閻樻彃骞嬮梺闈涙缁€渚€鍩ユ径鎰潊闁炽儲鏋奸崑鎾绘倻閼恒儱鈧敻鏌i姀銏☆仮闁荤喖鍋婇崵鏇㈡煙閹澘袚闁抽攱甯掗湁闁挎繂鐗婇鐘绘偨椤栨稓鈯曠紒缁樼洴瀹曪絾寰勭仦瑙f嫲闁诲氦顫夊ú姗€宕濆▎蹇曟殾闁绘垹鐡旈弫鍥ㄧ箾閹寸伝鍏肩珶閺囩偐鏀芥い鏃傜波缂傛岸鏌涚€n偅灏甸柍褜鍓氶悢顒勫箯閿燂拷
首页 > 硬件设计 > FPGA和CPLD > 数字下变频的FPGA实现

数字下变频的FPGA实现

时间:05-12 来源:互联网 点击:
数字化中频(DIF)频谱分析仪在高中频实现数字化处理,具有分析带宽大、RBW小、测量时长短,可对复杂信号实施时—频分析的功能,因而得到越来越广泛的应用。但由于现有的数字信号处理器(DSP)处理速度有限,往往难以对高速率A/D采样得到的数字信号直接进行实时处理。为了解决这一矛盾,需要采用数字下变频(DDC)技术,将采样得到的高速率信号变成低速率基带信号,以便进一步的分析处理。用现场可编程阵列(FPGA)来设计数字下变频器有许多好处:FPGA在硬件上具有很强的稳定性和极高的运算速度,在软件上具有可编程的特点,可以根据不同的系统要求,采用不同的结构来完成相应的功能,具有很强的灵活性,便于进行系统功能扩展和性能升级。
数字下变频
  数字下变频的主要目的是经过数字混频将A/D转换输出的中频信号搬移至基带,然后通过抽取,滤波完成信道提取的任务。因此,数字下变频器由本地振荡器(NCO)、混频器、抽取滤波器和低通滤波器组成,如图1所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...
图1  数字下变频原理图


  A/D变换后的信号分成两个信号,一个信号乘以正弦序列(同相分量),下变频至零中心频率上,通过抽取滤波器、整形低通FIR滤波形成与原信号相位相同的信号;另一路信号乘以经过90度相移的正弦序列(正交分量),同样是下变频至零中心频率上,再通过相同的抽取滤波器、整形低通FIR滤波器,形成与原信号正交的信号。这样,DDC输出的低速率、零中频的正交的两路信号送往DSP等数字信号处理器进行后续的数字处理。
DDC的FPGA
  以某中频数字化接收机为例来说明如何实现基于FPGA的数字下变频器。输入信号为中频26MHz,带宽500KHz的调频信号,该信号经过A/D变换之后送到DDC(A/D采样精度为8位,采样率20MHz),要求DDC将其变换为数字正交基带信号,并实现10倍抽取,即输出给基带处理器的数据速率为2MSPS,最后再经过16阶FIR滤波器进行信号整形。
NCO的实现
  NCO采用直接数字合成(DDS)的方法实现,目前常见的技术有查表法和CORDIC计算法,本设计采用查表法来实现NCO,其原理图如图2所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...
图2  NCO原理图


  32位累加器由一个32位的加法器和一个32位寄存器组成,在时钟的作用下,加法器通过寄存器将输出数据送入到加法器的一个输入端,与32位的频率控制字进行相加运算,得到一个有规律的相位累加结果。由于正弦值在一个周期内取有限个采样值,大于2pi部分的正弦值只是这有限数值的重复出现,因此,当累加结果大于FFFFFFFFH是,不需产生进位,而是重新从00000000H开始累加。为了减小ROM的容量,根据相位截断技术,取累加器输出的高10位作为查表地址,但是这种实现方式,在降低成本的同时,也引入了杂散分量,影响了NCO的纯度。正弦值ROM中存储的是预先计算好的正弦波幅值,利用正弦波的对称特性,只需存储四分之一周期的幅值,再通过相应的转换即可恢复出整个周期的幅值。同时,由于余弦波和正弦波相位差为pi/2,可以很容易的实现余弦信号。其关键部分的VHDL代码如下:
process
begin
  wait until clk=’1’;
  if add(8)=’0’ then
   address<=add(7 downto 0);
  else
   address<=”11111111”-add(7 downto 0);
  end if;
  if add(9)=’0’ then
   qou(7)<=’0’;
   qou(6 downto 0)<=q;
  else
   qou(7)<=’1’;
   qou(6 downto 0)<= ”1111111”-q;
  end if;
end process;
抽取滤波器的实现
  CIC积分梳状滤波器是实现高速抽取非常有效的单元。CIC滤波器的系统函数为:
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...
  式中D即为CIC滤波器梳状部分的延迟,滤波器系数都为1。从上式可以看出CIC滤波器的实现非常简单,只有加减运算,没有乘法运算,FPGA实现时可达到很高的处理速率。但是,单级CIC滤波器的旁瓣电平只比主瓣低13.46dB,这就意味着阻带衰减很差,一般是难以满足实用要求的。为了降低旁瓣电平,可以采取多级CIC滤波器级联的办法解决。在CIC滤波器的实现过程中,需要给内部寄存器提供足够的位宽,其计算公式为:
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閹冣挃闁硅櫕鎹囬垾鏃堝礃椤忎礁浜鹃柨婵嗙凹缁ㄥジ鏌熼惂鍝ョМ闁哄矉缍侀、姗€鎮欓幖顓燁棧闂備線娼уΛ娆戞暜閹烘缍栨繝闈涱儐閺呮煡鏌涘☉鍗炲妞ゃ儲鑹鹃埞鎴炲箠闁稿﹥顨嗛幈銊╂倻閽樺锛涘┑鐐村灍閹崇偤宕堕浣镐缓缂備礁顑呴悘婵嬫倵椤撶喍绻嗛柕鍫濈箳閸掍即鏌涢悤浣镐簽缂侇喛顕ч埥澶娢熻箛鎾剁Ш闁轰焦鍔欏畷銊╊敊鐠侯煈鏀ㄧ紓鍌氬€风粈渚€顢栭崟顖涘殑闁告挷鐒﹂~鏇㈡煙閹规劦鍤欑痪鎯у悑閹便劌顫滈崱妤€骞嬮梺绋款儐閹瑰洭骞冨⿰鍫熷殟闁靛鍎崑鎾诲锤濡や胶鍙嗛梺鍝勬处濮樸劑宕濆澶嬬厵闁告劘灏欓悞鍛婃叏婵犲嫮甯涢柟宄版嚇瀹曘劍绻濋崒娑欑暭闂傚倷娴囧畷鐢稿窗閸℃稑纾块柟鎯版缁犳煡鏌曡箛鏇烆€屾繛绗哄姂閺屽秷顧侀柛鎾寸懇椤㈡岸鏁愰崱娆戠槇濠殿喗锕╅崢鍏肩濠婂懐纾奸柣鎰靛墮椤庢粌顪冪€涙ɑ鍊愮€殿喗鐓¢、妤呭礋椤戣姤瀚奸梻浣告贡鏋繛鎾棑缁骞樼€靛摜顔曢柣鐘叉厂閸涱厼鐓傞梺杞扮閻楀﹥绌辨繝鍥ч柛娑卞枛濞呫倝姊虹粙娆惧剬闁告挻绻勯幑銏犫攽閸モ晝鐦堥梺绋挎湰缁嬫垵鈻嶉敐鍜佹富闁靛牆绻掗崚浼存煏閸喐鍊愭鐐插暞缁傛帞鈧絽鐏氶弲顒€鈹戦悙鏉戠仸閽冮亶鎮归崶鈺佷槐婵﹨娅i幏鐘诲灳閾忣偆浜堕梻浣藉吹閸o附淇婇崶顒€绠查柕蹇曞Л閺€浠嬫倵閿濆簼绨介柛濠勫仱濮婃椽妫冨ù銈嗙洴瀹曟﹢濡搁妷顔藉枠濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬崘顫夐妵鍕冀椤愵澀绮堕梺缁樺笒閻忔岸濡甸崟顖氱闁瑰瓨绻嶆禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘介梺瑙勫劤椤曨厼煤閹绢喗鐓欐い鏃傜摂濞堟粓鏌℃担鐟板闁诡垱妫冮崹楣冩嚑椤掍焦娅﹀┑鐘垫暩婵參骞忛崘顔肩妞ゅ繐鍟版す鎶芥⒒娓氣偓閳ь剚绋撻埞鎺楁煕閺傝法肖闁瑰箍鍨归埞鎴犫偓锝庝簻缁愭稑顪冮妶鍡樼闁瑰啿绉瑰畷顐⑽旈崨顔规嫽婵炶揪绲介幉锛勬嫻閿熺姵鐓欓柧蹇e亝鐏忕敻鏌嶈閸撴艾顫濋妸锔芥珷婵°倓鑳堕埞宥呪攽閻樺弶鎼愮紒鐘垫嚀闇夐柨婵嗙墕閳ь兛绮欐俊鎼佸煛閸屾粌寮抽梻浣告惈閸熺娀宕戦幘缁樼厱閹艰揪绱曢敍宥囩磼鏉堚晛浠辨鐐村笒铻栧ù锝呭级鐎氫粙姊绘担鍛靛綊寮甸鍕仭闁靛ň鏅涚粈鍌溾偓鍏夊亾闁告洦鍓涢崢鐢告⒑閹勭闁稿鎳庨悾宄扮暆閳ь剟鍩€椤掑喚娼愭繛鍙夌矒瀵偆鎷犲顔兼婵炲濮撮鎰板极閸ヮ剚鐓熼柟閭﹀弾閸熷繘鏌涢悙鍨毈婵﹦绮幏鍛存嚍閵壯佲偓濠囨⒑闂堚晝绉剁紒鐘虫崌閻涱喛绠涘☉娆愭闂佽法鍣﹂幏锟�...
  其中N为级数,M为延迟,R为抽取倍数。
本设计中,CIC滤波器需要完成10倍的抽取,采用4级级联来实现,由于输入、输出数据均为8bit,故内部寄存器所需的最大位宽为,旁瓣容限可达到4×13.46=43.44dB。
CIC滤波器实现的关键是抽取器的分频设计,其VHDL代码如下:
signal count : integer range 0 to 9;
signal clk2 : std_logic;
if (count=9) then  --抽取器分频实现
     clk2<=’1’;
    else
     clk2<=’0’;
    end if;
   
   comb : process     --抽取器代码
    begin
     wait until clk2=’1’;
     i3d1<=c0;
     …………
     c4<=c3/2-c3d1;
    end process comb;
低通滤波器的实现:
  数字下变频器的最后一个模块是低通FIR滤波器,主要用来对信号进行整形滤波,消除信号中存在的噪声。本设计采用并行结构的FIR滤波器,由2个8阶滤波器级联实现16阶的滤波器,由预相加模块、查找表模块和移位相加模块组成,结构图如图3、4所示。

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top