使用MatLab计算信号:噪声比

时间:2010-04-29 03:53:36

标签: matlab image-processing

如何使用MatLab计算SNR?

更新

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

3 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:3)

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页。

答案 2 :(得分:0)

在输入端:

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

SNR = DB2 - DB1