Matlab中的彩色噪声生成

时间:2014-03-07 07:23:06

标签: matlab signal-processing

根据这个定义,我想问一下如何在信号处理中产生不同的噪音

http://en.wikipedia.org/wiki/Colors_of_noise

对于白噪声alpha = 0;并且对于不同的噪声我们有不同的alpha值,我更喜欢在matlab中有代码,所以请帮我写这段代码

2 个答案:

答案 0 :(得分:3)

您可以使用this code。这是非常困难的:

function [W,t]= colornoise(a,b,T,N)
 randn('state',100);      %fixing the state of generator
 dt=T/N;
 dW=sqrt(dt)*randn(1,N);

 R=4;                      %fixed for this computation
 L=N/R;
 Xem=zeros(1,L);
 Xzero=0;
 Xtemp=Xzero;
 Dt=R*dt;

 for j=1:L
    Winc=sum(dW(R*(j-1)+1:R*j));
    Xtemp=Xtemp+a*Dt*Xtemp+b*Winc;
    Xem(j)=Xtemp;
 end

 W=[Xzero,Xem];
 t=[0:Dt:T]

其中ab(白噪声强度)和T(时间向量的上限),N(基本定义的样本数量)步长

答案 1 :(得分:0)

生成粉红噪声信号,长度为2048个样本。

hcn = dsp.ColoredNoise('InverseFrequencyPower',1,'SamplesPerFrame',2048);
x = step(hcn);
plot(x);