随机噪声和直流分量

时间:2018-04-21 12:46:57

标签: matlab

我使用以下代码绘制随机噪声,如下所示:

n=0:1/250:1;
random_noise=rand(size(n));
N=length(b);
f_bins=0:N-1;
N_2=ceil(N/2);
f_hertz=f_bins*fs/N;
figure
ll=abs(b);
plot(f_hertz(1:N_2),ll(1:N_2))
title('amplitude spectra of random signal')

 output figure

随机噪声假设为零均值,那么为什么随机噪声具有直流分量,如上图所示?另外一个普遍的问题是,有没有办法在不使用过滤器的情况下移除DC组件?

1 个答案:

答案 0 :(得分:2)

如果您阅读documentation to rand,您会看到它会在[0,1]范围内的均匀分布中生成数字。此分布的均值为0.5。因此,简单地从信号中减去0.5将删除D.C.组件:

random_noise = rand(size(n)) - 0.5;

另一方面,您可能希望使用randn代替,这会创建0均值正态分布。

通常,从信号中减去均值会删除D.C.分量:

signal = signal - mean(signal);

BTW:在MATLAB中输入help rand也会显示该函数的文档。如果您想知道为什么rand做了您不希望的事情,那么阅读文档应该是您的第一步。