【发布时间】:2010-04-29 03:53:36
【问题描述】:
如何使用 MatLab 计算 SNR?
更新
我只有一个文件,而不是示例中的两个文件,它是一个 .tif。
【问题讨论】:
-
计算或估计信噪比?在使用 Matlab 实现它之前,您需要了解其背后的理论。
如何使用 MatLab 计算 SNR?
更新
我只有一个文件,而不是示例中的两个文件,它是一个 .tif。
【问题讨论】:
Matlab SNR 的第一个 Google 结果。从那里复制,以 dB 为单位:
snr = 10*log10(sum(clean.^2) ./ sum(noise.^2))
编辑:如果不知道信号功率和噪声功率,就无法计算信噪比。仅了解观察到的(即接收到的)信号,就可以盲目地估计 SNR,但这是一个开放的研究课题。请参阅“盲测质量”。
【讨论】:
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 页。
【讨论】:
clean 或 noisy,结果仍然相同。
在输入端:
Calculate DB1 = 10*log10(var(noiseSignal))
Calculate DB2 = 10*log10(var(cleanSpeechSignal))
信噪比 = DB2 - DB1
【讨论】: