本發(fā)明屬于數(shù)字信處理的多速率轉(zhuǎn)換領(lǐng)域,尤其是涉及一種基于CIC濾波器降低鄰道功率比的方法及CIC濾波器。
背景技術(shù):
在數(shù)字基帶處理的部分,通常需要對(duì)信號(hào)進(jìn)行數(shù)字上變頻或者下變頻處理,CIC濾波器是一種低通速率變化濾波器,它是由積分器(integrator)和梳狀(Comb)濾波器級(jí)聯(lián)而成,根據(jù)其積分器和梳狀器位置的不同,可分別實(shí)現(xiàn)抽取(Decimation)和插入(Interpolation)功能。抽取型CIC是積分器在前,后面是梳狀器,實(shí)現(xiàn)的是下變頻處理。插入型CIC則相反,梳狀器在前,積分器在后,實(shí)現(xiàn)的是上變頻處理。
數(shù)字基帶信號(hào)送入調(diào)制器前,波形是矩形脈沖,但由于矩形脈沖的上升沿和下降沿是突變的,假設(shè)正弦波是250K的,它的信號(hào)頻率只有250K,但是如果是矩形波1K,高頻成分比較豐富,它的頻率成分有250K,750K,1500K,……;如果設(shè)備工作在840M的時(shí)候,正弦波的占用帶寬在840M+/-250K,矩形波的占用帶寬在840M+/-250K,840M+/-750K,840M+/-1500K,……;而GB29768協(xié)議要求讀寫(xiě)器工作頻率為840~845M,頻帶內(nèi)共40個(gè)信道,每個(gè)信道帶寬是250K,這樣上述情況頻域占用的帶寬很寬,通過(guò)帶限信道時(shí),當(dāng)前信道的信號(hào)容易出現(xiàn)在其他信道上。因此需要設(shè)計(jì)脈沖成形濾波器,產(chǎn)生既減小碼間串?dāng)_又不會(huì)占用過(guò)多額外帶寬的更適合于信道傳輸?shù)牟ㄐ巍?/p>
FPGA實(shí)現(xiàn)CIC濾波器會(huì)產(chǎn)生如下問(wèn)題:CIC濾波器由于積分器會(huì)導(dǎo)致數(shù)據(jù)高位溢出問(wèn)題,需要對(duì)原始數(shù)據(jù)進(jìn)行位寬擴(kuò)展;CIC濾波器的阻帶衰減和過(guò)渡帶不是很好,一般是通過(guò)CIC濾波器的級(jí)聯(lián)來(lái)改善,但是CIC濾波器級(jí)聯(lián)階數(shù)又會(huì)使溢出問(wèn)題更嚴(yán)重,這就需要更多的擴(kuò)展位,導(dǎo)致一個(gè)惡性循環(huán)。
本發(fā)明針對(duì)降低閱讀器的ACPR,提出一種新的實(shí)現(xiàn)算法通過(guò)CIC插入濾波器實(shí)現(xiàn)上變頻處理,濾除高頻部分,使其只有低頻部分,減少與其他信道的干擾。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明旨在提出一種基于CIC濾波器降低鄰道功率比的方法及CIC濾波器,以通過(guò)CIC插入濾波器平滑矩形波,濾除高頻部分使其只有低頻部分,減少與其他信道的干擾。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種基于CIC濾波器降低鄰道功率比的方法,包括以下步驟:
1)將數(shù)據(jù)信號(hào)輸入CIC濾波器,CIC濾波器的梳狀器輸出數(shù)據(jù);
2)生成積分脈沖cic_inter_fs,通過(guò)插值模塊對(duì)數(shù)據(jù)信號(hào)進(jìn)行插值;
3)組合邏輯控制梳狀器輸出數(shù)據(jù)和插“0”值的切換,若cic_inter_fs=’0’,插入“0”值,積分器輸入全0數(shù)據(jù);若cic_inter_fs=’1’,積分器輸入梳狀器的輸出數(shù)據(jù);
4)若插入“0”值,通過(guò)位寬控制包模塊計(jì)算出數(shù)據(jù)位寬,積分器輸出數(shù)據(jù)。
進(jìn)一步的,所述步驟2)中,所述插值為在數(shù)據(jù)信號(hào)的每個(gè)數(shù)值后插入數(shù)值“0”,插入個(gè)數(shù)為R-1個(gè),所述R為插值倍數(shù)。
進(jìn)一步的,所述步驟4)中,位寬計(jì)算公式:binter=binput+bgrow=n+log2(RD)S,binter為梳狀器和積分器的數(shù)據(jù)位寬,binput為輸入數(shù)據(jù)位寬n bit,bgrow為S級(jí)CIC濾波器數(shù)據(jù)位寬,R為插值倍數(shù),D為延遲因子。
進(jìn)一步的,所述步驟4)中,若全插入“0”值,0增益輸出的數(shù)據(jù)位寬為:S*log2(RD)-log2(R)到S*log2(RD)-log2(R)+n-1位,作為數(shù)據(jù)輸出。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明所述的一種基于CIC濾波器降低鄰道功率比的方法具有以下優(yōu)勢(shì):提出一種新的實(shí)現(xiàn)算法通過(guò)CIC插入濾波器實(shí)現(xiàn)上變頻處理,濾除高頻部分,使其只有低頻部分,減少與其他信道的干擾。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
一種降低鄰道功率比的CIC濾波器,包括S級(jí)梳狀器,S級(jí)積分器、插值模塊、位寬控制包模塊,所述插值模塊設(shè)于S級(jí)梳狀器、S級(jí)積分器之間,
所述插值模塊,用于對(duì)輸入的數(shù)據(jù)信號(hào)進(jìn)行插值;
所述位寬控制包模塊,用于計(jì)算出輸出數(shù)據(jù)的數(shù)據(jù)位寬。
進(jìn)一步的,所述插值模塊用于在輸入的數(shù)據(jù)信號(hào)的每個(gè)數(shù)值后插入R-1個(gè)當(dāng)前數(shù)值,所述R為插值倍數(shù)。
進(jìn)一步的,所述每級(jí)梳狀部分插入寄存器單元、觸發(fā)器,用于實(shí)現(xiàn)流水線設(shè)計(jì),增加系統(tǒng)運(yùn)算的時(shí)鐘主頻。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明所述的一種降低鄰道功率比的CIC濾波器具有以下優(yōu)勢(shì):不需要增加時(shí)間開(kāi)銷,成本低,靈活性強(qiáng),可靠性高。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例所述的CIC濾波器框圖;
圖2為本發(fā)明實(shí)施例所述的CIC濾波器單元信號(hào)示意圖;
圖3為本發(fā)明實(shí)施例所述的邏輯算法仿真圖。
具體實(shí)施方式
下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。
一種基于CIC濾波器降低鄰道功率比的方法,包括以下步驟:
1)將數(shù)據(jù)信號(hào)輸入CIC濾波器,CIC濾波器的梳狀器輸出數(shù)據(jù);
2)生成積分脈沖cic_inter_fs,通過(guò)插值模塊對(duì)數(shù)據(jù)信號(hào)進(jìn)行插值;
3)組合邏輯控制梳狀器輸出數(shù)據(jù)和插“0”值的切換,若cic_inter_fs=’0’,插入“0”值,積分器輸入全0數(shù)據(jù);若cic_inter_fs=’1’,積分器輸入梳狀器的輸出數(shù)據(jù);
4)若插入“0”值,通過(guò)位寬控制包模塊計(jì)算出數(shù)據(jù)位寬,積分器輸出數(shù)據(jù)。
其中,所述步驟2)中,所述插值為在數(shù)據(jù)信號(hào)的每個(gè)數(shù)值后插入數(shù)值“0”,插入個(gè)數(shù)為R-1個(gè),所述R為插值倍數(shù)。
其中,所述步驟4)中,位寬計(jì)算公式:binter=binput+bgrow=n+log2(RD)S,binter為梳狀器和積分器的數(shù)據(jù)位寬,binput為輸入數(shù)據(jù)位寬n bit,bgrow為S級(jí)CIC濾波器數(shù)據(jù)位寬,R為插值倍數(shù),D為延遲因子。
其中,所述步驟4)中,若全插入“0”值,0增益輸出的數(shù)據(jù)位寬為:S*log2(RD)-log2(R)到S*log2(RD)-log2(R)+n-1位,作為數(shù)據(jù)輸出。
一種降低鄰道功率比的CIC濾波器,包括S級(jí)梳狀器,S級(jí)積分器、插值模塊、位寬控制包模塊,所述插值模塊設(shè)于S級(jí)梳狀器、S級(jí)積分器之間,
所述插值模塊,用于對(duì)輸入的數(shù)據(jù)信號(hào)進(jìn)行插值;
所述位寬控制包模塊,用于計(jì)算出輸出數(shù)據(jù)的數(shù)據(jù)位寬。
其中,所述插值模塊用于在輸入的數(shù)據(jù)信號(hào)的每個(gè)數(shù)值后插入R-1個(gè)當(dāng)前數(shù)值,所述R為插值倍數(shù)。
其中,所述每級(jí)梳狀部分插入寄存器單元、觸發(fā)器,用于實(shí)現(xiàn)流水線設(shè)計(jì),增加系統(tǒng)運(yùn)算的時(shí)鐘主頻。
如圖1所示,CIC插入型濾波器由S級(jí)梳狀器、S級(jí)積分器和積分倍數(shù)R組成。其中S級(jí)積分器工作在高頻率Fs下,每級(jí)積分器都是一個(gè)反饋系數(shù)為1的IIR濾波器,其傳遞函數(shù)為:1/1-z-1;
CIC梳狀濾波部分工作在頻率Fs/R的,每級(jí)微分延遲D個(gè)樣本,系數(shù)為-1,工程實(shí)現(xiàn)中D一般取1或2。本發(fā)明中延遲因子D采用的是2。
圖2為本發(fā)明實(shí)施例所述的CIC濾波器單元信號(hào)示意圖,各信號(hào)說(shuō)明如表1所示。
表1
具體工作流程為:
1、本發(fā)明要求積分因子可變,代碼改動(dòng)量小,所以設(shè)計(jì)了過(guò)程位寬控制包模塊,該模塊是根據(jù)位寬計(jì)算公式binter=binput+bgrow=n+log2(RD)S,其中binter指的是梳狀器和積分器的數(shù)據(jù)位寬,binput指的是輸入數(shù)據(jù)位寬n bit,bgrow指的是S級(jí)CIC濾波器,插值倍數(shù)為R,延遲因子D的系統(tǒng)增加的擴(kuò)展位寬。所以設(shè)計(jì)了自定義控制包文件,單獨(dú)定義位寬子類型subtype。
2、在CIC濾波器插入模塊的設(shè)計(jì)中,生成積分脈沖cic_inter_fs,具體是在系統(tǒng)時(shí)鐘下計(jì)數(shù)到插值倍數(shù)R,該脈沖信號(hào)cic_inter_fs=’1’,否則cic_inter_fs=’0’。
3、使用組合邏輯控制梳狀器數(shù)據(jù)和插0值的切換,在cic_inter_fs=’0’時(shí),積分器模塊組輸入值為全0數(shù)據(jù);在cic_inter_fs=’1’的時(shí)候,積分器模塊組輸入的是梳狀器組的輸出數(shù)據(jù)。
4、在每個(gè)梳狀器單元的和器件后再加一級(jí)觸發(fā)器,實(shí)現(xiàn)流水線設(shè)計(jì),可提高系統(tǒng)可以在更高主頻時(shí)鐘工作的穩(wěn)定性。
5、若插值為全“0”,CIC濾波器輸出的數(shù)據(jù)位寬公式:S*log2(RD)-log2(R)到S*log2(RD)-log2(R)+n-1位,作為數(shù)據(jù)輸出。
6、編寫(xiě)測(cè)試程序,仿真結(jié)果表明:R=32的濾波性能優(yōu)于R=8,且不會(huì)造成前向編碼變形,如圖3所示。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。