Fabian Sarmiento DSP

14
Escuela Superior Politécnica del Litoral Maestría en Telecomunicaciones Procesamiento Digital de Señales Deber # 1 Alumno: Fabián Sarmiento Cabrera 1. Escriba el código en MATLAB para genera y graficar la siguiente señal: x[n]=(0.9) n cos(0.2πn + π/3), 0<n<21 >> n=0:0.08:21; >> fi=(pi/3); >> x1=(0.9).^n; >> x2=cos(0.2*pi*n+fi); >> X=x1.*x2; >> stem(n,X); 2. Escriba el código en MATLAB para crear una señal impulso de 20 muestras desplazada 10 muestras a la derecha sumada con una señal escalera de 15 muestras desplazada 5 muestras a la izquierda. Señal impulso de 20 muestras desplazada 10 muestras a la derecha >> n0=-5; >> n1=14; >> N=[n0:n1]; >> x=zeros(1,n1-n0+1); >> x(10-n0+1)=1; >> stem(N,x)

description

LIBRO

Transcript of Fabian Sarmiento DSP

Page 1: Fabian Sarmiento DSP

Escuela Superior Politécnica del Litoral

Maestría en Telecomunicaciones

Procesamiento Digital de Señales

Deber # 1

Alumno: Fabián Sarmiento Cabrera

1. Escriba el código en MATLAB para genera y graficar la siguiente señal:

x[n]=(0.9)n cos(0.2πn + π/3), 0<n<21

>> n=0:0.08:21; >> fi=(pi/3); >> x1=(0.9).^n; >> x2=cos(0.2*pi*n+fi); >> X=x1.*x2; >> stem(n,X);

2. Escriba el código en MATLAB para crear una señal impulso de 20 muestras desplazada 10 muestras a la derecha sumada con una señal escalera de 15 muestras desplazada 5 muestras a la izquierda.

Señal impulso de 20 muestras desplazada 10 muestras a la derecha >> n0=-5; >> n1=14; >> N=[n0:n1]; >> x=zeros(1,n1-n0+1); >> x(10-n0+1)=1; >> stem(N,x)

Page 2: Fabian Sarmiento DSP

Señal escalera de 15 muestras desplazada 5 muestras a la izquierda >> n2=-5; >> n3=14; >> N1=[n2:n3]; >> x1=zeros(1,n3-n2+1); >> x1(-5-n2+1:end)=1; >> stem(N1,x1)

Page 3: Fabian Sarmiento DSP

Suma de señales >> sum=x+x1; >> stem(N1,sum)

3. Escriba una función en MATLAB para que, dado el número N de muestras que se desea, devuelva una señal con ruido aleatorio distribuido normalmente entre 0 y 1 y una variancia de 1.

function m=ruidoal(N) y=0:0.2:N; L=length(y); m=ruidoal(1,L); end

Page 4: Fabian Sarmiento DSP

4. Escriba una función que, dada una señal x con N muestras, determine la

potencia de la misma.

function potencia = senalpot(x,N) y=length(N); potencia = (sum(x .* conj(x))/y); end

5. En una sala de concierto se genera eco de una señal x[n] debido a la reflexión en las paredes y el techo. La señal de audio experimentada por el espectador es y[n], que es una combinación de x[n] y el eco, que se puede expresar de la siguiente manera:

y[n] = x[n]+αx[n-k]

Siendo k la cantidad de muestras de retardo y α la atenuación del eco. Suponiendo que:

x[n] = cos(0.2πn)

y[n] = cos(0.2πn) + 0.5cos(0.2π(n-50))

Encuentre y grafique la correlación de x[n] y y[n] y determine que, en efecto, el retardo del eco es 50 muestras.

>> n = [0:100]; >> x = cos(0.2*pi*n) ; >> y = x + 0.5*cos(0.2*pi*(n-50)); >> [z lag1]=xcorr(x,y,'coeff'); >> subplot(3,1,1); >> plot(x,'g') >> title('Señal Original'); >> subplot(3,1,2); >> plot(y,'b');

Page 5: Fabian Sarmiento DSP

>> title('Señal con Eco'); >> subplot(3,1,3); >> plot(lag1,z,'r'); >> title('Señal Correlacionada');

