Está en la página 1de 30

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD DE TECNOLOGIA
ELECTRONICA Y TELECOMUNICACIONES

INFORME DE LABORATORIO NO 2

TITULO: TOOLBOX SIGNAL PROCESSING DE MATLAB

NOMBRES: REYNALDO CONDE CANQUI CI: 6955617

DOCENTE: ING. ARTURO M. LÓPEZ CASAS

MATERIA: LABORATORIO DE PROCESAMIENTO DIGITAL DE


SEÑALES

PARALELO: “B”

FECHA DE ENTREGA: 10/9/2020


INFORME DE LABORATORIO No.2

Toolbox Signal Processing de Matlab

A. Desarrollo de los ejemplos de la primera firma (Ejemplos 1 al 6)


(adjuntar en el informe el código de los archivos .m generados y las
gráficas respectivas).

Ejemplo 1:
Ejemplo 2:

Grafica del audio


Ejemplo 3
Imagen de tonos de gris generada de números aleatorios (0 a 255)

Ejemplo 4
Ejemplo 5
Ejemplo 6
B. Desarrollo de uno de los incisos correspondientes a la segunda
firma, según último dígito del C.I., par: inciso a), impar: inciso b)
(adjuntar en el informe el código del archivo .m generado y las
gráficas respectivas).
CI:6955617 Lp.

a) Leer un archivo de audio y presentarlo en un vector. Posteriormente, generar


un vector aleatorio de la misma dimensión para ser sumado al vector de audio
original. Reproducir y captar la diferencia entre ambos vectores.

b) Leer un archivo de imagen y presentarlo en una matriz. Posteriormente,


generar una matriz aleatoria de la misma dimensión para ser sumado a la matriz
de imagen original. Visualizar y captar la diferencia entre ambas matrices.
C. Trabajo de Investigación:

"Waveform Generation del Toolbox Signal Processing en Matlab" Usando esta


opción explicar y mostrar un ejemplo comentado de las siguientes formas de onda:
chirp - Swept-frequency cosine generator

El bloque Chirp emite una señal de coseno de frecuencia de barrido (chirp) con
amplitud unitaria y fase continua. Para especificar la señal de chirp de salida
deseada, debe definir su función de frecuencia instantánea, también conocida
como barrido de frecuencia de salida. El barrido de frecuencia puede ser lineal,
cuadrático o logarítmico y se repite una vez cada tiempo de barrido de forma
predeterminada. Para obtener una descripción de los algoritmos utilizados por el
bloque Chirp, consulte Algoritmos.
En los modos lineal, logarítmico y cuadrático (establecido por el parámetro de
barrido de frecuencia), el bloque genera un coseno de frecuencia de barrido con
valores de frecuencia instantáneos especificados por los parámetros de frecuencia
y tiempo. En el modo Coseno barrido, el bloque genera un coseno de frecuencia
barrida con una frecuencia de salida instantánea lineal que puede diferir de la
especificada por los parámetros de frecuencia y tiempo.
Swept-frequency cosine (chirp) signal.
En los modos lineal, logarítmico y cuadrático (establecido por el parámetro de
barrido de frecuencia), el bloque genera un coseno de frecuencia de barrido con
valores de frecuencia instantáneos especificados por los parámetros de frecuencia
y tiempo. En el modo Coseno barrido, el bloque genera un coseno de frecuencia
barrida con una frecuencia de salida instantánea lineal que puede diferir de la
especificada por los parámetros de frecuencia y tiempo.
scipy.signal.chirp (t, f0, t1, f1, method = 'linear', phi = 0, vertex_zero = True)
[fuente]
Generador de coseno de barrido de frecuencia.
A continuación, "Hz" debe interpretarse como "ciclos por unidad"; Aquí no se
requiere que la unidad sea de un segundo. La distinción importante es que las
unidades de rotación son ciclos, no radianes. Asimismo, t podría ser una medida
de espacio en lugar de tiempo.
Parámetros
t : array_like Momentos en los que evaluar la forma de onda.
F1: float Frecuencia (por ejemplo, Hz) en el tiempo t = 0.
T1 : float Hora a la que se especifica f1.
f1 : float Frecuencia (por ejemplo, Hz) de la forma de onda en el
tiempo t1.
Method:{‘linear’, ‘quadratic’, ‘logarithmic’, ‘hyperbolic’}, optional
Tipo de barrido de frecuencia. Si no se da, se asume lineal. Consulte las notas a
continuación para obtener más detalles.
Phi : float, optional Desplazamiento de fase, en grados. El valor
predeterminado es 0.
vertex_zero : bool, optional
Este parámetro solo se utiliza cuando el método es "cuadrático". Determina
si el vértice de la parábola que es la gráfica de la frecuencia está en t = 0 o t
= t1.
Returns Y : ndarray
Una matriz numpy que contiene la señal evaluada en t con la frecuencia
solicitada variable en el tiempo. Más precisamente, la función devuelve cos (fase +
(pi / 180) * phi) donde fase es la integral (de 0 a t) de 2 * pi * f (t). f (t) se define a
continuación.
Ejemplo:
En los ejemplos se utilizará lo siguiente:

