3 补偿滤波器的设计
从图3 可以看出,CIC 滤波器幅频特性曲线在通带内并不平坦,在通带内信号被衰减.为了克服这一缺点,可加入补偿滤波器,它的幅频特性正好与CIC 滤波器相反,完成对频率响应的补偿,从而扩展了系统的频率特性.
补偿的基本原理是使通带内信号的衰减为零.补偿滤波器的幅值响应与(4)式相反。
当R 足够大时,补偿滤波器的响应接近反SINC 函数,因此补偿滤波器也称之为反SINC 滤波器.
补偿滤波器一般可借助MATLAB 仿真,再与CIC滤波器级联观察补偿后总的频率响应是否满足系统要求,从而得出补偿滤波器的参数.图5 为图3 中CIC滤波器加入补偿后的幅频特性曲线图.
在图3 中,衰减点在1kHz 左右,而从图5 中可以看出,加入补偿滤波器后,衰减点出现在2. 5kHz 左右,因此,补偿滤波器可以很好地克服由于CIC 滤波器在通带内幅值衰减的问题.
补偿滤波器的采样频率为CIC 滤波器降采样后的频率( FS / R),为了避免频率混叠,其截止频率的最大值为采样频率的一半:FC = (FS / R) / 2.在实际应用中,为了得到更加理想的频率特性,截止频率一般设定为采样频率的四分之一,即FC = (FS / R ) /4.
4 实验数据以及结论
本设计针对电能计量芯片.Sigma-Delta 的采样频率为1792kHz,数字电路工作时钟为14kHz.CIC 滤波器的降采样率R =64.根据经验,当CIC 滤波器的阶数比Sigma-Delta 调制器的阶数高一阶时可以达到较好的效果,因此,本CIC 滤波器设定为3 阶,延迟因子为1.半带滤波器采样频率为28kHz,通过MATLAB仿真,6 阶通带频率为2. 5kHz 可以满足系统要求.在实验过程中利用Verilog HDL 语言,HBF 采样对称结构以及CSD 编码,在CSMC 0. 18μm 工艺下综合,得到面积与功耗如表1 所示.
5 结束语
本设计根据电能计量芯片的要求,对Sigma-Delta降采样滤波器进行优化设计.由于单级CIC 滤波器在实现高倍降采样率时功耗大,效果不理想,因此,本设计对128 倍的降采样进行分级抽取,前级采用CIC 滤波器进行64 倍抽取,后级采用半带滤波器实现2 倍抽取.在HBF 的实现过程中采用对称结构以及CSD 编码,减少运算过程中乘法的次数以及乘法运算过程中移位相加次数,降低了电路功耗.与传统方法相比,经优化后,电路面积减少8% ,功耗降低15% .
关键字:电能计量 Sigma-Delta ADC
编辑:探路者 引用地址:电能计量芯片Sigma-Delta ADC降采样滤波器设计(二)
推荐阅读最新更新时间:2023-10-12 22:28
s3c2410_adc中断方式实现
/* * HLG442-S3C2410-ADC_DRV * /26/03/2008 AUTHOR machuanlong */ #include linux/config.h #include linux/module.h #include linux/kernel.h #include linux/init.h #include linux/sched.h #include linux/delay.h #include asm/hardware.h #include asm/semaphore.h #include asm/uaccess.h #include linux/kernel.h /* pri
[单片机]
N76E003的学习之路(ADC简单小例程篇)
N76E003内嵌12位逐次逼近寄存器型(SAR)的模拟数字转换器(ADC)。模数转换模块负责将管脚上的模拟信号转换为12位二进制数据。N76E003支持8通道单端输入模式。内部带隙电压(band-gap voltage)为1.22V,同时也可用作内部ADC输入端。所有模拟电路复用同一组采样电路和同一组采样保持电容。该组采样保持电容为转换电路的输入端。然后转换器通过逐次逼近的方式得到有效结果并存放在ADC结果寄存器中。 在开始ADC转换前,通过设置ADCEN (ADCCON1.0)位使能ADC电路,从而激活ADC电路,由于ADC模块需要额外功耗,一旦ADC转换模块不再使用,建议清零ADCEN位关闭ADC模块电路以节省功耗。
[单片机]
lpc1114 MAT触发ADC转换
MAT触发转换并不是由外部信号引起的,而是由自身定时器的匹配引起的。一共有四个匹配寄存器可以用于MAT触发转换,它们分别是:CT16B0MAT0、CT16B0MAT1、CT32B0MAT0、CT32B0MAT1。 这里,以CT16B0MAT0为例介绍。 新建一个工程,结构如下图所示: 文件都用《 cortex m0 lpc1114 adc start位控制转换 》一节的。 在adc.h文件中,加入TIM16B0_MAT_Init()函数的声明,如下所示: #ifndef __NXP_ADC_H
#define __NXP_ADC_H
#define Vref 3300
extern void ADC_Init(uin
[单片机]
LPC2148的ADC多通道数据采集程序
#include config.h #include stdio.h #define GPIOSET(PIN) IO0SET = PIN // 方便修改置位端口 #define GPIOCLR(PIN) IO0CLR = PIN // 方便修改清位端口 #define LCD_CON 0x00000250 // 液晶显示控制字 #define E_CLK (1 4) //clock input 同步时钟输入端 P0.4 const uint32 RW_SID= (1 6); //data input/output 串行数据输入、输出端 P0.6
[单片机]
基于MC68HC908LJl2的新型三相电能计量系统设计
0 引言
电能计量系统是衡量电能消费数量的计量仪器,其技术性要求很高。它既要求能精确计量,更要求能稳定工作,并能保证长期高度的可靠性。目前,由于近年来能源的日益紧张,电力供应时常出现短缺现象,各地纷纷采取了各种应对措施,很多地区不约而同地出台了峰谷分时电价和避峰电价政策,因此,多费率表市场需求进一步加大,尤其是大工业用户,对三相多费率表的需求快速增长。另外,随着现代电子产业和电力系统的不断发展,电能计量系统正在向智能化、多功能的方向发展,可以测量多种参数,并可实现自动抄表、分时费率、实时费率、预付费等多种功能的测量电路和集成化、模块化已成为未来发展的趋势。本设计中的电能计量系统正是基于这一背景,集检测、计量、控制、存
[嵌入式]
cortex m0 lpc1114 adc介绍资料详解
LPC1114内部有一个逐次逼近型ADC模块,总的来说有如下特征: 8个模拟信号输入通道,可以开1个通道测电压,也可以8个通道全开测电压,软件控制模式下,只能开1个通道,硬件扫描模式下,可以开多个通道 输入电压范围0~VDD 最高10位精度 ADC时钟可调,最大4.5MHz,最快转换时间2.44微秒 可以软件控制转换,也可硬件扫描转换,转换形式多种多样 每个通道都有独立的转换结果寄存器,转换结束可以产生中断 1. 软件控制模式 软件控制ADC转换,分为3种转换方式: 1. 给控制寄存器CR的bit24(即START位)写1启动转换,这种转换的特点是由程序控制何时转换,可以随时转换; 2. 通过CT16B0和CT32B
[单片机]
基于SPI总线的电能计量芯片ATT7022及其在配电监测终端的应用
摘要:介绍了高精度电能计量芯片ATT7022的主要功能、性能比较、内部结构、接口方式及校表方法等,同时对ATT7022在电能配电监控终端的应用作了简要阐述。
关键词:SPI总线 ATT7022 电能计量 W77E58 配电监控终端
1 概述
ATT7022是珠海炬力集成电路设计有限公司生产的一款高精度三相电能计量芯片,该芯片对有功、无功功率的测量精度分别达到0.2s和0.5s,所能测量的电参数包括有功、无功、视在功率、双向有功和四角限无功电能;电压和电流有效值;相位、频率等。ATT7022具有计量参数齐全、校表功率完善等优点,简化了软件设计,缩短了软件开发周期。特别是AT7022可支持全数字校表,即软件校表。软件校表可提高
[应用]
为何STM32H7的ADC数据不变
有人使用STM32H7系列的ADC模块,定时器触发ADC,数据通过DMA传输到内存。对某通道连续转换几次后求个平均值。他却发现ADC结果虽没有什么问题,但一批数据出来后就纹丝不动了。DMA传输本来设计成的Circular模式,感觉好像工作在Normal模式,结果显然有点不合理。 鉴于这个现象和所用芯片,估计是因为Cache使用方面的原因,客户也的确使能了Cache。具体怎么回事呢?我们一起来看看。 我这边使用H743Nucleo板和ST免费的STM32CubeIDE。STM32H743片内有个Vrefint信号,电压一般在1.2v左右,用它做ADC的输入信号来测试。用LPTIM触发ADC转换,每读到5个数据就求个平均值。
[单片机]