0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的单级cic滤波器设计方案

电子设计 来源:FPGA开源工作室 作者:OpenSLee 2020-12-05 10:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者: 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
    +关注

    关注

    1656

    文章

    22308

    浏览量

    630954
  • 数字信号处理

    关注

    16

    文章

    570

    浏览量

    47613
  • fir滤波器
    +关注

    关注

    1

    文章

    97

    浏览量

    19645
  • CIC滤波器
    +关注

    关注

    0

    文章

    16

    浏览量

    10859
  • 梳状滤波器
    +关注

    关注

    0

    文章

    5

    浏览量

    6782
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    有源滤波器与无源滤波器的区别

    滤波器是根据电路参数对电路频带宽度的影响而设计出来的工程应用电路,滤波器种类很多,有源滤波器和无源滤波器的区别我们最简单的分别办法是看看是否需要电源,在作用上最大的区别在于有源
    的头像 发表于 06-18 09:03 1293次阅读

    GNSS 低噪声放大器前端模块,集成前滤波器和后滤波器 skyworksinc

    电子发烧友网为你提供()GNSS 低噪声放大器前端模块,集成前滤波器和后滤波器相关产品参数、数据手册,更有GNSS 低噪声放大器前端模块,集成前滤波器和后滤波器的引脚图、接线图、封装手
    发表于 06-06 18:34
    GNSS 低噪声放大器前端模块,集成前<b class='flag-5'>滤波器</b>和后<b class='flag-5'>滤波器</b> skyworksinc

    Sky5® 低电流 GNSS LNA 前端模块,集成前置滤波器和后置滤波器 skyworksinc

    电子发烧友网为你提供()Sky5® 低电流 GNSS LNA 前端模块,集成前置滤波器和后置滤波器相关产品参数、数据手册,更有Sky5® 低电流 GNSS LNA 前端模块,集成前置滤波器和后置
    发表于 05-14 18:31
    Sky5® 低电流 GNSS LNA 前端模块,集成前置<b class='flag-5'>滤波器</b>和后置<b class='flag-5'>滤波器</b> skyworksinc

    电源滤波器与双的区别

    电源滤波器是电子设备中的重要元件,主要分为和双两种结构。
    的头像 发表于 04-24 17:57 894次阅读
    电源<b class='flag-5'>滤波器</b><b class='flag-5'>单</b><b class='flag-5'>级</b>与双<b class='flag-5'>级</b>的区别

    ADMV8432 15.1GHz至32GHz,可调带通滤波器技术手册

    和腔体调谐滤波器的小型替代方案。这款可调谐滤波器采用芯片设计,具有出色的颤噪性能,可为高级通信应用提供动态可调的解决方案
    的头像 发表于 04-23 09:31 715次阅读
    ADMV8432 15.1GHz至32GHz,可调带通<b class='flag-5'>滤波器</b>技术手册

    ADMV8416 6.3GHz至18GHz、可调带通滤波器技术手册

    。这款可调谐滤波器可用作大型开关滤波器组和腔体调谐滤波器的小型替代方案。由于采用芯片设计,该滤波器
    的头像 发表于 04-23 09:27 791次阅读
    ADMV8416 6.3GHz至18GHz、可调带通<b class='flag-5'>滤波器</b>技术手册

    高带通TSIF集成滤波器

    低通滤波器 高通滤波器 带通滤波器 带阻滤波器 全通滤波器 滤波器类型 作用 频率特性 应用场景
    的头像 发表于 03-20 15:42 735次阅读
    高带通TSIF集成<b class='flag-5'>滤波器</b>

    在电源滤波器中,使用不同技术的滤波器有何性能差异

    电源滤波器分电容、电感、有源三类,各有优劣。电容滤波器结构简单成本低,但低频滤波效果差;电感滤波器低频效果好但体积大;有源滤波器
    的头像 发表于 02-17 10:49 830次阅读
    在电源<b class='flag-5'>滤波器</b>中,使用不同技术的<b class='flag-5'>滤波器</b>有何性能差异

    如何区分有源滤波器和无源滤波器,它们各自的应用场景是什么

    有源滤波器与无源滤波器的主要区别在于元件构成。无源滤波器主要由无源元件组成,如电阻、电容和电感,它们自身不具备放大信号的能力。而有源滤波器则在无源元件的基础上引入了有源器件,通常是放大
    的头像 发表于 02-08 11:45 1916次阅读
    如何区分有源<b class='flag-5'>滤波器</b>和无源<b class='flag-5'>滤波器</b>,它们各自的应用场景是什么

    基于FPGACIC滤波器设计

    这个概念是相对于速率(Single Rate)信号处理而言的。速率 是指整个信号处理流程中只有一种数据速率;多速率 是指系统中存在多个数据速率。使用多速率信号处理可以节省存储空间、减少通信数据量、减少运算量、减轻设计难度。
    的头像 发表于 12-30 15:10 2010次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>CIC</b><b class='flag-5'>滤波器</b>设计

    电源滤波器滤波精度如何?

    电源滤波器滤波精度受频率响应、设计、元件选择、布局及测试影响,需综合考虑优化。合理选择和配置可降低电磁干扰,提高设备稳定性。期待更高效、可靠的滤波器产品。
    的头像 发表于 12-30 13:47 845次阅读
    电源<b class='flag-5'>滤波器</b>的<b class='flag-5'>滤波</b>精度如何?

    AMC1304M05输出接模拟滤波器存在低频纹波,是如何产生的?

    5V,比较输出接三阶RC滤波器,截止频率30k左右,得到滤波后电压,作用相当于使用数字CIC滤波器! 测试发现有的电路板会出现1k左右的低
    发表于 12-27 07:08

    5G射频滤波器技术原理

    射频滤波器可分为表声波滤波器和体声波滤波器,其中表声波滤波器细分为SAW滤波器、TC-SAW、I.H.P-SAW(IncredibleHig
    的头像 发表于 12-26 15:34 1457次阅读
    5G射频<b class='flag-5'>滤波器</b>技术原理

    滤波器的一些常识

    滤波器简介:滤波器是一种用于信号处理的设备或系统,用于改变信号的频率特性,以实现信号的滤波、增强、去噪或降噪等功能。滤波器根据其工作方式可以分为数字
    的头像 发表于 12-18 17:05 1554次阅读
    <b class='flag-5'>滤波器</b>的一些常识