Generation of 1/f noise using Matlab.
Mostra commenti meno recenti
Dear Colleagues, I have been trying to generate the 1/f noise, where f means frequency. I would appreciate any help and guidance. Kind regards,
Massilon
Risposta accettata
Più risposte (2)
Ali Mostafa
il 11 Giu 2018
3 voti
f=0:1/fs:1-1/fs;S=1./sqrt(f); S(end/2+2:end)=fliplr(S(2:end/2)); S=S.*exp(j*2*pi*rand(size(f))); plot(abs(S)) S(1)=0;figure;plot(real(ifft(S)))
2 Commenti
Massimo Ciacci
il 10 Ago 2019
Quite ingenious to put the randomness in the phase, and this way the amplitude profile is exact, without the need to average out a lot of noise realizations. Thumbs up!
XIAOHUA HUA
il 11 Mar 2020
Great, thank you very much for sharing this.
James
il 3 Ott 2023
0 voti
Hi were does 1./(1 + fv*2) come from?
3 Commenti
Star Strider
il 3 Ott 2023
It keeps the amplitude vector from becoming infinite at the origin. With that amplitude calculation, it is 1 at the origin. The factor of 2 (that can be anything that works in a particular application), allows the amplitude to decrease differently than simply
. If the factor is less than 1, the decrease is slower, if greater than 1, faster.
. If the factor is less than 1, the decrease is slower, if greater than 1, faster.
James
il 3 Ott 2023
is there any paper or book I could look at to undestand that a bit more, or is this based on your own experience/skill?
Thank you very much for your response!
Star Strider
il 3 Ott 2023
It’s entirely my own experience. I remember learning about
noise in graduate school, in the context of biomedical instrumentation. I’m certain there must be more recent discussions of it, however I have no specific references.
Categorie
Scopri di più su Digital Filter Analysis in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
.png)
