Plotting Weierstrass time series

11 visualizaciones (últimos 30 días)
Itachi
Itachi el 25 de Ag. de 2019
Comentada: Star Strider el 25 de Ag. de 2019
Hi, I want to plot the following function. Can anyone help me? Thanks in advance.
gamma = 5, F=1.3, n=30, t=0:0.01:10 (fs = 100Hz, in period of 10 sec = 1000 samples)
Untitled.png
I tried the following code but didn't get this figure!
clc;clear
y=0;
g=5;
F=1.3;
t=0:0.01:10;
for i=1:30
y=y+cos(2*pi*g^i*t)/g^((2-F)*i);
end
plot(t,y)

Respuesta aceptada

Star Strider
Star Strider el 25 de Ag. de 2019
There seems to be a scaling variable missing for ‘t’ in the ‘x(t)’ calculation, and your ‘t’ vector does not have fine enough resolution to produce the necessary details in ‘x(t)’.
Use:
t = linspace(0, 1, 1E+5);
and you can avoid the loop entirely with:
[T,I] = ndgrid(t, (1:30));
x = cos(2*pi*g.^I.*T)./g.^((2-F)*I);
xs = sum(x,2);
plot(t, xs)
xlim([0 0.2])
I will let you sort the reason that the plot looks appropriate for (0,0.2) although not on (0,1), the reason I mentioned the ‘scaling variable’.
  2 comentarios
Itachi
Itachi el 25 de Ag. de 2019
Thanks brother :)
Star Strider
Star Strider el 25 de Ag. de 2019
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by