Matlab 计算信号的信噪比

Matlab 计算信号的信噪比,matlab,signal-processing,Matlab,Signal Processing,我在Matlab2008R2中的信号上添加了一些高斯白噪声 noisedSignal = awgn(signal, 25);% 25 is the SNR 但是当我计算带噪信号中的信噪比时 snr = GetSNR(noisedSignal, noisedSignal-signal); 及 计算的SNR为1.1818,不是25。我遗漏了什么?你应该考虑到这一点: awgn假设信号具有单位功率 awgn的SNR参数以dB为单位 信噪比估计为信号功率除以噪声功率,或近似为带噪信号功率除以噪声功

我在Matlab2008R2中的信号上添加了一些高斯白噪声

noisedSignal = awgn(signal, 25);% 25 is the SNR
但是当我计算
带噪信号中的信噪比时

snr = GetSNR(noisedSignal, noisedSignal-signal);


计算的
SNR
为1.1818,不是25。我遗漏了什么?

你应该考虑到这一点:

  • awgn
    假设信号具有单位功率
  • awgn
    SNR
    参数以dB为单位
  • 信噪比估计为信号功率除以噪声功率,或近似为带噪信号功率除以噪声功率
请参见以下示例:

signal = randn(1,1e6); %// example signal with approximately unit power
S = mean(signal.^2); %// actual signal power
noisedSignal = awgn(signal, 25);
SN = mean(noisedSignal.^2); %// power of noised signal
N = mean((signal-noisedSignal).^2);
SN/N
10^(25/10)
这给

ans =
  316.9019
ans =
  316.2278

因此,计算的SNR(
SN/N
)与预期值(
10^(25/10)
)非常相似。

您应该考虑到这一点:

  • awgn
    假设信号具有单位功率
  • awgn
    SNR
    参数以dB为单位
  • 信噪比估计为信号功率除以噪声功率,或近似为带噪信号功率除以噪声功率
请参见以下示例:

signal = randn(1,1e6); %// example signal with approximately unit power
S = mean(signal.^2); %// actual signal power
noisedSignal = awgn(signal, 25);
SN = mean(noisedSignal.^2); %// power of noised signal
N = mean((signal-noisedSignal).^2);
SN/N
10^(25/10)
这给

ans =
  316.9019
ans =
  316.2278

因此,计算的SNR(
SN/N
)与预期值(
10^(25/10)
)非常相似。

我无法重现您的结果。我可以用你的代码得到25。你的输入信号是什么@lennon310i无法重现你的结果。用你的代码我可以得到25。你的输入信号@Lennon310是什么?单位功率意味着什么?如果我的信号不是信号电源呢?cz在我的例子中,我使用的信号是人类的语音信号。。。此外,在计算序号时,是否应使用RMS(序号)/RMS(序号)??为什么你只使用SN和N的均方?@Kasparov92我使用均方是因为幂的意思是:均方值。(在你的例子中,你有
sqrt
,但是乘以20得到分贝,所以它是一样的)。如果您的信号没有单位功率,您应该将
awgn
SNR
参数解释为噪声功率,而不是信噪比。哦,我明白了。非常感谢@Luis,我希望我能对您的答案投赞成票,但我需要更多的信誉点:$@Kasparov92 Welcom!很高兴我能帮忙:-)我尝试了不同范围的平均值(信号^2),它们都是~1。。cz randn是基于正态分布还是什么?单位功率是什么意思?如果我的信号不是信号电源呢?cz在我的例子中,我使用的信号是人类的语音信号。。。此外,在计算序号时,是否应使用RMS(序号)/RMS(序号)??为什么你只使用SN和N的均方?@Kasparov92我使用均方是因为幂的意思是:均方值。(在你的例子中,你有
sqrt
,但是乘以20得到分贝,所以它是一样的)。如果您的信号没有单位功率,您应该将
awgn
SNR
参数解释为噪声功率,而不是信噪比。哦,我明白了。非常感谢@Luis,我希望我能对您的答案投赞成票,但我需要更多的信誉点:$@Kasparov92 Welcom!很高兴我能帮忙:-)我尝试了不同范围的平均值(信号^2),它们都是~1。。cz randn是基于正态分布还是什么?