Showing results for 
Search instead for 
Did you mean: 

511 pseudorandom generator

Go to solution

Error in the poly (Wrong tap)

x^9+x^5+1 not x^4


so the pattern is not maximal length

"Should be" isn't "Is" -Jay
Message 11 of 20



I think it's correct, please take a look at message #5 for file: Pseudo Random Test Patterns.pdf 8 KB






You originally had it correct when you referenced to O.153 paper, and the Fireberd 6000A manual said it too:


"63 2^6-1 pseudorandom pattern with a maximum of 5 sequential zeros and 6 sequential ones."


"511 2^9-1 pseudorandom pattern with a maximum of 8 sequential zeros and 9 sequential ones."


"2047 2^11-1 pseudorandom pattern with a maximum of 10 sequential zeros and 11 sequential ones."


I also think your program did it correctly too because it did output 8 squential 0s.  The data pattern I recorded works like this:


I have two modems hooked back to back.  Unit A was connected to the fireberd using synchronous connection while unit B was connected to workstation using asynchronous connection.  The data pattern I posted was recorded from unit B.  When I sent this pattern back from into unit B modem, unit A received then output the data to Fireberd and it was synced with no bit error.  If I modify the pattern for X number of bit error then the Fireberd will show exactly the number of bit error.


Now, what gets me is that data pattern isn't always consistent.  I always get different pattern everytime I key on unit A for 511 or any pseudorandom patterns for that matter.  If I take the sent data from the fireberd then send it back into a modem to next modem then the fireberd will always sync up.  When I contacted Acterna, this is what they say:


"From a receiver point of view it does not really matter. Pseudorandom
patterns sync up from anywhere within the pattern. The shift registers are
seeded with incoming bits and then the next bit expected can be calculated.
It is why they sync very quickly because they can sync from any spot within
the pattern."



And here is how they explained 511:

"All pseudorandom pattern are mathematically calculated from a primitive
polynomial so they are not stored patterns that can be "displayed". I can describe the sequence. A 511 pattern is a 2^9-1 pattern. So it has nine
binary bits that count up excluding a binary all zeroes. So the pattern would be :
000000001  (decimal 1)
000000010  (decimal 2)
000000011  (decimal 3)
000000100  (decimal 4)
000000101  (decimal 5)
000000110  (decimal 6)
000000111  (decimal 7)
000001000  (decimal 😎
000001001  (decimal 9)
000001010  (decimal 10)

and so and so forth until it reachs the
111111111 all ones position. It counts in binary starting at 1 up to the
all ones position and then repeats."



I honestly don't think they explained the 511 pattern correctly, I'm with you on this one too Ben.  I had the same thought as you posted the second Vi attachment minus the initial seed.  The thing is regardless of the seed, 511 pattern will always have a maximum of 511 bit so it will always have to repeat so the Fireberd pattern should always be consistent.  Is this right? Any suggestions to try out?


0 Kudos
Message 12 of 20

@lavalava wrote:



I think it's correct, please take a look at message #5 for file: Pseudo Random Test Patterns.pdf 8 KB



sorry bout that this wikipedia article suggested otherwize and the taps in yous ref and the original post are Q9 XOR Q5 your code taps Q4

"Should be" isn't "Is" -Jay
Message 13 of 20

Thanks, Ben.  I got it to work.  I clicked on the wrong solution too, your second attachment was the actual solution.  All it needed was 5 xor 9 not 4 xor 9.  What I did was hooking the Fireberd (DTE) to a modem (DCE), key it on and have the modem sends out the signal right to my software defined radio.  My demodulator did received it as 511 bits of repeating correct pattern.  I think there were issues in the asynchronous line in my original setup.  Unfortunately, I don't have a synchronous card since we're using x64 system in the lab.  They're prety hard to find with x64 driver so I have to rely on the Fireberd products. 


Anyway, any tip on how to build a BER tester?  Let's say of the 511 bits repeating pattern being sent, my receiver expects 111111111 as the initial bits but somehow received 101011111, obviously this seed is going to messes up the expected output.  Is there a way to make the receiver guesses that it supposed to received 111111111? Then use 111111111 as the starting seed.  In order word, guessing where the current seed should be then sync up from there?

0 Kudos
Message 14 of 20

@lavalava wrote:

Thanks, Ben.  I got it to work.  I clicked on the wrong solution too, your second attachment was the actual solution.  All it needed was 5 xor 9 not 4 xor 9.

Isn't that what I said?????? for two posts???????

"Should be" isn't "Is" -Jay
Message 15 of 20

Thanks, Jeff.   You too.


Any tips on building a BER tool for synching up to 511 pattern that is corrupted?

0 Kudos
Message 16 of 20

Respected sir,



What could be the possible solution to truncate 511 pn sequence to 500?



With regards.

0 Kudos
Message 17 of 20

Why do you keep posting the same question to different threads, it isn't as though different people look at the three threads. Keep your question in the same thread, follow the answers you get there!

Certified LabVIEW Developer

Senior Test Engineer North Shore Technology, Inc.
Currently using LV 2012-LabVIEW 2018, RT8.5

LabVIEW Champion

0 Kudos
Message 18 of 20

Did this pattern work with the fireberd? I'm using the correct one the second one and I simply cannot get it to work.

0 Kudos
Message 19 of 20

Hi James,

I would recommend you post your question in a new forum so your post can get more visibility. See guideline number 3 for the discussion forums for more information (

0 Kudos
Message 20 of 20