Anda di halaman 1dari 41

ESCUELA POLITCNICA NACIONAL

PROCESAMIENTO DIGITAL DE SEALES

ESCUELA
POLITC
NICA
NACIONA
L PROCESA
MIENTO
DIGITAL
DE
GR1
SEALES
REALIZA
DO POR:
DARWIN
GUASGU
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

DEBER
WAVE SYNTHESIS

Esta funcin de Audio Tester nos permite escuchar cual sera el sonido generado por una seal
determinada por una ecuacin:

Para entender su funcionamiento nos vamos a la ayuda nativa del programa:

En el cual nos explica su funcionamiento, las funciones y operandos validos:

Estn disponibles las siguientes funciones:

sin, cos, tan, cotan,

abs, ln, log, sgn, sqrt, exp,

arcsin, arccos, arctan, argcotan,

sinh, cosh, tanh, coth,


^, ejemplo 3 ^ 2 = 9,

H, para Heaviside: Esta funcin es 0 para cada valor negativo y 1 para todos los dems.

Tambin tiene los operadores + - * /

Para ilustrar su funcionamiento, se realiza lo siguiente:

Vamos al generador y damos clic en Setup y seleccionamos Wave Synthesis:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Luego se debe dar clic en el botn Synthesis que se encuentra en la parte inferior derecha de
la ventana, y se abre una nueva ventana:

En esta nueva ventana debemos ingresar la frmula de la seal, a la cual solo debemos darle
como parmetros las respectivas frecuencias, cuyos valores se deben ingresar en el sector de
variables como sigue a continuacin:
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Ahora se debe dar clic en Check para verificar que no existan errores.

Luego se debe dar clic en Ok y en la ventana anterior tambin en Apply y en Ok:

Ahora se debe dar clic en Sound On en la parte del generador y podremos escuchar el sonido
creado y a su vez a travs del micrfono se capta el sonido y se puede observar las seales.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

SOUND FILE OUT

Se lo puede usar para reproducir archivos de audio en AudioTester y realizar su respectivo


anlisis.

Para entender su funcionamiento nos vamos a la ayuda nativa del programa:

Para ilustrar su funcionamiento, se realiza lo siguiente:

Vamos al generador y damos clic en Setup y seleccionamos Soud File Out:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Luego se debe dar clic en el botn Open File que se encuentra en la parte inferior derecha de
la ventana, y se abre una nueva ventana:

En donde debemos seleccionar el archivo de audio.

Finalmente damos clic en Ok

BIBLIOGRAFIA:

Ayuda nativa del programa Audio Tester.

ESCUCHAR, RECIBIR, ENVIAR SONIDOS ENTRE DOS PCS A TRAVES DE UN CABLE DE SONIDO
HACIENDO USO DE SUS ENTRADAS PARA MICROFONO Y AUDIFONOS RESPECTIVAMENTE

DEL PROGRAMA AUDIO TESTER A AUDIO TESTER

Se debe conectar las PCs a travs del cable de sonido auxiliar, el que va a hacer de trasmisor o
generador del sonido se le conecta el cable en su salida de audfonos(salida del audio) y el que
va a hacer de receptor, se le conecta el cable en su entrada de micrfono(captacin de audio).

Luego en el transmisor procedemos a generar las respectivas seales y hacer sonar el audio a
travs del audfono dando clic en Sound on en la parte del generador, mientras que en el
receptor simplemente en la parte del analizador le damos clic a star y se mostrara la seal que
est recibiendo a travs de su entrada de micrfono:
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

El mismo proceso se realiza para las distintas seales.

Las formas de onda captadas en el dispositivo receptor de la seal son:

Seno a 100Hz
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Cuadrada a 100Hz

Triangular a 100HZ

DESDE MATLAB AL PROGRAMA AUDIO TESTER

Bsicamente se usa la misma lgica para la transmisin del sonido entre las dos PCs. Conectar
las PCs a travs del cable de sonido auxiliar, el que va a hacer de trasmisor o generador del
sonido se le conecta el cable en su salida de audfonos(salida del audio) y el que va a hacer de
receptor, se le conecta el cable en su entrada de micrfono(captacin de audio).

