【发布时间】:2015-05-12 16:42:44
【问题描述】:
假设我从两个不同的电源测量了两个信号(原始数据为 excel 文件),我想比较这些信号的噪声水平,以找出其中一个噪声更大的信号。两种电源都产生相同频率的信号,但数据点的数量不同。有没有办法在 MATLAB 中做到这一点?
【问题讨论】:
-
我不知道实际的无噪声信号应该是什么样子。我只有输入和输出(噪声信号)。
标签: matlab compare signals noise
假设我从两个不同的电源测量了两个信号(原始数据为 excel 文件),我想比较这些信号的噪声水平,以找出其中一个噪声更大的信号。两种电源都产生相同频率的信号,但数据点的数量不同。有没有办法在 MATLAB 中做到这一点?
【问题讨论】:
标签: matlab compare signals noise
您可以计算每个信号的signal-to-noise ratio。这只是平均信号功率和平均噪声功率的比值,通常以分贝为单位。理想的无噪声信号应具有 SNR = 无穷大。
回想一下,信号功率只是信号幅度的平方,要获得以分贝为单位的值 x,我们只需取 10*log10(x)。
SNR = 10*log10( mean(signal.^2)/mean(noise.^2) );
要将信号与噪声分离,您可以对噪声信号运行低通滤波器。
要获得噪声,您可以从噪声信号中减去干净的信号。
noise = noisy_signal - signal;
【讨论】: