EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在Vivado调用fir滤波器时,我们会遇到需要填充滤波器抽头系数的问题,手工计算又不现实,所以在此向大家介绍一个生成系数的工具。
6 o% \: p9 |; N! [/ t
首先,我们打开matlab软件,在命令窗口输入fdatool并回车,就会弹出滤波器设计工具。
% e8 o3 c5 u7 l0 x$ g
. N) G, S8 l' y4 x% K
在图中第一个红色框内,我们根据自己需要选择低通或者高通,第二个框,在fir的设计方法中,我们也是可以根据自己需要进行选择,在此,比如我选择窗函数。
; ~9 J+ f0 Z6 o8 t" M" D5 K' d
8 S3 ^# O9 o3 N: V5 {. V8 \
在窗函数中,我们选择合适的窗口。 4 z/ Y: A; _ U( R) i! E
0 z) n! Y4 K) B6 a' I
" O6 K) w! J) j+ b/ O" C
对于计算阶数大家可以根据需要进行选择,默认是最小,但是有时候滤波效果不是很好,所以我们可以自定义。
& e% m4 L1 u% Q" a8 j; u- @
" e4 g( z; s" S
8 O( _$ f. o2 b( e1 {2 i3 d1 P, ?: r' N* r2 @
- ?: f d3 @8 }" x& A+ ^8 H1 _9 D
( n }& D9 U/ _9 L7 a% _
& K8 Z9 Y+ A7 @8 R/ r; ^& [, C: C9 L7 [) G! N" }' m9 y
% Q6 m( h- z( {
0 b# X8 H" @' O' a
$ A% Z7 o$ R9 f4 E) s7 N
/ d. ~3 M: N+ S5 e自定义时选择第一个选项,计算阶数越大,运算量越大,最后仿真时等待的时间可能更久,这个大家自行均衡。
7 @$ N" { ~! ?8 j; S& f( \! g0 {9 D* u; k8 c
' ^5 |* `( {! y4 F
! \* t- U6 F, e" J1 ? , S8 q. C2 b R
3 y; Q7 H6 n( q
, C+ c2 O7 y9 k
) y- N* j) i# F2 f$ G# B- Y接下来是频率设置,units是频率单位,根据自己波形的频率进行设置合适的单位。Fs为采样频率,在满足奈奎斯特采样定律的情况下设置合适的频率。Fpass为通带频率,指的是滤波器允许通过的频率范围。Fstop为截止频率,指的是滤波器需要抑制的频率范围。 3 L9 V! G$ o% i- g
Apass表示通带衰减,指的是滤波器在通带内的衰减量。Astop表示阻带内的衰减量。 . s3 G1 H1 @% b( v! N
5 Y! t" H7 F1 L% X: Q
/ Q! r1 |; q( K
! B A9 K' e+ s0 D! S% J
在此,给大家一个示例,窗函数我选择的是汉明窗,采样频率为10MHz,截止频率为4MHz。计算阶数为20。大家可以看一下效果图,还是比较理想的。 ' o- ?+ V( a: T5 @1 H! X! F
3 y2 I8 o {, \. n: y+ e) S
1 N( f& U0 O+ Z( P/ V$ j4 ^
# c, z) R, |6 j- [% f$ b5 q. d
在左边窗口,我们选择第三个选项,然后选择Fixed-point。然后我们就可以输出我们的抽头系数了。 " F2 K9 D' w5 m: M' S6 A V
. ]# p' V% t, s1 w
6 s3 U2 y* q2 \: Y) Q" c' u( l
3 I2 r" F& z) D4 y, S4 v
大家可以直接输出数据,然后在IP核配置界面直接填充,不过在此为了减少麻烦,我直接输出XILINX的coe文件,在配置时,用文件直接来填充。 # ^# f" D8 b' A, o3 z
. m* F6 u- e; ]2 |% f, C & X3 y: Y; e6 |8 ~9 N" l
|