如何根据信号的频谱计算信号的 SNR?
How can I calculate the SNR of a signal from its frequency spectrum?
我正在从频谱分析仪中提取数据,并尝试使用信号处理工具箱中的 snr 函数来计算信号的信噪比。问题是我得到的 SNR 值没有意义。我这样调用函数:
snr(power, freqValues, rwb, 'power')
我得到的snr值为-28.0343 +13.6438i,rwb = 1.8e4;
snr 创建的图表如下所示:
作为参考,这是我捕获的频谱的样子:
(这是从 plot(freqValues, power) 创建的)
频率范围为 0-2MHz,主峰位于 902kHz @10.4dBm。
感谢任何帮助。
当我阅读 snr()
的 MATLAB 文档时,我看到了以下内容。您输入的 power
为 sxx
的格式不正确。
sxx — Power spectrum
nonnegative real-valued row or column vector
Power spectrum, specified as a real-valued nonnegative row or column vector.
The power spectrum must be expressed in linear units, not decibels. Use db2pow to convert decibel values to power values.
我正在从频谱分析仪中提取数据,并尝试使用信号处理工具箱中的 snr 函数来计算信号的信噪比。问题是我得到的 SNR 值没有意义。我这样调用函数:
snr(power, freqValues, rwb, 'power')
我得到的snr值为-28.0343 +13.6438i,rwb = 1.8e4;
snr 创建的图表如下所示:
当我阅读 snr()
的 MATLAB 文档时,我看到了以下内容。您输入的 power
为 sxx
的格式不正确。
sxx — Power spectrum
nonnegative real-valued row or column vector
Power spectrum, specified as a real-valued nonnegative row or column vector.
The power spectrum must be expressed in linear units, not decibels. Use db2pow to convert decibel values to power values.