Using the fourier series to approximate a triangular wave.

66 vues (au cours des 30 derniers jours)
Gidel
Gidel le 2 Avr 2023
I want to approximate a triangular waveform, with the Fourier Series. The triangular waveform has an amplitude of 1 and a frequency of 30 Hz.
and N-values of 1, 5, 10, and 20 number of Fourier terms for approximation.
The only function that I can think of is the sawtooth function. I was wondering if there is a more fitting function for this.
  1 commentaire
John D'Errico
John D'Errico le 2 Avr 2023
Modifié(e) : John D'Errico le 2 Avr 2023
A sawtooth does exactly what you want. So what is the problem?

Connectez-vous pour commenter.

Réponses (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov le 3 Avr 2023
Modifié(e) : Sulaymon Eshkabilov le 3 Avr 2023
Here is one simple code how to generate sawtooth approximation using different Fourier series:
t = linspace(0, 10, 1000);
Phase_shift = pi;
ST = sawtooth(2*pi*t*.5+Phase_shift);
plot(t, ST, 'm', 'LineWidth', 2.5, 'DisplayName', 'SawTooth'), hold on
t = linspace(0, 10, 1000);
N = 1;
FS1 = (2/pi)*sin(pi*t*N);
plot(t,FS1, 'r', 'LineWidth', 2, 'DisplayName','N=1')
N=5;
F=0;
for ii = 1:N
F = F+(-1)^(ii+1)*sin(pi*t*ii)*(1/ii);
FS5 = (2/pi)*F;
end
plot(t,FS5, 'g', 'LineWidth', 2, 'DisplayName','N=5')
hold on
N=10;
F=0;
for ii = 1:N
F = F+(-1)^(ii+1)*sin(pi*t*ii)*(1/ii);
FS10 = (2/pi)*F;
end
plot(t,FS10, 'b', 'LineWidth', 2 , 'DisplayName','N=10')
hold on
N=20;
F=0;
for ii = 1:N
F = F+(-1)^(ii+1)*sin(pi*t*ii)*(1/ii);
FS10 = (2/pi)*F;
end
plot(t,FS10, 'k', 'LineWidth', 1.5, 'DisplayName','N=20')
hold off
legend("show")
xlabel("Time, [s]")
ylabel('x(t)')
grid on
title('Sawtooth Approximation with Fourier Series: N = [1, 5, 10, 20]')
xlim([0, 5.5])
  2 commentaires
Gidel
Gidel le 3 Avr 2023
The script does not display the figure showed, sorry.
Walter Roberson
Walter Roberson le 3 Avr 2023
The figure you see in @Sulaymon Eshkabilov Answer is the result of running the posted code inside the Answers facility itself. The figure was not inserted as an image: that is actual R2023a output.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Produits


Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by