No soy un experto en el campo, pero no creo que puedas hacer DSSS en software (con este chip). El desensobrado DSSS requiere los valores analógicos de la portadora recibida, ya que suman y restan linealmente con múltiples estaciones que transmiten simultáneamente. Si no puede acceder al nivel analógico del operador recibido, no puede aplicar los cálculos con la tecla para recuperar sus datos. Incluso si su receptor GFSK se satura en 1 o -1, todavía necesita el valor de nivel medio 0 en la recepción como parte de los datos que se utilizarán con su clave para des-difundirlo. (Como un ejemplo donde se puede hacer , eche un vistazo a Radios definidas por software , estos dispositivos pueden muestrear el espectro de ancho completo y, por lo tanto, tener la señal analógica completa en un forma digital, y puede hacer DSSS; muchos receptores GPS se hacen de esta manera)
En cuanto a alguien que te está transmitiendo y bloqueando, si transmiten una potencia alta en un solo canal que no afectará tu flujo de datos de espectro expandido, pero si transmiten espectro expandido a una potencia más alta, simplemente sumará o restará Con su propio transportista y sus datos pueden ser recuperados.
Si transmiten (a cualquier nivel de potencia) y no tienen su clave PN, el despreader esencialmente los ignorará. Voy a demostrar esto a continuación. Pero si el malo usa la potencia de espectro expandido lo suficientemente alta como para sobrecargar su receptor, entonces probablemente se quedará atascado, y de todos modos no se puede hacer mucho al respecto.
Usemos un ejemplo simple ... tenemos un generador de PN que crea el siguiente flujo de bits: 001111000010101101110100001100
y usamos 6 de estos bits del flujo por 1 bit de datos. Los 6 bits se denominan chips para no confundirlos con bits de datos. Así que 1 bit es 6 chips y la tasa de chips es 6x la velocidad de datos. Usaremos los bits como este: 001111 000010 101101 110100 001100
Para enviar la secuencia de datos = {0,1,1,0,1}, se distribuiría con un XOR de los chips del generador de PN:
0 ⊕ 001111 = 110000 = [ 1 1 -1 -1 -1 -1 ] ( bit 0 )
1 ⊕ 000010 = 000010 = [-1 -1 -1 -1 1 -1 ] ( bit 1 )
1 ⊕ 101101 = 101101 = [ 1 -1 1 1 -1 1 ] ( bit 2 )
0 ⊕ 110100 = 001011 = [-1 -1 1 -1 1 1 ] ( bit 3 )
1 ⊕ 001100 = 001100 = [-1 -1 1 1 -1 -1 ] ( bit 4 )
si el malo también transmite una secuencia de propagación de 01010101....
, se enviará así:
[ -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 ... ]
y no importa cómo se alinee con su secuencia, su secuencia puede recuperarse. Su transportista y el transportista del tipo malo agregarán o restarán de forma lineal, los datos se pueden recuperar después de hacer el producto interno y normalizar los valores. Continuando con tu ejemplo:
0: [ 1 1 -1 -1 -1 -1 ] ( your data bit 0 )
+: [ 1 -1 1 -1 1 -1 ] ( the bad guy trying to overwrite you )
=: [ 2 0 0 -2 0 -2 ] ( what your receiver sees )
Si toma lo que ve su receptor y aplica el producto interno con su clave para el bit 0, que es 001111
o [-1 -1 1 1 1 1]
, obtendrá esto:
bit 0 = [ 2 0 0 -2 0 -2 ] * [-1 -1 1 1 1 1] = (-2+0+0-2+0-2) = -6 => -1 => 0
Haré el segundo bit con 2 tipos malos que intentan sobrescribirte:
1: [-1 -1 -1 -1 1 -1 ] ( your data bit 1 )
+: [ 1 -1 1 -1 1 -1 ] ( the bad guy trying to overwrite you )
+: [-1 1 1 -1 -1 1 ] ( second bad guy ! )
=: [-1 -1 1 -3 1 -1 ] ( what your receiver sees )
Nuevamente, tome lo que su receptor ve y aplique el producto interno con la clave para el bit 1, que es 000010
, o [-1 -1 -1 -1 1 -1]
:
bit 1 = [-1 -1 1 -3 1 -1 ] * [-1 -1 -1 -1 1 -1] = (1+1-1+3+1+1) = 6 => 1 => 1
Por lo tanto, el bit \ $ 0 \ $ se recupera como \ $ 0 \ $, el bit \ $ 1 \ $ se recupera como \ $ 1 \ $, incluso con los tipos malos que intentan sobrescribir el flujo de datos. Esta es la esencia del DSSS, y dejaré el resto de los datos como un ejercicio. Es bastante inmune a la interferencia. Sin embargo, para que pueda hacer esto en el software, puede ver que necesita tener acceso a los valores analógicos del nivel de la portadora, como [-2, + 3, 0 ...] y no solo los bits.
Este chip solo da acceso al flujo de bits de GFSK demodulado, que no es suficiente información. Como se señala en los comentarios, se puede hacer en el software si tiene acceso a los datos de ancho de banda completo.