L
lomtik
Guest
Hi,
I am thinking of writing VHDL code for QAM signal demodulation and
have several questions on carrier and timing recovery as well as bit
detection. I have done some bpsk simulation already, but having
trouble with exporting to higher order modulation.
For carrier recovery block I think I can use open loop recovery
scheme. For example, BPSK signal is squared to recover the carrier at
twice the frequency. Then I can do frequency division and LPF the
output to produce a single tone carrier. Then I multiply the carrier
with the delayed input signal. From the result it's possible to do bit
decisions from sign of the signal at given recovered symbol clock
locations.
I think it's possible to extend this method to QPSK by squaring input
signal twice. But the multiply 90deg shifted versions of the recovered
carrier by Q channel instead. Do the same bit decisions and combine
both channels at twice the speed.
This method could be troublesome. Any other ideas? maybe different
type of carrier recovery?
What should I do with cases when recovered carrier (i.e. cos) is
multilplied by sin(x) and -sin(x). This would give me .5*sin(2x)
centered at 0 hard to do decide whether it's 1, -1 or signal from
another channel.
Thanks for any help!
I am thinking of writing VHDL code for QAM signal demodulation and
have several questions on carrier and timing recovery as well as bit
detection. I have done some bpsk simulation already, but having
trouble with exporting to higher order modulation.
For carrier recovery block I think I can use open loop recovery
scheme. For example, BPSK signal is squared to recover the carrier at
twice the frequency. Then I can do frequency division and LPF the
output to produce a single tone carrier. Then I multiply the carrier
with the delayed input signal. From the result it's possible to do bit
decisions from sign of the signal at given recovered symbol clock
locations.
I think it's possible to extend this method to QPSK by squaring input
signal twice. But the multiply 90deg shifted versions of the recovered
carrier by Q channel instead. Do the same bit decisions and combine
both channels at twice the speed.
This method could be troublesome. Any other ideas? maybe different
type of carrier recovery?
What should I do with cases when recovered carrier (i.e. cos) is
multilplied by sin(x) and -sin(x). This would give me .5*sin(2x)
centered at 0 hard to do decide whether it's 1, -1 or signal from
another channel.
Thanks for any help!