【问题标题】:Using MatLab to calculate signal:noise ratio使用 MatLab 计算信噪比
【发布时间】:2010-04-29 03:53:36
【问题描述】:

如何使用 MatLab 计算 SNR?

更新

我只有一个文件,而不是示例中的两个文件,它是一个 .tif。

【问题讨论】:

  • 计算估计信噪比?在使用 Matlab 实现它之前,您需要了解其背后的理论。

标签: matlab image-processing


【解决方案1】:

Matlab SNR 的第一个 Google 结果。从那里复制,以 dB 为单位:

snr = 10*log10(sum(clean.^2) ./ sum(noise.^2))

编辑:如果不知道信号功率和噪声功率,就无法计算信噪比。仅了解观察到的(即接收到的)信号,就可以盲目地估计 SNR,但这是一个开放的研究课题。请参阅“盲测质量”。

【讨论】:

    【解决方案2】:

    noisyclean 的平均值应为零:

    signal = var(clean(:));
    noise  = var(noisy(:)); 
    
    s2n = 10*log10( signal / noise );
    

    发件人:A comparison and analysis of different PDE-based approaches for image enhancement,第 4 页。

    【讨论】:

    • 如果你只是计算方差,那么平均值是多少有关系吗?如果将标量添加到 cleannoisy,结果仍然相同。
    【解决方案3】:

    在输入端:

    Calculate DB1 = 10*log10(var(noiseSignal))
    Calculate DB2 = 10*log10(var(cleanSpeechSignal))
    

    信噪比 = DB2 - DB1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2014-10-31
      • 2014-07-25
      • 1970-01-01
      • 2018-01-04
      • 2016-03-18
      • 2018-12-27
      相关资源
      最近更新 更多