marcoshuck

Fourier Serie (TC)

Dec 15th, 2016
8,262
0
Never
2
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.27 KB | None | 0 0
  1. %{
  2. Análisis de Señales y Sistemas - TP Laboratorio Nº 3
  3. Función FSERIE - Grupo 6
  4. Argumentos:
  5.     - y: Señal de entrada
  6.     - T: Periodo elemental
  7.     - N: Cantidad de coeficientes a calcular
  8. Retorna:
  9.     - yR: Señal resultante
  10. Repositorio disponible en: https://github.com/marcoshuck/matlab-tp3-asys
  11. Realizado por Huck Marcos A. y Castelluci Leandro E.
  12. %}
  13.  
  14. function[ak, yr] = FSERIE(y, T, N)
  15.     syms t 'real';
  16.     syms k 'integer';
  17.    
  18.     % Integral para obtener la expresión general de los coeficientes de Fourier
  19.     ak(k) = 1/T * int(y(t).*exp(-1j*2*pi/T*k*t), t, 0, T);
  20.  
  21.     % Simplificación de ak(k)
  22.     ak(k) = simplify(ak(k));
  23.  
  24.     % Definición de vector de aN
  25.     aN = sym(zeros(2*N+1, 1));
  26.  
  27.     % Descomposición de numerador y denominador
  28.     [n, d] = numden(ak);
  29.  
  30.     % Cálculo de los coeficientes de Fourier
  31.     for k = 0:N
  32.         if (n(k) == 0) && (d(k) == 0)
  33.             aN(k+1) = 1/T * int(y(t), t, 0, T);
  34.         else
  35.             aN(k+1) = ak(k);
  36.         end
  37.     end
  38.  
  39.     % Cálculo de la serie de Fourier
  40.     m = 1;
  41.     yr(t) = aN(m);
  42.     for m = 2:N
  43.         if aN(m) ~= sym(0)
  44.             yr(t) = yr(t) + conj(aN(m))*exp(- 1j*(m-1)*2*pi/T*t) ;
  45.             yr(t) = yr(t) + aN(m)*exp(1j*(m-1)*2*pi/T*t);
  46.         end
  47.     end
  48. end
Advertisement
Comments
  • User was banned
  • User was banned
Add Comment
Please, Sign In to add comment