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