From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

511 pseudorandom generator

Solved!
Go to solution

I'm kinda new to pseudorandom generator.  Just wondering how do I generate a 511 pattern based on the V.52 specification:

 

511 (2^9-1) which is a PN 9

 

Primitive Polynomial: x^9+x^4+x^1=0

 

Shift Register Taps: Q9 xor Q5

 

How do I translate the polynomial and shift register taps to Seed or initial input state?  Are there any examples out there I can loook at?

0 Kudos
Message 1 of 20
(7,438 Views)

Hi lavalava,

 

I’m also new to the concept of pseudorandom generation, but, I might be able to help you if I can understand completely what you are trying to do. I understand that pseudorandom generation is related to the generation of “random” numbers that follows a specific sequence, I would be more than happy to  help you with a more detailed information of your algorithm and your specific goal, and we can work in a code that actually works as you expect it to work.

 

I looked at ni.com/code and I found this example, this is for LabVIEW FPGA so I’m not sure if this will work for your application but maybe this could be a start.

 

Regards,

steve.bm
AE | NI
Message 2 of 20
(7,399 Views)

Thanks, Steve.

0 Kudos
Message 3 of 20
(7,379 Views)
Solution
Accepted by topic author lavalava

I don't know what standard you're refering to (v.52) and cannot open Steve link so this may be redondant (and should be validate with the standard). Hope this help.

 

note, i did not find any sequence to validate this and it might need a bit of tweeking.

 

Ben64

Message 4 of 20
(7,370 Views)

Thanks, Ben.  I'm more farmilar with it now.  It turns out, this isn't so bad afterall.  It's actually pretty easy to comprehend.  As a matter of fact, the modulation toolkit even comes with a primitive polynomial driven generator too.  My only issue at this point is trying to figure out the seed or the initial condition of the PN generator.  And that V.52 is based on some ancient commercial specifications that Acterna uses (please take a look at the attachment).  Anyone who uses the Fireberd or any communication analyzer products at the greater level would probably know more about it than I do.  I just use them to run tests but that's about it.  Now, I would like to explore it at a greater level.  I really need to figure out the initial PN sequence or I won't be able to decode the data pattern properly.  Acterna is pretty helpful most of the time, except for this subject.

0 Kudos
Message 5 of 20
(7,360 Views)

V.52 has been superceeded by O.153. Look at paragraph 2.1 the explanation is pretty clear. Attached is the modified version of my vi.

 

Ben64

Download All
Message 6 of 20
(7,342 Views)

Here is the Fireberd 6000A 511 pattern:

 