Pero en este caso, para que Matlab genere el sonido se hace uso del comando: sound(y, Fs);

Mientras que en el receptor simplemente en la parte del analizador le damos clic a star y se
mostrara la seal que est recibiendo a travs de su entrada de micrfono.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

El mismo proceso se realiza para las distintas seales.

Rectificador de onda completa

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- Se genera una seal senoidal a dicha frecuencia y con la duracin establecida en


el eje de tiempos.
- Se obtiene el tamao del vector que contiene las amplitudes de la seal seno.
- Mediante un lazo for e interiormente un condicional, se logra que si la amplitud es
positiva se quede con su valor original, pero si es negativa que cambie a positiva. De
esta manera se altera a la seal seno logrando que tenga la forma de una seal
proveniente de un rectificador de onda completa.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y=sin(2*pi*fo*t); %eje de amplitudes

tamano_y=length(y);% obtencion del tamao del vector del eje de


amplitudes

for i=1 : tamano_y


if y(i)>=0
y(i)=y(i); % si la amplitud es positiva queda igual
else
y(i)= -y(i); %si la amplitud es negativa, la transformo en
positiva
end

i=i+1; % aumento el contador

end

%GRAFICACION
plot(t,y);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('RECTIFICADOR DE ONDA COMPLETA'); %colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


sound(y,Fs);
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

La grfica obtenida es la siguiente:

LA SEAL RECIBIDA EN AUDIO TESTER:

Rectificador de media onda:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

- Se genera una seal senoidal a dicha frecuencia y con la duracin establecida en


el eje de tiempos.
- Se obtiene el tamao del vector que contiene las amplitudes de la seal seno.
- Mediante un lazo for e interiormente un condicional, se logra que si la amplitud es
positiva se quede con su valor original, pero si es negativa se haga cero. De esta
manera se altera a la seal seno logrando que tenga la forma de una seal
proveniente de un rectificador de media onda.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y=sin(2*pi*fo*t); %eje de amplitudes

tamano_y=length(y);% obtencion del tamao del vector del eje de


amplitudes

for i=1 : tamano_y


if y(i)>=0
y(i)=y(i); % si la amplitud es positiva queda igual
else
y(i)= 0; %si la amplitud es negativa se hace cero
end

i=i+1; % aumento el contador

end

%GRAFICACION
plot(t,y);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('RECTIFICADOR DE MEDIA ONDA'); %colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


sound(y,Fs);

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Rectificador de onda completa truncado:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Para obtener la grfica se ha usado la siguiente lgica:

- Se genera una seal senoidal a dicha frecuencia y con la duracin establecida en


el eje de tiempos.
- Se obtiene el tamao del vector que contiene las amplitudes de la seal seno.
- Mediante un lazo for e interiormente un condicional, se logra que si la amplitud es
positiva se quede con su valor original, pero si es negativa que cambie a positiva. De
esta manera se altera a la seal seno logrando que tenga la forma de una seal
proveniente de un rectificador de onda completa.
- Finalmente mediante otro lazo for y otro condicional interno, se logra que la seal
que ya era un rectificador de onda completa, que si la amplitud es mayor a 0.7 tome
un valor cte. de 0.7 y si no, que se quede en su valor actual. De esta manera se
logra el truncamiento.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y=sin(2*pi*fo*t); %eje de amplitudes

tamano_y=length(y);% obtencion del tamao del vector del eje de


amplitudes

%Formacion del rectificador de onda completa


for i=1 : tamano_y
if y(i)>=0
y(i)=y(i); % si la amplitud es positiva queda igual
else
y(i)= -y(i); %si la amplitud es negativa, la transformo en
positiva
end

i=i+1; % aumento el contador

end

% TRUNCAMIENTO
for i=1 : tamano_y
if y(i)>0.7
y(i)=0.7; % si la amplitud es mayor a 0.7 toma el valor de 0.7
else
y(i)= y(i); %si fue menor a 0.7 se queda en su mismo valor
end

i=i+1; % aumento el contador


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

end

