Algoritmo MATLAB - Séries De Fourier
Trabalho Escolar: Algoritmo MATLAB - Séries De Fourier. Pesquise 862.000+ trabalhos acadêmicosPor: Marcusufopdp • 14/1/2014 • 579 Palavras (3 Páginas) • 674 Visualizações
function [vet_ao, vet_an, vet_bn] = fourier() % Este programa calcula a série de Fourier e desenha gráficos
syms t; % Define-se a variável t (tempo) como simbólica
syms n; % Define-se a variável n como simbólica
A = 5; % Amplitude dos sinais
T = 250; %Período dos sinais
tal = 50; %Largura do pulsos do sinal C
wo = (2*3.1416)/T; %Frequência fundamental de oscilação
harmon = [1 5 10 20]; % Este vetor armazena o número de harmônicos
syms func; %Cria uma matriz vazia onde serão registradas todas as funções do problema
func(1,1) = A*(-1 + (4*t)/T); func(1,2) = A*(3 - (4*t)/T); func(1,3) = 0; % Armazena as funções do gráfico 1
func(2,1) = A*(-1 + (2*t)/T); func(2,2) = 0; func(2,3) = 0; % Armazena as funções do segundo gráfico
func(3,1) = A; func(3,2) = 0; func(3,3) = A; %Armazena as funções do terceiro gráfico
interv = []; % Cria uma matriz vazia onde serão registrados todos os intervalos de integração do problema
interv{1}(1) = 0; interv{1}(2) = T/2; interv{1}(3) = T/2; interv{1}(4) = T; interv{1}(5) = 0; interv{1}(6) = 0;
interv{2}(1) = 0; interv{2}(2) = T; interv{2}(3) = 0; interv{2}(4) = 0; interv{2}(5) = 0; interv{2}(6) = 0;
interv{3}(1) = 0; interv{3}(2) = tal/2; interv{3}(3) = tal/2; interv{3}(4) = T - tal/2; interv{3}(5) = T - tal/2;
interv{3}(6) = T;
for i=1:1:3 % Este laço determina as séries de Fourier das três funções
ao = 0; %Inicializa ao com zero
an = 0; %Inicializa an com zero
bn = 0; %Inicializa bn com zero
somar = 0; %Inicializa somar com zero (somar representará o somatório da série de Fourier)
k =1; %Inicializa o contador k com 1
syms t; % Define-se a variável t como simbólica novamente, pois a mesma deixará de ser simbólica
syms n; % Define-se a variável n como simbólica novamente, pois a mesma deixará de ser simbólica
for j=1:1:3 %Este laço determina parcialmente os valores de ao, an e bn
ao = ao + double(int(func(i,j),t,interv{i}(k),interv{i}(k+1))); %Cálculo parcial do valor de ao
an = an + (int(func(i,j)*cos(n*wo*t),t,interv{i}(k),interv{i}(k+1))); %Cálculo parcial do valor de an
bn = bn + (int(func(i,j)*sin(n*wo*t),t,interv{i}(k),interv{i}(k+1))); %Cálculo parcial do valor de bn
k = k + 2; %Incremento do contador k
end
ao = (1/T)* ao; % Encontra o valor final de ao
an = (2/T)* an; % Encontra o valor final de an
bn = (2/T)* bn;
...