Pseudoslumpmässig binär sekvens
En pseudoslumpmässig binär sekvens (PRBS), pseudoslumpmässig binär kod eller pseudoslumpmässig bitström är en binär sekvens som, även om den genereras med en deterministisk algoritm , är svår att förutsäga och uppvisar statistiskt beteende som liknar en verkligt slumpmässig sekvens. PRBS-generatorer används i telekommunikation , till exempel vid analog-till-information konvertering, men också i kryptering , simulering , korrelationsteknik och time-of-flight spektroskopi . Det vanligaste exemplet är den maximala längdsekvensen som genereras av ett (maximalt) linjärt återkopplingsskiftregister (LFSR). Andra exempel är guldsekvenser (används i CDMA och GPS ), Kasami-sekvenser och JPL-sekvenser , alla baserade på LFSR.
Inom telekommunikation är pseudoslumpmässiga binära sekvenser kända som pseudoslumpmässiga bruskoder ( PN- eller PRN-koder ) på grund av deras tillämpning som pseudoslumpmässigt brus .
Detaljer
En binär sekvens (BS) är en sekvens av bitar, dvs.
- för .
En BS består av ettor och nollor.
En BS är en pseudoslumpmässig binär sekvens (PRBS) om dess autokorrelationsfunktion ges av
har bara två värden:
var
kallas arbetscykeln för PRBS, liknande arbetscykeln för en kontinuerlig tidssignal. För en sekvens med maximal längd , där är arbetscykeln 1/2.
En PRBS är 'pseudoslumpmässig', eftersom den, även om den i själva verket är deterministisk, verkar vara slumpmässig på så sätt att värdet på ett a element är oberoende av värdena för någon av de andra element, liknande verkliga slumpmässiga sekvenser.
En PRBS kan sträckas ut till oändligheten genom att upprepa den efter element, men den blir då cyklisk och därmed icke-slumpmässig. Däremot är verkligt slumpmässiga sekvenskällor, såsom sekvenser som genereras av radioaktivt sönderfall eller av vitt brus , oändliga (ingen förutbestämd slut- eller cykelperiod). Men som ett resultat av denna förutsägbarhet kan PRBS-signaler användas som reproducerbara mönster (till exempel signaler som används vid testning av telekommunikationssignalvägar).
Praktiskt genomförande
Pseudoslumpmässiga binära sekvenser kan genereras med hjälp av skiftregister med linjär återkoppling .
Några vanliga sekvensgenererande monopolynom är
- PRBS7 =
- PRBS9 =
- PRBS11 =
- PRBS13 =
- PRBS15 =
- PRBS20 =
- PRBS23 =
- PRBS31 =
Ett exempel på generering av en "PRBS-7"-sekvens kan uttryckas i C som
#include <stdio.h> #include <stdint.h> #include <stdlib.h> int main ( int argc , char * argv []) { uint8_t start = 0x02 ; uint8_t a = start ; int i ; för ( i = 1 ;; i ++ ) { int newbit = ((( a >> 6 ) ^ ( a >> 5 )) & 1 ); a = (( a << 1 ) | nybit ) & 0x7f ; printf ( "%x \n " , a ); if ( a == start ) { printf ( "upprepningsperioden är %d \ n " , i ); bryta ; } } }
I detta speciella fall har "PRBS-7" en upprepningsperiod på 127 värden.
En mer generaliserad kod för alla PRBS-k-sekvenser upp till k=32 med C++-mallar kan hittas på GitHub .
Notation
PRBS k- eller PRBS- k- notationen (såsom "PRBS7" eller "PRBS-7") ger en indikation på sekvensens storlek. är det maximala antalet bitar som finns i sekvensen. K anger storleken på ett unikt dataord i sekvensen . Om du segmenterar de N databitarna i alla möjliga ord med längden k , kommer du att kunna lista alla möjliga kombinationer av 0:or och 1:or för ett k-bitars binärt ord, med undantag för ordet helt 0:or. Till exempel kan PRBS3 = "1011100" genereras från . Om du tar varje sekventiell grupp med tre bitars ord i PRBS3-sekvensen (som lindas runt till början för de sista tre-bitarsorden), hittar du följande 7 ordarrangemang:
0 " 101 1100" → 101 "1 011 100" → 011 "10 111 00" → 111 "101 110 0" → 110 "1011 100 " → 100 " 1 0111 00 " → 1 011 001 00 " → w 010 (kräver inpackning)
Dessa 7 ord är alla de möjliga 3-bitars binära ord som inte är noll, inte i numerisk ordning. Detsamma gäller för alla PRBS k , inte bara PRBS3.
Se även
- Generator av pseudoslumptal
- Guld kod
- Komplementära sekvenser
- Bitfelfrekvenstest
- Pseudoslumpmässigt brus
- Linjär-feedback skiftregister
externa länkar
- OEIS -sekvens A011686 (A binär m-sekvens: expansion av reciprok) -- bitsekvensen för PRBS7 =