El objetivo del SDR es realizar funciones habituales en el diseño de radioreceptores, como amplificar, filtrar, modular, demodular, etc... vía software con un procesador digital de señales.
En emisores y receptores tradicionales, añadir una nueva funcionalidad exige grandes cambios estructurales en el receptor, pero en SDR sólo hará falta añadir una subrutina.
En emisores y receptores tradicionales, añadir una nueva funcionalidad exige grandes cambios estructurales en el receptor, pero en SDR sólo hará falta añadir una subrutina.
BasicDSP:
Basic DSP es un programa informático que permite experimentar de forma simple con el procesado digital de señales, utilizando conversores A/D, D/A de la propia tarjeta de sonido del PC.
Primeramente, hay que entender que el procesado de señales digitales se lleva a cabo muestra a muestra, no continuamente. El conversor A/D muestrea la señal analogica de entrada, que tiene un cierto voltage, de forma periodica. El ratio de muestreo tiene que ser como mínimo el doble que la frecuencia más alta en la entrada (Nyquist), para que después sea posible recuperar la señal analógica a partir de la muestreada.
Cada medida se llama muestra, y será procesada via software. De forma similar, el conversor D/A del altavoz espera nuevas medidas procesadas periodicamente.
Por ende, el cometido deBasicDSP es realizar continuamente el siguiente bucle;
1) Recibir una señal digital del conversor A/D
2) Modificar la muestra a gusto del usuario
3) Enviar el resultado al conversor D/A
4) Esperar a recibir la siguiente muestra
En BasicDPS; se puede especificar que tipo de modificaciones (operaciones) se le realizarán a cada muestra, mediante unas pocas líneas de código. Otras interacines como la de la tarjeta de sonido, ya las lleva a cabo BasicDSP de forma automática.
Empezando a programar con BasicDSP;
El programa más sencillo a realizar es;
a=in
out=a
Si se escribe en la pantalla del DSP, y se hace correr el programa (click en run), el campo de entrada de texto se volverá verde, indicando que el programa corre sin errores.
Este primero programa, simplemente copia el contenido de la variable in, que contiene la muestra de entrada, en la variable out, que se envía a los altavozes del ordenador. La muestra de entrada se puede leer del micrófono, de un arxivo .WAV, o de un a señal generada localmente (seno, ruido...). Se puede escuchar el los altavozes/cascos la salida.
Si el ruido se escucha muy alto, se puede atenuar mediante;
a=in*0.1
out=a
O también modificarlo a gusto con el slider;
a=in*slider1
out=a
Un filtro paso banda de primer orden, se puede programar de la siguiente forma;
a= a + slider1*(in-a)
out=a
Para programar un oscilador, primero generamos un diente de sierra;
sawtooth = mod1(sawtooth+slider)
out=sawtooth
Lo que hace el programa es que a cada instante de muestra, se suma el valor de la variable slider1 a sawtooth, y cuando supera a 1 lo resta. Si por ejemplo el valor de sawtooth fuese 0.4, la secuencia que seguiria seria la siguiente;
0.0, 0.4, 0.8, 0.2, 0.6, 0.0. En el momento que llega a 1, vuelve a 0. Depende de la frecuencia en que se cogen las muestras obtendremos una frecuencia de oscilación o otras.
Por ejemplo si slider1 = 0.2, la frecuencia sera de samplerate/5.
Para convertir el diente en una senoide, se utiliza la función sin1(),
sawtooth = mod1(sawtooth+slider1)
osc=sin1(sawtooth)
out=osc
Si queremos por ejemplo realizar un oscilador de 10kHz, una posible implementación sería la siguiente;
samplerate=10000
y1=mod1(y1+0.25)
osc=sin1(y1)
out=slider1*osc
Si queremos obtener un mezclador;
samplerate=20000
fosc=5000
fs=20000
y1=mod1(y1+fosc/fs) => Genera senoide de 5kHz
z=sin1(y1)
mix=z*in => Mezclador
out=slider1*mix
Si quisieramos añadir un filtro fir al mezclador;
samplerate=20000
fosc=5000
fs=20000
y1=mod1(y1+fosc/fs)
z=sin1(y1)
mix=z*in
bp=fir(mix,"valores filtro fir")
out=slider1*bp
Si en la entrada tenemos una señal de 10kHz, deberemos mezclarla con 11kHz, para obtener las señales suma 21kHz y resta 1kHz. Luego se utiliza un filtro paso-bajo a 1kHz para obtener la frecuencia de 1kHz deseada.
Ejemplo de receptor con filtro paso-banda;
Cap comentari:
Publica un comentari a l'entrada