Professional Documents
Culture Documents
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
Pgina 1 de -
REVISION 1/1
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)
2T
3T
4T
5T
6T
7T
8T
Nt
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
Pgina 1 de -
REVISION 1/1
x(t)
2T
3T
4T
5T
6T
7T
8T
nT
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
Pgina 1 de -
REVISION 1/1
e. MARCO PROCEDIMENTAL
1. Implementar en protoboard el siguiente circuito, la seal de entrada es
Vin = 5 sen(21000t).
VCC
15V
Q1
BS170
R1
10k
C1
0.1F
V1
5 Vpk
1kHz
0
V2
U1
3
6
2
TL081ACD
10V -10V
20kHz
VEE
-15V
Fs= 1 Khz
Fs= 5 Khz
Fs= 10 Khz
Fs= 20 Khz
Fs = 50 Khz
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
R2
10k
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
Pgina 1 de -
REVISION 1/1
Vo (voltaje de salida)
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
U1(RA0/AN0)
10k
20k
R21
R13
10k
20k
20k
R12
R3
R2
10k
R1
10k
R14
20k
R4
20k
R5
10k
R15
20k
R6
10k
R16
33
34
35
36
37
38
39
40
2
3
4
5
6
7
14
20k
R7
10k
R17
PIC18F452
20k
R8
8
9
10
19
20
21
22
27
28
29
30
15
16
17
18
23
24
25
26
20k
R9
10k
R18
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2A
RC2/CCP1
RA0/AN0
RC3/SCK/SCL
RA1/AN1
RC4/SDI/SDA
RA2/AN2/VREFRC5/SDO
RA3/AN3/VREF+
RC6/TX/CK
RA4/T0CKI
RC7/RX/DT
RA5/AN4/SS/LVDIN
RA6/OSC2/CLKO
RD0/PSP0
RD1/PSP1
RB0/INT0
RD2/PSP2
RB1/INT1
RD3/PSP3
RB2/INT2
RD4/PSP4
RB3/CCP2B
RD5/PSP5
RB4
RD6/PSP6
RB5/PGM
RD7/PSP7
RB6/PGC
RB7/PGD
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
OSC1/CLKI
MCLR/VPP
U1
10k
R19
20k
R10
LM358N
U2:A
10k
R22
U2:A(V+)
10k
R20
20k
R11
LABORATORIO
CARRERA
SEDE
13
1
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
// 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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
csPin = 1;
ADIF_bit = 0;
}//~
// Clear AD1IF
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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;
ADCON1 = 0x00E2;
ADCON2 = 0x0000;
ADCON3 = 0x021A;
ADPCFG = 0x0000;
ADCHS = 0x000A;
ADCSSL = 0;
ADPCFG = 0x0000;
// Interrupts setup
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
IFS0 = 0;
IFS1 = 0;
IFS2 = 0;
NSTDIS_bit = 1;
INTCON2 = 0;
T1IE_bit = 1;
ADIE_bit = 1;
T1IP0_bit = 1;
ADIP1_bit = 1;
PR1
= 0x038B;
80MHz clock.
TON_bit = 1;
ADON_bit = 1;
SAMP_bit = 1;
while (1);
}//~!
j.
BIBLIOGRAFA UTILIZADA
Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
e. MARCO PROCEDIMENTAL
1. Implementar el siguiente circuito
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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 <= 63 ' Limpiar la lnea del fondo de la pantalla
Glcd_Dot(k, l, 0)
inc(l)
wend
l = 64 - Re ' dibujar la lnea del fondo de la pantalla
while l <= 63
Glcd_Dot(k, l, 1)
inc(l)
wend
Written[k] = Re ' Marca que la muestra de la corriente ha sido dibujada
end if
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
WriteData
wend
end.
j.
BIBLIOGRAFA UTILIZADA
Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
Pgina 1 de -
REVISION 1/1
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
( )
H(n)=
n0
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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?
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
i.
ANEXOS
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
csPin = 1
ADIF_bit = 0
end sub
'*
' This is Timer1 interrupt handler.
' It is used to start ADC at periodic intervals.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
'*
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
ADCON1 = 0x00E2
ADCON2 = 0x0000
ADCON3 = 0x021A
ADPCFG = 0x0000
ADCHS = 0x000A
ADCSSL = 0
ADPCFG = 0x0000
' Interrupts setup
IFS0 = 0
IFS1 = 0
IFS2 = 0
NSTDIS_bit = 1
INTCON2 = 0
T1IE_bit = 1
ADIE_bit = 1
T1IP0_bit = 1
ADIP1_bit = 1
PR1
= 0x038B
80MHz clock.
TON_bit = 1
ADON_bit = 1
SAMP_bit = 1
while TRUE
nop
wend
end.
j.
BIBLIOGRAFA UTILIZADA
Mitra,S (2010).Digital Signal processing , 4/E.McGraw Hill.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
() =
=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.
=
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
f. ANEXOS
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
=2
= -1
dim
loadPin as sbit at LATF1_bit
loadPinDir as sbit at TRISF1_bit
csPin as sbit at LATF0_bit
csPinDir as sbit at TRISF0_bit
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
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
delay_us(2)
loadPin = 1
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
csPin = 1
ADIF_bit = 0
end sub
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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
ADCON1 = 0x00E2
ADCON2 = 0x0000
ADCON3 = 0x021A
ADPCFG = 0x0000
ADCHS = 0x000A
ADCSSL = 0
ADPCFG = 0x0000
' Interrupts setup
IFS0 = 0
IFS1 = 0
IFS2 = 0
NSTDIS_bit = 1
INTCON2 = 0
T1IE_bit = 1
ADIE_bit = 1
T1IP0_bit = 1
ADIP1_bit = 1
' Timer1 setup
PR1
= 0x038B
clock
TON_bit = 1
ADON_bit = 1
SAMP_bit = 1
while (TRUE)
nop
wend
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin
REVISION 1/1
Pgina 1 de -
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.
Elaborado por:
Ing. Luis Oate
Revisado por:
Aprobado por:
Fecha de Elaboracin
01-10-2013
Fecha de Revisin