6. La respuesta a impulso de un diferenciador digital simple es:

h[n] = δ[n]-δ[n-1]

Implemente una función en MATLAB, que dada la señal x[n], calcule la señal y[n] que es la diferencia de x[n].

Para realizar la función se debe tomar en cuenta los tipos de datos de entrada y salida, como la variable “y” que representa la función

Page 6: Fabian Sarmiento DSP

de respuesta a impulso y el número de muestras “N” por el cual se define por un vector 1X2 [Y1,N1] . Se considera que las funciones para sumar las señales de respuesta a impulso y la función para desplazar la función de respuesta a impulso ya están definidas. La función final quedaría de la siguiente manera.

function [Y1,N1] = dif(Y,N) [Y2,N2]=desp(Y,N,1);

[Y1,N1]=sum(Y,N,-Y2,N2); end

7. La CNT lo contrata para realizar un análisis de las señales que viajan en

los cables telefónicos de la ciudad de Guayaquil. Para este trabajo le piden que capture en digital lo que está siendo trasmitido por el cable y les reporte que rangos de frecuencias están siendo utilizados. Como información previa le dicen que por el cable telefónico deberían estar trasmitiéndose la voz en el rango de 300 a 4000 Hz, la señal de Upstream de los modem ADSL de los 25 KHz a los 138 KHz y la señal de Downstream desde los 138 KHz a laso 1.1MHz. Los 1.1Mhz es la mayor frecuencia que les interesa en el informe. Describa lo más detalladamente posible el procedimiento que llevaría a cabo para producir dicho informe.

En primer lugar se necesitamos los equipos necesarios para adquirir una señal analógica y luego procesarla para la conversión A/D .

En el procesamiento de conversión A/D es necesario tomar en cuenta todos los pasos necesarios de digitalización, para empezar nos fijamos en el muestreo.

Para fijar el tiempo de muestreo y realizar un buen análisis de las señales deseadas es necesario fijar por lo menos al doble de la frecuencia máxima es decir frec. muestreo>=2 frecuencia máxima.

El paso a continuación es la cuantización pero hay que tener precaución en cuanto al ruido de cuantización, puesto que hay que determinar la relación señal ruido y determinar el número de bits. Ya con esta distribución de datos podemos disminuir el ruido de cuantización.

Finalmente cuando se tiene la señal digitalizada es más sencillo el análisis ya que se la puede almacenar para el tratamiento en cualquier software y con ello podemos analizar el espectro y hacer un estudio de las frecuencias presentes respectivas,

8. Lo contratan para realizar un sistema para la comunicación secreta con

espías en un país enemigo. El sistema de comunicación consiste en el envío de un pulso pequeño y de forma conocida a través de la emisión de

Page 7: Fabian Sarmiento DSP

una radio comercial en el país enemigo. A usted le encargan la construcción de un sistema digital que llevará el espía en su reloj, que esté escuchando constantemente en esa frecuencia de radio y cuente el número de veces que el pulso es enviado y le presente este número al espía. El espía llevara a cabo sus operaciones de acuerdo al número de pulsos recibidos. Detalle como construiría dicho dispositivo.

La parte primordial que debe tener el reloj para llevar a cabo el plan de espionaje aparte del procesamiento de la conversión A/D es la configuración del chip de procesamiento digital de señales (DSP) , en dicho procesamiento del chip se debe tomar en cuenta que va a captar una señal mixta (señal radio, ) y hay que identificar en que momentos está presente la señal de pulso, para ello la forma más eficaz de identificar la señal presente es usar la correlación entre ambas señales. Una vez que se identifica el evento , es necesario almacenar en una memoria el número de veces y aplicando la circuitería digital necesaria , mostrar en forma decimal el número de veces en que el pulso es enviado en un determinado tiempo a la persona que lo está operando.

9. Le entregan una señal musical analógica con frecuencias entre los 0 y los

