# Ricean Multipath channel model implementation

I'm trying to implement a multipath ricean channel model. I had found several resources but I'm kind of lost with too much information. What I have from now is the following step:

1- Generate the signal without noise/channel
2- convolve with the channel response


My problem is how to generate the channel response? As far as I understand I have to generate a ricean distributed filter with ntaps, where each tap represent one path.

The transmitted data is a series of OFDM symbols for a BERxSNR plot.

The channel model is Ricean with multipath and doppler shift. From my references I have all the parameters but I didn't understand how to transform this into an algorithm.

## update

def generate_rician(self,K,data):
self.__rician_mu  = sqrt(K/(K+1))
self.__rician_s   = sqrt(1/(2*(K+1)))
self.__rician_chn = self.__rician_s*(random.standard_normal((data_size,)) + random.standard_normal((data_size,))*1j) + self.__rician_mu
return self.__rician_chn*data + wgn


Where wgn is the white gaussian noise, omitted here. I have to improve this code adding doppler spread and multipath

[edited] The above code try to reflect the following equations: $$C = \sqrt{\frac{1}{2*(K+1)}}*(X+j*Y) + \sqrt{\frac{K}{K+1}}$$

$$R = TxC + N$$

Where $T$ is the transmited signal(QPSK-OFDM), $N$ is the white gaussian noise, $X$ and $Y$ are two pseudo random variables with normal distrubution. $K$ is the ricean factor.

As a reference the equation used as theoretical reference is:

$$Pb = \frac{1}{2} {\rm erfc} \left (\sqrt{\frac{K*EbN0}{K + EbN0}} \right)$$

An output of my system simulation:

As you can see my results are divergent from the theoretical. The simulation was done using scipy fftpack and the code above.

In green you see the theoretical AWGN BER curve, in blue theoretical rician fadin K=5 and in red the results from my simulated system.

• You don't need the "channel response" unless you are looking to construct the signal as it will appear at the receiving antenna. More commonly, people use the model to simulate the sample values at the output of matched filters, in which case transmitting complex number $c$ results in output $c(\rho+X)+N$ where $\rho$ is the channel gain, and $X$ and $N$ are complex (zero-mean) Gaussian random variables. Note that $X$ is essentially Rayleigh fading. A bigger issue is what correlation, if any, you want to assume between the gains $\rho_i$ and the fading $X_i$ in the various OFDM samples. Apr 22 '13 at 16:51
• Ok. This model I had done and tested against theoretical results and my results agree, but, what about multipath? Apr 22 '13 at 17:01
• The model Dilip showed already includes multi-path.
– Peter K.
Apr 22 '13 at 17:38
• May I miss something. I'm updating the question with the code I have so far. Apr 22 '13 at 17:50
• – Peter K.
Apr 23 '13 at 15:27