Sei sulla pagina 1di 5

SEÑALES Y SISTEMAS

Nombre: Juan Miguel Páez C.


Ejercicio 1:
1. Calcular la función de Transferencia Total del siguiente filtro.
2. SI la entrada es u(t)
a. Calcule la ecuación de la señal de salida en el dominio del tiempo.
b. La señal obtenida es ¿la respuesta al escalón o la respuesta al impulso?
3. Obtenga la transformada inversa de Fourier de la Función de Transferencia. ¿La señal
obtenida es la respuesta al impulso o la respuesta al escalón?
4. Use el archivo "GraficFuncionTrasnf Filtros.m" que están en esta plataforma en la
sección correspondiente al capítulo actual y cambie la función de transferencia de dicho
script por la función de transferencia calculada en el punto 1 para obtener los espectros
de magnitud y fase del filtro.
a. Tenga en cuenta que además de las gráficas de los espectros usted obtendrá la
curva correspondiente a la salida del sistema si la entrada es u(t)
b. ¿Cuál es el tipo del filtro?
c. ¿Cuál o cuáles son las frecuencias de corte?
5. Cree un nuevo scritp para abrir el archivo de audio llamado "Señal_de_Prueba01.wav",
y obtenga:
a. El espectro de magnitud de la señal
b. Basándose en el archivo "GraficFuncionTrasnf Filtros.m", use la función de
transferencia del filtro para filtrar la señal.
c. Grafique el espectro de la señal filtrada comparandolo con el espectro original
d. Reproduzca la señal filtrada

𝑅1𝑅2𝐶1𝑠
𝐻1 =
𝑅1𝑅2𝑅3𝐶1𝐶2𝑠 2 + 𝑠(𝑅1𝑅3𝐶1 + 𝑅1𝑅3𝐶2) + 𝑅1 + 𝑅3
1.55632𝑠
𝐻1 =
61.12151 ∗ 10−6 𝑠 2 + 𝑠(17.452317 ∗ 10−3 + 226.8801 ∗ 10−3 ) + 5.777𝐾 + 1.007𝐾
𝐻2
𝐾𝑅3𝑅2𝐶1𝑠
=
𝑅1𝑅2𝑅3𝐶1𝐶2𝑠 2 + 𝑠(𝑅1𝑅2𝐶1 + 𝑅1𝑅2𝐶2 + 𝑅2𝑅3𝐶1 + 𝑅1𝑅3𝐶1 − 𝐾𝑅1𝑅3𝐶1) + 𝑅1 + 𝑅2
𝐾4.5166176𝑠
𝐻2 =
2.277 ∗ 10−3 𝑠 2 + 𝑠(48.829 − 𝐾11.7589) + 84.04𝐾 + 32.28𝐾
𝐻 = 𝐻1 ∗ 𝐻2

PROGRAMA MATLAB
% Script que muestra como graficar la función de transferencia de cualquier
% sistema en el dominio de la frecuencia (f)
% El script usa como ejemplo un filtro paso bajo de dos polos
% Desarrollado por Ing. Juan Inga Ortega, Docente
%

clearvars;
close all;
clc;
% -------------------------------------------------------------------------
% CONFIGURACIONES INICIALES - PARAMETROS
% -------------------------------------------------------------------------
fs = 100e3; % Frecuencia de muestreo
N = 4096; % Número de muestras
fmax = fs / 2; % Calcula la frecuencia maxima que se puede visualizar
% según Nyquist

% Vector correspondiente a los datos de la frecuencia


f = -fmax: 2*fmax/(N-1) : fmax;
% Vector correspondiente a la frecuencia angular.
w = 2 * pi * f;
s=1i*w; % calcula s en terminos de w, con la parte real en cero

%% H1(S)
R1=5.777e3; R2=1.007e3; R3=89.8e3;
C1=3e-9; C2=39e-9;

% H es la funcion de transferencia del Filtro


% Se coloca la ganancia del Filtro (constante que multiplica la Func. T.)
% Q corresponde al polinomio del Numerador de la Func.T.
% P corresponde al polinomio del Denominador de la Func.T.
G = (-1/(C2*R1)); % Ganancia del Filtro
Q = 1;
P = s.^2 + s*((C1+C2)/(C2*C1*R3)) + (1/(C1*C2*R1*R3) + 1/(C1*C2*R2*R3));
H1 = G * Q./P; % Calcula H seg?n los parametros anteriores

