DSPRelated.com
Forums

adding 1/f noise to CDR input

Started by pedro904 February 8, 2007
Hello,

I am trying to add 1/f noise to my CDR data input line which is generated
using a Bernoulli binary block in simulink. However, when I use "Phase
Noise" block in simulink, it generates error as phase noise expects
complex input while Bernoulli output is real. Could anyone help me how to
get around this problem? Or do you guys know any other method to add 1/f
noise to input data.

Thanks


pedro904 wrote:
> Hello, > > I am trying to add 1/f noise to my CDR data input line which is generated > using a Bernoulli binary block in simulink. However, when I use "Phase > Noise" block in simulink, it generates error as phase noise expects > complex input while Bernoulli output is real. Could anyone help me how to > get around this problem? Or do you guys know any other method to add 1/f > noise to input data. > > Thanks > >
Use two independent Bernoulli blocks, multiply the output of one by i, and add the result to the the output of the other. Voila -- instant complex numbers. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
>pedro904 wrote: >> Hello, >> >> I am trying to add 1/f noise to my CDR data input line which is
generated
>> using a Bernoulli binary block in simulink. However, when I use "Phase >> Noise" block in simulink, it generates error as phase noise expects >> complex input while Bernoulli output is real. Could anyone help me how
to
>> get around this problem? Or do you guys know any other method to add
1/f
>> noise to input data. >> >> Thanks >> >> >Use two independent Bernoulli blocks, multiply the output of one by i, >and add the result to the the output of the other. > >Voila -- instant complex numbers. > >-- > >Tim Wescott >Wescott Design Services >http://www.wescottdesign.com > >Posting from Google? See http://cfaj.freeshell.org/google/ > >"Applied Control Theory for Embedded Systems" came out in April. >See details at http://www.wescottdesign.com/actfes/actfes.html >
Yes, but the main issue is adding 1/f noise to a signal. Has anybody have some written script for this? How can I add 1/f noise to some random data?? Thanks
On Feb 8, 9:50 am, "pedro904" <pedram.sam...@gmail.com> wrote:
> Yes, but the main issue is adding 1/f noise to a signal. Has anybody have > some written script for this? How can I add 1/f noise to some random > data??
Can't you just add a Brownian signal to it? Scott
pedro904 wrote:

>>pedro904 wrote: >> >>>Hello, >>> >>>I am trying to add 1/f noise to my CDR data input line which is > > generated > >>>using a Bernoulli binary block in simulink. However, when I use "Phase >>>Noise" block in simulink, it generates error as phase noise expects >>>complex input while Bernoulli output is real. Could anyone help me how > > to > >>>get around this problem? Or do you guys know any other method to add > > 1/f > >>>noise to input data. >>> >>>Thanks >>> >>> >> >>Use two independent Bernoulli blocks, multiply the output of one by i, >>and add the result to the the output of the other. >> >>Voila -- instant complex numbers. >> >>-- >> > Yes, but the main issue is adding 1/f noise to a signal. Has anybody have > some written script for this? How can I add 1/f noise to some random > data??
Whoops -- I misread your problem. Surely there's already a pink noise block? If not, why not generate white noise, run it through an appropriate filter to approximate pink noise, then use it? Assuming the white noise block outputs real data then your result would also be real. Pink noise is a funny thing; it drops off at 10dB/decade so you can't just run white noise into an integrator or a low-pass. I could see making my own pink noise generator without double checking the literature, but I wouldn't assume it to be anything but a hack -- and I think quite highly of myself. Do some web searches to find the correct algorithm, and go with that. I wouldn't expect a "phase noise" block to output pink noise -- I would expect it to be white. If you have reason to believe that it outputs pink noise, however, you can use or make a block that extracts just the real part of the data. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html
>pedro904 wrote: > >>>pedro904 wrote: >>> >>>>Hello, >>>> >>>>I am trying to add 1/f noise to my CDR data input line which is >> >> generated >> >>>>using a Bernoulli binary block in simulink. However, when I use
"Phase
>>>>Noise" block in simulink, it generates error as phase noise expects >>>>complex input while Bernoulli output is real. Could anyone help me
how
>> >> to >> >>>>get around this problem? Or do you guys know any other method to add >> >> 1/f >> >>>>noise to input data. >>>> >>>>Thanks >>>> >>>> >>> >>>Use two independent Bernoulli blocks, multiply the output of one by i,
>>>and add the result to the the output of the other. >>> >>>Voila -- instant complex numbers. >>> >>>-- >>> >> Yes, but the main issue is adding 1/f noise to a signal. Has anybody
have
>> some written script for this? How can I add 1/f noise to some random >> data?? > >Whoops -- I misread your problem. > >Surely there's already a pink noise block? If not, why not generate >white noise, run it through an appropriate filter to approximate pink >noise, then use it? Assuming the white noise block outputs real data >then your result would also be real. > >Pink noise is a funny thing; it drops off at 10dB/decade so you can't >just run white noise into an integrator or a low-pass. I could see >making my own pink noise generator without double checking the >literature, but I wouldn't assume it to be anything but a hack -- and I >think quite highly of myself. Do some web searches to find the correct >algorithm, and go with that. > >I wouldn't expect a "phase noise" block to output pink noise -- I would >expect it to be white. If you have reason to believe that it outputs >pink noise, however, you can use or make a block that extracts just the >real part of the data. > >-- > >Tim Wescott >Wescott Design Services >http://www.wescottdesign.com > >Posting from Google? See http://cfaj.freeshell.org/google/ > >"Applied Control Theory for Embedded Systems" came out in April. >See details at http://www.wescottdesign.com/actfes/actfes.html >
So let me rephrase myself. I actually want to add pink noise (1/f noise) to the frequency of the input data. In other words, adding jitter but with 1/f characteristic. So it's not an amplitude noise. Any thoughts? Maybe it's easy and I am missing something? Thanks
>Hello, > >I am trying to add 1/f noise to my CDR data input line which is
generated
>using a Bernoulli binary block in simulink. However, when I use "Phase >Noise" block in simulink, it generates error as phase noise expects >complex input while Bernoulli output is real. Could anyone help me how
to
>get around this problem? Or do you guys know any other method to add 1/f >noise to input data. > >Thanks > > >
Pedro, phasse noise can be modelled as exp(j*ph(t)), where ph(t) is the random phase vector. The interesting point is the power spectral density(PSD) of this ph(t) has some shape which is defined in literature by the equation as S(f)=k0+k1*1/f+k2*(1/f^2)+k3*(1/f^3)+k4*(1/f^4) where k0...k4 are the constants chosen carefully according to the shape of PSD. when k0=k2=k3=k4=0 S(f)=k1*1/f when plotted S(f) against frequency, we can see a constant decrease in S(f) by -10dB/dec. Any signal which has above mentioned S(f) is considered as noise with 1/f characteristics. Also known as pink noise. the method to generate pink noise is: first find the Power Spectral Density S(f), of 1/f noise by choosing k1. and the equation S(f)=k1*1/f. then find a random vector which has same PSD as of pink noise. Did you get my point???? Kind regards