当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:利用EDA技术实现硬件设计的最典型方法是用Quartusll设计完成的,但是此方法并不适用于涉及算法类或信号处理的设计项目。Altera公司2002年推出的DSPBuilder可以很好地帮助设计者完成此类设计项目。常用的数字滤波器有无限长冲激响应型(IIR)和有限长冲激响应(FIR)型,其中FIR型可以采用FFT来快速实现滤波,且相位具有严格线性关系,非常适合数字通信的要求。直接数字频率合成器(DDS)是一种广泛应用的数字频率合成技术,它的相对带宽、频率转换时间、相位连续性、高分辨率以及集成度等一系列性能指标远远超过传统的频率合成技术。为此,文章详细介绍了Matlab、DSPBuilder和QuartusH三个软件联合开发数字滤波器的方法,并使用DDS产生频率信号测试了滤波器的效果。

引言

严格上讲,利用QuartusH设计可以完成FPGA硬件的所有设计,但是使用这种方法设计涉及算法类或信号处理的设计项目,工作量极大且复杂,极大地降低了工程设计的效率。鉴于此,Altera公司推出了DSPBuilder这一工具,极好地解决了这个困扰工程师的难题。DSPBuilder是一个系统级(或算法级)设计工具,它架构在多个软件工具之上,利用Matlab工具和DSPBuilder可以完成图形化的系统建模、大部分的设计过程和仿真。

常用的数字滤波器有无限长冲激响应型(IIR)和有限长冲激响应(FIR)型。IIR滤波器的相位具有非相位特征,不适合用于数字通行系统。FIR型可以采用FFT来快速实现滤波,且相位具有严格线性关系,非常适合数字通信的要求。

1基本原理

1.1数字滤波器原理

因为FIR数字滤波器具有的线性相位非常适合数字通行要求,并被大量应用于数字通行系统,所以,本设计为FIR数字滤波器。FIR滤波器系统的冲击响应是有限长的,其系统函数为:

其中,M是FIR数字滤波器的阶数,也称为延时阶数。所以,基本的FIR数字滤波器系统的表达式如下:

其中,h(i)是数字滤波器系数;x(n)是输入信号的采样序列;L是数字滤波器的系数长度;y(n)是数字滤波器的输出序列。

1.2DDS

原理幅值为1,初始相位为0,频率为f0的正弦波表达式如下:

将正弦波周期分为M份,第n份所在的相位对应的波形幅值u(n)为:

这样,则DDS的基本原理图如图1所示。

DDS的正(余)弦波形是通过查找表生成波形的,如图1所示。正弦查找表中存储了正弦波形M个不同相位的幅值u(n),把表数据查找一轮产生一个周期的正弦波形,相位控制字P改变的是查表的初始位置,而频率控制字F改变的是查表的步进值,假如F=1,产生的正弦波频率为f1,则F=k时,表明查表每隔k个位置取一次值,因此产生的正弦波频率为kf1。

1.3Matlab/DSPBuilder设计流程

Matlab/DSPBuilder设计流程框图如图2所示。该流程的第一步,是在Matlab/Simulink中,使用DSPBuilder模型库中的元素建立一个mdl模型文件,以完成系统级或算法级设计框图;第二步,利用Simulink的图形化仿真、分析功能,分析此设计的正确性;第三步,由于EDA工具软件不能直接处理Matlab的mdl文件,需要通过Signalcompiler转化为硬件语言(VHDL文件),因VHDL文件是基于RTL级的,故可以下载至硬件。

图2Matlab/DSPBuilder设计流程框图

2设计的具体实现

由公式(2)分析可知,滤波器输出是不同时刻输入的线性组合,为实现此逻辑需使用L位的移位寄存器和L路输入的求和器。本设计为31阶FIR数字滤波器,需使用32位的移位寄存器和32路输入的求和器,这样,其滤波器模型如图3所示。

设计FIR数字滤波器的第二步是确定32路输入的求和器中的32个系数,即公式(2)中的h(i)具体方法是:打开Matlab中的FDATool(FilterDesign&AnalysisTool)工具,输入滤波器参数,本设计为中心频率为6kHz的带通数字滤波器,其输入参数如表1所列。

点击DesignFilter,可得到如图4所示的滤波器;然后选择“File->Export…”,则滤波器的系数就被存在了NUM向量中。

