综合技术交流
直播中

ss

6年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[经验]

基于IIR滤波器的NCO实现

  1.搭建模型
  使用一个二阶IIR滤波器对单位脉冲信号滤波,只要保证系统的极点位于S域的单位圆上,即可得到正弦波输出。在Simulink中添加block按下图连接:
   1.png
  ulse Generator输出单位脉冲信号,采用延迟器(Delay)、乘法器(Mult)、加法器(AddSub)和存储IIR系数的Constant模块(分子为1,分母为b=1.75)。
  2.原理分析
  使用信号与系统理论知识简单分析上述系统:
   2.png
  本设计采样100MHz系统采样率,b取1.75,代入上式计算可得IIR滤波器输出的正弦波频率为8.0431MHz。在采样率确定的情况下,改变系数b即可改变输出振荡信号的频率。
  3.仿真验证
  在运行前要确保两点:
  数据格式选择合理;IIR为反馈系统,要根据输入信号的幅度(此处设置为1)设置加法器、乘法器输出数据的格式,否则会超出System Generator可以表示的范围(定点数最大只能是4096Bits)。
  Latency设置正确;Latency表示流水线的级数,也表示数据会经过多少个采样周期后输出。本设计需要将加法器、乘法器的Latency设置为0,以保证各block之间的计算数据可以同步。
  运行仿真,Scope中观察到的信号波形如下:
   3.png
  在脉冲信号输入以后,IIR滤波器的输出开始正弦振荡。频谱图如下:
   4.png
  谱峰值在8MHz附近,验证结果正确。

更多回帖

发帖
×
20
完善资料,
赚取积分