% Divida s para 2*pi para tener las gráficas en términos de w


%N=length(H); % Nro de elementos de H = Nro de elementos de f
%% H2(S)
R11=84.04e3; R22=32.28e3; R33=23.32e3;
C11=6e-9; C22=6e-9;
K=3.65;

% H es la funcion de transferencia del Filtro


% Se coloca la ganancia del Filtro (constante que multiplica la Func. T.)
% Q corresponde al polinomio del Numerador de la Func.T.
% P corresponde al polinomio del Denominador de la Func.T.
GG = (7.237e3); % Ganancia del Filtro
QQ = s;
PP = s.^2 + s*(4.55e3) + 51,07e6;
H2 = GG * QQ./PP; % Calcula H según los parametros anteriores

H=H1.*H2;

[x,Fs] = audioread('Bob Marley.wav');


x_ok=x(:,1);
X=fft(x_ok);
%H1=X.*HT;

% Divida s para 2*pi para tener las gr?ficas en t?rminos de w


N=length(H); % Nro de elementos de H = Nro de elementos de f

% -------------------------------------------------------------------------
% Gr?fica de la Func. de Transferencia (en t?rminos de f) Bode
% -------------------------------------------------------------------------
% Note que no hace falta dividir para N a la variable H, ya que H se ha
% calculado directamente en el dominio de f y no se aplico la FFT
magH = abs(H);
faseH = angle(H)*180/pi; % se calcula la fase en grados para este caso
figure(1)
subplot(211)
plot(f,magH);
grid on; grid minor;
xlabel('Frecuencia [Hz]');ylabel('|H(f)| [V/Hz]');
legend (sprintf('Espectro de Magnitud'),'location','NW');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje
axis([-10e3 10e3 0 max(magH)])
subplot(212)
plot(f,faseH)
grid on; grid minor;
xlabel('Frecuencia [Hz]');ylabel('\angleH(f)[Grados ?]');
legend (sprintf('Espectro de Fase'),'location','NW');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje

% -------------------------------------------------------------------------
% Gr?fica de la Func. de Transferencia (en t?rminos de f) Bode
% -------------------------------------------------------------------------
% Note que no hace falta dividir para N a la variable H, ya que H se ha
% calculado directamente en el dominio de f y no se aplico la FFT
magH = abs(H);
faseH = angle(H)*180/pi; % se calcula la fase en grados para este caso
figure(2)
subplot(211)
semilogx(f(N/2+1:end),(magH(N/2+1:end)));
grid on; grid minor;
xlabel('Frecuencia [Hz] (En Escala Logar?tmica)');ylabel('|H(f)| [V/Hz]');
legend (sprintf('Espectro de Magnitud\n solo Frec.
Positivas'),'location','SW');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje

subplot(212)
semilogx(f(N/2+1:end),faseH(N/2+1:end))
grid on; grid minor;
xlabel('Frecuencia [Hz] (En Escala Logar?tmica)');ylabel('\angleH(f)[Grados
?]');
legend (sprintf('Espectro de Fase\n solo Frec. Positivas'),'location','SW');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje

%% Aplicacion del Filtro usando la definci?n de se?ales y sistemas


% La salida se calcula multiplicando la se?ale de entrada en el dominio
% de f por la funci?n de transferencia del sistema
duracion = 3;
dt = duracion/(N-1);
t=0:dt:duracion;
x = heaviside (t);
figure()
plot(t,x,'LineWidth',2)
grid on; grid minor;
xlabel('tiempo [seg] ');ylabel('x(t) [V]');
legend (sprintf('Entrada-> x(t)=u(t)'),'location','SW');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje

X = fft(x);

% invierte H para poder usarla con la señal X(f) sabiendo que


% la FFT entrega 1ro las muestras (+) y luego las (-)
H_calc = fftshift(H);

Y = X.* H;

y = ifft(Y);
y = real (y);
figure()
plot(t,y,'LineWidth',2)
grid on; grid minor;
axis ([0 0.1 min(y) max(y)])
xlabel('tiempo [seg] ');ylabel('y(t) [V]');
legend (sprintf('Salida-> y(t)=x(t)*h(t)'),'location','SE');
set(gca,'FontName','Times New Roman', 'FontSize',10); % tipo de letra del eje

RESULTADOS:
G

Potrebbero piacerti anche