找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 157|回复: 7
打印 上一主题 下一主题

串行结构的FIR滤波器设计 (含有代码 文档资料)转

[复制链接]

12

主题

19

帖子

101

积分

二级会员(20)

Rank: 2Rank: 2

积分
101
跳转到指定楼层
1#
发表于 2017-4-14 17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
一、功能描述
FIR滤波器,即有限脉冲响应滤波器,顾名思义,是指单位脉冲响应的长度是有限的滤波器。而根据FIR滤波器的结构形式,分为直接型、级联型、频率取样型和快速卷积型。其中直接型又可以采用串行结构、并行结构、分布式结构。本案例实现了具有线性相位的半串行结构的FIR滤波器。

( c$ p/ p! a" {& y1 d! f2 `5 n
所谓串行结构,即串行实现滤波器的累加运算,将每级延时单元与相应系数的乘积结果进行累加后输出,因此整个滤波器实际上只需要一个乘法器运算单元。串行结构还可以分为全串行和半串行结构,全串行结构是指进行对称系数的加法运算也由一个加法器串行实现,半串行结构则指用多个加法器同时实现对称系数的加法运算。

, d/ w, \2 u. m5 e" g6 X: ~9 j$ j" ^
本案例设计了一个15阶的低通线性相位FIR滤波器,采用布莱克曼窗函数设计,截止频率为500HZ,采样频率为2000HZ;实现全串行结构的滤波器,系数的量化位数为12比特,输入数据位宽为12比特,输出数据位宽为29比特,系统时钟为16kHZ。采用具有白噪声特性的输入信号,以及由200HZ及800HZ单点频信号叠加的输入信号。
. P- I! u& H# V) |+ _2 B
滤波器系数:12'd0,-12'd3,12'd15,12'd46,-12'd117,-12'd263,12'd590,12'd2047
6 b3 q* U8 G( Q+ M6 ^
二、平台效果图
1.modelsim仿真效果图
2.MATLAB效果图
  E% h9 a9 K7 Q* u
三、实现过程
首先根据所需要的功能,列出工程顶层的输入输出信号列表。

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

系统复位信号,低电平有效

din

I

12

接收信号

din_vld

I

8

接收数据有效指示信号

rdy

O

8

准备信号

dout

O

29

滤波器输出信号

dout_vld

O

1

输出数据有效指示信号

5 O0 ]8 c  Q, [

我们可以把工程划分成三个模块,分别是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,并输出滤波后的数据。


  G% W- a, ^6 |" l

以此本模块实现了具有线性相位的半串行FIR滤波器功能。

本模块信号列表如下:

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

系统复位信号,低电平有效

din

I

12

接收信号

din_vld

I

8

接收数据有效指示信号

rdy

O

8

准备信号

dout

O

29

滤波器输出信号

dout_vld

O

1

输出数据有效指示信号

2.加法器模块

调用了Quartus II 里的加法器IP核,以实现FIR滤波器中的加法器模块。

信号列表如下:

信号名

I/O

位宽

说明

dataa

I

13

数据a

datab

I

13

数据b

result

O

13


& r8 `) d; d) x& m, ~

3.乘法器模块

调用了Quartus II 里的乘法器IP核,以实现FIR滤波器中的乘法器模块。

信号列表如下:

信号名

I/O

位宽

说明

dataa

I

11

数据a

datab

I

12

数据b

clock

I

1

工作时钟

result

O

24

乘积


( B4 y5 o7 c0 w4 |) X. ~0 w; k& V8 x- W9 V
四、MATLAB部分说明
使用MATLAB设计出滤波器系数,仿真出滤波器测试数据、测试数据经滤波器滤波后的输出数据并转换成二进制数据写入文本文件中供Modelsim进行仿真。
/ v, L! L, [9 n6 S
编写MATLAB程序,从Modelsim仿真后生成的文本文件中读取滤波器输出数据,对数据进行时域及频域分析,程序运行结果见平台效果图。- |, z8 X" m) A# {1 n

9 v; N! n) d4 Y% z; J7 W代码资料下载

( c! m+ G" q8 W6 e4 z$ {! i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

54

主题

292

帖子

2282

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2282
2#
发表于 2017-6-22 13:44 | 只看该作者
好的东西

54

主题

292

帖子

2282

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
2282
3#
发表于 2017-6-22 13:44 | 只看该作者
好的东西

0

主题

9

帖子

63

积分

二级会员(20)

Rank: 2Rank: 2

积分
63
4#
发表于 2017-6-23 18:52 | 只看该作者
暂时还看不懂

0

主题

1

帖子

32

积分

二级会员(20)

Rank: 2Rank: 2

积分
32
5#
发表于 2017-7-7 09:42 | 只看该作者
学习一下

6

主题

20

帖子

191

积分

二级会员(20)

Rank: 2Rank: 2

积分
191
6#
发表于 2017-9-16 11:28 来自手机 | 只看该作者
学习一下

245

主题

1028

帖子

1921

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1921
7#
发表于 2017-9-16 14:44 | 只看该作者

1 U/ F5 z' s' G4 N9 N( M学习一下

0

主题

103

帖子

711

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
711
8#
发表于 2017-11-25 20:44 | 只看该作者
…没我说话的余地…飘走
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-28 03:58 , Processed in 0.060297 second(s), 32 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表