%GRAFICACION
plot(t,y);
ylim([0 1]);%poner limites al eje Y
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('RECTIFICADOR DE ONDA COMPLETA TRUNCADO'); %colocar titulo a la
grafica

%ESCUCHAR LA SEAL GENERADA


sound(y,Fs);

La grfica obtenida es la siguiente:

LA SEAL RECIBIDA EN AUDIO TESTER:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal diente de sierra en Matlab:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe una funcin que nos permite rpidamente obtener las
amplitudes de una seal dientes de sierra que en este caso solo debe tener como
parmetro el eje de tiempo, y esta nos genera las amplitudes de esta seal que va
desde -1 a 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y=sawtooth(2*pi*fo*t); %eje de amplitudes

figure;plot(t,y);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('DIENTE DE SIERRA'); %colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


sound(y,Fs);
pause;%pausa hasta que presione una tecla

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Triangular con pendientes 50% y 50%:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe una funcin que nos permite rpidamente obtener las
amplitudes de una seal dientes de sierra.
- Pero en este caso debemos darle un segundo parmetro aparte del eje de
tiempos, que es la fraccin de pendiente que tendr la pendiente creciente, el cual
debe ser un valor entre 0 y 1, que en este caso es 0.5. Con ello se genera las
amplitudes de esta seal que va desde -1 a 1.
- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, que en este caso se
debi sumarle 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

y1=sawtooth(2*pi*fo*t,0.5); %eje de amplitudes


offset=1; % valor del offset para movilizar la seal en el eje Y
y1=y1+offset;%agregar el offset

figure;plot(t,y1);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('TRIANGULAR CON PEDIENTES 50% Y 50%'); %colocar titulo a la
grafica

%ESCUCHAR LA SEAL GENERADA


sound(y1,Fs);
pause;%pausa hasta que presione una tecla

La grfica obtenida es la siguiente:

LA SEAL RECIBIDA EN AUDIO TESTER:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Triangular con pendientes 70% y 30%:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe una funcin que nos permite rpidamente obtener las
amplitudes de una seal dientes de sierra.
- Pero en este caso debemos darle un segundo parmetro aparte del eje de
tiempos, que es la fraccin de pendiente que tendr la pendiente creciente, el cual
debe ser un valor entre 0 y 1, que en este caso es 0.7. Con ello se genera las
amplitudes de esta seal que va desde -1 a 1.
- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, que en este caso se
debi sumarle 0.5, debido a que adems se debi dividir en dos la amplitud para que
el valor pico a pico solo sea de 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y2=sawtooth(2*pi*fo*t,0.7); %eje de amplitudes


offset=0.5; % valor del offset para movilizar la seal en el eje Y
y2=y2./2 + offset; %agregar el offset y reducir la amplitud

figure;plot(t,y2);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('TRIANGULAR CON PEDIENTES 70% Y 30%'); %colocar titulo a la
grafica

%ESCUCHAR LA SEAL GENERADA


sound(y2,Fs);
pause;%pausa hasta que presione una tecla

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Dientes de sierra 70% y 30% con parte negativa:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe una funcin que nos permite rpidamente obtener las
amplitudes de una seal dientes de sierra.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

- Pero en este caso debemos darle un segundo parmetro aparte del eje de
tiempos, que es la fraccin de pendiente que tendr la pendiente creciente, el cual
debe ser un valor entre 0 y 1, que en este caso es 0.7. Con ello se genera las
amplitudes de esta seal que va desde -1 a 1.
- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, pero un valor tal que
en este caso de parte positiva y negativa, el cual fue de 0.2, debido a que adems
se debi dividir en dos la amplitud para que el valor pico a pico solo sea de 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y3=sawtooth(2*pi*fo*t,0.7); %eje de amplitudes


offset=0.2; % valor del offset para movilizar la seal en el eje Y
y3=y3./2 + offset; %agregar el offset y reducir la amplitud

figure;plot(t,y3);
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('TRIANGULAR CON PEDIENTES 70% Y 30% CON PARTE NEGATIVA');
%colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


sound(y3,Fs);

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Onda cuadrada monopolar:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe la funcin square la cual permite obtener ondas cuadradas de


