In this series:

- How to implement a Rayleigh fading channel in an FPGA – Part 1: Generation of correlated Rayleigh random variables
- How to implement a Rayleigh fading channel in an FPGA – Part 2: The hardware architecture of a Gaussian random variable generator
- How to implement a Rayleigh fading channel in an FPGA – Part 4: A model-based implementation of a Rayleigh random variable generator
- How to implement a Rayleigh fading channel in an FPGA – Part 5: Targeting a Rayleigh random variables generator for Nutaq’s Perseus 601x platform

In Part 1 of this series, I explained how correlated Rayleigh random variables are generated. In Part 2, I presented a simple and efficient implementation architecture of a Gaussian random variable generator for the realization of a baseband correlated Rayleigh generator.

## Rayleigh random variable generator architecture

Figure 1 illustrates the architecture of a correlated Rayleigh random variable generator. Inverse fast Fourier transform (IFFT) logic and filter coefficient memory are re-configurable by the user from the host, including IFFT transform length and normalized Doppler filter coefficients.

**Figure 1: Architecture of a Rayleigh random variable generator**

**Figure 2: Discrete approximation of the Doppler spectrum**

Figure 2 plots a discrete approximation of the Doppler spectrum

It is important to perform the IFFT in continuous streaming mode because filtered complex Gaussian random variables are continuously being generated. The Xilinx FFT core generator for the Virtex-6 FPGA in Nutaq's Perseus [2,3] development platform provides a continuous streaming mode with various re-configurable parameters that meet our requirements.

Figure 3 and Figure 4 show the amplitude and phase of 1000 generated correlated Rayleigh samples and the probability density function (PDF) over 2^{20} samples. You can see that the generated random variable PDF closely follows the theoretical Rayleigh PDF as expected.

**Figure 3: Magnitude and phase of the correlated Rayleigh generator output**

**Figure 4: PDF of generated correlated Rayleigh random variable versus theoretical Rayleigh PDF**

## Rayleigh and Gaussian random variable generator in channel emulator

**Figure 5: Baseband flat Rayleigh fading channel emulator**

**Figure 6: Baseband multipath Rayleigh fading channel emulator**

The simplest example of the correlated Rayleigh fading generator is a flat Rayleigh fading channel emulator as shown in Figure 5. In this figure, the baseband modulated signal *x*[n] is corrupted by the Rayleigh fading generator followed by an additive white Gaussian noise generator. The resulting noisy faded signal *y*[n] is injected into the input of the baseband receiver to validate its performance under the Rayleigh flat-fading channel.

A three-path baseband multipath Rayleigh fading channel emulator example is illustrated in Figure 6. The transmit signal *x*[n] with two different delayed versions pass through three independent flat-fading Rayleigh channel emulators follow by a combiner before injecting additive noise. Each independent flat-fading channel emulator must have a different input delay and output gain depending on the target channel power delay profile.

## Conclusion

This blog post showed an approach to a simple and efficient implementation architecture of a Rayleigh random variable generator. Examples on the use of Rayleigh and Gaussian random variable generators to realize baseband flat-fading, multipath channel emulators in FPGA devices were also discussed.

## References

[1] |
D. J. Young and N. C. Beaulieu, "The generation of correlated Rayleigh random variates by inverse discrete Fourier transform," |

[2] |
Nutaq Inc. Perseus. [Online]. https://nutaq.com/products/perseus-601x |

[3] |
Xilinx Inc. Fast Fourier Transform (FFT). [Online]. http://www.xilinx.com/products/intellectual-property/FFT.htm |