楊翠娥
(太原工業(yè)學(xué)院,山西 太原 030008)
CIC抽取濾波器的MATLAB設(shè)計(jì)及FPGA實(shí)現(xiàn)
楊翠娥
(太原工業(yè)學(xué)院,山西 太原 030008)
CIC抽取濾波器是無線通信中的常用模塊,一般用于數(shù)字下變頻(DDC)系統(tǒng)中。它可以在降低采樣速率的同時(shí),完成低通濾波的作用。本論文介紹了CIC抽取濾波器的工作原理,并給出了CIC濾波器的MATLAB程序及仿真結(jié)果。最后,利用FPGA高速、高穩(wěn)定性的特點(diǎn),在QUARTUS設(shè)計(jì)環(huán)境下進(jìn)行了CIC濾波器的HDL模塊設(shè)計(jì)。
CIC;抽?。籑ATLAB;FPGA
隨著數(shù)字通信技術(shù)的發(fā)展,信號(hào)傳輸?shù)乃俣仍絹碓娇?。這就對(duì)數(shù)字信號(hào)處理提出了更高的要求。多速率信號(hào)處理技術(shù)可以在一個(gè)數(shù)字信號(hào)處理系統(tǒng)中采用多個(gè)不同的采樣率,同時(shí)可以實(shí)現(xiàn)不同采樣率之間的相互轉(zhuǎn)換。這種技術(shù)在降低高速數(shù)字系統(tǒng)的復(fù)雜度,減少存儲(chǔ)量及提高靈活性等方面具有較好的性能。數(shù)字信號(hào)的速率可以通過內(nèi)插和抽取來改變,其中,內(nèi)插用于上變頻系統(tǒng)中,抽取用于下變頻系統(tǒng)中。無論抽取還是內(nèi)插,都需要設(shè)計(jì)一個(gè)滿足抽取或內(nèi)插(抗混疊)要求的數(shù)字濾波器。該濾波器性能的好壞將影響取樣速率變換的效果以及實(shí)時(shí)處理的能力。為此,積分級(jí)聯(lián)梳狀(CIC)濾波器得到了廣泛的應(yīng)用。本文將以單級(jí)CIC抽取濾波器的設(shè)計(jì)為例進(jìn)行CIC抽取濾波器的MATLAB分析設(shè)計(jì)及FPGA的實(shí)現(xiàn)。
積分級(jí)聯(lián)梳狀(CIC)抽取濾波器即實(shí)現(xiàn)對(duì)輸入信號(hào)采樣率的抽取和低通濾波,以完成信號(hào)的降速處理。在數(shù)字下變頻系統(tǒng)中得到了廣泛應(yīng)用。CIC抽取濾波器包括積分和梳狀兩個(gè)基本組成部分。如圖1所示。
圖1 CIC抽取濾波器
以單級(jí)CIC抽取系統(tǒng)為例,取級(jí)數(shù)N=1。積分器實(shí)際上是單極點(diǎn)的FIR濾波器,反饋系數(shù)為1時(shí)的狀態(tài)方程如下:
y(n)=y(n-1)+x(n) .
(1)
根據(jù)z變換,積分器的傳輸函數(shù)可以表示為:
(2)
梳狀器也是一個(gè)對(duì)稱FIR濾波器,其狀態(tài)方程可以表示為:
y(n)=x(n)+x(n-DM) .
(3)
式中,D為設(shè)計(jì)參數(shù),稱為微分延遲,其傳輸函數(shù)為:
HC(z)=1-z-DM.
(4)
則單級(jí)CIC濾波器的傳遞函數(shù)為:
(5)
其傳遞函數(shù)的幅頻特性為:
(6)
如圖2所示為單級(jí)CIC濾波器的幅頻特性。由圖可見,頻率越高,旁瓣電平越小??梢宰C明,當(dāng)DM足夠大時(shí),第1旁瓣的電平與主瓣電平的差值約為13 dB左右。單級(jí)CIC濾波器旁瓣電平較大,阻帶衰減較差。為此,可以采用多級(jí)CIC濾波器級(jí)聯(lián)的辦法來降低旁瓣電平,提高阻帶衰減的速度,在此不再論述。
圖2 CIC濾波器的幅頻特性
MATLAB工具中包含了許多不同功能的函數(shù)包,其中包括CIC濾波器的函數(shù)包,通過調(diào)用可以方便地完成CIC濾波器的設(shè)計(jì)。下面給出的是抽取率為2的CIC抽取濾波器的MATLAB程序:
r=2;
hm=mfilt.cicdecim(r);
fs=44.1e3;
n=0∶10239;
x=sin(2*pi*1e3/fs*n);
y_fi=filter(hm,x);
x=double(x);
y=double(y_fi);
y=y/max(abs(y));
stem(n(1∶44)/fs,x(2∶45)); hold on;
stem(n(1∶22)/(fs/r),y(3∶24),′r′,′filled′);
xlabel(′時(shí)間(sec)′); ylabel(′信號(hào)值′)
上述程序經(jīng)過運(yùn)行得到如圖3所示的MATLAB仿真結(jié)果。結(jié)果表明,信號(hào)經(jīng)過CIC抽取濾波器后,其輸出信號(hào)和輸入信號(hào)的奇數(shù)位完全對(duì)應(yīng)上,完成了抽取濾波的功能。
圖3 CIC抽取濾波器的MATLAB仿真結(jié)果
FPGA芯片具有高速、高穩(wěn)定性及可編程的特點(diǎn),非常適合用于高速數(shù)字通信系統(tǒng)的設(shè)計(jì)。在Quartus II設(shè)計(jì)環(huán)境下,用Verilog語言實(shí)現(xiàn)一個(gè)單級(jí)、抽取率為2的8位CIC抽取濾波器,系統(tǒng)工作時(shí)鐘的頻率和數(shù)據(jù)速率相等。關(guān)鍵程序如下:
always@(posedge clk1) begin
if (!reset) begin
x_t <= 0; int_out <= 0;
end
else begin
x_t <= {x_t[7∶0], x};
int_out <= x_t[7∶0] + x_t[15∶8];
end
end
always@(posedge clk) begin
if(!reset) begin
y_t <= 0;
temp <= 0;
end
else begin
if (clk1 == 1)
temp <= 0;
else
temp <= int_out;
y_t <= {y_t[7∶0], temp};
end
end
assign y = y_t[7∶0] - y_t[15∶8];
endmodule
在Quartus II設(shè)計(jì)環(huán)境下,對(duì)程序進(jìn)行編譯和仿真,得到了如圖4所示仿真結(jié)果,可以看出,經(jīng)過CIC抽取濾波器后,輸出信號(hào)速率減半且實(shí)現(xiàn)了低通濾波的功能。
圖4 單級(jí)CIC抽取濾波器的局部仿真示意圖
[1] 劉福奇,劉波.Verilog HDL應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2009:189-205.
[2] Harris FJ.Multirate Signal Processing for Communication Systems[M].NJ:Prentice Hall 2005.
[3] SanjitKMitra.數(shù)字信號(hào)處理:基于計(jì)算機(jī)的方法[M].第2版.北京:電子工業(yè)出版社,2005.
CIC Extraction Filter Design Based on MATLAB and the FPGA Implementation
Yang Cuie
(TaiyuanInstituteofTechnology,TaiyuanShanxi030008,China)
CIC extraction filter is commonly used as wireless communication module, generally used in digital down converter (DDC) system. It can finish the function of low pass filter when reducing the lower sampling rate at the same time. This paper introduces the working principle of CIC extraction filter, and gives the CIC filter MATLAB and the simulation results. Finally, the characteristics of FPGA high speed, high stability is used to make the HDL module design of CIC filter under the environment of QUARTUS.
CIC; extraction; MATLAB;FPGA
2016-12-06
楊翠娥(1964- ),女,山西太原人,副教授,研究方向:射頻電路設(shè)計(jì)及FPGA開發(fā)與應(yīng)用。
1674- 4578(2017)01- 0046- 03
TN911.4
A