Densidad espectral de potencia de una seal aleatoria y de su paso por un filtro
Presentado por Carlos Edwin Quintero Bedoya
Presentado a Julin Ramrez
Asignatura Fundamentos de Telecomunicaciones
Universidad del Quindo Facultad de Ingeniera Ingeniera Electrnica Armenia Quindo 1. Diseamos el filtro pasa-bajas para resonancia en serie RC (cdigo Matlab)
Se dio por defecto el valor del capacitor por comodidades prcticas y su frecuencia de resonancia y de ah se calcula la resistencia para luego remplazar los valores en la funcin de transferencia y de ah se evaluar esta para observar su comportamiento.
Diagrama de bode y respuesta a un escaln de la funcin de transferencia del filtro.
Fig.1 Diagrama de bode y respuesta al escaln del filtro pasa-bajas, como se observa la funcin de transferencia del filtro es de primer orden y se estabiliza rpidamente en el tiempo. %diseo del filtro %resonancia en serie
%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
-25 -20 -15 -10 -5 0 M a g n i t u d e
( d B ) 10 1 10 2 10 3 10 4 -90 -45 0 P h a s e
( d e g ) Bode Diagram Frequency (rad/s) 0 0.005 0.01 0.015 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Step Response Time (seconds) A m p l i t u d e
2. Generacin de la Seal aleatoria (Cdigo en Matlab)
Con la funcin randn de Matlab se obtiene una seal aleatoria del tamao de vector tiempo, el tiempo se muestreo en una seal aleatoria no sabe con exactitud, se toma el doble de la frecuencia de resonancia del filtro.
Fig. 3 y 4. Seal aleatoria en dominio del tiempo y el dominio de la frecuencia, se observa que al ser una seal aleatoria tenemos diferentes frecuencias que solo son observadas en el dominio de la frecuencia.
%% seal aleatoria
%vector tiempo t=0:1/(Freq_res*2):1; %vector frecuencia f=0:1/(Freq_res*2):1; %seal aleatoria r =randn(length(t),1); %grafica en el tiempo figure(3) plot(t,r); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor %seal 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
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -4 -3 -2 -1 0 1 2 3 Tiempo(seg) A m p l i t u d 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 5 10 15 20 25 30 35 40 frecuencia(hz) A m p l i t u d 3. se pasa la seal aleatoria por el filtro pasa-baja diseado anteriormente.
Cdigo en Matlab utilizado para pasar la seal aleatoria en el dominio del tiempo por la funcin de transferencia del filtro pasa-bajas
Fig.5 seal aleatoria despus del filtro pasa-bajas, como esta en el dominio del tiempo no se logra ver el efecto del filtro.
Fig.6. Seal filtrada en el dominio de la frecuencia, logramos observar una menor cantidad de frecuencias en la seal aleatoria.
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 Tiempo(seg) A m p l i t u d %% pasamos la seal por el filtro en dominio del tiempo
yt=lsim(num,den,r,t); figure(5) plot(t,yt); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor
%% espectro de la seal de salida espfilt=abs(fft(yt,length(f)));
figure(6) stem(f,espfilt); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 5 10 15 20 25 30 35 40 frecuencia(hz) A m p l i t u d 4. Calculamos la auto-correlacin y la densidad espectral de potencia de la seal aleatoria sin filtrar.
Cdigo en Matlab para la auto-correlacin y la densidad espectral de potencia
Fig.7. Auto-correlacin de la seal aleatoria, muestra los patrones repetitivos de la seal, como se observa la seal aleatoria tiene muy pocos patrones correlacionados.
Fig.8. densidad espectral de potencia se calcula con la transformada de Fourier de la auto- correlacin de la seal aleatoria, como observamos la distribucin promedio de la potencia en frecuencia de la seal aleatoria.
%% autocorrelacion y DEP de la seal 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
0 50 100 150 200 250 300 350 400 450 -50 0 50 100 150 200 Tiempo(seg) A m p l i t u d 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 100 200 300 400 500 600 700 800 900 frecuencia(hz) A m p l i t u d
5. Calculamos la auto-correlacin y la densidad espectral de potencia de la seal aleatoria despus de filtrarla.
Cdigo de Matlab para calcular la auto-correlacin y la DEP Fig.9. Auto-correlacin de la seal filtrada, observamos que la seal conserva sus patrones repetitivos pero con menos ruido de seales de alta frecuencia.
Fig.10. densidad espectral de potencia de la seal aleatoria filtrada, como observamos que su distribucin de potencia se ve an ms clara ya que no estn las componentes de alta frecuencia. %% autocorrelacion y DEP de la seal filtrada
coryt=xcorr(yt); figure(11) plot(coryt); xlabel('Tiempo(seg)'); ylabel('Amplitud'); grid minor
DEPyt=abs(fft(coryt,length(f) ));
figure(12) stem(f,DEPyt); xlabel('frecuencia(hz)'); ylabel('Amplitud'); grid minor
0 50 100 150 200 250 300 350 400 450 -40 -20 0 20 40 60 80 100 120 Tiempo(seg) A m p l i t u d 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 100 200 300 400 500 600 700 800 frecuencia(hz) A m p l i t u d