原创 Xilinx System Generator 学习笔记(3)FIR滤波器

2017-10-19 09:36 3519 9 9 分类: FPGA/CPLD

下面介绍使用SysGenFIRFDATools设计FIR滤波器。

  1. FDATools模块用来定义滤波器的阶数和系数。
  2. FIR模块用于Simulink仿真和在FPGA内通过Vivado实现设计,并且在实际的硬件上运行这个设计来验证其功能。

一、FIR滤波器设计原理

下面是这个单通道、单数据率滤波器的设计指标:

  1. 采样率Fs=1.5MHz;
  2. Fstop1=270kHz;
  3. Fpass1=300kHz;
  4. Fpass2=450kHz;
  5. Fstop2=480kHz;
  6. 在通带双边带的衰减=54dB;
  7. 通带纹波 =1;

该设计使用了两种不同的源来仿真滤波器。

  1. Chrip模块,用来在0~750kHz之间进行扫描;
  2. 随机源生成器,输出均匀分布的随机信号,范围是0~1;因为它的范围有限,所以均匀分布是用来驱动定点滤波器的最好选择。

二、生成FIR滤波器的系数

打开System Generator,打开Simulink,新建一个设计。展开Xilinx Blockset,选择DSP,将FDATools元件添加到设计中。双击FDATools,按照如下配置



选择File,Export,将名字为Num的滤波器系数导入到工作空间。


Matlab命令窗口输入max(Num)min(Num),确定滤波器的最大系数值和最小系数值,这些系数值决定了滤波器系数的宽度和二进制的小数点。


三、构建FIR滤波器模型

   展开Xilinx Blockset,点击DSP,将FIR Compiler 7.2加入到设计。双击打开参数配置。



找到Xilinx Blockset,单击Basic Elements,Gateway In 加入到设计。它的参数配置:

  1. Output Type : Fixed-point
  2. Number of bits:8

展开Simulink,点击Sources,找到Chirp Signal 加入到设计。双击,参数配置如下:

  1. Initial frequency(Hz):0.1
  2. Target time(secs):100
  3. Frequency at target time(Hz):75000

找到Simulink,展开Sources,Random Number 加入到设计。双击,按如下参数配置:

  1. Mean:0
  2. Variance:1
  3. Sample time: 1 / 1500000

展开Simulink,找到Signal Routing,将Manual Switch 元件加入到设计。

找到DSP System Toolbox。找到Sinks,将Spectrum Analyzer 加入到设计。

展开Xilinx Blockset,找到 Basic Elements,System Generator 加入到设计。双击,打开配置对话框,选择Clocking标签页,设置如下:Simulink system period(sec): 1/1500000


最终系统的连接如下

四、仿真FIR滤波器模型


1、双击Manual Switch 元件符号,将开关切换到Chirp Signal,在工具栏文本框输入100,单击仿真按钮开始仿真。






PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条