Para el primer ejemplo, trazaremos la forma de onda para un chirrido lineal de 6


Hz a 1 Hz durante 10 segundos:
Para los ejemplos restantes, usaremos rangos de frecuencia más altos y
demostraremos el resultado usando scipy.signal.spectrogram. Usaremos un
intervalo de 4 segundos muestreado a 7200 Hz.

Usaremos esta función para trazar el espectrograma en cada ejemplo.

Chirp cuadrático de 1500 Hz a 250 Hz (el vértice de la curva parabólica de la


frecuencia está en t = 0):
Chirrido cuadrático de 1500 Hz a 250 Hz (el vértice de la curva parabólica de la
frecuencia está en t = T):

Chirrido logarítmico de 1500 Hz a 250 Hz:


Chirrido hiperbólico de 1500 Hz a 250 Hz:

diric - Dirichlet (periodic sinc) function


Función sinc periódica, también llamada función de Dirichlet.
La función de Dirichlet se define como:

donde n es un número entero positivo.


Parámetros:
X : array_like Datos de entrada
N : int Entero que define la periodicidad
Returns
Diric : ndarray
Ejemplo:

El siguiente ejemplo demuestra que diric da las magnitudes (módulo el signo y la escala) de
los coeficientes de Fourier de un pulso rectangular.

Suprime la salida de valores que son efectivamente 0:


Cree una señal x de longitud m con k unos:

Utilice la FFT para calcular la transformada de Fourier de x e inspeccione las magnitudes de los
coeficientes:

Ahora encuentre los mismos valores (hasta el signo) usando diric. Multiplicamos por k para dar
cuenta de las diferentes convenciones de escalado de numpy.fft.fft y diric:

gauspuls - Gaussian RF pulse generator


Pulso RF sinusoidal modulado por gaussiana
Sintaxis

Descripción
yi = gauspuls(t,fc,bw) devuelve un pulso rf sinusoidal modulado gaussiano de
amplitud unitaria en los tiempos indicados en la matriz, con una frecuencia central
en hercios y un ancho de banda fraccionariotfcbw
yi = gauspuls(t,fc,bw,bwr) devuelve un pulso RF gaussiano en fase infásico de
amplitud unitaria con un ancho de banda fraccionario de la medida en un nivel de
dB con respecto al pico de señal normalizado.bwbwr
[yi,yq] = gauspuls(___) también devuelve el pulso de la cuadratura. Esta sintaxis
puede incluir cualquier combinación de argumentos de entrada de sintaxis
anteriores.
[yi,yq,ye] = gauspuls(___) devuelve la envolvente de la señal RF.
tc = gauspuls('cutoff',fc,bw,bwr,tpe) devuelve el tiempo de corte en el que la
envolvente del pulso final cae por debajo de dB con respecto a la amplitud de la
envolvente máxima.tctpe
Ejemplo
Trazar un pulso de RF gaussiano de 50 kHz con 60% de ancho de banda,
muestreado a una velocidad de 10 MHz. Truncar el pulso donde la envolvente cae
40 dB por debajo del pico. También trazar el pulso de cuadratura y la envolvente
de señal RF.
tc = gauspuls('cutoff',50e3,0.6,[],-40);
t = -tc : 1e-7 : tc;
[yi,yq,ye] = gauspuls(t,50e3,0.6);
plot(t,yi,t,yq,t,ye) legend('Inphase','Quadrature','Envelope')

