I'm a layman into the networking world, I wrote a program using TDL channel, I
got the output but the output is hard to interpret, there are some extra bits
appended to the output and i dont know why this bits are getting appended and
what's their meaning, please help me out in this.
Here is the code snippet,
1 #include <itpp comm="" channel.h=""></itpp>
2 #include <itpp itcomm.h=""></itpp>
3 #include <iostream></iostream>
4 #include <itpp comm="" modulator.h=""></itpp>
5
6
7 using namespace std;
8 using namespace itpp;
9
10 int main() {
11 QPSK qpsk;
12 //sampling frequency is 30.72Mhz
13 double Ts = 0.03255E-6;
14 // select the ITU_Pedestrian_B Rural Area model
you channel profile "ITU_PEDESTRIAN_B" uses the following delay vector (in
seconds) vec("0 200 800 1200 2300 3700") * 1e-9). With your sampling time of
Ts = 0.03255E-6 the maximum delay is 113,7 samples. The TDL_Channel calculates
the whole output for the delays (hence, so many channel coefficients), i.e.
the sum of all 6 delayed versions of input signal vector . If you modulate 16
bit with QPSK you obtain 4 symbols that are transmitted over the channel + 113
delayed samples.
/donludovico
BTW: This is not an open discussion issue but a help request and should be
moved to the help forum.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi all,
I'm a layman into the networking world, I wrote a program using TDL channel, I
got the output but the output is hard to interpret, there are some extra bits
appended to the output and i dont know why this bits are getting appended and
what's their meaning, please help me out in this.
Here is the code snippet,
1 #include <itpp comm="" channel.h=""></itpp>
2 #include <itpp itcomm.h=""></itpp>
3 #include <iostream></iostream>
4 #include <itpp comm="" modulator.h=""></itpp>
5
6
7 using namespace std;
8 using namespace itpp;
9
10 int main() {
11 QPSK qpsk;
12 //sampling frequency is 30.72Mhz
13 double Ts = 0.03255E-6;
14 // select the ITU_Pedestrian_B Rural Area model
15 Channel_Specification channel_spec(ITU_Pedestrian_B);
16 // initialize with the predefined channel profile
17 TDL_Channel channel(channel_spec, Ts);
18 // set the normalized Doppler; fading type will be set to Correlated
19 // and Rice_MEDS method will be used (default settings)
20 channel.set_norm_doppler(0.01);
21 channel.set_doppler_spectrum(0, Jakes);
22
23 RNG_randomize();
24 bvec transmitted_bits = randb(16);
25 cvec transmitted_signal = qpsk.modulate_bits(transmitted_bits);
26 cout<<"Transmitted bits: "<<transmitted_bits<<endl;
27
28
29 // Channel coefficients are returned in the 'coeff' array of complex values
30 Array<cvec> coeff;</cvec>
31 cvec received_signal = channel(transmitted_signal, coeff);
32 bvec received_bits = qpsk.demodulate_bits(received_signal);
33 cout<<"Received bits: "<<received_bits<<endl;
34 cout<<"Channel coefficients: "<<coeff<<endl;
35 }
36
37
and here is the output,
Transmitted bits:
Received bits:
Channel coefficients: { }
Please help me out in understanding the output.
Hi ibaig2,
you channel profile "ITU_PEDESTRIAN_B" uses the following delay vector (in
seconds) vec("0 200 800 1200 2300 3700") * 1e-9). With your sampling time of
Ts = 0.03255E-6 the maximum delay is 113,7 samples. The TDL_Channel calculates
the whole output for the delays (hence, so many channel coefficients), i.e.
the sum of all 6 delayed versions of input signal vector . If you modulate 16
bit with QPSK you obtain 4 symbols that are transmitted over the channel + 113
delayed samples.
/donludovico
BTW: This is not an open discussion issue but a help request and should be
moved to the help forum.