让我们假设我们有以下信号
fs=100;
ts=1/fs;
t=0:ts:2.93;
determ=40*sin(2*pi*10*t)+30*cos(2*pi*10.5*t);
我想产生具有确定性分量+ 4dB的噪声,而不是信号/噪声功率,反之亦然噪声/信号功率应为+ 4dB,我该怎么办?我知道通常会产生噪音
noise=randn(size(t));
但是如何计算噪声幅度? Here也是信号噪声计算公式的一些帮助。
答案 0 :(得分:0)
在这个问题中你想设置噪声信号的放大,因此首先尝试找到这个噪声信号的SNR noise=randn(size(t));
SNR = 10*log10( mean(noise.^ 2)/mean(signal .^ 2) )
现在将噪声乘以增益系数(比如a),这将给出-4dB的比率。
-4 = 10*log10( mean(a^2*noise.^2)/mean(signal.^2) )
-4 = 10*log10( a^2*mean(noise.^2)/mean(signal.^2) )
-4 = 10*( log10(a^2) + log10( mean(noise.^2)/mean(signal.^2) ) )
-4 = 10*( log10(a^2) + SNR )
-0.4 = 2*log10(a) + SNR
-0.4-SNR = 2*log10(a)
a = 10^(-0.2-SNR/2)
result = a*noise;
希望这会有所帮助
编辑:为了更清楚,在上面的划痕后我们有代码:
noise = randn(size(t));
SNR = 10*log10( mean(noise.^ 2)/mean(signal .^ 2) );
result = 10^(-0.2-SNR/2) * noise;