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
    +关注

    关注

    1664

    文章

    22571

    浏览量

    640747
  • 数字信号处理

    关注

    16

    文章

    580

    浏览量

    47959
  • fir滤波器
    +关注

    关注

    1

    文章

    97

    浏览量

    19746
  • CIC滤波器
    +关注

    关注

    0

    文章

    16

    浏览量

    10879
  • 梳状滤波器
    +关注

    关注

    0

    文章

    5

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高性能(三)电源滤波器

    单相三电源滤波器 是一种高性能的电磁干扰(EMI)抑制器件,专为对抗复杂、严苛环境下的电源噪声而设计。它通过三滤波电路的级联,对干扰信号实现了“多道拦截、层层削减”,其性能远超普通
    的头像 发表于 05-11 10:15 514次阅读
    高性能(三<b class='flag-5'>级</b>)电源<b class='flag-5'>滤波器</b>

    LTC1562IG-2滤波器输出异常怎么解决?

    LTC1562-2当前信号饱和,滤波器输出异常,只有断开滤波器电源才能恢复,或者使能shutdown引脚.才能恢复:
    发表于 05-09 12:50

    使用低噪声运放设计电源二阶多反馈高通滤波器电路

    使用低噪声运放设计电源二阶多反馈高通滤波器电路
    的头像 发表于 04-30 12:35 199次阅读
    使用低噪声运放设计<b class='flag-5'>单</b>电源二阶多反馈高通<b class='flag-5'>滤波器</b>电路

    为何选择单相双电源滤波器

    单相双电源滤波器 是一种高性能的电磁干扰(EMI)抑制装置,通过“两滤波”的强化结构,它能提供远优于普通
    的头像 发表于 04-29 15:00 778次阅读
    为何选择单相双<b class='flag-5'>级</b>电源<b class='flag-5'>滤波器</b>?

    输入滤波器 vs 输出滤波器:核心差异解析

    变频输入和输出滤波器虽然只有一字之差,但它们的角色、电路设计,甚至电气特性都截然不同。简单来说,输入滤波器是为了让变频与电网“和谐相处”,而输出
    的头像 发表于 04-20 11:43 522次阅读
    输入<b class='flag-5'>滤波器</b> vs 输出<b class='flag-5'>滤波器</b>:核心差异解析

    屏蔽电源滤波器的分类

    屏蔽房用来屏蔽 辐射 干扰,而滤波器用来滤除 传导 干扰。没有滤波器,屏蔽房的整体隔离效果会下降60dB以上(相当于百万倍的效能损失),因此滤波器是屏蔽房发挥完整功能的核心部件。 来看下分类: 屏蔽
    的头像 发表于 04-16 10:53 271次阅读
    屏蔽电源<b class='flag-5'>滤波器</b>的分类

    IEC电源插座式滤波器:专业EMI抑制解决方案

    IEC电源插座式滤波器:专业EMI抑制解决方案
    的头像 发表于 04-09 11:21 498次阅读
    IEC电源插座式<b class='flag-5'>滤波器</b>:专业<b class='flag-5'>级</b>EMI抑制解决<b class='flag-5'>方案</b>

    电源滤波器的解决方案

    电源滤波器的解决方案|上海以伯电子
    的头像 发表于 04-03 13:32 265次阅读
    电源<b class='flag-5'>滤波器</b>的解决<b class='flag-5'>方案</b>

    交流单相滤波器与三相滤波器的核心区别解析

    在电力系统中,滤波器的应用至关重要,而单相滤波器和三相滤波器是其两大主要类别。这两种滤波器并非仅因相位数量不同,而是在设计原理、核心功能和应用领域上存在根本性差异。理解这些差异是进行正
    的头像 发表于 02-04 15:53 465次阅读

    如何选择一个合适的高阶低通滤波器

    高阶低通滤波器是一种通过组合多个二阶滤波器来实现的滤波器,用于抑制高频信号并保留低频信号。从信号处理的角度来看,世界上所有的信号都可以被理解为是一个或者多个或者无穷个不同频率、不同相
    的头像 发表于 12-30 15:37 1473次阅读
    如何选择一个合适的高阶低通<b class='flag-5'>滤波器</b>

    Bourns SRF9005A系列线滤波器:汽车EMI抑制的理想之选

    的品质,成为了汽车应用中EMI抑制的理想解决方案。今天,我们就来详细了解一下这款滤波器。 文件下载: Bourns SRF9005A AEC-Q200车规线路
    的头像 发表于 12-22 15:20 529次阅读

    如何实现有源电磁干扰滤波器的出色性能

    作为昂贵的传统大型无源滤波器的出色替代品,有源电磁干扰滤波器 (AEF) 可以帮助设计人员应对不断增加的 EMI 挑战、提高功率密度以及降低电源解决方案的成本。
    的头像 发表于 09-08 13:46 5109次阅读
    如何实现有源电磁干扰<b class='flag-5'>滤波器</b>的出色性能

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

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

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

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