Está en la página 1de 8

Resolucionexamenpracticas.

pdf

Anónimo

Senyals i Sistemes Discrets

2º Grado en Ingeniería de Sistemas de Telecomunicación

Escuela de Ingeniería
Universidad Autónoma de Barcelona

Reservados todos los derechos.


No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
10/11/2020

Resolución examen de prácticas SSD (prácticas 1 y 2)

Comentario general

Teniendo en cuenta las condiciones actuales, durante el examen se podía disponer de


todos los recursos que se desearan. Lo normal era tener abiertos los ficheros de los

Reservados todos los derechos.


enunciados y las soluciones o apuntes tomados durante las prácticas (si se habían
tomado, que tampoco era obligatorio). Incluso se podía tener una sesión de Matlab
abierta en paralelo para realizar comprobaciones rápidas. Con 5 minutos por pregunta,
se disponían de muchas posibilidades.

En cuanto al tipo de preguntas, la idea es que alguien que hubiera realizado las prácticas
de forma correcta, es decir, entendiendo de forma básica los resultados obtenidos en las
diferentes cuestiones, si no era ya capaz de ver directamente cuál era la respuesta
correcta, al menos le tendría que sonar dónde se hizo algo similar y entonces recurrir al
enunciado o las soluciones de la práctica en concreto y deducirla por simple analogía.
Hay que tener en cuenta que la práctica 2 se realizó durante la misma semana y la 1
apenas dos semanas atrás.

Resultados de las preguntas

Práctica 1

Para comparar visualmente un periodo de sin(wt) (w es una variable escalar guardada


en el workspace) con su representación discreta de 11 muestras equiespaciadas,
podemos utilizar:

a. t=0:0.01*2*pi/w:2*pi/w; plot(t, sin(w*t)); hold; t2=t(1:10:end); discrete(t2,


sin(w*t2));
b. t=0:0.01*2*pi/w:2*pi/w; plot(t, sin(w*t)); hold; t2=t(1:10:end); stem(t2, sin(w*t2));
c. t=0:10*w; plot(t, sin(w*t)); hold; discrete(t, sin(w*t));
d. t=0:10*w; plot(t, sin(w*t)); hold; stem(t, sin(w*t));

Esto es prácticamente lo mismo que se hizo en la P4 para generar la figura 1. Del propio
enunciado de la práctica ya vemos que se utiliza la función “stem”, por lo que las opciones
con “discrete” se pueden descartar (Matlab ni siquiera la reconoce). La idea principal en
la P4 era que la resolución de la función continua tenía que ser mayor que la discreta
para que se viera suavizada. Por lo tanto, usar el mismo vector t en ambos casos sería

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985
incorrecto. Además, en el enunciado se pide representar un periodo, por lo que el vector
de tiempos correcto es el que va de 0 a 2*pi/w.

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Si queremos guardar los datos de una secuencia v (única variable disponible en el
workspace) a 1200 samp/sec en un fichero de audio de nombre test.wav con una
versión reciente de MATLAB, utilizamos:

a. audiowrite(”test.wav”, v, 1200);
b. wavwrite(v, Fs, 8, test);
c. wavwrite(v, 1200, 8, ”test.wav”);
d. audiowrite(test, v, Fs);

Reservados todos los derechos.


Esto está directamente relacionado con la P7b, donde el propio enunciado de la práctica
especifica que se use la función “audiowrite”. En versiones antiguas se utilizaba
“wavwrite”, pero esta opción está obsoleta. Esta información se proporcionó durante las
sesiones de prácticas. Además, los parámetros de entrada de las opciones con
“wavwrite” no están en orden correcto. Finalmente, de las opciones con “audiowrite”, la
correcta es aquella que solamente introduce la variable v en la función, ya que, como se
especifica en el enunciado, es la única variable disponible en el workspace (no era
necesario saberse de memoria los parámetros ni su orden de entrada).

Si tenemos un sistema de ecuaciones del tipo Ax=b, donde A es una matriz y b un


vector, la manera computacionalmente correcta de resolver x en MATLAB es:

a. x = inv(A).*b;
b. x = (Aˆ-1)*b;
c. x = b./A;
d. x = A∖b;

