Simulink HDL--NCO和FIR Filter

Simulink HDL

Simulink生成HDL的方法可以快速设计出工程,并结合FPGA验证,相比于手写HDL代码优化不足。该方法适合做工程的快速验证和基本框架搭建,是学习系统化FPGA设计的一种方法。
本次实验要点:多周期DDS,每8个周期出一个有效值样点。整个电路使用同一个时钟驱动。
实验模块:
NCO HDL Optimized & Discrete FIR Filter HDL Optimized
参考文章
Matlab 的帮助文档

一、NCO HDL Optimized

Matlab帮助文档的模块描述:NCO HDL优化块生成实或复正弦信号,同时提供适应硬件的控制信号。数控振荡器(NCO)累积相位增量,并使用累加器的量化输出作为包含正弦波值的查找表的索引。定点累加器和量化器数据类型的环绕提供了正弦波的周期性,量化减少了给定频率分辨率所需的表的大小。

模块接口

在这里插入图片描述

模块参数

在这里插入图片描述

Input

1.inc - Phase increment 相位增量
频率字可以选中外部输入或者内部设置
在这里插入图片描述
2.offset - Phase offset 相位偏移
相位偏移可以从外部输入或者内部输入
在这里插入图片描述
3.dither
动态杂散位数
SFDR,英文全称是 Spurious-Free Dynamic range,意为无杂散动态范围。SFDR是指基波强度与最大杂波或谐波的强度之比,所以SFDR值越大则说明系统的噪声水平越低,灵敏度越高。
在这里插入图片描述
4.valid 输入有效
5.reset accum 复位模块

Output

1.ouput data type 输出类型选择
2.phase 当前的相位输出
3.vaild 输出有效
输出可以是一个返回sin或cos值的端口,一个返回代表cos + j*sin的exp值的端口,或者两个返回sin和cos值的端口。
在这里插入图片描述
在这里插入图片描述

NCO生成频率设置

Matlab 手册提供的NCO的参考结构
在这里插入图片描述
1、Accumulator word length — N
NCO生成的频率依赖于增量的设置,在采样时间为 T s T_s Ts,输出频率分辨率为 Δ f \Delta f Δf
N = c e i l ( l o g 2 ( 1 T s ∗ Δ f ) ) N=ceil(log2(\frac{1}{T_s*\Delta f})) N=ceil(log2(TsΔf1))
在这里插入图片描述
2、 Phase increment 相位增量
f o f_o fo为需要输出的频率则频率字计算公式   p h a s e    i n c r e m e n t = r o u n d ( f o T s 2 N ) ~phase ~~increment=round(f_oT_s2^N)  phase  increment=round(foTs2N)

3、 Quantized word length & Spurious Free Dynamic Range (SFDR dB)
在这里插入图片描述
Q = c e i l ( S F D R − 12 6 ) Q=ceil( \frac{SFDR-12}{6} ) Q=ceil(6SFDR12)

二、Discrete FIR Filter HDL Optimized

离散FIR滤波器设计模块

设置滤波器系数结构,数据类型中设置定点化舍入方式已经系数和输出格式
在这里插入图片描述
在这里插入图片描述

半带滤波器

实验使用半带滤波器做了多速率的实验
半带FIR,滤波器系数除了中间值为0.5外,其余偶数序号的系数都为0, 可以节约计算而且可以实现2倍抽取运算。这种滤波器由于通带和阻带相对于二分之一Nyquist频率对称,因而有近一半的滤波器系数精确为零。
在这里插入图片描述
在这里插入图片描述

三、实验展示

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊丽莎白鹅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值