Generation of 1/f noise using Matlab.
Afficher commentaires plus anciens
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
Réponse acceptée
Plus de réponses (2)
Ali Mostafa
le 11 Juin 2018
3 votes
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 commentaires
Massimo Ciacci
le 10 Août 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
le 11 Mar 2020
Great, thank you very much for sharing this.
James
le 3 Oct 2023
0 votes
Hi were does 1./(1 + fv*2) come from?
3 commentaires
Star Strider
le 3 Oct 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
le 3 Oct 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
le 3 Oct 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.
Catégories
En savoir plus sur Digital Filter Analysis dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
.png)
