We have implemented a 16-QAM receiver employing synchronization,
channel estimation, matched filter
and ML detection. The data transfer takes place via co-axial cable
and about one thousand frames are send. Each frame consists o 512 16-QAM symbols and
incorporates information regarding
data, synch and pilot symbols for channel estimation.
After performing channel estimation, we observe that ideally the channel impulse
response
should be a real number, around 0.4. However
the channel varies with time, yielding an imaginary part.
The real part decreases with time as well.
This fact renderes the system extremely sensitive to small errors:
Under specific circumanstances, a number of frames is transmitted with zero errors,
however the remaining frames are erroneous. Moreover, the errors seems to accumulate
from frame to frame.
These facts were also verified by observing the constellation diagram using the CCS
graphic tools.
In our opinion, such errors may occur do to:
a) Insufficient frequency and phase estimation. We tried to implement a PLL, however
we are not sure whether the
implementation is ideal. Should we apply this on a frame-by-frame basis?
b) Time varying nature and limit bandwidth of the channel. We are seriously
thinking of implementing an equalizer
,i.e. RLS based. Do you think that this will help, or it is a waste of time?