20 KHz. Le piden que obtenga una señal filtrada que solo contenga frecuencias entre los 100 Hz y los 5KHz. Sin embargo le prohíben que digitalice la señal ya que el músico piensa que eso dañaría el “espíritu” de su música. Le pide que utilice un conjunto de filtros analógicos que posee desde los años 70. Revisando esta colección se da cuenta que solo tiene filtros pasa-bajos con frecuencia de corte en 10, 100, 1000, 5000 Hz y filtros pasa-altos con frecuencia de corte de 10, 100, 1000, 5000 Hz. Describa como conectaría dichos filtros analógicos para poder entregar la señal filtrada como la quiere el músico.

Para poder filtrar la señal con las frecuencias requeridas se debe realizar un arreglo de filtros que cumplan dicho requerimiento ya que se debe emplear el uso de un filtro pasabajo y un filtro pasabajo para obtener un pasabanda y dejar pasar el rango de frecuencia deseado.

El primer filtro a utilizar sería un filtro pasa-alto con una frecuencia de corte de 100 Hz conectado en serie con un filtro pasa-bajo con una frecuencia de corte de 5 Khz , con este arreglo de filtros hemos desarrollado un filtro pasa-banda en donde se filtra la señal que sólo contiene frecuencias en un rango de (100-5000) Hz tal como lo requiere el músico.

FL=100 Hz – FH=5000Hz

Page 8: Fabian Sarmiento DSP

10. Se organiza un concurso para determinar que profesor de la ESPOL tiene la voz más grave. A usted le encargan diseñar el programa que grabará la voz de cada profesor y le asignará un puntaje. Escriba un programa en MATLAB que dada la voz del profesor en una variable x le permita al jurado determinar las frecuencias presentes en su voz. Lo primordial del programa es que sea capaz de tomar el audio y realizar un análisis espectral para así poder comparar los patrones de frecuencias y elegir a la persona que tenga la voz más grave. Para ello hacemos un filtrado para poder captar las frecuencias de la voz grave y analizar el comportamiento de la señal.

%% Leer la señal de audio fs=44100; [y,fs]=wavread('Voz_profe'); subplot(411) T=length(y)/fs; t=linspace(0,T,T*fs); plot(t,y) title('SEÑAL ORIGINAL')% Título xlabel('Tiempo (s)') % Etiqueta del eje X ylabel('Amplitud (V)') % Etiqueta del eje Y %% FFT de la señal subplot(412) filt=3; % Llamado a la función que calcula la FFT fft_signal(y,fs);title('ESPECTRO DE LA SEÑAL ORIGINAL') xlim([0 4e3]) %% Filtrado de la señal switch filt case 1 titulo='FILTRO PASA BAJAS'; % Frecuencia normalizada fNorm = 1000 / (fs/2); [b,a] = butter(10, fNorm, 'low'); case 2 titulo='FILTRO PASA ALTAS'; % Frecuencia normalizada fNorm = 1000 / (fs/2); [b,a] = butter(10, fNorm, 'high'); otherwise titulo='FILTRO PASA BANDA'; Wp = [2e3 3e3]/(fs/2); Ws = [1.5e3 3.5e3]/(fs/2);

Page 9: Fabian Sarmiento DSP

Rp = 3; Rs = 40; % Rizado de la banda de paso y de parada (s) [n,Wn] = buttord(Wp,Ws,Rp,Rs);% Orden del filtro y frecuencia de corte óptima [b,a] = butter(n,Wn); % Coeficientes del filtro %- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - end % Filtrado de la señal y_Low = filtfilt(b, a, y); % Graficación de la señal en el tiempo subplot(413) plot(t,y_Low) title('SEÑAL FILTRADA') xlabel('Tiempo (s)') ylabel('Amplitud (V)') subplot(414) % Llamado a la función que calcula la FFT fft_signal(y_Low,fs);title('ESPECTRO DE LA SEÑAL FILTRADA') xlim([0 4e3]) %% Reproducción de audio de entrada y salida pause(2) disp('Audio de entrada') % Se multiplica por 0.2 para atenuar la salida del tono por la bocina % wavplay(0.2*y,fs) disp('Audio de salida (señal filtrada)') % Se multiplica por 0.2 para atenuar la salida del tono por la bocina

11. Un famoso estudio de grabación descubre, en su bodega, el equipo

analógico que se utilizó para crear los efectos en las canciones grabadas

Page 10: Fabian Sarmiento DSP

