Fourier series sawtooth wave
33 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Im trying to create a sawtooth wave but the code i have gives me a square wave. Not sure what i need to change, maybe my values for ap and bp? Sorry im not very good at matlab. Thanks in advance.
T=input('what is the period');
p=input('how many coefficients');
t=linspace(0,3*T,100);
N=10;
bp=sin(80)/320 - cos(80)/4;
ap=sin(80)/4 - sin(40)^2/160;
sum=0;
for p=1:N
Sum=(Sum+(N*ap*cos(2*pi*p*t/T))+(N*bp*sin(2*pi*p*t/T)));
end
F=Sum;
figure(1);
plot(t,F);
2 comentarios
Respuestas (2)
Urmila Rajpurohith
el 15 de Nov. de 2019
You can use “sawtooth” function in MATLAB to create a sawtooth wave.
You can refer to below documentation for more information on “sawtooth” function.
you can also have a look at the similar question:
0 comentarios
randerss simil
el 16 de Feb. de 2021
Editada: randerss simil
el 16 de Feb. de 2021
T=input('what is the period');
p=input('how many coefficients');
t=linspace(0,3*T,100);
N=10;
bp=sin(90)/90 - cos(0);
ap=sin(90) - sin(45)^2/90;
xsum=0; % avoid standard matlab functions e.g. sum
for p=1:N
xsum=(xsum+(N*ap*cos(2*pi*p.*t/T))+(N*bp*sin(2*pi*p.*t/T))); % use dot for indexing element wise multiplication
end
F=xsum;
figure(1);
plot(t,F);
1 comentario
randerss simil
el 16 de Feb. de 2021
Editada: randerss simil
el 16 de Feb. de 2021
Try the above , may be you have to adjust values for bp and ip to get accurate sawtooth waves
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!