Matlab 如何正确使用上界码和下界码对信号进行量化

Matlab 如何正确使用上界码和下界码对信号进行量化,matlab,math,signal-processing,Matlab,Math,Signal Processing,我试图用振幅A(可以小于1)量化信号 “没有足够的输入参数”它对我说 我尝试在不使用ODUDECode函数的情况下执行此操作 y = this.y; maxy = max(y); u = uencode(y, N, maxy, 'signed'); u = double(u); p = u / max(u); d = p * maxy; this.yQ = d; thi

我试图用振幅A(可以小于1)量化信号

“没有足够的输入参数”它对我说

我尝试在不使用ODUDECode函数的情况下执行此操作

        y = this.y;
        maxy = max(y);
        u = uencode(y, N, maxy, 'signed');
        u = double(u);
        p = u / max(u);
        d = p * maxy;
        this.yQ = d;
        this.QErr = this.y - d;

但是这种方法重建信号的效果很差。

您可能已经注意到了,但是您使用的是
解码
,而不是
udecode
-
udecode
对我来说,与您的样本配合很好。对不起,这是打印错误。量化误差在90%点以上为零。和量化信号一样,量化后的信号总是被舍入到较低的电平,或者被某个值移到底部
        y = this.y;
        maxy = max(y);
        u = uencode(y, N, maxy, 'signed');
        u = double(u);
        p = u / max(u);
        d = p * maxy;
        this.yQ = d;
        this.QErr = this.y - d;