我正在模拟一个4阶段的数字滤波器。
阶段是:
输入为4位,输出为24位。我对24位输出感到困惑。
我使用MATLAB生成4位带符号的sinosoid输入(使用SD工具),并使用modelsim进行模拟。所以输出也应该是一个sinosoid。问题是输出只包含4个不同的数据。
对于24位输出,我们不应该获得2 ^ 24-1个不同的数据吗? 这是什么原因?是因为内部位宽?
答案 0 :(得分:1)
我不熟悉Modelsim,我不了解您使用的过滤器术语,但是......您的滤波器线性系统是什么?如果是这样,给定频率的输入将导致相同频率的输出,尽管可能具有不同的幅度和相位。如果您的输入信号是单音,采样使得每个周期有四个值,则每个周期输出仍然有四个值。除非其中一个阶段执行采样率转换,否则系统将按预期运行。正如Donnie DeBoer所指出的那样,计算的单词宽度无关紧要,只要它可以代表输入的四个值。
同样,我不熟悉您系统的详细信息,因此如果其中一个阶段确实执行了采样率转换,则不适用。
答案 1 :(得分:0)
原谅我缺乏过滤器知识,但其中一个过滤器阶段是否在输入值之间进行插值?如果没有,那么无论您的输出分辨率如何,您最多只能获得2 ^ 4个输出值(基于输入分辨率)。仅仅因为输出到24位并不意味着你将拥有2 ^ 24个值...想象一下将数字方波运行到D-> A转换器中。您拥有世界上所有的输出分辨率,但您仍然只有2个值。
答案 2 :(得分:0)
其实非常简单: