MATLAB到vivado--fir

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB到vivado--fir
1、MTLAB在APP中选择filter design
2、点击左下角的Set quantization parameter,设置Filter
arithmetic为Fixed-point(定点数)浮点数x=0.5,定标Q=15【16bit signed】,则定点数xq=
L0.532768J=16384,式中LJ表示下取整。

反之,一个用Q=15表示的定点数16384,其浮点数为163842-15
=16384/32768=0.5。

浮点数转换为定点数时,为了降低截尾误差,在取整前可以先加上0.5。

Q和S表示方法,如下表所示。

Q表示 S表示十进制表示范围 Q15 S0.15 -1≤x≤0.9999695 Q14 S1.14 -2≤x≤1.9999390
Q13 S2.13 -4≤x≤3.9998779 Q12 S3.12 -8≤x≤7.9997559 Q11 S4.11 -16≤
x≤15.9995117 Q10 S5.10 -32≤x≤31.9990234 Q9 S6.9 -64≤x≤63.9980469
Q8 S7.8 -128≤x≤127.9960938 Q7 S8.7 -256≤x≤255.9921875 Q6 S9.6 -51
2≤x≤511.9804375 Q5 S10.5 -1024≤x≤1023.96875 Q4 S11.4 -2048≤x≤2047
.9375 Q3 S12.3 -4096≤x≤4095.875 Q2 S13.2 -8192≤x≤8191.75 Q1 S14.1
-16384≤x≤16383.5 Q0 S15.0 -32768≤x≤32767x表示实际的数(一个浮点数), q表示它的Qn
型定点小数(一个整数)。

q = (int) (x 2^n)x = (float)q/2^n3、点击左下角的Design fil
ter,进入滤波器参数设置页面,在其中设置采样频率(Fs)、通带频率(Fpass)、阻带频率(Fstop)、通带衰减(Apass)以及阻带衰减(Astop)等参数,并点击最下面的“Design Filter”按钮生成滤波器系数:【幅频特性曲线中阻带按余弦形式缓
慢下降的程度:滚降系数】4、Targets —> XILINXCoefficient(.COE) File导出coe文件,此文件中
的系数是以定点十六进制表示的,每个数据长度为16位(由Numerator word length决定),其为实际浮点数据左移17位(由Numerator frac. length决定)得到,例如实际浮点数据第一个系数为0.001,定点表示为0x0081((in
t)0.001 2 ^ 17 = 131 = 0x0081,即0.001左移17位=Q17)5、Xilinx fir输出位宽O
utputWidth=coefwidth+inputwidth+ceil(log2(Tap)) ()比如,这里coefwidth
=12, inputwidth=12, Tap是滤波器的阶数,ceil是向上取整。

如果阶数为48,最接近48的2^n为64,那么,
()式最后一项即为6,那么输出位宽即为30。

如何截位?首先,应该求出输出的最大值,Max(output)=Max(input)
sum(abs(coef))(a)这样保证不溢出,求得输出的最大值,化为二进制当然是补码了,即可确定输出最大位宽,系数和输入都是有符号二进制补码表示,那么高两位都是符号位,从次高位向下截取(a)式所确定的位宽,但这时所得位宽仍较大,实际上由于ad 量化噪声引起
的部分还可以去除,使得最终位宽仍可进一步减小。

但目标是大信号不溢出,小信号不损失。

6、fir的IP核生成Filter Option s选项卡Filter Coefficient中Select Source选中COE File,点击Browse按钮,添加.coe文
件路径后Vivado自动将滤波器系数导入IP核中,Filter Specialization中Filter Type选择单速率型(
Single Rate),抽取型(Decimation)和插值型(Interpolation)常用于特殊场合,抽取型一般多用于数字前端下变频抽取样值降低AD采样速率,插值型用于常用于提高采样速率,,这里我们选择Single Rate即可Channel Spec ialization选项卡由于只使用一个通道,因此交织通道序列
(Channel Sequence)选择Basic,通道数(Numb
er of Channels)为1;板卡硬件过采样初始化(Hardware Oversampling Specialization
中,输入该滤波器数据的采样速率(Input Sampling Frequency)为100MHz,IP核的工作时钟频率(Clock
Frequency)为100MHz(即板卡时钟)Implementation选项卡导入系数后Vivado会根据导入的系数自动识别
是何种类型的滤波器,根据滤波器的特点对FIR滤波器结构做性能优化,比如导入的是HalfBand Filter,Coefficien
t Structure中会出现Half Band一栏,在Coefficient Structure 选项卡中会出现软件识别出的滤波器
类型,这里软件识别为Inferred,我们也可设置为其他类型为使输出数据位宽位32,Output Rounding Modes(输
出舍入模式)选择Truncate LSBs(截断最低有效位),这里我们保留了高32位,舍弃了低四位,若选择Full Precision(全精度输出),则输出数据位宽位36位Detailed Implementation和Interface选项卡Detailed Implementation和Interface选项按默认设置就可以。

相关文档
最新文档