作者: OpenSLee
1 概述
在數字信號處理中,CIC濾波器是FIR濾波器中最優的一種,其使用了積分,梳狀濾波器級聯的方式。
CIC濾波器由一對或多對積分-梳狀濾波器組成,在抽取CIC中,輸入信號依次經過積分,降采樣,以及與積分環節數目相同的梳狀濾波器。在內插CIC中,輸入信號依次經過梳狀濾波器,升采樣,以及與梳狀數目相同的積分環節。
CIC濾波器的發明者是 Eugene B. Hogenauer,這是一類使用在不同頻率的數字信號處理中的濾波器,在內插和抽取中使用廣泛。與大多數FIR濾波器不同的是,它有一個內插或者抽取的結構。
1,線性相位響應
2,僅需延遲,加減法便可實現,不需要乘法,在FPGA等平臺上易于實現。
2 單級CIC濾波器
CIC濾波器的沖擊響應為:
3 設計目標
利用單級CIC濾波器將采樣率為352.8KHZ的1khz sin波向下降采樣率到44.1khz的1khz sin波(8倍抽取)。
1,matlab設計驗證
2,FPGA verilog設計驗證。
4 matlab設計驗證
%Single CIC %352.8khz sample rate down to 44.1khz sample rate close all clc clear all %參數定義 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;%時間序列 %波形產生 sin_osc =sin(t*fc); %濾波器系數 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()幅頻響應','fontsize',8); subplot(224);plot(f,ph); xlabel('頻率(Hz)','fontsize',8); ylabel('相位(度)','fontsize',8);
圖1 8倍抽取前后的1khz sin時域波形
圖2 濾波器系數的幅頻和相頻響應
由圖1和圖2分析可知,單級CIC濾波器的降采樣率設計成功。
5 FPGA設計驗證
FPGA的單級cic濾波器的設計其實就是一個滑動平均濾波器,由一個累加器和一個移位操作完成。
`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時域數據檢測
圖4 modelsim時域波形
圖5 matlab還原數據的時域和頻域
由圖3,圖4,和圖5分析,1khz基本未發生改變,44.1khz相對于352.8khz采樣率1khz點變得疏松。
編輯:hfy
-
FPGA
+關注
關注
1626文章
21674瀏覽量
601939 -
數字信號處理
+關注
關注
15文章
559瀏覽量
45798 -
fir濾波器
+關注
關注
1文章
95瀏覽量
19026 -
CIC濾波器
+關注
關注
0文章
15瀏覽量
10537 -
梳狀濾波器
+關注
關注
0文章
5瀏覽量
6629
發布評論請先 登錄
相關推薦
評論