Plotting Weierstrass time series

4 vues (au cours des 30 derniers jours)
Itachi
Itachi le 25 Août 2019
Commenté : Star Strider le 25 Août 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)

Réponse acceptée

Star Strider
Star Strider le 25 Août 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 commentaires
Itachi
Itachi le 25 Août 2019
Thanks brother :)
Star Strider
Star Strider le 25 Août 2019
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Function Creation dans Help Center et File Exchange

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by