Practicas DSP

70
REVISION 1/1 Página 1 de - MANUAL DE PROCEDEMIENTOS DE PRÁCTICAS LABORATORIO Procesamiento Digital de señales CARRERA Ingeniería Electronica SEDE Quito Elaborado por: Ing. Luis Oñate Revisado por: Aprobado por: Fecha de Elaboración 01-10-2013 Fecha de Revisión Número de Resolución Consejo de Carrera: 1. DATOS INFORMATIVOS a. MATERIA / CÁTEDRA RELACIONADA: Procesamiento Digital de señales b. No. DE PRÁCTICA: 1 c. NÚMERO DE ESTUDIANTES POR MÓDULO: 3 d. NOMBRE INSTRUCTOR: e. TIEMPO ESTIMADO: 2 horas 2. DATOS DE LA PRÁCTICA a. TEMA: Muestreador Retenedor b. OBJETIVO GENERAL: Implementar un muestreado y retenedor, que permita comprender la diferencia entre una señal analógica con infinitas muestras y una señal digital con un numero de muestras finito. c. OBJETIVOS ESPECIFICOS Observar la forma de onda de la señal que se obtiene al pasar por un muestreador retenendor a diferentes frecuencias de muestreo Observar el espectro de frecuencia de la señal muestreada a distintas frecuencias.

description

dsp