Argumentos de entrada
t — Vector de valores de tiempo
Vector
Vector de valores de tiempo en los que se calcula el pulso RF gaussiano de
amplitud unitaria.
Tipos de datos: single | doublé
fc — Frecuencia central
1000 (predeterminado) | escalar positivo real
Frecuencia central de los pulsos sinusoidales modulados por Gaussian,
especificados como un escalar positivo real expresado en Hz.
bw — Ancho de banda fraccionario
0.5 (predeterminado) | escalar positivo real
Ancho de banda fraccionario de los pulsos sinusoidales modulados por Gaussian,
especificado como un escalar positivo real.
bwr — Nivel de referencia de ancho de banda fraccionario
–6 (predeterminado) | verdadero escalar negativo
Nivel de referencia de ancho de banda fraccionario de los pulsos sinusoidales
modulados por Gaussian, especificados como un escalar negativo real. indica un
nivel de referencia menor que la amplitud de la envolvente del pico (unidad).bwr El
ancho de banda fraccionario se especifica en términos de relaciones de potencia.
Esto corresponde al punto expresado en proporciones de magnitud.-3 dB
tpe — Nivel de envolvente de pulso sin dirección
–60 (predeterminado) | verdadero escalar negativo
Nivel de envolvente de pulso final, especificado como un escalar negativo real en
dB. Indica un nivel de referencia menor que la amplitud de la envolvente de pico
(unidad).tpe
Argumentos de salida
yi — Pulso gaussiano infásico
Vector
Pulso sinusoidal modulado gaussiano en fase, devuelto como vector de amplitud
unitaria en los tiempos indicados por el vector de tiempo.t
yq — Pulsación gaussiana de la cuadratura
Vector
Pulsas sinusoidales moduladas por Gaussian en cuadratura, devueltas como
vector de amplitud unitaria en los tiempos indicados por el vector de tiempo.t
ye — Sobre de señal RF
Vector
Sobre de señal RF de amplitud unitaria a los tiempos indicados por el vector de
tiempo.t
tc — Tiempo límite
escalar real positivo
El tiempo de corte en segundos en el que la envolvente del pulso final cae por
debajo de dB con respecto a la amplitud de la envolvente máxima.tpe
gmonopuls - Gaussian monopulse generator
Monopulso gaussiano
Sintaxis
y = gmonopuls(t,fc)
tc = gmonopuls('cutoff',fc)

Descripción

y = gmonopuls(t,fc)
devuelve muestras del monopulso gaussiano de amplitud unitaria con frecuencia
central fc (en hercios) en los tiempos indicados en la matriz t. Por defecto, fc =
1000 Hz.

tc = gmonopuls('cutoff',fc)

devuelve el tiempo de duración entre las amplitudes máxima y mínima del pulso.

Observaciones

Los valores predeterminados se sustituyen por argumentos de entrada finales


vacíos u omitidos.

Ejemplos

Trace un monopulso gaussiano de 2 GHz muestreado a una velocidad de 100


GHz:
Construya un tren de pulsos a partir del monopulso del Ejemplo 1 usando un
espaciado de 7.5 ns:
pulstran - Pulse train generator
Genera un tren de pulsos
Sintaxis
y = pulstran(t,d,'func')
y = pulstran(t,d,'func',p1,p2,...)
y = pulstran(t,d,p,fs)
y = pulstran(t,d,p)

