你怎么知道你的矩阵在稀疏变换后是否稀疏?

信息处理 fft 矩阵 稀疏模型
2022-01-30 09:03:37

要使用 Compressive Sensing 方法成功压缩数据,我需要有稀疏向量,理论上,如果向量的条目有多个零或接近零,则向量是稀疏的。我的问题是你如何确定接近零的最大值?

我尝试在 Matlab 上制作稀疏矩阵。假设我有 64 个数据,这是一个密集向量。在我尝试使用 FFT 使我的向量稀疏之后,我从中获取了绝对值(我相信更容易识别零或接近零的条目)。我的原始值的最小值为 1,最大值为 26 我的稀疏值的最小值为 7.3245,最大值为 602。根据我的稀疏向量,我认为没有条目几乎为零

1个回答

如果您在文献中找不到任何关于阈值的内容,您可以通过以下过程自行开发:

  1. 产生
    N=ln(1M)R
    随机矩阵使用您当前的方法确定是稀疏的。这里,M是误差范围,R是能够检测到的最大误差分辨率。让我们分别假设0.9510^{-6}的值。AMR0.95106
  2. 创建一个要测试的阈值数组γ例如,γ=0:R:1
  3. 为检测创建一个计数器d
  4. 应用到步骤 1 中生成的第一个矩阵。检查稀疏性。如果正确发现矩阵是稀疏矩阵,则将添加到中的每个矩阵重复此操作γ1dA
  5. 计算检测概率为将其存储在新数组中。重置Pd=dNPdd
  6. 重复第 4 步和第 5 步,每次都遍历γ
  7. 绘制以直观地检查接收器操作特性是否计算正确。Pdγ
  8. 计算其中是最佳阈值(使用Youden 的 J Statistic)。
    J=ΣPdΣPd+Σ(1Pfa)Σ(1Pd)Σ(1Pd)+ΣPfa)1
    J

有关本主题的更多资源,我建议阅读Van Trees 的检测和估计理论