amplitudes que van desde -1 a 1, la ms simple solo necesita el parmetro del eje de
tiempos.

- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, el cual fue de 0.5,
debido a que adems se debi dividir en dos la amplitud para que el valor pico a pico
solo sea de 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

y=square(2*pi*fo*t); %eje de amplitudes


offset=0.5;% valor del offset para movilizar la seal en el eje Y
y=y./2 + offset; %agregar el offset

figure;plot(t,y,'g-','linewidth',2);% agrga ediciones al ploteo


grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('ONDA CUADRADA MONOPOLAR'); %colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


sound(y,Fs);
pause;%pausa hasta que presione una tecla

La grfica obtenida es la siguiente:

LA SEAL RECIBIDA EN AUDIO TESTER:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Onda rectangular 70 a 30 monopolar

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe la funcin square la cual permite obtener ondas cuadradas de


amplitudes que van desde -1 a 1, la ms simple solo necesita el parmetro del eje de
tiempos, pero en este caso tambin se le va a dar un segundo parmetro el cual
corresponde al ciclo de trabajo o porcentaje en el que la seal tiene amplitud 1, el
cual es un valor de 0 a 100, que es este caso fue de 70.

- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, el cual fue de 0.5,
debido a que adems se debi dividir en dos la amplitud para que el valor pico a pico
solo sea de 1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y1=square(2*pi*fo*t,70); %eje de amplitudes


offset=0.5;% valor del offset para movilizar la seal en el eje Y
y1=y1./2 + offset; %agregar el offset

figure;plot(t,y1,'g-','linewidth',2);% agrga ediciones al ploteo


grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('ONDA RECTANGULAR 70% A 30% MONOPOLAR'); %colocar titulo a la
grafica

%ESCUCHAR LA SEAL GENERADA


sound(y1,Fs);
pause;%pausa hasta que presione una tecla

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Onda rectangular 70 a 30 bipolar

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- En Matlab existe la funcin square la cual permite obtener ondas cuadradas de


amplitudes que van desde -1 a 1, la ms simple solo necesita el parmetro del eje de
tiempos, pero en este caso tambin se le va a dar un segundo parmetro el cual
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

corresponde al ciclo de trabajo o porcentaje en el que la seal tiene amplitud 1, el


cual es un valor de 0 a 100, que es este caso fue de 70.

- Pero adems esta seal debe tener una componente DC u offset, la cual consiste
bsicamente en sumarle un valor cte. al vector de amplitudes, pero en este caso
debe tener una parte positiva y una negativa, el cual fue de 0.1, debido a que
adems se debi dividir en dos la amplitud para que el valor pico a pico solo sea de
1.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

y2=square(2*pi*fo*t,70); %eje de amplitudes


offset=0.1;% valor del offset para movilizar la seal en el eje Y
y2=y2/2 + offset; %agregar el offset

figure;plot(t,y2,'g-','linewidth',2);% agrga ediciones al ploteo


grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('ONDA RECTANGULAR 70% A 30% MONOPOLAR'); %colocar titulo a la
grafica

%ESCUCHAR LA SEAL GENERADA


sound(y2,Fs);

La grfica obtenida es la siguiente:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

LA SEAL RECIBIDA EN AUDIO TESTER:

Seal combinada seno y diente de sierra:

Debido a que para este tipo de seales no se conoce la frecuencia mxima, se opt
por decir que fmax= 20*fo, para luego poder calcular la frecuencia de muestreo
como Fs=50*fmax.
Con esta frecuencia de muestreo se puede calcular fcilmente el eje de tiempos.
Para obtener la grfica se ha usado la siguiente lgica:

- Lo que se hizo fue crear una seal seno y una seal triangular 50-50 con los
offset y valores pico-pico correspondientes.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

- Luego se obtuvo el tamao del vector que contiene las amplitudes de la seal
seno.

- Luego mediante un lazo for y un condicional interno, se program de manera que


si la amplitud de la seal seno es positiva se quede con su valor original, pero que si
es negativa, adopte el valor de la seal diente de sierra.