Descripción
pulstran genera trenes de pulsos a partir de funciones continuas o pulsos prototipo
muestreados
.
y = pulstran (t, d, 'func') genera un tren de pulsos basado en muestras de una
función continua, 'func', donde 'func' es
'gauspuls', para generar un pulso sinusoidal modulado en gauss
'rectpuls', para generar un rectángulo aperiódico muestreado
'tripuls', para generar un triángulo aperiódico muestreado
pulstran se evalúa length (d) veces y devuelve la suma de las evaluaciones y =
func (t-d (1)) + func (t-d (2)) + ...
La función se evalúa en el rango de valores de argumento especificados en la
matriz t, después de eliminar un desplazamiento de argumento escalar tomado del
vector d. Tenga en cuenta que func debe ser una función vectorizada que pueda
tomar una matriz t como argumento.
Puede aplicarse un factor de ganancia opcional a cada evaluación retrasada
especificando d como una matriz de dos columnas, con el desplazamiento definido
en la columna 1 y la ganancia asociada en la columna 2 de d. Tenga en cuenta
que un vector de fila se interpretará como una especificación de retrasos
únicamente.
pulstran (t, d, 'func', p1, p2, ...) permite pasar parámetros adicionales a 'func'
según sea necesario. Por ejemplo:
func (t-d (1), p1, p2, ...) + func (t-d (2), p1, p2, ...) + ...

pulstran (t, d, p, fs) genera un tren de pulsos que es la suma de múltiples


interpolaciones retardadas del pulso prototipo en el vector p, muestreado a la tasa
fs, donde p abarca el intervalo de tiempo interval [0,(length(p)-1)/fs], y sus
muestras son idénticamente 0 fuera de este intervalo. De forma predeterminada, la
interpolación lineal se utiliza para generar retrasos.
pulstran(t,d,p) asume que la frecuencia de muestreo fs es igual a 1 Hz
pulstran(...,'func') especifica métodos de interpolación alternativos.
Consulte interp1 para obtener una lista de los métodos disponibles.
Ejemplo 1
Este ejemplo genera una forma de onda de diente de sierra asimétrica con una
frecuencia de repetición de 3 Hz y un ancho de diente de sierra de 0,1 s. Tiene
una longitud de señal de 1 sy una frecuencia de muestreo de 1 kHz:

Ejemplo 2
Este ejemplo genera una señal de pulso gaussiano periódica a 10 kHz, con un
ancho de banda del 50%. La frecuencia de repetición de pulsos es de 1 kHz, la
frecuencia de muestreo es de 50 kHz y la longitud del tren de pulsos es de 10
mseg. La amplitud de repetición debe atenuarse en 0,8 cada vez:
Ejemplo 3
Este ejemplo genera un tren de 10 ventanas Hamming:
rectpuls - Sampled aperiodic rectangle generator
Generador de rectángulos aperiódicos muestreados.
Sintaxis
y = rectpuls(t)
y = rectpuls(t,w)

Descripción

y = rectpuls (t) devuelve un pulso rectangular continuo, aperiódico, de altura


unitaria en los tiempos de muestra indicados en la matriz t, centrado alrededor de t
= 0 y con un ancho predeterminado de 1. Tenga en cuenta que el intervalo de
amplitud distinta de cero está definido estar abierto a la derecha, es decir, rectpuls
(-0.5) = 1 mientras que rectpuls (0.5) = 0.

y = rectpuls (t, w) genera un rectángulo de ancho w.

rectpuls se usa típicamente junto con la función de generación de tren de pulsos,


pulstran.

sawtooth - Sawtooth function

Diente de sierra o onda triangular

Sintaxis
x = sawtooth(t)
x = sawtooth(t,xmax)

Descripción
x = sawtooth(t) genera una onda de diente de sierra con el período 2 para los
elementos de la matriz de tiempo. es similar a la función sinusoidal, pero crea una
onda de diente de sierra con picos de –1 y 1.πtsawtooth La onda de diente de
sierra se define como –1 en múltiplos de 2 y para aumentar linealmente con el
tiempo con una pendiente de 1 / en todos los demás momentos.ππ

x = sawtooth(t,xmax) genera una onda triangular modificada con la ubicación


