UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE TECNOLOGIA
ELECTRONICA Y TELECOMUNICACIONES
MATERIA:
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEÑALES
DOCENTE:
ING. ARTURO MIGUEL LOPEZ CASAS
NOMBRES
OMAR CHOQUE CANAVIRI
CI:
9951145 LP
La Paz – Bolivia
A) PRIMERA FIRMA
EJEMPLO 1
t=linspace(0,1,12000);
V1=32*rand(1,12000)-16;
V1=round(V1);
plot(t,V1)
axis([0.38 0.40 -20 20])
grid
sound(V1,8000)
EJEMPLO 2
V2=wavread('C:\Users\Capital PC\Desktop\tren.wav');
figure(3), plot(V2)
grid
V2(1000)
EJEMPLO 3
IM=255*rand(128,128);
IM=round(IM);
figure(1)
colormap(gray(256))
image(IM)
IM(4,3)
EJEMPLO 4
load imdemos
figure(2)
colormap(gray(256))
subplot(2,1,1),image(trees)
subplot(2,1,2),image(saturn)
EJEMPLO 5
IM2=imread('C:\Users\Capital PC\Pictures\562449.jpg');
figure(2)
image(IM2)
IM2(5,15,:)
size(IM2)
EJEMPLO 6
load mri
whos
size(D)
colormap(gray(256))
subplot(3,2,1),image(D(:,:,1,1))
subplot(3,2,2),image(D(:,:,1,2))
subplot(3,2,3),image(D(:,:,1,3))
subplot(3,2,4),image(D(:,:,1,4))
subplot(3,2,5),image(D(:,:,1,5))
subplot(3,2,6),image(D(:,:,1,6))
B) FIRMA 2
IM=uint8(255*rand(128,128));
IM=round(IM);
colormap(gray(256));
subplot (3,1,1);
image(IM);
load imdemos
colormap(gray(256))
subplot(3,1,2)
image(trees)
sum=IM+trees;
colormap(gray(256));
subplot (3,1,3);
image (sum);
C) Waveform Generation del Toolbox Signal Processing en Matlab
Signal Processing Toolbox proporciona funciones que le permiten eliminar el
ruido, suavizar y eliminar la tendencia de las señales para prepararlas para un
análisis posterior. Elimine el ruido, los valores atípicos y el contenido falso de los
datos. Mejore las señales para visualizarlas y descubrir patrones. Cambie la
frecuencia de muestreo de una señal o haga que la frecuencia de muestreo sea
constante para señales muestreadas irregularmente o señales con datos
faltantes. Genere señales sintéticas como pulsos y chirridos para simulación y
pruebas de algoritmos.
chirp
Coseno de frecuencia barrida
Descripción
y = chirp(t,f0,t1,f1) genera muestras de una señal de coseno de frecuencia barrida
lineal en las instancias de tiempo definidas en array .t La frecuencia instantánea
en el tiempo 0 es , y la frecuencia instantánea en el tiempo es .f0t1f1
y = chirp(t,f0,t1,f1,method) especifica una opción de barrido alternativo. method
y = chirp(t,f0,t1,f1,method,phi) especifica la fase inicial.
y = chirp(t,f0,t1,f1,'quadratic',phi,shape) especifica la forma del espectrograma de
una señal cuadrática de frecuencia barrida.
Ejemplos:
Chirrido lineal
Genere un chirrido con desviación de frecuencia instantánea lineal. El chirrido se
muestrea a 1 kHz durante 2 segundos. La frecuencia instantánea es de 0 a 0 y
cruza 250 Hz a 1 segundo.tt
t = 0:1/1e3:2;
y = chirp(t,0,1,250);
Chirrido cuadrático
Genere un chirrido con desviación de frecuencia instantánea cuadrática. El chirrido
se muestrea a 1 kHz durante 2 segundos. La frecuencia instantánea es de 100 Hz
a 0 y cruza 200 Hz a 1 segundo.tt
t = 0:1/1e3:2;
y = chirp(t,100,1,200,'quadratic');
dirichlet
Descripción
y = diric(x,n) devuelve el grado evaluado en los elementos de la matriz de entrada.
Función.
Ejemplos:
x = linspace(-2*pi,2*pi,301);
d7 = diric(x,7);
d8 = diric(x,8);
subplot(2,1,1)
plot(x/pi,d7)
ylabel('N = 7')
title('Dirichlet Function')
subplot(2,1,2)
plot(x/pi,d8)
ylabel('N = 8')
xlabel('x / \pi')
gauspuls
Pulso RF sinusoidal modulado por gaussiana
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 fraccionario tfcbw
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')
gmonopuls
Monopulso gaussiano
Descripción
y = gmonopuls(t,fc) devuelve muestras del monopulso gaussiano de amplitud
unitaria con frecuencia central (en hercios) a los tiempos indicados en la
matriz.fct De forma predeterminada, a Hz.fc1000
tc = gmonopuls('cutoff',fc) devuelve la duración del tiempo entre las amplitudes
máxima y mínima del pulso.
Ejemplo:
fc = 2e9; fs = 100e9;
tc = gmonopuls('cutoff',fc);
t = -2*tc:1/fs:2*tc;
y = gmonopuls(t,fc);
sg = 1/(2*pi*fc);
ys = exp(1/2)*t/sg.*exp(-(t/sg).^2/2);
plot(t,y,t,ys,'.') legend('gmonopuls','Definition')
pulstran
Tren de pulsos
Descripcion
y = pulstran(t,d,func) genera un tren de pulsos basado en muestras de una función
continua, .func
y = pulstran(t,d,func,fs) utiliza una frecuencia de muestreo de .fs
y = pulstran(t,d,p) genera un tren de pulsos que es la suma de múltiples
interpolaciones retardadas del impulso prototipo en vector.p
y = pulstran(___,intfunc) especifica métodos de interpolación alternativos.
Consulte para obtener una lista de los métodos disponibles.interp1 Puede utilizar
este parámetro con cualquiera de las sintaxis de entrada anteriores
Ejemplo:
Este ejemplo genera un tren de pulsos utilizando el pulso rectangular
predeterminado del ancho de la unidad. La frecuencia de repetición es de 0,5 Hz,
la longitud de la señal es de 60 s y la frecuencia de muestreo es de 1 kHz. El
factor de ganancia es un sinusoides de frecuencia 0,05 Hz.
t = 0:1/1e3:60;
d = [0:2:60;sin(2*pi*0.05*(0:2:60))]';
x = @rectpuls;
y = pulstran(t,d,x);
plot(t,y)
hold off xlabel('Time (s)') ylabel('Waveform')
randn
Números aleatorios normalmente distribuidos
Descripcion
X = randn devuelve un escalar aleatorio dibujado de la distribución normal
estándar.
X = randn(n) devuelve una matriz n-by-n de números aleatorios normalmente
distribuidos.
X = randn(sz1,...,szN) devuelve un conjunto sz1-by-...-by-szN matriz de números
aleatorios donde sz1,...,szN indican el tamaño de cada dimensión. Por
ejemplo, randn(3,4) devuelve una matriz de 3 por 4.
X = randn(sz) devuelve una matriz de números aleatorios donde size
vector sz define size(X). Por ejemplo, randn([3 4]) devuelve una matriz de 3 por 4.
X = randn(___,typename) devuelve una matriz de números aleatorios de tipo de
datos typename. La entrada typename puede ser 'single' o 'double'. Puede utilizar
cualquiera de los argumentos de entrada en las sintaxis anteriores.
X = randn(___,'like',p) devuelve una matriz de números aleatorios como p; es el
mismo tipo de objeto que p. Puede especificar typename o 'like', pero no ambos.
Ejemplo
Genere una matriz de 5 por 5 de números aleatorios normalmente distribuidos.
r = randn(5)
r = 5×5
0.5377 -1.3077 -1.3499 -0.2050 0.6715
1.8339 -0.4336 3.0349 -0.1241 -1.2075
-2.2588 0.3426 0.7254 1.4897 0.7172
0.8622 3.5784 -0.0631 1.4090 1.6302
0.3188 2.7694 0.7147 1.4172 0.4889
rectpuls
Rectángulo aperiódico muestreado
Descripción
y = rectpuls(t) devuelve un pulso rectangular continuo, aperiódico y de altura
unitaria en los tiempos de muestra indicados en la matriz, centrado alrededor de la
unidad.tt0
y = rectpuls(t,w) genera un rectángulo de ancho.w
Ejemplo
Generar 200 ms de pulso rectangular con una frecuencia de muestreo de 10 kHz y
una anchura de 20 ms.
fs = 10e3;
t = -0.1:1/fs:0.1;
w = 20e-3;
x = rectpuls(t,w);
Genere dos copias del mismo pulso:
Uno desplazó 45 ms en el pasado.
tpast = -45e-3;
xpast = rectpuls(t-tpast,w);
Un desplazado 60 ms en el futuro y la mitad de ancho.
tfutr = 60e-3;
xfutr = rectpuls(t-tfutr,w/2);
Trazar el pulso original y las dos copias en los mismos ejes.
plot(t,x,t,xpast,t,xfutr)
ylim([-0.2 1.2])
sawtooth
Diente de sierra o onda triangular
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
Ejemplo:
Onda de diente de sierra de 50 Hz
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
sin
Seno de argumento en radianes
Descripción
Y = sin (X) devuelve el seno de los elementos de X. La función sin opera por
elementos en matrices. La función acepta entradas tanto reales como complejas.
Para valores reales de X, sin (X) devuelve valores reales en el intervalo [-1, 1].
Para valores complejos de X, sin (X) devuelve valores complejos.
Ejemplo:
x = -pi:0.01:pi;
plot(x,sin(x)),
grid on
sinc
Función Sinc
Descripción
y = sinc(x) devuelve una matriz, , cuyos elementos son los de los elementos de la
entrada, .ysincx La salida es del mismo tamaño que .yx
Ejemplos
Realice una interpolación limitada por bandas ideal de una señal aleatoria
muestreada en espaciados enteros.
Ejemplo:
Supongamos que la señal a interpolar, , es 0 fuera del intervalo de tiempo dado y
se ha muestreado en la frecuencia Nyquist.x Restablezca el generador de
números aleatorios para ver la reproducibilidad.
rng default t = 1:10;
x = randn(size(t))';
ts = linspace(-5,15,600);
[Ts,T] = ndgrid(ts,t);
y = sinc(Ts - T)*x;
plot(t,x,'o',ts,y)
xlabel Time,
ylabel Signal legend('Sampled','Interpolated','Location','SouthWest') legend boxoff
square
Ola cuadrada
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
Ejemplo:
t = linspace(0,3*pi)';
x = square(t);
plot(t/pi,x,'.-',t/pi,sin(t))
xlabel('t / \pi')
grid on
tripuls
Triángulo aperiódico muestreado
Descripción
y = tripuls(T) devuelve un pulso triangular continuo, aperiódico, simétrico, de altura
de unidad en los tiempos indicados en la matriz, centrado alrededor y con un
ancho predeterminado de 1.TT=0
y = tripuls(T,w) genera un pulso triangular de anchura.w
y = tripuls(T,w,s) genera un pulso triangular con sesgo, donde –1 á 1.ss Cuando
es 0, se genera un pulso triangular simétricos.
Ejemplos
Generar y desplazar pulso triangular
Generar 200 ms de un pulso triangular simétrico con una frecuencia de muestreo
de 10 kHz y una anchura de 40 ms.
fs = 10e3;
t = -0.1:1/fs:0.1;
w = 40e-3;
x = tripuls(t,w);
Generar dos variaciones del mismo pulso:
Uno desplazó 45 ms en el pasado y sesgó 45% a la izquierda.
tpast = -45e-3;
spast = -0.45;
xpast = tripuls(t-tpast,w,spast);
Uno desplazó 60 ms en el futuro, la mitad de ancho, y sesgado completamente a
la derecha.
tfutr = 60e-3;
sfutr = 1;
xfutr = tripuls(t-tfutr,w/2,sfutr);
Trazar el pulso original y las dos copias en los mismos ejes.
plot(t,x,t,xpast,t,xfutr)
ylim([-0.2 1.2])
vco
Oscilador controlado por voltaje
Descripción
y = vco(x,fc,fs) crea una señal que oscila a una frecuencia determinada por el
vector de entrada real o matriz con frecuencia de muestreo. es la frecuencia
portadora o de referencia; cuando es 0, es un coseno Hz con amplitud 1
muestreado en Hz. rangos de hasta , donde á corresponde a 0 salida de
frecuencia, á corresponde a , y á corresponde a .xfsfcxyfcfsx-11x-1x0fcx12*fc La
salida tiene el mismo tamaño que .yx
y = vco(x,[Fmin Fmax],fs) escala el rango de modulación de frecuencia de modo
que los valores de 1 de las oscilaciones de rendimiento de Hz y Hz
respectivamente.xFminFmax Para obtener mejores resultados, y debe estar en el
rango de 0 a .FminFmaxfs/2
De forma predeterminada, es 1 y es .fsfcfs/4
Si es una matriz, produce una matriz cuyas columnas oscilan según las columnas
de .xvcox
Ejemplo:
Espectrograma de señal de diente de sierra
Generar dos segundos de una señal muestreada a 10 kHz cuya frecuencia
instantánea es una función triangular del tiempo.
fs = 10000;
t = 0:1/fs:2;
x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);
Trazar el espectrograma de la señal generada.
spectrogram(x,kaiser(256,5),220,512,fs,'yaxis')
D) Conclusiones
Se pudo evidenciar en el presente laboratorio que la aplicación de Matlab contiene
un paquete en el cual se puede hacer el procesamiento de audio e imagen con el
manejo de vectores los cuales determina el tamaño de dichos archivos con esta
herramienta tan útil nos permite ver en el tema de audio los sonidos ya que los
puede reproducir, también cómo se comportan las señales de audio en el tiempo
ya que las puede graficar sin ningún problema por otro lado se visualiza las
imágenes a través de matrices con las cuales podemos sumar imágenes ponerle
más brillo o simplemente saturarlo entonces podemos manejar audio e imagen
mediante comandos ya establecidos.
E) Bibliografía
https://la.mathworks.com/help/signal/waveform-generation.html?
category=waveform-generation&s_tid=CRUX_gn_documentation_waveform-
generation
https://la.mathworks.com/help/signal/ref/chirp.html
https://es.slideshare.net/mentelibre/matlab-neural-network-toolbox-matlab
https://es.mathworks.com/help/matlab/creating-help.html