在信息信号处理过程中,如对信号的过滤、检测、预测等,都要使用到滤波器,数字滤波器是数字信号处理中使用最广泛的一种方法,常用的数字滤波器有无限长单位脉冲响应(IIR)滤波器和有限长单位脉冲响应(FIR)滤波器两种[1]。对于应用设计者,由于开发速度和效率的要求很高,短期内不可能全面了解数字滤波器相关的优化技术,需要花费很大的精力才能使设计出的滤波器在速度、资源利用、性能上趋于较优。而采用调试好的IP核需要向Altera公司购买。本文采用了一种基于DSP Builder的FPGA设计方法,以一个低通的16阶FIR滤波器的实现为例,通过生成的滤波器顶层模块文件与A/D模块文件设计,在联星科技的NC-EDA-2000C实验箱上验证了利用该方法设计的数字滤波器电路工作正确可靠,能满足设计要求。
1 FIR滤波器的参数设计
1.1 设计要求
数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,它的设计步骤为先根据需要确定其性能指标,设计一个系统函数H(z)逼近所需要的技术指标,最后采用有限精度算法实现。本系统的设计指标为:设计一个16阶的低通FIR滤波器,对模拟信号的采样频率Fs为48KHz,要求信号的截止频率Fc=10.8kHz,输入序列为宽为9位(最宽位为符号位)。
1.2 FIR滤波器的参数选取 设计频率选择性数字滤波器时,通常希望能有近似恒定的频响幅度,并尽量减小通带内的相位失真,斜率为整数的线性相位对应于时域中简单的延时,他在频域中可将相位失真降低到最小的程度[2],用Matlab提供的滤波器设计的专门工具箱--FDAtool仿真设计滤波器,满足要求的FIR滤波器幅频特性,如图1所示。
2 数字滤波器的DSP Builder设计
2.1 DSP Builder介绍
DSP Builer是Altera推出的一个数字信号处理(DSP)开发工具,他在Quartus II FPGA设计环境中集成了Mathworks的Matlab和Simulink DSP开发软件[3]。对DSP Builder而言,包括DSP系统的建模,系统级仿真、设计模型向VHDL硬件描述语言代码的转换、RTL(Register Transfer Level,逻辑综合)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP目标器件的编程配置,整个开发流程几乎可以在顶层的开发工具Matlab/Simulink同一环境中完成。
2.2 FIR 滤波器算法模型建立
根据FIR滤波器原理,可以利用FPGA来实现FIR滤波电路,DSP Builder设计流程的第一步是在Matlab/Simulink中进行设计输入,即Matlab的Simulink环境中建立一个MDL模型文件,用图形方式调用Altera DSP Builder和其他的Simulink库中的图形模块,构成系统级或算法级设计框图(或称Simulink建模)。
2.3 基于DSP Builder的系统级仿真
输入信号采用频率分别为f1=8KHz和f2=16KHz的两个正弦信号进行叠加,其中的仿真波形如图2所示,从FIR滤波电路的仿真结果看出,输入信号通过滤波器后输出基本上变成单频率的正弦信号,至此完成了模型仿真。
3 基于 FPGA的数字滤波器的实现
3.1 运用Modelsim进行功能仿真
在DSP Builder中进行的仿真是属于系统验证性质的,是对MDL文件进行的仿真,并没有对生成的VHDL代码进行过仿真。事实上,生成VHDL描述是RTL级的,是针对具体的硬件结构的,这两者之间有可能存在软件理解上的差异,转换后的VHDL代码实现可能与MDL模型描述的情况不完全相符,这就需要针对生成的RTL级VHDL代码进行功能仿真。
我们利用Modelsim来对生成的VHDL代码进行功能仿真。设置输入输出信号均为模拟形式,出现如图3所示的仿真波形,可以看到这与Simulink里的仿真结果基本一致。即可在Quartus II环境下的硬件设计[4]。
3.2 在FPGA器件中实现FIR滤波器
用FPGA实现的数字滤波器处理的是数字信号,在实际应用中,首先就要用A/D转化器对模拟信号进行采样与量化。传统的方法多数是用CPU或单片机完成的,缺点是控制周期长,速度慢。而利用同步时序状态机来控制A/D采样是一种既简单可靠,又能显著提高采样周期的行之有效的方法。
在Quartus II环境通过VHDL语言按要求设计该状态机并转换为.bsf文件;打开DSP Builder建立的Quartus II项目文件fir.qpf及fir.vhd并转换为相应的.bsf文件,由此可以得到对应设计的模块,如图4所示,调用这两个模块建立新的顶层原理图文件,在软件环境里通过时序仿真,指定器件管脚、进行编译、最后下载到实验箱的EP1K10TC100-3器件中。
4 结语
用信号发生器产生所要求的两个不同频率的正弦信号,就可以示波器上看到滤波以后的结果,需要设计不同的滤波电路时,仅修改滤波器模型文件就可以实现。可见在利用FPGA进行数字滤波器的开发时,采用DSP Builder作为设计工具能快捷、可靠地设计实用滤波系统。
关键字:仿真 滤波 正弦 采样
引用地址:
基于FPGA的数字滤波器的设计与实现
推荐阅读最新更新时间:2024-05-02 20:26
PLC控制电源加滤波器的作用是什么
前排电工师傅提问: 我在很多项目中,采用的西门子24V的PLC,直流开关电源为明纬产品,我都从来没有用过滤波器。 但是我在很多其它同行中,特别喜欢用一个电源滤波器,我不明白这样的意义。特别是日系产品国产产品PLC的控制柜中(我这么说不是突出是日系和欧系PLC不同的原因,我认为都没必要,只是表明看到滤波器最多的场景仅此而已)。 有时我问他们,为什么要加一个电源滤波器呢?回答都是,这都不懂嘛?滤波嘛,保护PLC嘛。 但是我不明白的是,我们的PLC接的电源,如明纬的开关电源,在明纬的官网上查询其原理图,会发现其交流输入后,会有一个滤波电路。相信其它品牌的开关电源也会做这么个滤波电路。那么我们再专门安装一个滤波器又是什么意图呢
[嵌入式]
过采样ADC与PGA结合,提供127dB动态范围
电子行业经常需要测量宽动态范围信号,但目前的技术常常难以满足系统的实际要求。电子秤系统通常采用称重桥式传感器,最大满量程输出为1 mV至2 mV。这种系统要求分辨率约为1000000:1,折合到2 mV输入端时,需要高性能、低噪声、高增益放大器和∑-∆调制器。与此类似,医疗应用中进行化学和血液分析时经常会采用光电二极管传感器,产生的电流很小,需要精确测量(如图1所示)。通常采用的是低噪声跨导放大器,该放大器有多级增益和后处理功能。 图1. 称重传感器和光电二极管应用的输入 尽管实际传感器数据通常只占输入信号范围的一小部分,但系统往往必须经过专门设计以处理故障情况。因此,宽动态范围、高性能(且输入较小)以及对快速变化信号
[测试测量]
msp430fr2311单片机adc序列通道采样详细说明
使用P1.2、P1.3、P1.4、P1.5为采样通道,以demo的msp430fr231x_adc10_10.c文件为例。 1、将上述4个管脚配置为ADC模式: P1SEL0 |= BIT2 + BIT3 + BIT4 + BIT5; P1SEL1 |= BIT2 + BIT3 + BIT4 + BIT5; 2、查看资料可知,有4种adc采样模式,单通道单次,序列通道单次,单通道多次,序列通道多次; 本例选择序列通道单次,将ADCCT寄存器设为L1ADCCONSEQ_1;430读取通道数据时是由最高通道开始,直至A0,因此将ADCMCTL0设置为ADCINCH_5(通道5), ADCMCTL0 |= ADC
[单片机]
采用TSOT-23 封装的12 位、采样A/D 转换器LTC
LTC®2365/LTC2366 是 1Msps/3Msps、12 位、采样 A/D 转换器,分别仅从单 3V电源吸收 2mA 和 2.6mA 电流。这些高性能器件包括一个高动态范围采样及保持电路和一个高速串行接口。全标度输入为 0V 至 VDD 或 VREF。超群的 AC 性能包括 72dB SINAD 和 -80dB THD (在 3Msps 采样速率条件下)。串行接口提供了灵活的电源管理,并在低吞吐速率条件下实现了最大的功率效率。这些器件采用纤巧的 6 引脚和 8 引脚 TSOT-23 封装。 串行接口、纤巧型 TSOT-23 封装和极高的采样速率与功率之比使得 LTC2365/LTC2366非常适合于紧凑、低功率、高
[模拟电子]
0~100 mV精密电压源的设计与仿真
0~100 mV精密电压源是航空发动机温度控制盒等重要控制系统定检时必不可少的激励信号源,设计时要求该精密信号源的输出信号偏移量ΔUomax≤0.02 mV,最大输出驱动电流Iomax=20mA,输出范围:0≤Uo≤100 mV,对系统的稳定性要求非常高。对此要求,传统的精密电压源一般采用模拟电路,由精密电位器调节生成,需要很高的D/A分辨率和抗干扰能力 。这种电压源不但操作不方便,而且随温度等外界条件影响较大,因而还要加上恒温箱和冷却风扇等辅助措施,大大增加了定检设备的体积和成本,而且输出精度和驱动能力也难以满足要求。 针对上述问题,本文提出了一种新的设计方案。为确保系统软硬件设计的正确性和缩短开发周期,本文基于
[电源管理]
基于Matlab的TMS320LF2407程序快速设计
TMS320LF2407是TI公司主推的一种高性能、低价格DSP处理器,其处理速度达到30 MIPS,片内处理集成RAM、Flash及定时器外,还集成了A/D转换器、PWM控制器及CAN总线控制器等模块,特别适合于电机、电源变换等实时要求高的控制系统。但是通常设计DSP程序的方法是,在DSP的集成开发环境CCS中用C语言设计,需要花费大量的时间用来编写和输入程序代码。在Matlab中用图形化的方式设计DSP的程序,能够缩短产品的开发时间。 1 Embedded Target for T1 C2000 DSP介绍 目前,新版本的Matlab软件(Matlab7.O)已经集成了TI公司C2000、C5000、C6000系列DSP的
[应用]
用MC3371/MC3372设计的滤波器
摘要: 文章介绍了Motorola公司生产的FM通信芯片MC3371/MC3372的特性、结构、原理及典型应用,给出了利用MC3371/MC3372芯片设计的一种高灵敏度电力线载波通信滤波器的实际应用电路。
关键词: 通信 调频 混频 滤波 MC3371/MC3372
1 概述
MC3372/MC3372是Motorola公司生产的一种窄带调频(FM)通讯芯片。该芯片集成了振荡器、混频器、中频限幅放大器、积分鉴频器、有源滤波器、噪声抑制开关、信号强度计量电路等常用通信电路单元。MC3371、MC3372可用来设计用于窄带FM接收场合的滤波器。其工作频率最高可达60MHz。它的低电压设计使其
[应用]