完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
FIR滤波器 工程说明 本案例设计了一个15阶的低通线性相位FIR滤波器,采用布莱克曼窗函数设计,截止频率为500HZ,采样频率为2000HZ;实现全串行结构的滤波器;采用具有白噪声特性的输入信号,以及由200HZ及800HZ单点频信号叠加的输入信号。 案例补充说明 FIR滤波器,即有限脉冲响应滤波器,顾名思义,是指单位脉冲响应的长度是有限的滤波器。而根据FIR滤波器的结构形式,分为直接型、级联型、频率取样型和快速卷积型。本案例实现了具有线性相位的半串行结构的FIR滤波器。 一、 功能描述 FIR滤波器,即有限脉冲响应滤波器,顾名思义,是指单位脉冲响应的长度是有限的滤波器。而根据FIR滤波器的结构形式,分为直接型、级联型、频率取样型和快速卷积型。其中直接型又可以采用串行结构、并行结构、分布式结构。本案例实现了具有线性相位的半串行结构的FIR滤波器。 所谓串行结构,即串行实现滤波器的累加运算,将每级延时单元与相应系数的乘积结果进行累加后输出,因此整个滤波器实际上只需要一个乘法器运算单元。串行结构还可以分为全串行和半串行结构,全串行结构是指进行对称系数的加法运算也由一个加法器串行实现,半串行结构则指用多个加法器同时实现对称系数的加法运算。 本案例设计了一个15阶的低通线性相位FIR滤波器,采用布莱克曼窗函数设计,截止频率为500HZ,采样频率为2000HZ;实现全串行结构的滤波器,系数的量化位数为12比特,输入数据位宽为12比特,输出数据位宽为29比特,系统时钟为16kHZ。采用具有白噪声特性的输入信号,以及由200HZ及800HZ单点频信号叠加的输入信号。 滤波器系数:12'd0,-12'd3,12'd15,12'd46,-12'd117,-12'd263,12'd590,12'd2047 二、 平台效果图 1.modelsim仿真效果图 2.matlab效果图 三、 实现过程 首先根据所需要的功能,列出工程顶层的输入输出信号列表。
我们可以把工程划分成三个模块,分别是FIR滤波器模块和加法器模块和乘法器模块。 1.FIR滤波器模块 具有线性相位的半串行FIR滤波器结构图: 在时钟允许信号的控制下,将数据以1/8系统时钟频率存入16个移位寄存器中,然后将对称系数的输入数据相加,比如X(0)*X(N),X(1)*X(N-1),X(2)*X(N-2),同时将对应的滤波器系数送入乘法器中得到结果mult_s,再对此乘法结果进行累加sum <= sum + mult_s,并输出滤波后的数据。 以此本模块实现了具有线性相位的半串行FIR滤波器功能。 本模块信号列表如下:
2.加法器模块 调用了Quartus II 里的加法器IP核,以实现FIR滤波器中的加法器模块。 信号列表如下:
3.乘法器模块 调用了Quartus II 里的乘法器IP核,以实现FIR滤波器中的乘法器模块。 信号列表如下:
四、MATLAB部分说明 使用MATLAB设计出滤波器系数,仿真出滤波器测试数据、测试数据经滤波器滤波后的输出数据并转换成二进制数据写入文本文件中供Modelsim进行仿真。 编写MATLAB程序,从Modelsim仿真后生成的文本文件中读取滤波器输出数据,对数据进行时域及频域分析,程序运行结果见平台效果图。 |
|||
相关推荐
|
|||
????? 哪里看啊
|
|
|
|
|
|
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
452 浏览 0 评论
843 浏览 0 评论
1670 浏览 0 评论
452 浏览 0 评论
630 浏览 0 评论
1215 浏览 23 评论
5451 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 16:26 , Processed in 0.484505 second(s), Total 37, Slave 29 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号