Esto es directamente la P2. Sin ni siquiera saber la respuesta correcta, del propio
enunciado de la práctica se puede deducir que las opciones donde se invierte la matriz
A son incorrectas. Además, la opción a incluye el punto delante del operador “*”, por lo
que se aplicaría el producto elemento a elemento (algo que también se explica en el
enunciado de la práctica, justo antes de la sección 2.3.1). Finalmente, la opción c tiene
los elementos b y A en orden inverso y también incluye el punto delante del operador “/”,
por lo que también se puede descartar.

si lees esto me debes un besito


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985
Queremos dibujar el contenido de una secuencia v (vector que contiene 12000
muestras de datos) donde el eje x muestre el tiempo de forma correcta. Si sabemos
que la frecuencia de muestreo de los datos es de 300 samp/sec, utilizaremos:

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a. t=v(1:300:12000); plot(t, v);
b. t=0:11999; plot(v, t/300);
c. plot((0:11999)/300, v);
d. plot(1:300:12000, v);

Esto es equivalente a la P8 cuando se pide que se genere la figura 2. Lo único a tener


en cuenta es que el vector del eje x tiene que calcularse como una secuencia que va
desde 0 al número de muestras menos 1 dividido entre la frecuencia de muestreo para
convertirlo en tiempo. La opción a genera el vector t a partir de una de cada 300 muestras
de v (la función plot daría error de dimensiones). La opción b dibuja el resultado con el

Reservados todos los derechos.


tiempo en el eje y. La opción d utiliza para el eje x una secuencia que va de 1 a 12000
con una resolución de 300 (la función plot daría error de dimensiones).

Teniendo el vector remoh con 1000 elementos en memoria, podemos crear un nuevo
vector homer con los elementos de índice par de remoh en orden inverso mediante:

a. homer = remoh(1000:-2:1);
b. homer = remoh(-(1:1000)/2);
c. homer = inv(remoh(1:2:1000));
d. homer = zeros(500); homer = remoh(500:-2:1);

Esto es una versión simplificada de lo que se hizo en la P7a. Los detalles de la indexación
están disponibles en la sección 2.3.2 del enunciado de la práctica (son prácticamente
siete frases cortas). La opción b utiliza índices negativos (da error). La opción c intenta
aplicar la inversión de matrices a un vector (da error). La opción d sólo tomaría la mitad
de los elementos de índice par de remoh. La comprobación de todo esto en Matlab
llevaría menos de dos minutos definiendo un vector remoh = 1:1000 (una secuencia que
va de 1 a 1000).

si lees esto me debes un besito


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985
No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Práctica 2

Indique la opción que genera una secuencia x[n] no periódica:

a. n=0:1000; x=sin(2*pi*n*2\string ^0.5);


b. n=0:1000; x=sin(pi*n*1e3);
c. n=0:1000; x=sin(pi*n*7/15);
d. n=0:1000; x=sin(2*pi*n*7/15);

Reservados todos los derechos.


Esto es equivalente a la P2. En la solución se dice explícitamente que una secuencia no
periódica debe tener como frecuencia un número irracional, por lo que ya con esto se
descartan las opciones b, c, y d.

NOTA: En la opción correcta aparece de forma incorrecta el término “\string” (error


tipográfico al importar las preguntas al formato web). Por este motivo, a aquellas
personas que no marcaron ninguna de las opciones se les puntuará también como válida
la respuesta.

Realizamos una grabación de voz en MATLAB mediante un objeto objvoz de tipo


audiorecorder con una frecuencia de muestreo de 4 kHz. Para realizar una
representación en el dominio temporal de la grabación utilizamos:

a. voz=getaudiodata(objvoz), plot((0:length(voz)-1)/4000, voz);


b. plot(1:4000, objvoz);
c. voz=getaudiodata(objvoz), plot(0:3999, voz);
d. plot((0:length(voz)-1)/4000, objvoz);

