如何使用MatLab计算SNR?
更新
我只有一个文件,而不是像示例中的两个文件,它是一个.tif。
答案 0 :(得分:7)
Matlab SNR的第一个Google结果。从那里复制,以dB为单位:
snr = 10*log10(sum(clean.^2) ./ sum(noise.^2))
编辑:如果不知道信号功率和噪声功率,就无法计算信噪比。只知道观察到的(即接收到的)信号,就可以盲目地估计SNR,但这是一个开放的研究课题。参见“盲品质量测量”。
答案 1 :(得分:3)
noisy
和clean
的平均值应为零:
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