我使用以下代码绘制随机噪声,如下所示:
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')
随机噪声假设为零均值,那么为什么随机噪声具有直流分量,如上图所示?另外一个普遍的问题是,有没有办法在不使用过滤器的情况下移除DC组件?
答案 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
做了您不希望的事情,那么阅读文档应该是您的第一步。