新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于分布式算法的低通FIR滤波器

基于分布式算法的低通FIR滤波器

作者:时间:2010-10-21来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/151412.htm

  2 的软件实现

  从式(5)和式(7)可以看出,利用实现一个N项乘积和,关键是如何实现式(4)中乘积项及各乘积项之和。

  在FPGA中可以预先设定一个N位输入的查找表来实现部分乘积项,即预先设定N阶滤波系统查找表,实现向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一个映射。由于查找表的地址空间与阶数成指数关系(2N),完全用查找表来实现部分乘积项需要容量很大的存储器,这就需要占用巨大的资源,而且功耗增加、速度降低。因此为了减小设计规模,可以将一个大的查找表分为几个较小的查找表来实现。例如,本系统采用的8阶,则用一个查找表来实现需要256(28)位地址空间的ROM,将8阶分成两个4阶滤波器实现,只需要2个16(24)位地址空间的ROM,这样大大地降低了设计规模和资源使用量。把输入x(i)作为地址,分为高四位和低四位地址进行查找。表1给出了8阶滤波系统的低四位地址x(i)与p(i)的映射关系。

  

8阶滤波系统的低四位地址x(i)与p(i)的映射关系 www.elecfans.com

  本系统中滤波器系统函数采用Matlab中的fdatool工具,并根据设计要求采用了kaiser窗设计出滤波器的系统函数h(n),其采样频率为500 kHz,通频带带宽为100 Hz。设计的低通滤波器如图1所示。若需实现高通或带通滤波器,只需在设计时利用高通或带通滤波器代替低通滤波器即可。

  

  利用Verilog硬件描述语言设计本系统软件,系统主要分为以下4个部分。包括顶层文件、A/D采样、实现和D/A转换。系统总体结构如图2所示。

  

  由于FPGA频率为100 MHz,采用的ADC0809转换频率必须小于1 MHz,所以在顶层文件对系统时钟进行200分频,提供外围所需时钟。然后对各模块进行例化,使之成为完整的系统。

  对A/D采样输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿时启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到完成A/D转换,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。CLK为时钟输入信号线。由顶层文件的分频时钟提供500 kHz时钟,对信号进行采集。

  主体的实现主要由以下几个部分组成:数据接收存储、数据选择器、2个存储器、加法和控制部分。



评论


相关推荐

技术专区

关闭