máxima en cada período controlado por .xmax Establézalo para generar una onda
de triángulo estándar.xmax0.5
Ejemplos
Generar 10 períodos de una onda de diente de sierra con una frecuencia
fundamental de 50 Hz. La frecuencia de muestreo es de 1 kHz.
T = 10*(1/50);
fs = 1000;
t = 0:1/fs:T-1/fs;
x = sawtooth(2*pi*50*t);
plot(t,x) grid on

Trazar el espectro de potencia de la onda.

pspectrum(x,fs,'Leakage',0.91)

Onda triangular de 50 Hz
Generar 10 períodos de una onda triangular con una frecuencia fundamental de 50
Hz. La frecuencia de muestreo es de 1 kHz.
T = 10*(1/50);
fs = 1000;
t = 0:1/fs:T-1/fs;
x = sawtooth(2*pi*50*t,1/2);
plot(t,x) grid on

Trazar el espectro de potencia de la onda.


pspectrum(x,fs,'Leakage',0.91)
sinc - Sinc or sin(pi*x)/(pi*x) function

sinc (x) devuelve sin (pi * x) / (pi * x). La función simbólica sinc no implementa
resultados de punto flotante, solo resultados simbólicos. Los resultados de coma
flotante son devueltos por la función sinc en Signal Processing Toolbox
y= sinc(x)
and y2 = (sin(pi*x))/(pi*x)

square - Square wave function

La onda cuadrada, también llamada tren de pulsos u onda de pulso, es una forma
de onda periódica que consta de transiciones instantáneas entre dos niveles. La
onda cuadrada a veces también se denomina función Rademacher. La onda
cuadrada ilustrada arriba tiene un período 2 y niveles -1/2 y 1/2. Otros niveles
comunes para ondas cuadradas incluyen (-1,1) y (0,1) (señales digitales).
Sintaxis
x = square(t)
x = square(t,duty)
Descripción
x = square(t) genera una onda cuadrada con el período 2 para los elementos de la
matriz de tiempo. es similar a la función sinusoidal, pero crea una onda cuadrada
con valores de –1 y 1.πtsquare
x = square(t,duty) genera una onda cuadrada con el ciclo de trabajo
especificado.duty Es el porcentaje del período de señal en el que la onda
cuadrada es positiva.ciclo de trabajo

t = linspace(0,3*pi)'; x = square(t);

plot(t/pi,x,'.-',t/pi,sin(t)) xlabel('t / \pi') grid on

t = linspace(-pi,2*pi,121);
x = 1.15*square(2*t);
plot(t/pi,x,'.-',t/pi,1.15*sin(2*t))
xlabel('t / \pi') grid on
Genere una onda cuadrada de 30 Hz muestreada a 1 kHz durante 70 ms.
Especifique un ciclo de trabajo del 37%. Agregue el ruido gaussiano blanco con
una varianza de 1/100.

t = 0:1/1e3:0.07; y = square(2*pi*30*t,37)+randn(size(t))/10;

Calcular el ciclo de trabajo de la onda. Trazar la forma de onda y anotar el ciclo de


trabajo.
dutycycle(y,t)
Conclusiones:
En este laboratorio aprendí los solo comandos para programación en Matlab me
pareció muy interesante aunque no pude realizar la firma2 tuve que buscar en el
internet como sumar dos imágenes, en el trabajo de investigación fue muy largo
pero aprendí los diferendos comandos para realizar diferentes ejercicios.
También cono si la como generar sonidos en el Matlab y mezclarlas.
Biblografia:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.diric.html#:~:text=Periodic
%20sinc%20function%2C%20also%20called,n%20is%20a%20positive%20integer.

https://es.mathworks.com/help/signal/ref/gauspuls.html

http://matlab.izmiran.ru/help/toolbox/signal/gmonopuls.html

http://www.ece.northwestern.edu/local-apps/matlabhelp/toolbox/signal/pulstran.html

https://es.mathworks.com/help/signal/ref/sawtooth.html#d120e121582

https://es.mathworks.com/help/signal/ref/square.html

También podría gustarte