Generating 1/f^b colored time series

In summary: Freq,N)'; % define continuous frequency variablep=rand(1)*2*pi; % define a single phase value for the entire time seriesa=ones(N,1)*sqrt(Variance); % define a constant amplitude for all frequencies% generate continuous time series in the sine domainT=sum(a.*sin(t*w+p),2);% plot the time series with the desired colorfigure;plot(t,T,color);xlabel('Time');ylabel('Amplitude');title('Time Series with Constant Variance and Color');grid on;In summary, to generate a continuous time series with a specific color and variance, you need to use a continuous time variable, define a single phase value, and use a constant amplitude for all frequencies
  • #1
Jon Norberg
1
0
Please excuse (and ignore) this if this is not the right place to ask this. I am an ecologists and need to generate a time series with a specific color or frequency spectra. I never learned how Fourier transforms work in class and while I get the gist from reading there are so many subtleties that makes it hard to get it right unless one spends considerable time understanding it all. So I hope to get some help here.

I want to be able to define minFreq, maxFreq, Nfreq, Variance and color. I do not want to generate a discrete time series but instead have a function that provides me with a continuous function over time, even if it is evaluated at a specific time. Also, I'd prefer to make this in the sine domain instead of complex.

I want to get two vectors (amplitude, A and phase, P) by providing minFreq, maxFreq, Nfreq, Variance (of the time series) and color such that I can call

T(t,A,P)=sum(A*sin(w*t+P))

with the output having the given variance and color

I tried this code but does not have the properties I need and I probably made many errors in ignorance.

N=64
k=1:N
maxP=365
minP=1
k=linspace(minP,maxP,N)
w=2*pi*k'./maxP
b=1
p=rand(N,1)*2*pi
a=ones(N,1).*(1./w.^(b/2))
for t=1:1000
T(t)=sum(a.*sin(t*w+p))./sum(a);
end

*slight edit*

Any hints are greatly appreciated

P.S. is it possible to define the vectors such that the generated time serie's variance is independent of the choice of Nfreq and color?
 
Last edited:
Mathematics news on Phys.org
  • #2


Hello there,

Thank you for reaching out to us for help with your time series generation. I am a scientist and I would be happy to assist you with this task.

Firstly, to address your concern about not fully understanding Fourier transforms, I would recommend taking some time to read up on the basics of Fourier analysis and the properties of Fourier transforms. This will help you better understand the code you have written and make any necessary changes to achieve your desired outcome. There are many online resources available that can help you with this, such as tutorials, videos, and textbooks.

Moving on to your code, I can see that you have defined the parameters minFreq, maxFreq, Nfreq, and Variance, which is a good start. However, there are a few things that need to be corrected to achieve your desired result.

Firstly, the code you have written is generating a discrete time series, which is not what you want. To generate a continuous function, you need to use a continuous time variable, such as t=linspace(0,1,1000) to generate 1000 time points between 0 and 1. You can then use this time variable in your sine function as t*w instead of just w.

Secondly, you have defined the phase vector p as a random number between 0 and 2*pi. This will result in a random phase for each frequency, which is not what you want. Instead, you should define a single phase value for the entire time series, which will give you a continuous time series with a fixed phase.

Next, you have defined the amplitude vector a as 1/w^(b/2), which will give you a decreasing amplitude with increasing frequency. To achieve a constant variance, you should define the amplitude as a constant value rather than a function of frequency.

Lastly, you have used the sum function in your code, which will give you a sum of the sine waves rather than a continuous function. To get a continuous function, you should use the dot product (.*), which will give you the product of the sine waves.

Taking all these corrections into account, your code should look something like this:

N=64;
minFreq=1;
maxFreq=365;
Nfreq=1000;
Variance=1;
color='red';

t=linspace(0,1,Nfreq); % generate 1000 time points between 0 and 1
w=2*pi*linspace(minFreq,max
 

FAQ: Generating 1/f^b colored time series

What is a 1/f^b colored time series?

A 1/f^b colored time series is a type of signal or data that follows a specific pattern, where the amplitude of the signal decreases as the frequency increases in a logarithmic fashion. This type of signal is commonly found in natural phenomena, such as weather patterns, stock market fluctuations, and human brain activity.

What is the significance of 1/f^b colored time series in scientific research?

1/f^b colored time series are commonly used in scientific research to model and analyze complex systems, as they can reveal underlying patterns and trends that may not be visible through other methods. They have also been found to be useful in predicting future behavior of certain systems.

How are 1/f^b colored time series generated?

1/f^b colored time series can be generated through a variety of methods, such as random processes, fractal models, and autoregressive processes. These methods involve manipulating and combining different types of signals to produce the desired 1/f^b colored time series.

What factors affect the shape and properties of a 1/f^b colored time series?

The shape and properties of a 1/f^b colored time series can be affected by various factors, such as the value of the exponent b, the length of the time series, and the specific method used to generate it. Additionally, external factors such as noise and other disturbances can also impact the shape and properties of the time series.

In what fields or applications are 1/f^b colored time series commonly used?

1/f^b colored time series are used in a wide range of fields and applications, including physics, biology, economics, and engineering. They have also been applied in areas such as signal processing, time series analysis, and data compression. Additionally, 1/f^b colored time series have been used in studying and understanding complex systems, such as climate patterns and the human brain.

Similar threads

Back
Top