作者: OpenSLee
1 概述
在數(shù)字信號(hào)處理中,CIC濾波器是FIR濾波器中最優(yōu)的一種,其使用了積分,梳狀濾波器級(jí)聯(lián)的方式。
CIC濾波器由一對(duì)或多對(duì)積分-梳狀濾波器組成,在抽取CIC中,輸入信號(hào)依次經(jīng)過(guò)積分,降采樣,以及與積分環(huán)節(jié)數(shù)目相同的梳狀濾波器。在內(nèi)插CIC中,輸入信號(hào)依次經(jīng)過(guò)梳狀濾波器,升采樣,以及與梳狀數(shù)目相同的積分環(huán)節(jié)。
CIC濾波器的發(fā)明者是 Eugene B. Hogenauer,這是一類(lèi)使用在不同頻率的數(shù)字信號(hào)處理中的濾波器,在內(nèi)插和抽取中使用廣泛。與大多數(shù)FIR濾波器不同的是,它有一個(gè)內(nèi)插或者抽取的結(jié)構(gòu)。
1,線性相位響應(yīng)
2,僅需延遲,加減法便可實(shí)現(xiàn),不需要乘法,在FPGA等平臺(tái)上易于實(shí)現(xiàn)。
2 單級(jí)CIC濾波器
CIC濾波器的沖擊響應(yīng)為:
3 設(shè)計(jì)目標(biāo)
利用單級(jí)CIC濾波器將采樣率為352.8KHZ的1khz sin波向下降采樣率到44.1khz的1khz sin波(8倍抽?。?。
1,matlab設(shè)計(jì)驗(yàn)證
2,F(xiàn)PGA verilog設(shè)計(jì)驗(yàn)證。
4 matlab設(shè)計(jì)驗(yàn)證
%Single CIC %352.8khz sample rate down to 44.1khz sample rate close all clc clear all %參數(shù)定義 FS =352800; %Sample rate Frequncy fc = 1000; %1khz N = 1024; Q = 16; M= 8; D = 8; t =0:2*pi/FS:2*pi*(N-1)/FS;%時(shí)間序列 %波形產(chǎn)生 sin_osc =sin(t*fc); %濾波器系數(shù) b=ones(1,M); a = 1; %8倍抽值處理 sf=filter(b,a,sin_osc); sm =sf./M; sd=sm(1:D:length(t)); %繪圖 figure(1), subplot(221),stem(sin_osc); title('采樣頻率352.8khz 1khz sin','fontsize',8); subplot(222),stem(si0); title('采樣頻率44.1khz 1khz sin','fontsize',8); subplot(223);plot(f,mag); xlabel('頻率(Hz)','fontsize',8); ylabel('幅度(dB)','fontsize',8); title('freqz()幅頻響應(yīng)','fontsize',8); subplot(224);plot(f,ph); xlabel('頻率(Hz)','fontsize',8); ylabel('相位(度)','fontsize',8);
圖1 8倍抽取前后的1khz sin時(shí)域波形
圖2 濾波器系數(shù)的幅頻和相頻響應(yīng)
由圖1和圖2分析可知,單級(jí)CIC濾波器的降采樣率設(shè)計(jì)成功。
5 FPGA設(shè)計(jì)驗(yàn)證
FPGA的單級(jí)cic濾波器的設(shè)計(jì)其實(shí)就是一個(gè)滑動(dòng)平均濾波器,由一個(gè)累加器和一個(gè)移位操作完成。
`timescale 1ps/1ps module cic( input mclk,//45.1584MHZ input reset_n, input signed[31:0] pcm_in,//352.8khz output signed[31:0] pcm_out //44.1khz ); localparam LAST_CYCLE = 128; reg [9:0] i;//44.1 reg signed [35:0] temp_pcm; reg signed [35:0] dout_pcm; assign pcm_out = dout_pcm[35:4]; always @(posedge mclk or negedge reset_n) begin if(reset_n == 1'b0) begin i <= 0; temp_pcm<=0; dout_pcm<=0; end else begin i<= i+1; if(i == (LAST_CYCLE-1) || i == (LAST_CYCLE*2-1) ||i == (LAST_CYCLE*3-1) || i == (LAST_CYCLE*4-1) || i == (LAST_CYCLE*5-1)||i == (LAST_CYCLE*6-1) ||i == (LAST_CYCLE*7-1) ) temp_pcm <= temp_pcm + pcm_in; if(i == (LAST_CYCLE*8-1)) begin dout_pcm<= temp_pcm + pcm_in; temp_pcm<=0; end end end endmodule
圖3 modelsim時(shí)域數(shù)據(jù)檢測(cè)
圖4 modelsim時(shí)域波形
圖5 matlab還原數(shù)據(jù)的時(shí)域和頻域
由圖3,圖4,和圖5分析,1khz基本未發(fā)生改變,44.1khz相對(duì)于352.8khz采樣率1khz點(diǎn)變得疏松。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598904 -
數(shù)字信號(hào)處理
+關(guān)注
關(guān)注
15文章
539瀏覽量
45691 -
fir濾波器
+關(guān)注
關(guān)注
1文章
93瀏覽量
18958 -
CIC濾波器
+關(guān)注
關(guān)注
0文章
15瀏覽量
10522 -
梳狀濾波器
+關(guān)注
關(guān)注
0文章
5瀏覽量
6615
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論