Esto está estrechamente relacionado con lo que se pide en P8. Durante la práctica se
vio que no se podía trabajar de forma directa con el objeto objvoz y que se debía obtener
un vector con la secuencia de datos mediante la función “getaudiodata” (hay un ejemplo
en la solución de la P9). Por lo tanto, las opciones b y d quedan descartadas. En la
opción c se introduce como eje x en el plot una secuencia que va de 0 a 3999, que no
tiene por qué coincidir con la longitud de la secuencia voz y tampoco representaría
correctamente el dominio temporal con la frecuencia de muestreo dada.

a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985
Se ha generado la secuencia y a partir de la DFT inversa del producto de las DFT de
las secuencias de datos x y h. Si todas las secuencias tienen N muestras, indique la
opción que genera el mismo resultado para cualquier situación:

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a. y=inv(fft(x).*fft♥)/N;
b. y=conv(x,h);
c. y=cconv(x,h,N);
d. y=N*idft(x.*h);

Esto representa la conclusión a la que se llega después de realizar P4 y P5, que


básicamente es el teorema de la convolución con DFT visto también en la teoría. El
resultado correcto utiliza la función “cconv” que realiza la convolución circular (en el
enunciado de la práctica se pide explícitamente que se use dicha función). Esta función
no está instalada por defecto en Matlab (requiere el paquete opcional de procesado de

Reservados todos los derechos.


señal). No obstante, a aquellas personas que durante la sesión de prácticas descubrieron
que no la tenían instalada, se les indicó cómo hacerlo. La opción a, a pesar del error
tipográfico que convirtió (h) en ♥ al pasar a formato web, intenta aplicar la función que
invierte matrices al producto punto a punto de las salidas de las funciones fft, por lo que
no es válida independientemente de dicho error. La opción b aplica la convolución lineal.
La opción d aplica una función “idft” que no existe al producto punto a punto de las
secuencias x y h.

En MATLAB, si queremos representar la DFT (valor absoluto) del contenido de la


variable x donde el eje horizontal muestre las frecuencias en el rango [−1/2,1/2],
utilizamos:

a. N=length(x); f=linspace(-1/2,1/2,N+1); f=f(1:N); plot(f, abs(dft(x)/N));


b. N=length(x); f=linspace(-1/2,1/2,N+1); f=f(1:N); stem(f, abs(fft(x)/N));
c. N=length(x); f=linspace(-1/2,1/2,N+1); f=f(1:N); stem(f, abs(fftshift(fft(x)/N)));
d. N=length(x); f=linspace(-1/2,1/2,N+1); f=f(1:N); stem(f, abs(dftshift(dft(x)/N)));

Esto está directamente relacionado con el tipo de representación frecuencial que se


realiza desde la P3 hacia delante. Durante la práctica se pide que se analice la función
“rep_tyf” proporcionada con el enunciado y la solución. Como de hecho se indica en el
párrafo anterior a la P3, hay dos puntos principales a tener en cuenta: (1) Matlab utiliza
“fft” para el cálculo de la DFT y (2) reordena el resultado para colocar la frecuencia cero
en el centro mediante “fftshift”. Con esto se deduce la opción correcta. Si no se
recordaban estos puntos, bastaba con abrir el fichero “rep_tyf.m” para comprobarlo.

si lees esto me debes un besito


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985
Generamos la secuencia x[n]=cos(2πn3/10)+sin(2πn2/11) con N muestras.
Indique el valor de N con el que, al aplicar la DFT, se obtiene el resultado que mejor
muestra los valores de frecuencia de ambas componentes:

No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a. N=10;
b. N=33;
c. N=533;
d. N=177;

Esto es una variación de la P3, donde tenemos dos componentes en lugar de una. En la
solución se explica que para que salgan las dos deltas de una sinusoide se debe tomar
un número de muestras igual a un múltiplo de su periodo (o lo que es lo mismo, que el
producto de la frecuencia por N sea un entero), o bien, incrementar el número de
muestras. Al tener dos componentes, estas condiciones se deben cumplir para ambos

Reservados todos los derechos.


casos (propiedad de linealidad de la DFT). Como ninguna de las opciones disponibles
cumple con la primera condición para las dos componentes a la vez, la respuesta correcta
es la de mayor N.

si lees esto me debes un besito


a64b0469ff35958ef4ab887a898bd50bdfbbe91a-3634985

También podría gustarte