- Para que lo anterior funcione, los dos vectores de amplitud, tanto de la seal seno
como la seal dientes de sierra deben tener el mismo tamao.

El script en Matlab que funciona acorde a lo detallado anteriormente es:

clc;clear all; close all;

fo=100;
fmax=20*fo;% ya que no se conoce la fmax
Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

%SEAL SENO
y=sin(2*pi*fo*t); %eje de amplitudes

%SENAL TRIANGULAR 50%-50%


y1=sawtooth(2*pi*(2*fo)*t,0.5); %eje de amplitudes
offset=1; % valor del offset para movilizar la seal en el eje Y
y1=y1+offset;%agregar el offset
y1=y1/2;%divido amplitud para 2

tamano_y=length(y);% obtencion del tamao del vector del eje de


amplitudes

for i=1 : tamano_y


if y(i)>=0
y(i)=y(i); % si la amplitud de la senoidal es positiva queda
igual
else
y(i)= y1(i); %si la amplitud de la senoidal es negativa la
reemplazo por la triangular
end

i=i+1; % aumento el contador

end

%GRAFICACION
plot(t,y);
ylim([-0.5 1.5]);%poner limites al eje Y
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('SENAL COMBINADA'); %colocar titulo a la grafica

%ESCUCHAR LA SEAL GENERADA


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

sound(y,Fs);

La grfica obtenida es la siguiente:

LA SEAL RECIBIDA EN AUDIO TESTER:

DESDE MATLAB Y RECIBIR EN MATLAB


La forma en cmo se enva y recibe la seal es la misma, a travs de los puertos de micrfono y
audfono respectivamente.

Para enviar el sonido se lo hace a travs del comando: sound(y,Fs);

Pero para captar el sonido recibido a travs del micrfono en Matlab se lo debe hacer a travs
de un comando especial: analoginput. El cual funciona sin errores en Matlab de 32 Bits.
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Pero en nuestro caso solo se cuenta con PCs de 64 bits, por lo cual hubo la necesidad de
buscar una alternativa para captar el audio. Por esa razn empleamos el siguiente script:
clear all;close all;clc;

duracion=10;
fs=44100; %f. muestreo

y=audiorecorder(fs,16,1);%Creacion del objeto de grabacion

msgbox('Empezando Grabacion',' Grabadora '); %Mensaje de informacion,


titulo

recordblocking(y,duracion);%Grabacion del sonido, agregar duracin de


grabacin, y debe ser una variable ya creada

msgbox('Terminando Grabacion',' Grabadora ');%Mensaje de informacion

%Paso los valores del objeto a una seal


senal_grabada=getaudiodata(y, 'single');

%Grabamos y guardamos la seal


audiowrite(uiputfile({'*.wav'},'Guardar como'),senal_grabada,fs);

L=length(senal_grabada); %obtenemos el tamao de la seal

t=linspace(0,duracion,L); %creamos el vector de tiempos del mismo


tamao
plot(t,senal_grabada);grid on; grid minor;
title('GRFICA DE LA SEAL GRABADA');xlabel('Tiempo
[s]');ylabel('Amplitud');

Con el cdigo anterior en la PC receptora escuchamos el sonido, y en la PC transmisora


corremos los distintos scripts que generan el audio de las diferentes seales.

Las grficas de las seales recibidas son:

Rectificador de onda completa


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Seal receptada invertida


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Rectificador de media onda:

Seal receptada:

Seal receptada invertida:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Rectificador de onda completa truncado:

Seal receptada:
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada invertida:

Seal diente de sierra en Matlab:

Seal receptada:
ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Triangular con pendientes 50% y 50%:

Seal receptada:

Triangular con pendientes 70% y 30%:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Dientes de sierra 70% y 30% con parte negativa:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Onda cuadrada monopolar:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Onda rectangular 70 a 30 monopolar


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Onda rectangular 70 a 30 bipolar


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Seal combinada seno y diente de sierra:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Seal receptada:

Seal receptada invertida:


ESCUELA POLITCNICA NACIONAL
PROCESAMIENTO DIGITAL DE SEALES

Anda mungkin juga menyukai