www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > FPGA開源工作室

基于FPGA單級CIC濾波器實(shí)現(xiàn)8倍抽取

1 概述

在數(shù)字信號處理中,CIC濾波器是FIR濾波器中最優(yōu)的一種,其使用了積分,梳狀濾波器級聯(lián)的方式。

CIC濾波器由一對或多對積分-梳狀濾波器組成,在抽取CIC中,輸入信號依次經(jīng)過積分,降采樣,以及與積分環(huán)節(jié)數(shù)目相同的梳狀濾波器。在內(nèi)插CIC中,輸入信號依次經(jīng)過梳狀濾波器,升采樣,以及與梳狀數(shù)目相同的積分環(huán)節(jié)。

CIC濾波器的發(fā)明者是 Eugene B. Hogenauer,這是一類使用在不同頻率的數(shù)字信號處理中的濾波器,在內(nèi)插和抽取中使用廣泛。與大多數(shù)FIR濾波器不同的是,它有一個(gè)內(nèi)插或者抽取的結(jié)構(gòu)。

1線性相位響應(yīng)

2,僅需延遲,加減法便可實(shí)現(xiàn),不需要乘法,在FPGA等平臺上易于實(shí)現(xiàn)。

2 單級CIC濾波器

CIC濾波器的沖擊響應(yīng)為:

3 設(shè)計(jì)目標(biāo)

利用單級CIC濾波器將采樣率為352.8KHZ1khz sin波向下降采樣率到44.1khz1khz sin波(8倍抽取)。

1,matlab設(shè)計(jì)驗(yàn)證

2,FPGA 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分析可知,單級CIC濾波器的降采樣率設(shè)計(jì)成功。

5 FPGA設(shè)計(jì)驗(yàn)證

FPGA的單級cic濾波器的設(shè)計(jì)其實(shí)就是一個(gè)滑動平均濾波器,由一個(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ù)檢測

4 modelsim時(shí)域波形

5 matlab還原數(shù)據(jù)的時(shí)域和頻域

由圖3,圖4,和圖5分析,1khz基本未發(fā)生改變,44.1khz相對于352.8khz采樣率1khz點(diǎn)變得疏松。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