您现在的位置:首页 > 技术支持技术支持

基于Matlab和FPGA的FIR数字滤波器设计及实现

发布时间:2018-05-31 08:39:40  来源:大电流电感厂家   查看:

移位相加单元模块图如图4所示。

移位相加单元时序仿真:仿真结果如图5所示,输入一个阶跃信号(8191),从图5中可以看出大电流电感,输出数据从D_out_a到D_out_p依次有一个时钟周期的时延,并且总的时延和滤波器阶数(32)相等,最后输出数据是16 382=8 191*2,和理论计算值相同。

4.2 与滤波器系数相乘
数据首尾相加输出后与滤波器系数h(n)相乘,由于FIR滤波器的结构是对称的,因而只需16个乘法器即可。乘法器直接调用QuartusⅡ里面的参数化元件库,系数的位宽设为18。关键Verilog语句如下:


以上为一个乘法器设置方法,空心电感16个乘法器的整体模块图如图6所示。

为了便于仿真测试,乘法器单元一开始只设置了4个输入。其中h(0)=100,h(1)=200,h(2)=300,h(3)=400,a,b,c,d为4个输入数据,与h(n)相乘后对应输出分别为R_a,R_b,R_c和R_d。这样设计不失一般性,仿真无误后再扩充到16个即可。仿真结果如图7所示。

4.3 乘法器输出结果相加
16路数据相加后位数被扩为33+4=37,另外要在其输出端加一寄存器,以消除毛刺。此模块原理图如图8所示。

相加输出模块仿真:实际用到的是16输入的加法器,为便于仿真测试.输入先设为4路,仿真结果如图9所示。

4.4 截位输出
截位是滤波器设计的关键,此处的处理方法是:14位的输入数据(14 b的ADC),18位二进制补码表示的滤波器系数,除去符号位,相乘后小数位是13+17=30,加法运算不改变小数位数。另外系统测试电塑封电感器路板用的是USB总线,USB控制器的数据位宽是16,因而把输出数据截到16位,然后送给FIFO,从而传到计算机。截位用VerilogHDL实现的语句是:工字电感
assign FIR_out={D_temp[36],D_temp[29:15]};
此模块的原理图如图10所示,其中FIR_out[15..O]是滤波器的最终输出。

在QuarltusⅡ7.0里调用仿真无误的模块,组成整个系统,最后仿真无误后进行系统的实际数据测试。


5 实际测试
测试电路是一基于FPGA和USB的数据采集及处理系统。其原理框图如图1l所示。

塑封电感器

测试时把一被干扰的模拟信号输入ADC,采样得到的数据经过FPGA和USB传输到计算机上,然后用Mat—lab显示出其时域和频域图形。
5.1 未滤波时信号波形
输入信号频率是3 kHz,含频率为34 kHz的干扰信号(用两个信号绕行电感源合成),下载的FPGA控制程序不含数字滤波器模块,采样得到的数据经USB传到计算机,然后用Matlab显示出的波形如图12所示,可以看出干扰信号的相对功率约为一20 dB。

5. 2 滤波后信号波形
把滤波器程序下载到FPGA,输入信号不变。滤波后波形如图13所示。
平面变压器厂家 | 平面电感厂家

一种基于三电平的单级PFC电路设计O 引言目前,带有功率因数校正功能的开关变换器通常分为两级结构和单级结构两种。两级结构电路具有良好的性能,但是元器件个数较多,与没有PFC功能的电路相比成本会增加。而单级PFC变换器中PFC级和DC/

[开关电源]3525输出异常,烧MOS管等 本帖最后由 piaoyiliu03 于 2015-6-5 09:26 编辑 输出总是烧MOS管与输出电阻R13与R14,查了,好久都找不出什么原因,请帮忙分析,谢谢,变压器初级7圈,次级9圈芯片电源要加滤波电容。 R5、R6用22k变得沒作用。 图小看不清6 本帖最后由 zyj9490 于 2015-6-7 14:01 编辑 有三个问题,1,漏感能量耗散RC网络取值有问题,2)10欧的功率是否合适,3),D5

磷酸铁锂电池充电器CN3059的原理应用磷酸铁锂电池是一种用磷酸铁锂(LiFePO4)材料作电池正极、用石墨作电池负极的新型锂离子电池。关于该电池的详细介绍请参看本刊9期磷酸铁锂动力电池一文。磷酸铁锂电池的标称电压是3.2V、终止充电电压是

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