【问题标题】:Scalar vs Vector signal Quantization标量与矢量信号量化
【发布时间】:2022-01-05 16:48:33
【问题描述】:

我正在研究标量与矢量量化,我有一个任务是(在 MATLAB 中)使用 Lloyd-Max 算法实现一个标量量化器,并通过 k-means 聚类实现一个矢量量化器。

vector量化器工作在R2向量空间,所以它的输入是一个样本元组(输入向量),它的输出也是一个二维向量,对应量化区域的质心向量。

有人告诉我,为了使两个量化器之间的比较准确,我需要保持每个样本的位数恒定。例如,在 n 位标量量化器中,有 2n 个量化区域,其中一个样本将被量化。

等效的 vector 量化器,每个输入元组将有 2n 位,因此每个样本仍由 n 位表示。 所以,按照这个逻辑,我认为 vector 量化器应该有 22n 个量化/Voronoi 区域。

我必须量化来自高斯源(源 A)和 AR(5) 随机过程(源 B)的相同数量的样本。根据我的研究,我认为 scalar 量化器有望对源 A(在 MSE 意义上)和 vector 执行更好的量化 量化器应该在 AR 过程中表现更好(来源 B),其中样本相互关联。

但是,当我量化上述两个源并计算原始信号和量化信号之间的 MSE 时,矢量量化器会为两个源提供更小的 MSE。因此,矢量量化器对两个源都更有效(在 MSE 意义上),我认为这是错误的,因为它应该只对自回归随机过程更有效,而不是对高斯源也更有效。

(我将 MSE 计算为:mse(input_signal - quantized_signal),所以没有错。)

所以我的问题是:

  1. (理论上)矢量量化器应该更有效地量化两个源还是仅在 AR 处理的情况下?
  2. 矢量量化器等效于 n 位标量量化器,应具有 2n22n sup> 量化/Voronoi 区域(第二个参数/kmeans() 的簇数)。

如果需要,我也会发布 MATLAB 代码。

任何帮助都将不胜感激,因为我已经坚持了几天。

提前致谢。

【问题讨论】:

  • 您是否使用相同的输入信号来学习量化区域测试量化器?

标签: matlab signal-processing quantization


【解决方案1】:

K-Means 与 Lloyd Max 算法非常相似。
既然你给了它x2 更多的位,那就难怪它的性能更好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2010-09-29
    • 2017-06-18
    • 2012-09-01
    • 2011-03-31
    相关资源
    最近更新 更多