8963 AB23 2302 8418 72AA 612F 3B51 A8E5 3749 FBC9 CA0C 1853 2CFD 45E3 9AE6 F15D B0B6 1BB4 BE2A 50EA E90E 9C4B 5E57 24CC A1B7 59B8 87FF E07D 7426 48B9 C5F3 D9A8 C4B1 D591 1101 420C 39D5 B097 9D28 D4F2 9BA4 FD64 6506 8C29 96FE A271 4DF3 F82E 58DB 0D5A 5F15 28F5 7407 CE25 AF2B 12E6 D0DB 2CDC C37F F03E 3A13 A4DC E2F9 6C54 E2D8 EAC8 8800 2186 9C6A D8CB 4E14 6AF9 4DD2 7EB2 3203 C614 4B7F D1B8 A679 7C17 ACED 06AD AF0A 947A BA03 E792 D715 0973 E86D 16EE E13F 781F 9D09 526E F17C 362A 716C 7564 4480 1043 4E35 EC65 270A B5FC 2669 3F59 9901 638A A5BF 685C D33C BE0B D676 83D6 5705 4A3D DD81 73C9 EB8A 8439 F436 0BF7 F01F BC8F CE04 29B7 783E 1B95 38B6 3A32 2240 8821 A71A F6B2 1385 5A7E 93B4 9FAC CC80 31C5 D25F 34AE 691E DF05 6BBB 41EB AB02 A59E EEC0 B9E4 7545 C21C 7A9B 857B F80F DE47 6782 945B 3C9F 8D4A 1C5B 1D19 1120 C490 530D 7BD9 8942 2DBF 49DA 4F56 66C0 9862 E92F 1AD7 348F EF82 B5DD A0F5 5581 524F 77E0 5CF2 BA22 610E BDCD C23D FC07 EFA3 3341 CA2D 9ECF 4625 8EAD 8E8C 0810 62C8 A986 BDEC 44A1 96DF 24ED 272B 3360 4CB1 F417 8D6B 9AC7 77C1 DA6E D0FA AA40 A9A7 3B70 2E79 5D91 3087 DE66 E11E FE83 F7D1 9920 E516 CF67 A312 C756 4746 0408 31E4 54C3 5E76 A250 CB6F 92F6 9395 1930 A658 FA8B C635 CDE3 BB60 6D37 687D 55A0 D4D3 1D38 97BC AE48 9843 6FB3 700F FFC1 FBE8 4C90 728B E7B3 5189 63AB 2323 0284 1872 AA61 2F3B 51A8 E537 49FB C9CA 0C18 532C FD45 E39A E6F1 5DB0 B61B B4BE 2A50 EAE9 0E9C 4B5E 5724 CCA1 B759 B887 FFE0 7D74 2648 B9C5 F3D9 A8C4 B1D5 9111 0142 0C39 D5B0 979D 28D4 F29B A4FD 6465 068C 2996 FEA2 714D F3F8 2E58 DB0D 5A5F 1528 F574 07CE 25AF 2B12 E6D0 DB2C DCC3 7FF0 3E3A 13A4 DCE2 F96C 54E2 D8EA C888 0021 869C 6AD8 CB4E 146A F94D D27E B232 03C6 144B 7FD1 B8A6 797C 17AC ED06 ADAF 0A94 7ABA 03E7 92D7 1509 73E8 6D16 EEE1 3F78 1F9D 0952 6EF1 7C36 2A71 6C75 6444 8010 434E 35EC 6527 0AB5 FC26 693F 5999 0163 8AA5 BF68 5CD3 3CBE 0BD6 7683 D657 054A 3DDD 8173 C9EB 8A84 39F4 360B F7F0 1FBC 8FCE 0429 B778 3E1B 9538 B63A 3222 4088 21A7 1AF6 B213 855A 7E93 B49F ACCC 8031 C5D2 5F34 AE69 1EDF 056B BB41 EBAB 02A5 9EEE C0B9 E475 45C2 1C7A 9B85 7BF8 0FDE 4767 8294 5B3C 9F8D 4A1C 5B1D 1911 20C4 9053 0D7B D989 422D BF49 DA4F 5666 C098 62E9 2F1A D734 8FEF 82B5 DDA0 F555 8152 4F77 E05C F2BA 2261 0EBD CDC2 3DFC 07EF A333 41CA 2D9E CF46 258E AD8E 8C08 1062 C8A9 86BD EC44 A196 DF24 ED27 2B33 604C B1F4 178D 6B9A C777 C1DA 6ED0 FAAA 40A9 A73B 702E 795D 9130 87DE 66E1 1EFE 83F7 D199 20E5 16CF 67A3 12C7 5647 4604 0831 E454 C35E 76A2 50CB 6F92 F693 9519 30A6 58FA 8BC6 35CD E3BB 606D 3768 7D55 A0D4 D31D 3897 BCAE 4898 436F B370 0FFF C1FB E84C 9072 8BE7 B351 8963 AB23 2302 8418 72AA 612F 3B51 A8E5 3749 FBC9 CA0C 1853 2CFD 45E3 9AE6 F15D B0B6 1BB4 BE2A 50EA E90E 9C4B 5E57 24CC A1B7 59B8 87FF E07D 7426 48B9 C5F3 D9A8 C4B1 D591 1101 420C 39D5 B097 9D28 D4F2 9BA4 FD64 6506 8C29 96FE A271 4DF3 F82E 58DB 0D5A 5F15 28F5 7407 CE25 AF2B 12E6 D0DB 2CDC C37F F03E 3A13 A4DC E2F9 6C54 E2D8 EAC8 8800 2186 9C6A D8CB 4E14 6AF9 4DD2 7EB2 3203 C614 4B7F D1B8 A679 7C17 ACED 06AD AF0A 947A BA03 E792 D715 0973 E86D 16EE E13F 781F 9D09 526E F17C 362A 716C 7564 4480 1043 4E35 EC65 270A B5FC 2669 3F59 9901 638A A5BF 685C D33C BE0B D676 83D6 5705 4A3D DD81 73C9 EB8A 8439 F436 0BF7 F01F BC8F CE04 29B7 783E 1B95 38B6 3A32 2240 8821 A71A F6B2 1385 5A7E 93B4 9FAC CC80 31C5 D25F 34AE 691E DF05 6BBB 41EB AB02 A59E EEC0 B9E4 7545 C21C 7A9B 857B F80F DE47 6782 945B 3C9F 8D4A 1C5B 1D19 1120 C490 530D 7BD9 8942 2DBF 49DA 4F56 66C0 9862 E92F 1AD7 348F EF82 B5DD A0F5 5581 524F 77E0 5CF2 BA22 610E BDCD C23D FC07 EFA3 3341 CA2D 9ECF 4625 8EAD 8E8C 0810 62C8 A986 BDEC 44A1 96DF 24ED 272B 3360 4CB1 F417 8D6B 9AC7 77C1 DA6E D0FA AA40 A9A7 3B70 2E79 5D91 3087 DE66 E11E FE83 F7D1 9920 E516 CF67 A312 C756 4746 0408 31E4 54C3 5E76 A250 CB6F 92F6 9395 1930 A658 FA8B C635 CDE3 BB60 6D37 687D 55A0 D4D3 1D38 97BC AE48 9843 6FB3 700F FFC1 FBE8 4C90 728B E7B3 5189 63AB 2323 0284 1872 AA61 2F3B 51A8 E537 49FB C9CA 0C18 532C FD45 E39A E6F1 5DB0 B61B B4BE 2A50 EAE9 0E9C 4B5E 5724 CCA1 B759 B887 FFE0 7D74 2648 B9C5 F3D9 A8C4 B1D5 9111 0142 0C39 D5B0 979D 28D4 F29B A4FD 6465 068C 2996 FEA2 714D F3F8 2E58 DB0D 5A5F 1528 F574 07CE 25AF 2B12 E6D0 DB2C DCC3 7FF0 3E3A 13A4 DCE2 F96C 54E2 D8EA C888 0021 869C 6AD8 CB4E 146A F94D D27E B232 03C6 144B 7FD1 B8A6 797C 17AC ED06 ADAF 0A94 7ABA 03E7 92D7 1509 73E8 6D16 EEE1 3F78 1F9D 0952 6EF1 7C36 2A71 6C75 6444 8010 434E 35EC 6527 0AB5 FC26 693F 5999 0163 8AA5 BF68 5CD3 3CBE 0BD6 7683 D657 054A 3DDD 8173 C9EB 8A84 39F4 360B F7F0 1FBC 8FCE 0429 B778 3E1B 9538 B63A 3222 4088 21A7 1AF6 B213 855A 7E93 B49F ACCC 8031 C5D2 5F34 AE69 1EDF 056B BB41 EBAB 02A5 9EEE C0B9 E475 45C2 1C7A 9B85 7BF8 0FDE 4767 8294 5B3C 9F8D 4A1C 5B1D 1911 20C4 9053 0D7B D989 422D BF49 DA4F 5666 C098 62E9 2F1A D734 8FEF 82B5 DDA0 F555 8152 4F77 E05C F2BA 2261 0EBD CDC2 3DFC 07EF A333 41CA 2D9E CF46 258E AD8E 8C08 1062 C8A9 86BD EC44 A196 DF24 ED27 2B33 604C B1F4 178D 6B9A C777 C1DA 6ED0 FAAA 40A9 A73B 702E 795D 9130 87DE 66E1 FF

 

 

This appears to be repeating every 7x511 bytes, then the pattern starts all over again instead of at every 511 like it stated in o.153 spec.

0 Kudos
Message 7 of 20
(7,323 Views)

The sequence you're showing must be wrong, by definition a PN9 sequence has a lenght of 511 bit (not byte). Are you sure your setting the Fireberd correctly?

 

Ben64

0 Kudos
Message 8 of 20
(7,316 Views)

Yes, if you send this pattern back into the fireberd it will show it as no bit error.

0 Kudos
Message 9 of 20
(7,310 Views)

@lavalava wrote:

Yes, if you send this pattern back into the fireberd it will show it as no bit error.



That doesn't mean that the sequence sent was the 511 pattern. It just mean that the received sequece match the sent sequence.

 

The Fireberd manual specify that the 511 pattern has a maximum of 10 sequential zeroes and 11 sequential ones. In the hex data you posted you can find the following sequence 7FF E (end of first line beginning of second one) which contains 14 consecutive ones and 800 2 which contains 13 consecutive zeroes so this definatly cannot be a 511 pattern.

 

Ben64

0 Kudos
Message 10 of 20
(7,283 Views)