por el legendario guitarrista Jimi Hendrix. Se lo entregan a usted para que cree un efecto digital que imite el efecto producido por dicho dispositivo. Le prohíben, sin embargo, abrir el dispositivo ya que lo quieren subastar y su valor sería mayor si lo mantienen intacto. ¿Cuál sería el primer procedimiento que intentaría para poder hacer una copia digital de ese dispositivo?

Para realizar dicho proceso se debería conectar el equipo a una

tarjeta de adquisición de datos para convertirla señal analógica-digital A/D y realizar el procedimiento respectivo de digitalización, se debe almacenar la señal para luego analizar cada nota de acuerdo a los rangos de frecuencia que equivale cada efecto y analizar el nivel de distorsión de cada efecto tomando en cuenta como elemento principal la frecuencia de cada nota musical , luego de realizar el respectivo análisis espectral podemos aplicar los filtros necesarios para tener las señales deseadas y así podríamos reproducir los efecto que realizaba Jimi Hendrix con el equipo analógico.

12. ¿Qué capacidad de disco duro necesitaría para almacenar, sin comprimir,

la señal que está en un cassette de VHS? Revisando datos en el web, descubre que una señal de video en un cassette de VHS ocupa 3 Mhz (utiliza frecuencias de los 0 a los 3 Mhz). También descubre que el cassette de VHS almacena hasta 6 horas de video y que tiene una SNR de 43 db. Recuerde que el tamaño en bits se calcularía como número de segundos por muestras por segundos por bits por muestra.

Cálculo de la capacidad para almacenar.

13. En la tecnología ADSL se envía una señal de datos a través de los cables telefónicos. Para que no interfiera con las llamadas telefónicas y para que haya más ancho de banda para la transmisión, se utilizan altas frecuencias para los datos. Un modem en la casa del usuario separa la señal de datos de la señal telefónica (PSTN). En el canal de datos existen dos señales, una de bajada (Downstream) y otra de subida (Upstream). A usted se le encarga el diseño de filtros digitales para reemplazar a los filtros analógicos para abaratar el costo. El filtro que se desea reemplazar es el que separa la señal de voz de la señal de datos. Se quiere conservar la señal de voz, mientras se eliminan la señal de datos. La figura muestra donde se encuentran las diferentes señales en el espectro de frecuencias. Describa que filtro usuaria y como lo implementaría en MATLAB.

Page 11: Fabian Sarmiento DSP

Particularmente para este caso es necesario utilizar un filtro windowed sinc ya que este tipo de filtro nos ayuda a eliminar las frecuencias que están por encima de una ancho de banda dado y deja sólo las frecuencias requeridas, además es considerado un filtro estable. Ahora para el diseño hay que tomar en cuenta la frecuencia de muestreo ya que la fracción de ésta es el primer parámetro que requerimos para implementar el filtro ,la fracción de frecuencia de muestreo le llamamos frecuencia de corte “fc” y no debe ser superior a 0.5 . Otro parámetro importante es la velocidad de caída de la señal “M” llamándose la longitud de núcleo del filtro. Con la función filter estudiada en clases podemos implementar el filtro Windowed Sinc con los parámetros mencionados quedando de la siguiente manera h=filter(fc,M)

14. Usted tiene un amplificador y parlantes potentes pero de mala calidad. Cada vez que reproduce audio, las frecuencias comprendidas entre los 0 y 200 Hz se atenúan 20 db, las comprendidas entre 1000 y 2500 Hz se amplifican 10 db, y las frecuencias altas de más de 10 Hz se atenúan 40 db. Esa noche usted tiene una fiesta y desea que la música suene bien. Usted tiene un computador bastante potente con un MATLAB. Como utilizaría sus conocimientos de Procesamiento Digital de Señales para salvar la noche.

Lo principal para intentar obtener una buena fidelidad de la música hay que tomar en cuenta los niveles de atenuación y amplificación de las frecuencias según las bandas de frecuencias descritas usando lenguaje de programación en Matlab.

Page 12: Fabian Sarmiento DSP

