What are the advantages and disadvantages of PN sequence over Walsh code
A Pseudo-random noise (PRN) sequence ia a closer approximation to white random noise in that its energy is spread equally over the occupied frequency band (The energy is spread as a Sinc function if reconstructed with pulses just because of the pulse shape but the underlying code as a stream of impulses has a more uniform distribution), and its auto-correlation function approximates a single impulse; providing a strong correlation when the sequence is aligned with a copy of itself in time and very low correlation when there is any offset between the sequence and a copy of itself. This property makes it ideal for time alignment such as used in acquisition to find the start of a packet, or in RADAR and sounding applications to resolve a time delay with high precision. (This post details such an example with a PRN sequence: Autocorrelation to diagnose faults )  Also due to it filling an occupied frequency band evenly, PRN sequences are also ideal for training patterns to equalize a channel since the equalizer can resolve solutions only at frequencies where a signal is present.

Walsh Codes in contrast are not spread equally over frequency (as is clear if you consider the sequence of all 1's is a Walsh Code), but are completely orthogonal when time aligned. Given Walsh Codes are always an even number of digits, when you multiply one code to another in the same set and sum the digits, it will always add to 0. PRN codes generated with linear feedback shift registers (LFSR's) are always an odd number of digits, so are not able to add to complete 0 (be completely orthogonal) and further different codes can have higher cross correlations to each other. Walsh Codes are ideal for allocating users or resources in orthogonal code space when you have tight control of the time alignment of each user or resource (such as broadcasting to multiple users from a single transmitter). This orthogonality property is disrupted when the Walsh Codes have a time delay between them. This post demonstrates the channel or resource allocation and also shows the similarity to the DFT which is also simply another set of orthogonal codes: How CDMA receiver extract it&#39;s corresponding data from the receiving modulated &amp; superposition-ed signal?

Gold Codes are generated by adding two LFSR outputs together, each generated with a separate polynomial. The advantage of this is we get many more usable codes of a given order, and the disadvantage is higher cross-correlation and sidelobes of the auto-correlation. This is what is used to generate the codes for GPS satellites and I explain Gold Codes in more detail specific to the GPS implementation at this link:

GPS Coarse Acquisition PRN Codes