When demodulating a real-world signal, you have the problem that there's
other signals too - there's the other station 4kHz down that you want to
remove. So yes, you can say the signal of interest is an analytic
signal, but then there's everybody else too. True, you can demodulate
the signal by shifting it one half bandwidth, low passing it, shifting
it back, re-injecting the carrier, and then demodulating it. Just
throwing away the imaginary part causes issues if you don't have
precisely the correct frequency. That's the difference between
theoretical DSP and real-world work - you are never on frequency, there
are always other signals, etc.
Mostly, this is because I do SDR for a living, so I am "pushing the
envelope" to see what GnuRadio can do - and IMHO, while there's a lot of
good work, there's also room for improvement. The demodulators that ship
with it could stand some improvement - look at the LiquidDSP AM
demodulator, which DOES do USB, LSB, and DSB correctly, vs. what is in
GnuRadio.
Yes, I know - "If you want it, write it yourself, then". And I may just
do that, but since I hate duplicating effort, I'd like to know if
anybody else has done that, or is doing that.
The Hilbert transform is supposed to shift the positive frequency
components -90 degrees, and the negative frequency components 90
degrees. That's why a Hilbert that only accepts real values is
problematic - you cannot truly represent a negative frequency with only
real values. A complex-in/complex-out Hilbert would be able to do just that.