在Matlab命令窗口键入NUM,由于K*NUM与NUM设计的滤波器只有幅值差异,所以可取一适当K值使系数向量为(-100〜+100)以内的数,四舍五入为整数,此设计K=256,所得到的滤波器系数如表2所列。然后把系数添加进滤波器模型,便可得到所设计的带通中心频率为6kHz的FIR数字滤波器。按照Matlab/DSPBuilder设计流程框图,使用DSPBuilderBlockset->IO&Bus为滤波器添加Input、Output模块,对其进行simulink仿真,正确无误后,添加signalCompiler模块,对滤波器模型进行编译,生成VHDL文件。

为了验证数字滤波器的效果,根据DDS的原理,分别

设计频率为6kHz和12kHz的正弦波信号,接入数字滤波器,使用Simulink仿真,观看设计效果。结果证明数字滤波器效果良好,其结果仿真图如图5所示。

3结语

本文以中心频率为6kHz的带通FIR数字滤波器为例,系统地介绍了Matlab和DSPBuilder工具联合在一起完成系统级或算法级系统的设计方法和流程。使用Matlab和DSPBuilder工具设计系统相较于传统方法,操作简单,逻辑清晰,可以极好地实现系统的要求。

20211020_61702b4b7cf62__一种31阶FIR数字滤波器的设计及实现

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Matlab被禁,不代表开源的Python和Julia就可以随便用,甚至祖宗辈的C语言也不一定安全。就像Arm新技术被禁止华为使用,不代表华为就能自由使用所谓开源的RISC-V,开源技术的主导者仍然是美国,而且RISC-...

关键字: Matlab C语言 RISC-V

摘要:直流有源滤波器具有抑制低次谐波的优点,被广泛地应用在航空等领域。为使直流有源滤波器能快速响应且精准补偿各次纹波,现提出一种基于模糊P1-重复控制的方法,并在Matlab/simulink环境下进行了仿真验证。仿真结...

关键字: 直流有源滤波器 模糊P1-重复控制 Matlab

先楫半导体重磅推出HPM6300系列—— 高性能,低功耗,高性价比

关键字: 先楫半导体 MCU 数字滤波器

摘要:直流有源滤波器具有抑制低次谐波的优点,被广泛地应用在航空等领域。为使直流有源滤波器能快速响应且精准补偿各次纹波,现提出一种基于模糊PI-重复控制的方法,并在Matlab/simulink环境下进行了仿真验证。仿真结...

关键字: 直流有源滤波器 模糊PI-重复控制 Matlab

摘 要:根据QAM调制解调的基本原理,以Matlab为开发平台,设计了 16QAM数字调制解调系统并进行仿真分析,并在 信噪比变化条件下,得到了不同进制QAM系统的误码率。仿真结果表明,QAM调制相对PSK调制具有较好的...

关键字: 正交幅度调制 仿真 Matlab

数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

关键字: 数字滤波器 乘法器 加法器

数字滤波器是与模拟滤波器相对应的,我们在常用的离散系统中, 使用数字滤波器。它的主要作用是利用离散时间系统的特性,在这里 时间就是一个变量,然后在对外部输入的信号,进行处理,这里的输 入信号一般都是广义上的波形型号,信号...

关键字: 数字滤波器 电压 电流

数字滤波器可以分为两大部分:即经典滤波器和现代滤波器。经典滤波器就是假定输入信号x(n)中的有用成分和希望滤除成分分别位于不同的频带,因而我们通过一个线性系统就可以对噪声进行滤除,如果噪声和信号的频谱相互混叠,则经典滤波...

关键字: 数字滤波器 低通滤波器 带阻滤波器

摘要:波形平滑、频率稳定的正弦信号是仿真研究的重要前提。为了能够方便地产生此信号,文章提出了一种基于DDS技术的正弦信号发生器的设计方法。该方法利用FPGA芯片及D/A转换器,采用直接数字频率合成(DDS)技术,设计并实...

关键字: 直接数字频率合成器 三相正弦信号 FPGA DDS

摘 要 :在 Matlab 上采用肤色范围静态肤色建模方式,利用阈值化法统计输入像素在 YCbCr 色彩空间下色度Cb,Cr 的集中落点区域 ;采取基于 YCbCr 信号阈值的肤色分割,灰阶值作为肤色检测结果的输出,在...

关键字: Matlab 阈值化 YCbCr 肤色检测 Quartus Ⅱ FPGA
关闭
关闭