Trabajo 1 Densidad espectral de potencia de una señal aleatoria y de su paso por un filtro
Presentado por Carlos Edwin Quintero Bedoya
Presentado a Julián Ramírez
Asignatura Fundamentos de Telecomunicaciones
Universidad del Quindío Facultad de Ingeniería Ingeniería Electrónica Armenia – Quindío
1.
Diseñamos el filtro pasa-bajas para resonancia en serie RC (código Matlab)
%diseño del filtro %resonancia en serie capac = 10e-3;%uF Freq_res = 100;%hz freq_res_rad = Freq_res*2*pi; resis = 1/(capac*freq_res_rad); raiz_polo = resis*capac; %funcion de transferencia para un filtro pasabajas num=1; den=[raiz_polo 1]; ft_filt_s=tf(num,den); %grafica del comportamiento del filtro figure(1) bode(ft_filt_s) grid minor figure(2) step(ft_filt_s) grid minor
Se dio por defecto el valor del capacitor por comodidades prácticas y su frecuencia de resonancia y de ahí se calcula la resistencia para luego remplazar los valores en la función de transferencia y de ahí se evaluar esta para observar su comportamiento.
Diagrama de bode y respuesta a un escalón de la función de transferencia del filtro. Step Response
Bode Diagram 0
1
-5
0.9
) B d ( -10 e d u t i n -15 g a M
0.8 0.7
-20
0.6 e d u t i 0.5 l p m A
-25 0
0.4
) g e d ( e -45 s a h P
0.3 0.2 0.1
-90 1
10
2
3
10
10 Frequency (rad/s)
4
10
0
0
0.005
0.01 Time (s econds)
Fig.1 Diagrama de bode y respuesta al escalón del filtro pasa-bajas, como se observa la función de transferencia del filtro es de primer orden y se estabiliza rápidamente en el tiempo.
0.015
2.
Generación de la Señal aleatoria (Código en Matlab)
%% señal aleatoria %vector tiempo t=0:1/(Freq_res*2):1; %vector frecuencia f=0:1/(Freq_res*2):1; %señal aleatoria r =randn(length(t),1); %grafica en el tiempo figure(3) plot(t,r); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor %señal en la frecuencia esp=abs(fft(r,length(f))); %grafica de la frecuencia figure(4) plot(f,esp); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
Con la función randn de Matlab se obtiene una señal aleatoria del tamaño de vector tiempo, el tiempo se muestreo en una señal aleatoria no sabe con exactitud, se toma el doble de la frecuencia de resonancia del filtro.
3
2
1
d 0 u t i l p m A -1
-2
-3
-4 0
0.1
0.2
0.3
0.4 0.5 0.6 Tiempo(seg)
0.7
0.8
40 35
Fig. 3 y 4. Señal aleatoria en dominio del tiempo
30
y el dominio de la 25
frecuencia, se
d u t i l p 20 m A
observa que al ser una señal aleatoria tenemos diferentes frecuencias que
15
solo son observadas en el dominio de la
10
frecuencia.
5 0
0
0.1
0.2
0.3
0.4 0.5 0.6 frecuencia(hz)
0.7
0.8
0.9
1
0.9
1
3.
se pasa la señal aleatoria por el filtro pasa-baja diseñado anteriormente.
%% pasamos la señal por el filtro en dominio del tiempo
Código en Matlab utilizado para pasar la señal aleatoria en el dominio del tiempo
yt=lsim(num,den,r,t); figure(5) plot(t,yt); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor
por la función de transferencia del filtro pasa-bajas 2.5 2
%% espectro de la señal de salida espfilt=abs(fft(yt,length(f))); figure(6) stem(f,espfilt); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
1.5 1 0.5 d u t i l p m A
0 -0.5 -1
Fig.5 señal aleatoria después del filtro pasa-bajas, como esta en el dominio del tiempo no se logra ver el efecto del filtro.
-1.5 -2 -2.5
0
0.1
0.2
0.3
0.4 0.5 0.6 Tiempo(seg)
0.7
40 35
Fig.6. Señal
30
filtrada en el dominio de la
25
frecuencia, logramos
d u t i l 20 p m A
observar una menor
15
cantidad de frecuencias en
10
la señal aleatoria.
5 0
0
0.1
0.2
0.3
0.4 0.5 0.6 frecuencia(hz)
0.7
0.8
0.9
1
0.8
0.9
1
4.
Calculamos la auto-correlación y la densidad espectral de potencia de la señal aleatoria sin filtrar.
%% autocorrelacion y DEP de la señal aleatoria corR=xcorr(r); figure(9) plot(corR); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor DEP=abs(fft(corR,length(f))); figure(10) stem(f,DEP); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
Código en Matlab para la auto-correlación y la densidad espectral de potencia
200
150
100
d u t i l p m A
50
Fig.7. Auto-correlación de la señal aleatoria, muestra los patrones repetitivos de la señal, como se observa la señal aleatoria tiene m uy
0
pocos patrones correlacionados. -50 0
50
100
150
200 250 Tiempo(seg)
300
350
900 800 700
Fig.8. densidad espectral de potencia
600
se calcula con la transformada de
d 500 u t i l p m A 400
Fourier de la autocorrelación de la señal aleatoria, como observamos la
300
distribución promedio de la potencia en
200
frecuencia de la señal 100 0
aleatoria. 0
0.1
0.2
0.3
0.4 0.5 0.6 frecuencia(hz)
0.7
0.8
0.9
1
400
450
5.
Calculamos la auto-correlación y la densidad espectral de potencia de la señal aleatoria después de filtrarla. Código de Matlab para calcular la auto-correlación y
%% autocorrelacion y DEP de la señal filtrada
la DEP Fig.9.
coryt=xcorr(yt); figure(11) plot(coryt); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor
Auto-correlación
de
la
señal
filtrada,
observamos que la señal conserva sus patrones repetitivos pero con menos ruido de señales de alta
120 100
DEPyt=abs(fft(coryt,length(f) ));
80
figure(12) stem(f,DEPyt); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
60 d u t i l p m A
40 20 0
frecuencia.
-20 -40
0
50
100
150
200 250 Tiempo(seg)
300
350
800 700 600
Fig.10. densidad espectral de potencia
500
de la señal aleatoria filtrada, como
d u t i l p 400 m A
observamos que su
300
distribución de
200
potencia se ve aún más clara ya que no están las componentes de
100 0
alta frecuencia.
0
0.1
0.2
0.3
0.4 0.5 0.6 frecuencia(hz)
0.7
0.8
0.9
1
400
450