• 沒有找到結果。

Single-ray Channel Simulator

Chapter 4 Hardware Implementation

4.3 Channel Simulator

4.3.1 Single-ray Channel Simulator

In the previous sections, we introduced two important components of the channel coefficient models, now we can start to implement a single channel of Jake model and Xiao model.

Jake model

Once again we review the equation of Jakes’ model:

( )

c

( )

s

( )

In our implementation, we set N=34, which is sufficient large to this model. Even though we had made a conclusion that LUTs is the best suitable triangular function generating algorithm for FPGA channel simulator, we still implement Jakes model with LUTs, Taylor series, and CORDIC algorithms for comparison.

We demonstrate the Jakes model waveform below. In this example, we check for the input Doppler shift=200 Hz, which is represented by f =12'b000011001000 (all the 12 bits stand for integer). Another input t =21'b000000100111000100110, which represents t = 0.0095125 second, if we calculated the Jakes model with computer, the channel coefficient will be 1.51276 for the real part, and -0.18775 for the image part.

We first show the Jakes model implemented by CORDIC. We can see there are two clocks control the circuit. The one with smaller period controls the CORDIC, it takes 12 clocks for CORDIC to transform the input signal to the range it can calculate.

As we can see from Fig 4.13, the "path_real" stands for the real part, which is 16'b0_0001_10001010001, represent 1.51953. The first bit is sign bit, the following 4 bits represent integer, and the rest of 11 bits stand for the decimal. And "path_img"

represent image part, which is 16'b1_1111_11010011011, represents -0.1742396. The results are correct. Next, we check the model implemented by LUTs.

Fig 4.13: The demonstration of Jakes model with CORDIC

In this demonstration, we check Jakes with LUTs. The output value of real part

“path_real” =16'b0_0001_10000101111, which represents 1.522949, and the output value of the image part “path_img” =16'b1_1111_11001101010, which represents -0.20019. While the true value is 1.51276 and -0.18775, the results are right.

Finally, we check the model implemented by Taylor series. From Fig 4.15, we find that, “path_real”= 16’b0_0001_10001011010, which represents 1.54098, compared with the real value, is almost the same. The output value of the image part

“path_img” =16’b0_0000_01000000011, which represent 0.25, is a little bit away form the real value. We try to check it in detail, compare the detailed value with Fig 4.16, and find that each small part of the image contributes a small difference, and make the result away from the real value, the circuit is still right.

Fig 4.15: The demonstration of Jakes model with Taylor series

Fig 4.16: The demonstration of Jakes model with LUTs (as comparison)

The implementation results are as shown below. Except for the Jakes model implanted by CORDIC, the data yield rates of the rest two models all exceed 100 M per second, and obviously the occupied FPGA chip area of Jakes with LUTs is much larger than Jakes with Taylor series. On the other hand, the usage of multipliers of Jakes model implemented by Taylor series is almost twice more than the other. One thing we should notice that, the usage of multipliers for Jakes model implemented with Taylor series almost reaches 70% of the FPGA chip limitation, and our FPGA chip, Virtex-II XC2V6000 actually offers 144 multipliers which is already a large number for FPGA chips. Thus, we should be really careful with that model, or we just use Jakes model with LUTs if there is less constraint in the chip size.

So, it depends. If we only implement one channel coefficients generator on the chip, both method will do. If there are still other modules on the same chip, we can pick the one with larger margin to the hardware limitation, either in chip area or the number of multipliers.

Xiao model

We also review this improved channel model here.

X t

( )

=Xc

( )

t + jXs

( )

t

( )

2 M cos

( )

cos

(

cos

)

X t =

ψ ⋅ w t α φ+

( ) ( ) ( )

In this case, we chose M=8, which is the same with the parameter used in Jakes model.

The random phases θ and φ are given -20 and 0 degree for simplicity. Also, for the first cycle, the random phases ψn are not calculated by our random generator, we give the value directly. They are listed in Table 4.12.

Initial phase Binary expression In degree

We also implement such a channel model with three different kind of triangular functions, and try to compare the performance, but, Xiao model with Taylor series takes too many multipliers, and that exceeds the limitation of Virtex-II XC2V6000, so we just present other two models. The demonstrations of the works are given below.

The input Doppler shift "fd" is 12'b000011001000, represents 200 Hz, when "t" is pretty small, t=21'000000000000000001010, which represents4.678 10× 6. If we calculate the value by the equations (3.13) to (3.16), the real part should be 0.60437, and 0.69197 for the image part.

First, we present the result of the model implemented by LUT’s. We can find that, the output value of the real part "path_real"=16'b0_0000_10011001110, which is 0.6005859, the image part "path_img"=16'b0_0000_10110000100, which is 0.70703.

While the real values are 0.60437 and 0.69197.The results are verified, which is shown in Fig.4.17

Fig 4.17: The demonstration of Xiao model with LUTs

Second, we check the results of Xiao model implemented by CORDIC. We can find that the result of real part “path_real”= 16’b0_0000_10011001110, which represents 0.57031, and “path_img”=16’b0_0000_10101111111, which represents 0.687256.

While the real values are 0.60437 and 0.69197. The results are also verified.

Fig 4.18: The demonstration of Xiao model with CORDIC

The simulation results are shown below. Table 4.13: Comparison of Xiao model with different triangular Algos

From Table 4.13, we can find that the model with LUTs generates channel coefficients with almost 100M per second, and Xiao model with LUTs occupied larger chip area compared with Jakes model with LTUs. And the model implemented by CORDIC is still slow.

The statistical property analyses of our channel simulator output are given in Figure 4.19, Figure 4.20, Figure 4.21, and Figure 4.22. The picture in the left is the idea value, and the picture in the right is our simulations. We took the ensemble averages of 20 sets of coefficient, M=8, the normalized fdτ =0.025. Because in our simulator, the triangular functions are not precise, the curve does not fit the idea curves so well.

But generally speaking, the results are right. Another drawback is the random phase produced by the Pseudo random generator, which in the equation should be uniformly distributed within 0 to 360 degrees. However, we generate a sequence of 18 random binary numbers, which is uniformly distributed within 0 to 4096 degree, that is a little non-uniform to the range of 0 to 360 equivalently. That might be one of the reasons that the second order statistic properties of our works doesn’t perform pretty well compared with the idea curves.

Fig 4.19: Autocorrelation of Xc

( )

t

Fig 4.20: Autocorrelation of Xs

( )

t

Fig 4.21: Crosscorrelation of Xs

( )

t andXc

( )

t

Fig 4.22: Real part autocorrelation of X(t)

For single channel simulation, Jakes model occupies smaller chip area and fewer multipliers, while Xiao model is almost 1.7 times larger. Both of them yield more than 100M data per second. Although Jakes model is less complex, Xiao model has good statistical properties. So, it depends on the limitation of hardware. In a smaller chip, Jakes model is more suitable, while a lager chip, Xiao model is the one we recommend.

相關文件