Es decir si tengo un potente computador con el Programa Matlab puedo obtener las señales con un equipo de adquisición de señales y realizar el proceso de digitalización respectiva tales como la conversión A/D , muestreo correcto y cuantización , una vez que tengo tratada las señales mejoro los niveles de atenuación y amplificación antes descritos y finalmente para unir todas las señales en un mismo canal se realiza el proceso de convolución. Para finalmente pasarlas a los amplificadores y notar la mejoría de calidad de la música.

15. Usted tiene viejas cintas de video (blanco y negro) que por el abuso y maltrato recibido han perdido parte de su magnetismo, introduciendo ruido aleatorio a la señal. A través de un dispositivo logra leer la señal de la cinta y digitalizarla en su computador. ¿Que filtro utilizaría para eliminar el ruido de la cinta preservando lo mejor posible la señal? ¿Qué parámetros tendría que proporcionar y en que se basaría para decidir su valor? Recuerde que en la señal de video blanco y negro la información esta codificada en la forma que tiene la señal.

Para este caso particular debemos tomar en cuenta la forma de la

señal, y se debe realizar un filtrado especial para tratar de eliminar el ruido aleatorio. El filtro ideal para utilizar es el filtro promedio móvil ya que en este tipo de filtro uno puede ajustar el factor de reducción de ruido calculándolo previamente con la relación entre la potencia de ruido y la señal para tener una buena referencia y poder ajustar dicho factor óptimamente. Teniendo el factor de reducción de ruido adecuado lo aplicamos al filtro promedio móvil y procesar finalmente a la señal deseada asegurando buenos resultados.

16. Le han encargado generar un programa en MATLAB que detecte los números marcados por un teléfono de tonos (DTMF). Cuando se marca un número (por ejemplo el 5) se producen dos tonos dados por la posición (fila y columna) del número (en el caso del 5 se produce un tono de 770Hz y otro de 1336Hz, el número 9 produce un tono de 852 Hz y otro de 1477 Hz). La señal es digitalizada a 8Khz y 8 bits. El programa toma esta señal y debe detectar cuando un número es marcado. Explique como construiría dicho programa (si utiliza filtros, indique que tipo de filtro utilizaría, explicando además como obtendría los parámetros de estos filtros). Implemente cada uno de los filtros necesarios en MATLAB.

Page 13: Fabian Sarmiento DSP

o Para empezar a desarrollar el programa hay que considerar El par de frecuencias respectivas que están asociadas a los tonos de las teclas 0-9 “*”,”#”, entonces se debe crear y guardar en memoria una matriz 1X2 o un vector de dos dimensiones para cada una de las teclas, entonces para poder identificar los tonos DTMF una opción sería guardar tonos ya generados realizar un análisis espectral y guardar estos vectores o matrices para comparar con el par de frecuencias asociadas a cada tono y así podemos identificar que tecla pertenece al tono audible

17. Debido a problemas con los circuitos electrónicos, un electrocardiógrafo

introduce ruido aleatorio a la señal tomada del corazón del paciente. Este ruido no deja apreciar al doctor los diferentes picos y valles de la señal ya que tiene la mitad (0.5) de la potencia de la señal. Usted es el encargado de diseñar un programa que tome la señal del electrocardiógrafo y le presente en pantalla al doctor una versión lo más cercana posible a la forma que tenía la señal al salir del corazón del paciente reduciendo el ruido al menos al 0.05 de la potencia de la señal. Diseñe el filtro en MATLAB para realizar este trabajo.

El filtro ideal a usar en este problema, es el filtro promedio móvil ya que debemos tratar de mantener la señal y presentar lo más cercana posible una vez que eliminamos el ruido presente. Según los datos del caso podemos calcular la ventana (Window) haciendo la relación entre la potencia de ruido existente y la potencia del ruido deseada y dicho valor elevar al cuadrado,

Page 14: Fabian Sarmiento DSP

teniendo este parámetro podemos ingresarlo a la función que me permite aplicar el filtro promedio móvil en MatLab. (Pot. Ruido existente/Pot. Ruido Actual)^2 =(0.5/0.05)^2=100=W Usando la función “ones” y filter realizadas en clases procedemos a desarrollar el filtro promedio móvil de la siguiente manera. h= ones (W,1)/W; y= filter (h,1,x)% x señal con ruido