Hi Jeff,
Thanks for the reply. What you said about the noise makes sense.
However, even if I turn the noise off, I still get the weired taps:
Offset: 2112 Source: n/a Key: ofdm_sync_chan_taps Value: #[(0,0)
(0,0) (0,0) (0,0) (0,0) (0,0) (35.5567,-53.2143) (-6.27313,-63.6921)
(-45.255,-45.255) (-63.6921,-6.27313) (-53.2143,35.5567)
(-18.5783,61.2445) (24.4919,59.1286) (56.4432,30.1695)
(62.7706,-12.4858) (40.6014,-49.4729) (2.45706e-06,-64.0003)
(-40.6014,-49.4729) (-62.7706,-12.4858) (-56.4432,30.1695)
(-24.4919,59.1286) (18.5783,61.2445) (53.2143,35.5567)
(6.36922,-0.627315) (4.52551,-4.52551) (6.27312,-63.6921)
(-3.55567,-5.32143) (-6.12445,-1.85783) (-5.91286,2.44919)
(-3.01695,5.64432) (1.24858,6.27706) (4.94729,4.06014) (0,0)
(4.94729,-4.06014) (1.24858,-6.27706) (-3.01696,-5.64433)
(-5.91286,-2.44919) (-6.12445,1.85783) (-3.55567,5.32144)
(6.27312,63.6921) (4.52551,4.52551) (6.36922,0.627312)
(5.32143,-3.55567) (1.85783,-6.12445) (-2.44919,-5.91286)
(-5.64433,-3.01696) (-6.27706,1.24858) (-4.06014,4.94729)
(-1.9985e-06,6.40003) (4.06014,4.94729) (6.27706,1.24858)
(5.64432,-3.01696) (2.44918,-5.91286) (-18.5783,-61.2445)
(-5.32143,-3.55567) (-6.36922,0.62731) (-4.52551,4.52551)
(-0.627314,6.36921) (3.55567,5.32143) (0,0) (0,0) (0,0) (0,0) (0,0)]
The piece of code you posted:
for (int i = loop_start; i < loop_end; i++) {
if ((d_ref_sym[i-carr_offset] != gr_complex(0, 0))) {
taps[i-carr_offset] = sym[i] / d_ref_sym[i-carr_offset];
}
}
I believe it comes from the ofdm_chanest_vcvc_impl.cc, doesn't it?
According to my understanding, it is calculating the channel taps by
dividing the received symbol with the sync symbols, which are known. If
the channel is perfect and there is no noise, the received symbols
should be exactly the same as the sync symbols. The channel taps should
be 1.
Regards,
Edwin