【问题标题】:2D Self-Deconvolution in MATLABMATLAB 中的二维自反卷积
【发布时间】:2015-04-11 08:33:46
【问题描述】:

我有一些数据,一个二维矩阵,我们称之为 A,我知道理论上可以用另一个矩阵的自卷积来描述,我们称之为 B:

A=conv2(B,B)

我正在尝试提取 B。有没有办法在 MATLAB 中执行二维矩阵的自反卷积?谁能指出我正确的方向?

【问题讨论】:

  • 您尝试过deconvblinddeconvlucydeconvregdeconvwnr 功能吗?只是在黑暗中开枪。我相信这是一个非常不确定的系统,图像的反卷积,所以可能不可能,或者只能使用正则化技术和先验信息。如果您在这里没有得到答案,我建议您在数学 stackoverflow 中尝试
  • 通过二维矩阵,您是否意味着您想要识别类似 {{1,0,0},{2,2,0},{1,2,1}} 的东西作为 {{1,0},{1,1}} 的卷积平方?
  • 理论上你可以通过执行傅里叶变换找到一个解,取频率图像的平方根(使用sqrtm()),然后执行傅里叶逆变换.但是,您需要考虑 FFT 将 circular 转换为乘法的事实,并且我未能在 MATLAB 中找到直接执行 DTFT 的函数(这是非常合乎逻辑的,因为 FFT 是 DTFT 的样本) - 所以应该以某种方式使用填充。我尝试了几次,由于最后一个问题,肯定无法让它工作,但我认为这是正确的方向。
  • @AnderBiguri 感谢您的建议。我研究了这些函数,但它们似乎正在处理反卷积以消除图像中的模糊,我认为它们实际上并没有返回与图像卷积的矩阵
  • @Yellows 啊抱歉,你是对的。我已经有一段时间没有看了。感谢您的建议,这似乎是正确的方向。

标签: matlab math signals signal-processing convolution


【解决方案1】:

我们可以将 A 视为两个变量中的多项式的系数,并且我们想找到一个多项式 B 使得 B^2 = A。这种类型的计算不是 Matlab 设计的,但我认为如果你拥有符号数学工具箱,您可以从 A 制作符号多项式,取平方根,然后将其转换回系数矩阵。如果 A 的系数有噪声,那么您可以评估 A,然后在远离 A 为 0 的几个 (x,y) 点上计算 sqrt(A),将多项式 B 拟合到这些值,然后从 B 中提取系数。- B 也可以。尽量不要选择由 A 为 0 的曲线分隔的点,否则可能会混合 B 和 -B 的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 2014-03-08
    • 2013-10-09
    • 1970-01-01
    • 2014-11-26
    • 2016-08-18
    • 2017-02-24
    • 2018-04-07
    相关资源
    最近更新 更多