-
pn sequence is the random noise like sequence used as codes in CDMA.....how exactly are these sequences generated??i mean is there any single method??0
Howdy guest!
Dear guest, you must be logged-in to participate on CrazyEngineers. We would love to have you as a
member of our community. Consider creating an
account or login.
Replies
-
Member • Jan 7, 2013
Well, there can be various algorithms. These 'random' signals are generally not pure random and tends to repeat after some iteration.
I am not totally sure if there's a single method, but there should be some standards for it. Just check the cdma standard documentation. You'll find the best information there.Are you sure? This action cannot be undone. -
Member • Jan 7, 2013
ya i know that they repeat.....my doubt is as u said we can use only standard algorithms or is there any possibility that we can design an algorithm so that the seq is random??i mean we just have to design a circuit so that the output seq are random but yet repeatingAre you sure? This action cannot be undone. -
Member • Jan 7, 2013
"Linear feedback shift registers" are used for PN sequence generation(but there are certain criteria to be matched)
Technically,there ain't any algorithm that is capable of producing true random sequence.
Take look at Golomb's principle.It might help you understand more.Are you sure? This action cannot be undone. -
Member • Jan 7, 2013
Here's my favorite PRG, right out of the CRC reference. If you pick the same seed, you'll always get the same sequence of numbers, which therefore wouldn't be random. But the lower part of the time is usually a pretty random number to initialize the seed with. It gives a fairly uniform distribution that's close enough to random to give reasonable results--for my testing anyway.
unsigned seed; /*-------------------------------------------------------------------------- * Generate a pseudorandom number from 0 to range-1. The constants used * here are not arbitrary, but are known to give reasonable results. */ unsigned pseudoRandom(unsigned range) { seed = (171 * seed) % 30269; return seed * range / 30269; } /* Initialize the seed somewhere before the first use */ seed = (unsigned)time(NULL) & 0x3FFF;
Are you sure? This action cannot be undone.