Transcript of Practicas DSP

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    1. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 1

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    2. DATOS DE LA PRCTICA

    a. TEMA: Muestreador Retenedor

    b. OBJETIVO GENERAL: Implementar un muestreado y retenedor, que permita comprender la

    diferencia entre una seal analgica con infinitas muestras y una seal

    digital con un numero de muestras finito.

    c. OBJETIVOS ESPECIFICOS

    Observar la forma de onda de la seal que se obtiene al pasar por un muestreador retenendor a diferentes frecuencias de muestreo Observar el espectro de frecuencia de la seal muestreada a distintas frecuencias.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO Las seales analgicas tienen un nmero infinito de muestras, los procesadores sean estos computadoras personales, microcontroladores, FPGA, no pueden procesar una seal con un nmero infinito de muestras debido a que se necesitara una memoria infinita para almacenar todas las muestras y lso clculos requeriran una fuente de energa muy grande. EL muestreo resuelve este problema tomando un nmero de muestras finito de una seal analgica que tiene un nmero infinito de muestras en un intervalo de tiempo fijo, el intervalo de muestreo o periodo de muestreo se denota como Ts ( time of sampling) X(T) 0 T 2T 3T 4T 5T 6T 7T 8T Nt Cada muestra de la seal debe mantener su nivel durante un intervalo T de muestreo para que el conversor analgico digital (ADC) pueda tomar el valor de la muestra y convertirlo en un valor digital. Este proceso se conoce como muestro retencin (simple & hold).

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    x(t) 0 T 2T 3T 4T 5T 6T 7T 8T nT En la presente prctica se implementa un muestreador-retenedor, basado en el trnasitor JFET canal N (BS170), el cual e sutilizado como un conmutador, al recibir una seal cuadrada en la compuerta G, si el valor del pulso es 1 lgico dejara pasar la seal que ingresa por el drenaje D, caso contrario no existir seal en el source, para lograr mantener el nivel de la seal se utiliza un capacitor en este caso de 0.1 uF, con el cual se mantiene el nivel de voltaje hasta que el JFET permite el ingreso de otro valor de la seal anloga muestreada, la resitencia de 10 kiloohms es utilizada para proteger el amplificador operacional de la corriente de la seal muestreada, se ha utilizado un circuito seguidor de tensin con amplificador operacional (TL081) con esto se asegura que la seal muestreada pueda ser observada mediante un osciloscopio en la resitencia de 10 kiloohms.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    e. MARCO PROCEDIMENTAL

    1. Implementar en protoboard el siguiente circuito, la seal de entrada es

    Vin = 5 sen(21000t).

    2. Observar la seal de entrada V1 y la seal de salida Vo en el canal 1 y el canal 2 del

    osciloscopio respectivamente para las siguientes frecuencias de muestreo utilizando el

    generador V2 es :

    a. Fs= 1 Khz

    b. Fs= 5 Khz

    c. Fs= 10 Khz

    d. Fs= 20 Khz

    e. Fs = 50 Khz

    3. Observar el espectro de frecuencia de la seal V1 y la seal Vo para todas las frecuencias

    de muestreo del numeral 2. Utilizar el botn math y luego escoger la operacin

    matemtica FFT.

    V1

    5 Vpk 1kHz 0

    Q1

    BS170

    V2

    10V -10V20kHz

    C1

    0.1F

    R1

    10k

    U1

    TL081ACD

    3

    2

    4

    7

    6

    51

    VCC

    15V

    VEE

    -15V

    R2

    10k

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    4. Tomar fotografa de cada seal observada en el punto 2 y 3.

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Seal de entrada

    Seal de salida muestreada a f= 1 KHZ

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de salida muestreada a f= 5 KHZ

    Seal de salida muestreada a f= 10 KHz

    Seal de salida muestreada a f= 20 KHz

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de salida muestreada a f= 50 KHZ

    Espectro de frecuencia seal muestreada a f= 1 khz

    Espectro de frecuencia seal muestreada a f= 5 khz

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Espectro de frecuencia seal muestreada a f= 10 khz

    Espectro de frecuencia seal muestreada a f= 20 khz

    Espectro de frecuencia seal muestreada a f= 50 khz

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    h. PREGUNTAS.

    Que diferencia existe al muestrear las seales de 5Khz, 20Khz y 50Khz?

    Que sucede si se reduce la frecuencia de muestreo a 5Khz? Que funcin realiza el amplificador operacional? Que funcin hace el capacitor en el circuito?

    i. ANEXOS

    j. BIBLIOGRAFA UTILIZADA

    Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    1. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 2

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    2. DATOS DE LA PRCTICA

    a. TEMA: Filtro Antialiasing

    b. OBJETIVO GENERAL: Implementar un filtro antialiasing que pueda ser utilizado a la entrada de un sistema DSP para minimizar los efectos del aliasing por causa del muestreo de la seal analgica.

    c. OBJETIVOS ESPECIFICOS

    Observar la forma de onda de la seal que se obtiene al pasar por un filtro antialiasing a diferentes frecuencias de la seal de entrada Medir los valores de voltaje pico de entrada y salida para distintas frecuencias y con estas mediciones elaborar el diagrama de bode del filtro.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO Las seales analgicas que van a ser convertidas en digitales tiene que ingresar sin ruido provocado por seales de alta frecuecia, para satisfacer el teorema del muestreo se utiliza un filtro antialiasing pasabajos. Se recomienda utilizar un filtro antialiasing pasabajos cuya frecuencia de corte sea mximo la mitad de la frecuencia de muestreo para adquirir la seal y evitar los efectos del aliasing. Al muestrear una seal peridica senoidal se puede producir el efecto que se han tomado un nmero insuficiente de muestras, lo que al momento de recosntruir la seal provoque que se genere una sela peridica senoidal con una frecuencia menor a la de la sela muestreada, creando de esta forma una seal alias de la seal original.

    En la presente prctica se implementa un filtro de primer orden cuya frecuencia de corte es de 1 Kilohertz, la seal de entrada que debe ser aplicada es de 2.5 Vp y 2.5 voltios de offset, se debe medir el voltaje de salida del filtro para las frecuencias: 100,200, 300, 400, 500, 1000, 2000, 3000, 4000, 5000, 10000 y 100000 Hertz, para obtener la seal de salida y posteriormente generar el diagrama de bode. Se utiliza un amplificador operacional TL081 para la implementacin del filtro.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Para determinar la frecuencia del filtro se utiliza la siguiente ecuacin:

    f=1

    2

    Se asume el valor del capacitor en este caso de 100 nanofaradios y con la frecuencia se calcula el valor de la resistencia, utilizar la Resistencia ms cercana que existe en el mercado

    e. MARCO PROCEDIMENTAL

    1. Disear un filtro antialising de primer orden para una frecuencia de 2 Kilohertz, utilizando

    un amplificador TL081.

    2. Mediante el osciloscopio observar en el canal 1la seal del generador senoidal cuyo

    voltaje es 2.5 Vp una frecuencia de 100 Hz.

    3. Conectar la seal del generador a la entrada del filtro y observar la salida en el canal 2.

    4. Repetir el paso 4, para las frecuencias de 200, 300, 400, 500, 1000, 2000, 3000, 4000,

    5000, 10000 y 100000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Frecuencia (Hz) Vin (voltaje de entrada) Vo (voltaje de salida)

    100

    200

    300

    400

    500

    1000

    2000

    3000

    4000

    5000

    10000

    100000

    h. PREGUNTAS

    Disear un filtro antialising de primer orden pasa altos para una

    frecuencia de 2Khz. Cul debe ser el voltaje de salida para una atenuacin de -3db? Qu pasa si se coloca una carga menor a 2 kilo ohmios?

    i. ANEXOS

    j. BIBLIOGRAFA UTILIZADA

    Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    3. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 3

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    4. DATOS DE LA PRCTICA

    a. TEMA: Adquision y reconstruccin de una seal con microcontrolador PIC 18F452

    b. OBJETIVO GENERAL: Implementar un sistema de adquisicin y reconstruccin de la seal con microcntrolador PIC 18F452 .

    c. OBJETIVOS ESPECIFICOS

    Implementar un filtro antialiasing y antiimagen, que permitan adquirir una seal analgica y luego reconstruirla. Implementar un conversor digital anlogo (DAC) tipo R-2R de 10 bits. Implementar el cdigo en el microcontrolador PIC 18f452 que permita adquirir y reconstruir una seal anloga

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO Una de las formas de implementacin de sistema de adquisicin y reconstruccin de una seal es el uso de microcontroladores, en esta prctica se utiliza el mcirocntrolador 18F452, por la velocidad que puede alcanzar. La frecuencia de muestreo es de 1.2 kilohertz, aunque no es una frecuencia de muestreo elevado, sin embargo para aplicaciones como filtrado de seales biomdicas, por ejemplo la seal del electrocardiograma (ECG) se encuentra en un rango entre 60 Hz y 100 Hz, es suficiente esta frecuencia de muestreo. Para su implementacin se debe utilizar un filtro antialiasing a la mitad de la frecuencia de muestreo, por lo cual se implementara un filtro pasabajos de primer orden con amplificador operacional a la frecuencia de 600 Hz. Posteriormente se debe adaptar la seal para que pueda ingresar al microncontrolador, debido a que el canal analgico del mcirocntrolador 18F452 solo acepta voltajes en el rango entre 0 voltios y 5 voltios. A la salida del microcontrolador se implementara una red R-2R y se aadir un filtro anti-imagen

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    e. MARCO PROCEDIMENTAL

    1. Implementar un filtro antialiasing pasa bajo con frecuencia de 4 khz. A cual ingresa la seal

    Vin=2.5sin(2ft)+2.5.

    2. Conectar la salida del filtro con acoplamiento al siguiente circuito con microcontrolador

    MC

    LR

    /VP

    P1

    RA

    0/A

    N0

    2

    RA

    1/A

    N1

    3

    RA

    2/A

    N2

    /VR

    EF

    -4

    RA

    3/A

    N3

    /VR

    EF

    +5

    RA

    4/T

    0C

    KI

    6

    RA

    5/A

    N4

    /SS

    /LV

    DIN

    7

    RE

    0/R

    D/A

    N5

    8

    RE

    1/W

    R/A

    N6

    9

    RE

    2/C

    S/A

    N7

    10

    OS

    C1

    /CL

    KI

    13

    RA

    6/O

    SC

    2/C

    LKO

    14

    RC

    0/T

    1O

    SO

    /T1

    CK

    I15

    RC

    2/C

    CP

    117

    RC

    3/S

    CK

    /SC

    L18

    RD

    0/P

    SP

    019

    RD

    1/P

    SP

    120

    RD

    2/P

    SP

    221

    RD

    3/P

    SP

    322

    RD

    4/P

    SP

    427

    RD

    5/P

    SP

    528

    RD

    6/P

    SP

    629

    RD

    7/P

    SP

    730

    RC

    4/S

    DI/S

    DA

    23

    RC

    5/S

    DO

    24

    RC

    6/T

    X/C

    K25

    RC

    7/R

    X/D

    T26

    RB

    0/IN

    T0

    33

    RB

    1/IN

    T1

    34

    RB

    2/IN

    T2

    35

    RB

    3/C

    CP

    2B36

    RB

    437

    RB

    5/P

    GM

    38

    RB

    6/P

    GC

    39

    RB

    7/P

    GD

    40

    RC

    1/T

    1O

    SI/C

    CP

    2A16

    U1

    PIC

    18

    F4

    52

    R1

    10k

    U1

    (RA

    0/A

    N0)

    R2

    20k

    R3

    20k

    R4

    20k

    R5

    20k

    R6

    20k

    R7

    20k

    R8

    20k

    R9

    20k

    R10

    20k

    R11

    20k

    R12

    10k

    R13

    10k

    R14

    10k

    R15

    10k

    R16

    10k

    R17

    10k

    R18 1

    0k

    R19

    10k

    R20 1

    0k

    R21

    20k

    3 2

    1

    8 4

    U2

    :A

    LM

    358

    N

    R22

    10k

    U2

    :A(V

    +)

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    3. Observar la seal de entrada en el canal 1 y la seal de salida del amplificador operacional

    LM358 ene l canal 2

    4. Implementar un filtro RC a la salida del LM358 y observar la salida en el osciloscopio canal

    2

    5. Incrementar la frecuencia hasta detectar la mxima frecuencia que se puede reconstruir la

    seal, esto ocurrir cundo Vo= 0.707 Vin

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Imagen de la Seal de entrada a 100 Hz

    Imagen de la Seal de salida a 100 Hz A la salida del LM358

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Imagen de seal a la salida del filtro antiimagen RC

    Imagen de la seal de entrada y salida a la mxima frecuencia que puede ser adquirida la seal

    h. PREGUNTAS

    Porque se puede obtener la seal de entrada con un generador? A qu frecuencia se produce el aliasing? Cul es la frecuencia mxima a la que se puede reconstruir la seal

    adecuadamente?

    i. ANEXOS

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    5. Fusibles del proyecto

    Cdigo del programa en Microc

    // Programa ADC 10bits

    // Declaracion de variables

    //

    float x0,y0;

    unsigned int YY;

    //Interupciones

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    void interrupt (void)

    {

    if (intcon.F2)

    {

    TMR0L=135; cambiar a 225

    // Fs=1291.3

    // adquisicion de muestra de 10 bits en x[0]

    x0=(float)(ADC_Read(0)-512.0);

    //

    //

    //Teimpo para el procesamiento

    //recosntruccion de la seal

    YY=(unsigned int) (x0+512);

    PORTC=(YY>>8)&3;

    PORTB=YY&255;

    INTCON.F2=0;

    }

    }

    void main() {

    TRISB=0;

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    PORTB=0;

    TRISC=0;

    PORTC=0;

    //Configuracin interrupcion TIMER0

    INTCON=0b10100000;

    T0CON=0b11000101;

    while(1)

    //Bucle infinito

    {

    //

    }

    }

    a. BIBLIOGRAFA UTILIZADA

    Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    3. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 4

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    4. DATOS DE LA PRCTICA

    a. TEMA: Adquisicin y reconstruccin de seales utilizando un DSPIC

    b. OBJETIVO GENERAL: Implementar un sistema de adquisicin y reconstruccin de la seal con

    microcntrolador DSPIC30F4013.

    c. OBJETIVOS ESPECIFICOS

    Implementar un filtro antialiasing y antiimagen, que permitan adquirir una

    seal analgica y luego reconstruirla.

    Implementar un conversor digital anlogo (DAC) tipo R-2R de 10 bits.

    Implementar el cdigo en el microcontrolador DSPIC30F4013 que permita

    adquirir y reconstruir una seal anloga

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO Una de las formas de implementacin de sistema de adquisicin y reconstruccin de una seal es el uso de microcontrolador DSP, en esta prctica se utiliza el DSPIC30F4013, por la velocidad que puede alcanzar. La frecuencia de muestreo es de 8000 muestras por segundo, aunque no es una frecuencia de muestreo elevado, sin embargo para aplicaciones como filtrado de seales de audio, por ejemplo la seal de la voz que estn entre 300 Hz y 3000 Hz, es suficiente esta frecuencia de muestreo. Para su implementacin se debe utilizar un filtro antialiasing a la mitad de la frecuencia de muestreo, por lo cual se implementara un filtro pasabajos de primer orden con amplificador operacional a la frecuencia de 4000 Hz. Posteriormente se debe adaptar la seal para que pueda ingresar al microncontrolador, debido a que el canal analgico del DSPIC30F4013 solo acepta voltajes en el rango entre 0 voltios y 1 voltios. A la salida del DSPIC se utilizar el conversor digital anlogo I2C MCP4921, con lo cual se lograr una mayor precisin de la seal reconstruida al trabajar con 12 bits

    e. MARCO PROCEDIMENTAL

    1. Implementar un filtro antialiasing con acoplamiento a un microcontrolador para una

    frecuencia de corte de 4000Hz.

    2. Conectar la salida del filtro con acoplamiento al DSPIC como se observa en la figura.

    3. Configurar el dspic para que muestre a 20khz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    4. Observar la seal de entrada en el canal 1 y la seal de salida del DAC MCP4921.

    5. Implementar un filtro RC a la salida del DAC MCP4921 y observar la salida en el

    osciloscopio canal 2.

    6. Incrementar la frecuencia hasta detectar la mxima frecuencia que se puede reconstruir la

    seal, esto ocurrir cundo Vo= 0.707 Vin.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Imagen de la Seal de entrada a 1000 Hz

    Imagen de la Seal de salida a 1000 Hz a la salida del DAC MCP4921.

    Imagen de seal a la salida del filtro antiimagen RC

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Imagen de la seal de entrada y salida a la mxima frecuencia que puede ser adquirida la seal

    h. PREGUNTAS

    Cul es la diferencia entre adquirir datos en 8 bits y 10 bits? A qu frecuencia se produce el aliasing? Cul es la frecuencia mxima a la que se puede reconstruir la seal

    adecuadamente?

    i. ANEXOS

    // This code was generated by filter designer tool by mikroElektronika

    // Date/Time: 11/01/2014 15:25:37

    // Support info: http://www.mikroe.com

    // Device setup:

    // Device name: P30F4013

    // Device clock: 080.000000 MHz

    // Dev. board: EasydsPic4A

    // Sampling Frequency: 22050 Hz

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    // Filter setup:

    // Filter kind: FIR

    // Filter type: Lowpass filter

    // Filter order: 5

    // Filter window: Rectangular

    // Filter borders:

    // Wpass:1000 Hz

    const unsigned BUFFFER_SIZE = 32;

    const unsigned FILTER_ORDER = 5;

    const unsigned COEFF_B[FILTER_ORDER+1] = {

    0x154E, 0x1685, 0x1724, 0x1724, 0x1685, 0x154E

    };

    sbit loadPin at LATF5_bit; // DAC load pin

    sbit loadPinDir at TRISF5_bit; // DAC load pin

    sbit csPin at LATF4_bit; // DAC CS pin

    sbit csPinDir at TRISF4_bit; // DAC CS pin

    unsigned inext; // Input buffer index

    ydata unsigned input[BUFFFER_SIZE]; // Input buffer, must be in Y data space

    /* This is ADC interrupt handler.

    Analog input is sampled and the value is stored into input buffer.

    Input buffer is then passed through filter.

    Finally, the resulting output sample is sent to DAC.

    */

    void ADC1Int() org IVT_ADDR_ADCINTERRUPT { // ADC interrupt handler

    unsigned CurrentValue;

    input[inext] = ADCBUF0; // Fetch sample

    CurrentValue = FIR_Radix(FILTER_ORDER+1,// Filter order

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    COEFF_B, // b coefficients of the filter

    BUFFFER_SIZE, // Input buffer length

    input, // Input buffer

    inext); // Current sample

    inext = (inext+1) & (BUFFFER_SIZE-1); // inext = (inext + 1) mod BUFFFER_SIZE;

    csPin = 0; // CS enable for DAC

    SPI1BUF = 0x3000 | CurrentValue; // Write CurrentValue to DAC (0x3 is required

    by DAC)

    while (SPITBF_bit) // Wait for SPI module to finish write operation

    asm nop;

    loadPin = 0; // Load data in DAC

    Delay_us(2);

    loadPin = 1;

    csPin = 1; // CS disable for DAC

    ADIF_bit = 0; // Clear AD1IF

    }//~

    /* This is Timer1 interrupt handler.

    It is used to start ADC at periodic intervals.

    */

    void Timer1Int() org IVT_ADDR_T1INTERRUPT { // Timer1 interrupt handler

    if (DONE_bit){ // If ADC is not busy

    SAMP_bit = 1; // Start new sample

    }

    LATD = PORTD ^ 0xFFFF; // You can put oscilloscope on PORTD

    // to measure sampling frequency

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    T1IF_bit = 0;

    }//~

    /* The main program starts here.

    Firstly, hardware peripherals are initialized and then

    the program goes to an infinite loop, waiting for interrupts. */

    void main() {

    TRISD = 0;

    // DAC setup

    loadPinDir = 0; // LOAD pin

    csPinDir = 0; // CS pin

    csPin = 1; // Set CS to inactive

    loadPin = 1; // Set LOAD to inactive

    // SPI setup

    SPI1_Init_Advanced(_SPI_MASTER, _SPI_16_BIT, _SPI_PRESCALE_SEC_1,

    _SPI_PRESCALE_PRI_1,

    _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH,

    _SPI_ACTIVE_2_IDLE);

    inext = 0; // Initialize buffer index

    Vector_Set(input, BUFFFER_SIZE, 0); // Clear input buffer

    TRISB = 0xFFFF; // Use PORTB for input signal

    ADCON1 = 0x00E2; // Auto-stop sampling, unsigned integer out

    ADCON2 = 0x0000;

    ADCON3 = 0x021A; // Sampling time= 3*Tad, minimum Tad selected

    ADPCFG = 0x0000; // Configure PORTB as ADC input port

    ADCHS = 0x000A; // Sample input on RB10

    ADCSSL = 0; // No input scan

    ADPCFG = 0x0000; // Configure PORTB as analog ADC input port

    // Interrupts setup

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    IFS0 = 0; // Clear interrupt flags

    IFS1 = 0; // Clear interrupt flags

    IFS2 = 0; // Clear interrupt flags

    NSTDIS_bit = 1; // Nested interrupts DISABLED

    INTCON2 = 0; // Other interrupt settings

    T1IE_bit = 1; // Timer1 and

    ADIE_bit = 1; // ADC interrupts ENABLED

    T1IP0_bit = 1; // Timer1 interrupt priority level = 1

    ADIP1_bit = 1; // ADC interrupt priority level = 1

    PR1 = 0x038B; // Sampling ~= 80 kHz. The value of 250 is calculated for

    80MHz clock.

    TON_bit = 1; // Start Timer1, internal clock FCY, prescaler 1:1

    ADON_bit = 1; // ADC On

    SAMP_bit = 1; // Start Sampling

    while (1); // Infinite loop,

    // wait for interrupts

    }//~!

    j. BIBLIOGRAFA UTILIZADA Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    5. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 5

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    6. DATOS DE LA PRCTICA

    a. TEMA: Transformada rpida de Fourier.

    b. OBJETIVO GENERAL: Implementar la transformada rpida de Fourier mediante el DSPIC30F4013.

    c. OBJETIVOS ESPECIFICOS

    Adquirir una seal con el DSPIC30F4013 en el rango de las frecuencias de voz. Observar en una GLCD la amplitud del espectro de frecuencia de la seal adquirida.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO

    La transformada rpida de Fourier (FFT) es un algoritmo que permite obtener la transformada discreta de Fourier (DFT) de una secuencia muestreada, que se ha obtenido de una seal analgica peridica. Por facilidad se analiza seales peridicas, por tanto este algoritmo no utiliza ventanas para evitar el manchado espectral. Dado que los componentes de la FFT son nmeros complejos, para determinar la amplitud del espectro de la seal es necesario determinar el valor absoluto de los coeficientes complejos adems que estos deben ser divididos para el nmero de muestras que toma el microcontrolador DSPIC30F4013. En la figura se puede observar una seal en el dominio del tiempo y la misma seal en el dominio de la frecuencia V A t f En la presente prctica se toma una seal analgica sinodal de frecuencia 1 KHz, esta es adquirida y procesada por el microcontrolador DSPIC30F4013 para obtener la FFT de la seal y posteriormente la amplitud del espectro, esta amplitud es graficad en un GLCD donde adems se puede observar al frecuencia de las seal anlizada, esta prctica permite analizar seales de voz, incrementando el cristal del DSPIC se puede analizar la amplitud del espectro de seales de audio, con lo cual se comprueba la facilidad de implementar con los DSPIC un analizador de espectros en un rango de seales de voz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    e. MARCO PROCEDIMENTAL

    1. Implementar el siguiente circuito

    2. Mediante el generador se seales generar una onda triangular a la

    frecuencia de 1KHz y observar la seal en el osciloscopio. 3. Conectar el generador de seales al DSPIC30F4013 y observar la

    amplitud del espectro de frecuencia y la frecuencia de la seal en el GLCD.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Seal de entrada

    Seal de salida que se observa en el GLCD.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    h. PREGUNTAS

    Qu diferencia hay entre una transformada de Fourier senoidal y triangular?

    Explique cmo grafica las frecuencias el GLCD? Grafique la seal cuya magnitud de frecuencia tenga un pico en 0 hz.

    i. ANEXOS

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    program FFT_123

    dim Samples as word[256] absolute $0C00 ' Y data space for P30F4013- required by FFT routine

    Ver la hojas de datos de nuestro DSPIC y vemos los Y limites espacios de memoria

    freq as word ' Variables Auxiliares

    txt as string[5]

    Written as word[64]

    Inicializacin del conversor AD

    sub procedure InitAdc

    ADPCFG = 0x00FF ' PORTB es la entrada anloga

    ADCHS = 8 ' Conectar RBxx/Anxx como entrada CH8. RB8 es el pin de la entrada

    ADCSSL = 0 '

    Universidad Politcnica Salesiana

    12

    ADCON3 = $1F3F ' sample time = 31 Tad.

    ADCON2 = 0

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    ADCON1 = $83E0 ' activar el ADC

    TRISB.8 = 1 ' RB8 como pin de entrada AD

    end sub

    'Inicializar el GLCD para el programador EasydsPIC4

    sub procedure InitGlcd

    Glcd_Init_EasydsPIC4()

    Glcd_Set_Font(@FontSystem5x8, 5, 8, 32)

    Glcd_Fill(0xAA) ' Show stripes on GLCD to signalize startup

    Delay_ms(500) ' Retardo

    Glcd_Fill(0x00) ' Borrar la pantalla

    end sub

    ' Iniciar Main

    sub procedure MainInit

    InitAdc

    InitGlcd

    Vector_Set(Written, 64, $FFFF) ' Llenar "Written" con $FFFF

    Glcd_Write_Text(" Hz", 100, 0, 1)

    end sub

    Funcin auxiliar para convertir 1.15 en punto base de tipo float (necesita para sacar la raiz

    cuadrada).

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    sub function Fract2Float(dim input_ as integer) as float

    if (input_ < 0) then

    input_ = - input_

    end if

    result = input_/32768.

    end sub

    ' Datos de salida de la sub rutina . estos datos de la sub rutina sern dibujados en el GLCD.

    'GLCD coordina el sistema y empieza en la esquina superior izquierda, Por tanto

    'el dibujo de la lnea tuvo que ser modificada a fin de lograr

    ' un espectro visible en la pantalla

    'Muestra en ese momento contiene DFT de la seal en la manera Re, Im, Re, Im...

    sub procedure WriteData

    dim Re, Im, tmpw,

    j, k, l, max as word

    Rer, Imr, tmpR as float

    j = 0 ' Si desea omitir la componente DC luego hacer j> = 1

    k = 0

    max = 0

    freq = 0 ' Resetear la corriente mxima . Frecuencia para una nueva lectura

    while k

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Re = Samples[j] ' Parte real de la muestra de la TF

    inc(j)

    Im = Samples[j] ' Parte imaginaria de la m uestra de la TF

    inc(j)

    Rer = Fract2Float(Re) ' convertir a IEEE punto flotante

    Imr = Fract2Float(Im) ' convertir a IEEE punto flotante

    tmpR = Rer * Rer ' Re^2

    Rer = tmpR

    tmpR = Imr * Imr ' Im^2

    Imr = tmpR

    tmpR = sqrt(Rer + Imr) ' Amplitud de la corriente de la muestra de la TF

    Rer = tmpR*256. ' DFT is scaled down by 1/N, we need to

    ' tomarlo de Nuevo a fin de tener componentes visibles

    ' en el GLCD

    Re = Rer

    if Re > 63 then

    if k = 0 then

    Re = 0

    else

    Re = Written[k-1] ' k = 0? tener cuidado con los saltos

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    end if

    end if

    if Re > max then ' Encuentra la maxima amplitud

    max = Re

    freq = k ' Esta debe ser la frecuencia central de la seal

    end if

    tmpw = Written[k]

    if tmpw Re then ' Dibuja solo las componentes que son cambiadas

    l = 64 - tmpw ' 64 lneas en el GLCD en el eje Y

    while l

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    inc(k) 'Mueve la corriente la coordenada X

    inc(k) ' Dibuja en cada segundo la coordenada X

    wend

    ' Escribe la frecuencia mxima de la muestra

    freq = freq * 100

    WordToStr(freq, txt)

    Glcd_Write_Text(txt, 70, 0, 1)

    end sub

    ' Toma la muestra de corriente

    sub function ReadAdc as word

    ADCON1.1 = 1 ' Inicia el conversor AD

    while ADCON1.0 = 0 ' Espera hasta que termine el conversor AD

    nop

    wend

    result = ADCBUF0 ' Obtiene el valor del ADC

    end sub

    'llena las muestras con muestras de entrada in la manera Re, Im, Re, Im... donde Im = 0

    sub procedure SampleInput

    dim i as integer

    i =0

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    while i

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    WriteData

    wend

    end.

    j. BIBLIOGRAFA UTILIZADA Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    7. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 6

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    8. DATOS DE LA PRCTICA

    a. TEMA: Filtro de respuesta de pulso infinito (FIR).

    b. OBJETIVO GENERAL: Implementar un filtro FIR con un DSPIC30F4013.

    c. OBJETIVOS ESPECIFICOS

    Observar la forma de onda de la seal que se obtiene al pasar por un filtro FIR pasa bajos.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. MARCO TERICO Los filtros de respuesta de impulso finita (FIR), es un filtro digital que tiene un numero finito de trminos no nulos, este filtro puede ser pasaaltos, pasabajos, pasabanda o rechazabanda, es muy utilizado por su respuesta de fase lineal en aplicaciones de audio. La tcnica utilizada en esta prctica es de la ventana, en especficos e escoge pro su mejor respuesta de frecuencia y fase la ventana de haming, con la cual se obtien una filtro con excelente respuesta y pocos lobulos en la zona rechazabanda del filtro. La ecuacin del filtro FIR es:

    () = (). ( )

    1

    =0

    Donde N son los coeficientes del filtro, donde lso trminos bK= h(k), es decir los coeficientes del filtro corresponden a la respuesta impulso. La respuesta impulso de un filtro ideal pasabajo bien dada por

    ( )

    n0

    H(n)=

    n=0

    El DSPIC calculara los coeficientes del filtro los multiplicara por los coeficientes de la ventana y los aplicara a las muestras de la seal adquirida, si la frecuencia es inferior a 1000 Hz la seal de salida ser idntica a la de entrada, posteriormente a la frecuencia de corte de la seal de salida se ira atenaundo ecitando el paso de frecuencias mayores a 100 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    e. MARCO PROCEDIMENTAL 1. Implementar un filtro antialliansing pasa bajos a una frecuencia de

    5KHz. 2. Con el generador de seales generar una seal entre 0 y 1 voltios de

    tipo senoidal. 3. Implementar el siguiente circuito con DSPIC30F4013

    4. Implementar un filtro RC a la salida del DAC MCP4921. 5. Observar la seal de entrada y de salida del filtro para las frecuencias de

    100 Hz, 200 Hz, 300 Hz, 400 Hz, 1000 Hz, 2000 Hz, 3000 Hz, 4000 Hz, 5000 Hz y 10000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    f. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE) Osciloscopio, generador y fuente DC.

    g. REGISTRO DE RESULTADOS

    Seal de entrada y salida a frecuencia de 100 Hz.

    Seal de entrada y salida a frecuencia de 200 Hz.

    Seal de entrada y salida a frecuencia de 300 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 400 Hz.

    Seal de entrada y salida a frecuencia de 1000 Hz.

    Seal de entrada y salida a frecuencia de 2000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 3000 Hz.

    Seal de entrada y salida a frecuencia de 4000 Hz.

    Seal de entrada y salida a frecuencia de 5000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 10000 Hz.

    h. PREGUNTAS

    Hasta que frecuencia funcionaria el filtro pasa bajo? Que pasa con la respuesta de frecuenta cambiando el orden del filtro? Qu pasa si la ventana es rectangular?

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    i. ANEXOS

    ' This code was generated by filter designer tool by mikroElektronika ' Date/Time: 10/2/2014 12:32:05 ' Support info: http://www.mikroe.com ' Device setup: ' Device name: P30F4013

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    ' Device clock: 080.000000 MHz ' Dev. board: EasydsPic4A ' Sampling Frequency: 22050 Hz ' Filter setup: ' Filter kind: FIR ' Filter type: Lowpass filter ' Filter order: 6 ' Filter window: Hamming ' Filter borders: ' Wpass:1000 Hz program FIR_Test const BUFFFER_SIZE = 32 const FILTER_ORDER = 6 const COEFF_B as word [FILTER_ORDER+1] = ( 0x01A4, 0x06D1, 0x11A3, 0x1738, 0x11A3, 0x06D1, 0x01A4) dim loadPin as sbit at LATF1_bit ' DAC load pin loadPinDir as sbit at TRISF1_bit ' DAC load pin csPin as sbit at LATF0_bit ' DAC CS pin csPinDir as sbit at TRISF0_bit ' DAC CS pin inext as word ' Input buffer index input_ as word[BUFFFER_SIZE] ydata ' Input buffer '* ' This is ADC interrupt handler. ' Analog input is sampled and the value is stored into input buffer. ' Input buffer is then passed through filter. ' Finally, the resulting output sample is sent to DAC. '* sub procedure ADC1Int() org IVT_ADDR_ADCINTERRUPT ' ADC interrupt handler

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    dim CurrentValue as word input_[inext] = ADCBUF0 ' Fetch sample CurrentValue = FIR_Radix(FILTER_ORDER+1, ' Filter order word(@COEFF_B),' B coefficients of the filter BUFFFER_SIZE, ' Input buffer length word(@input_), ' Input buffer inext) ' Current sample ' CurrentValue = ADCBUF0 ' un-comment this to asub procedure filtering (test SPI/DAC) ' CurrentValue = 2048 ' approx. mid-range of DAC. inext = (inext+1) and (BUFFFER_SIZE-1) ' inext = (inext + 1) mod BUFFFER_SIZE csPin = 0 ' CS enable for DAC SPI1BUF = 0x3000 or CurrentValue ' Write CurrentValue to DAC (0x3 is required by DAC) while (SPITBF_bit) ' Wait for SPI module to finish write operation nop wend loadPin = 0 ' Load data in DAC Delay_us(2) loadPin = 1 csPin = 1 ' CS disable for DAC ADIF_bit = 0 ' Clear AD1IF end sub '* ' This is Timer1 interrupt handler. ' It is used to start ADC at periodic intervals.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    '* sub procedure Timer1Int() org IVT_ADDR_T1INTERRUPT ' Timer1 interrupt handler if (DONE_bit)then ' If ADC is not busy SAMP_bit = 1 ' Start new sample end if LATD = PORTD xor 0xFFFF ' You can put oscilloscope on PORTD ' to measure sampling frequency T1IF_bit = 0 end sub '* ' The main program starts here. ' Firstly, hardware peripherals are initialized and then ' the program goes to an infinite loop, waiting for interrupts. '* main: TRISD = 0 ' DAC setup loadPinDir = 0 ' LOAD pin csPinDir = 0 ' CS pin csPin = 1 ' Set CS to inactive loadPin = 1 ' Set LOAD to inactive ' SPI setup SPI1_Init_Advanced(_SPI_MASTER, _SPI_16_BIT, _SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_1, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE) inext = 0 ' Initialize buffer index Vector_Set(input_, BUFFFER_SIZE, 0) ' Clear input buffer '--- ADC setup TRISB = 0xFFFF ' Use PORTB for input signal

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    ADCON1 = 0x00E2 ' Auto-stop sampling, unsigned integer out ADCON2 = 0x0000 ADCON3 = 0x021A ' Sampling time= 3*Tad, minimum Tad selected ADPCFG = 0x0000 ' Configure PORTB as ADC input port ADCHS = 0x000A ' Sample input on RB10 ADCSSL = 0 ' No input scan ADPCFG = 0x0000 ' Configure PORTB as analog ADC input port ' Interrupts setup IFS0 = 0 ' Clear interrupt flags IFS1 = 0 ' Clear interrupt flags IFS2 = 0 ' Clear interrupt flags NSTDIS_bit = 1 ' Nested interrupts DISABLED INTCON2 = 0 ' Other interrupt settings T1IE_bit = 1 ' Timer1 and ADIE_bit = 1 ' ADC interrupts ENABLED T1IP0_bit = 1 ' Timer1 interrupt priority level = 1 ADIP1_bit = 1 ' ADC interrupt priority level = 1 PR1 = 0x038B ' Sampling ~= 80 kHz. The value of 250 is calculated for 80MHz clock. TON_bit = 1 ' Start Timer1, internal clock FCY, prescaler 1as1 ADON_bit = 1 ' ADC On SAMP_bit = 1 ' Start Sampling while TRUE nop ' Infinite loop, wend ' wait for interrupts end.

    j. BIBLIOGRAFA UTILIZADA Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    1. DATOS INFORMATIVOS

    a. MATERIA / CTEDRA RELACIONADA: Procesamiento Digital de seales

    b. No. DE PRCTICA: 7

    c. NMERO DE ESTUDIANTES POR MDULO: 3

    d. NOMBRE INSTRUCTOR:

    e. TIEMPO ESTIMADO: 2 horas

    2. DATOS DE LA PRCTICA

    a. TEMA: Filtro de respuesta de pulso infinito (IIR).

    b. OBJETIVO GENERAL: Implementar un filtro IIR con un DSPIC30F4013.

    a. OBJETIVOS ESPECIFICOS

    Observar la forma de onda de la seal que se obtiene al pasar por un filtro iIR pasa bajos.

    b. MARCO TERICO

    Los filtros de respuesta de impulso infinita (IIR), es un filtro digital que tiene un numero finito de trminos no nulos, es decir la seal no lelga la reposo nunca, este filtro puede ser pasaaltos, pasabajos, pasabanda o rechazabanda, existen algunos tipos de filtros IIR como: Butterworth, Chebyshev. La tcnica utilizada en esta prctica es aquella que en base a un filtro anlogo se lo disea, se procede a aplicarle a la funcin de trasferencia

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    anloga la transformada bilineal obteniendo la funcin de trnasferencia digital y posteriormente obteniendo los coeficientes. La ecuacin del filtro IIR es:

    () = .

    =0

    =0

    Un filtro IIR cumple con las especificaciones de diseo mucho ms fcil que un filtro FIR utilizando un menor nmero de coeficientes, sin embargo la respuesta de fase no es lineal. Uno de los mtodos ms sencillos es disear un filtro IIR es disear un filtro anlogo para las especificaciones solicitadas luego aplicar la transformada bilineal y obtener el filtro digital requerido. La ecuacin de la transformada bilineal:

    =1 + /2

    1 /2

    El DSPIC calculara los coeficientes del filtro los multiplicara por los coeficientes de la ventana y los aplicara a las muestras de la seal adquirida, si la frecuencia es inferior a 1000 Hz la seal de salida ser idntica a la de entrada, posteriormente a la frecuencia de corte de la seal de salida se ira atenuando el paso de frecuencias mayores a 1000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    c. MARCO PROCEDIMENTAL 1. Implementar un filtro antialliansing pasa bajos a una frecuencia de

    1KHz. 2. Con el generador de seales generar una seal entre 0 y 1 voltios de

    tipo senoidal. 3. Implementar el siguiente circuito con DSPIC30F4013

    4. Implementar un filtro RC a la salida del DAC MCP4921. 5. Observar la seal de entrada y de salida del filtro para las frecuencias de

    100 Hz, 200 Hz, 300 Hz, 400 Hz, 1000 Hz, 2000 Hz, 3000 Hz, 4000 Hz, 5000 Hz y 10000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    d. RECURSOS UTILIZADOS (EQUIPOS, ACCESORIOS Y MATERIAL CONSUMIBLE)

    Osciloscopio, generador y fuente DC.

    e. REGISTRO DE RESULTADOS

    Seal de entrada y salida a frecuencia de 100 Hz.

    Seal de entrada y salida a frecuencia de 200 Hz.

    Seal de entrada y salida a frecuencia de 300 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 400 Hz.

    Seal de entrada y salida a frecuencia de 1000 Hz.

    Seal de entrada y salida a frecuencia de 2000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 3000 Hz.

    Seal de entrada y salida a frecuencia de 4000 Hz.

    Seal de entrada y salida a frecuencia de 5000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    Seal de entrada y salida a frecuencia de 10000 Hz.

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    f. ANEXOS

    ' This code was generated by filter designer tool by mikroElektronika ' Date/Time: 10/2/2014 12:45:01 ' Support info: http://www.mikroe.com

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    ' Device setup: ' Device name: P30F4013 ' Device clock: 080.000000 MHz ' Sampling Frequency: 22050 Hz ' Filter setup: ' Filter kind: IIR ' Filter type: Lowpass filter ' Filter order: 6 ' Design method: Butterworth program IIR_Test const BUFFER_SIZE = 8 FILTER_ORDER = 6 COEFF_B as word[FILTER_ORDER+1]=(0x0351, 0x13E6, 0x31BF, 0x4253, 0x31BF, 0x13E6, 0x0351) COEFF_A as word[FILTER_ORDER+1]=(0x4000, 0x97AB, 0x7184, 0xBBD5, 0x1AB9, 0xFA3B, 0x0090) SCALE_B = 2 SCALE_A = -1 dim loadPin as sbit at LATF1_bit ' DAC load pin loadPinDir as sbit at TRISF1_bit ' DAC load pin csPin as sbit at LATF0_bit ' DAC CS pin csPinDir as sbit at TRISF0_bit ' DAC CS pin inext as word ' Input buffer index input_ as word[BUFFER_SIZE] ydata ' Input buffer, has to be in Y data space due to DSP engine requirements output as word[BUFFER_SIZE] ydata ' Output buffer, has to be in Y data space due to DSP engine requirements

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    ' This is ADC interrupt handler. ' Analog input is sampled and the value is stored into input buffer. ' Input buffer is then passed through filter. ' Finally, the resulting output sample is sent to DAC. sub procedure ADC1Int() org IVT_ADDR_ADCINTERRUPT ' ADC interrupt handler dim CurrentValue as word input_[inext] = ADCBUF0 ' Fetch sample CurrentValue = IIR_Radix( SCALE_B, ' SCALE_A, ' @COEFF_B, ' b coefficients of the filter @COEFF_A, ' a coefficients of the filter FILTER_ORDER+1, ' Filter order + 1 @input_, ' Input buffer BUFFER_SIZE, ' Input buffer length @output, ' Input buffer inext) ' Current sample output[inext] = CurrentValue inext = (inext+1) and (BUFFER_SIZE-1) ' inext = (inext + 1) mod BUFFER_SIZE csPin = 0 ' CS enable for DAC SPI1BUF = 0x3000 or CurrentValue ' Write CurrentValue to DAC ($3 is required by DAC) while (SPITBF_bit) ' Wait for SPI module to finish write operation nop ' Wait for SPI module to finish write wend loadPin = 0 ' Load data in DAC delay_us(2) loadPin = 1

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    csPin = 1 ' CS disable for DAC ADIF_bit = 0 ' Clear AD1IF end sub ' This is Timer1 interrupt handler. ' It is used to start ADC at ' periodic intervals. sub procedure Timer1Int() org IVT_ADDR_T1INTERRUPT ' Timer1 interrupt handler if (DONE_bit) then ' If ADC is not busy SAMP_bit = 1 ' Start new sample end if LATD = PORTD xor 0xFFFF ' You can put oscilloscope on PORTD to measure sampling frequency T1IF_bit = 0 ' Clear TMR1IF end sub ' Main program starts here. ' Firstly, hardware peripherals are initialized and then ' the program goes to an infinite loop, waiting for interrupts. main: TRISD = 0 ' DAC setup loadPinDir = 0 ' LOAD pin csPinDir = 0 ' CS pin csPin = 1 ' Set CS to inactive loadPin = 1 ' Set LOAD to inactive ' SPI setup SPI1_Init_Advanced(_SPI_MASTER, _SPI_16_BIT,_SPI_PRESCALE_SEC_1, _SPI_PRESCALE_PRI_1, _SPI_SS_DISABLE, _SPI_DATA_SAMPLE_MIDDLE, _SPI_CLK_IDLE_HIGH, _SPI_ACTIVE_2_IDLE)

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    inext = 0 ' Initialize buffer index Vector_Set(input_, BUFFER_SIZE, 0) ' Clear input buffer Vector_Set(output, BUFFER_SIZE, 0) ' Clear output buffer TRISB = 0xFFFF ' Use PORTB for input signal ADCON1 = 0x00E2 ' Auto-stop sampling, unsigned integer out ADCON2 = 0x0000 ADCON3 = 0x021A ' Sampling time= 3*Tad, minimum Tad selected ADPCFG = 0x0000 ' Configure PORTB as ADC input port ADCHS = 0x000A ' Sample input on RB10 ADCSSL = 0 ' No input scan ADPCFG = 0x0000 ' Configure PORTB as analog ADC input port ' Interrupts setup IFS0 = 0 ' Clear interrupt flags IFS1 = 0 ' Clear interrupt flags IFS2 = 0 ' Clear interrupt flags NSTDIS_bit = 1 ' Nested interrupts DISABLED INTCON2 = 0 T1IE_bit = 1 ' Timer1 and ADIE_bit = 1 ' ADC interrupts ENABLED T1IP0_bit = 1 ' Timer1 interrupt priority level = 1 ADIP1_bit = 1 ' ADC interrupt priority level = 1 ' Timer1 setup PR1 = 0x038B ' Sampling ~= 22050 kHz. Value of PR1 is dependent on clock TON_bit = 1 ' Timer1 ON, internal clock FCY, prescaler 1as1 ADON_bit = 1 ' ADC On SAMP_bit = 1 ' Start Sampling while (TRUE) ' Infinite loop, nop ' wait for interrupts wend

  • REVISION 1/1 Pgina 1 de -

    MANUAL DE PROCEDEMIENTOS DE PRCTICAS

    LABORATORIO Procesamiento Digital de seales

    CARRERA Ingeniera Electronica

    SEDE Quito

    Elaborado por: Ing. Luis Oate

    Revisado por:

    Aprobado por:

    Fecha de Elaboracin 01-10-2013

    Fecha de Revisin Nmero de Resolucin Consejo de Carrera:

    end. g. PREGUNTAS

    Qu diferencia hay entre un filtro FIR y filtro IIR? Que diferencia hay en utilizar butterworth y chebyshev?

    h. BIBLIOGRAFA UTILIZADA

    Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.