Hi 能书能言,
I don't know the inner workings of the module but if I want to generate,
for example PSK, from first principles, I do it as follows. For QPSK
there are four points in the constellation so each represents 2 bits.
The points may be 1 + j, -1 - j, 1 - j and -1 + j, so a sample
representing 2 bits would be one of these. If there is more than 1
sample per symbol, then the other samples are zero (interpolation). The
next sample follows and so on. This forms the input to your root Nyquist
filter, e.g. SRRC. The output of the filter is the modulated signal. As
the previous response said, the centre frequency is zero. If you want
any other frequency, a complex mix is required. To help you understand
this you could try writing some code in Matlab, Octave or Python etc. to
implement a simple signal chain.
Regards,
Steve Hubbard
On 7/5/21 7:03 pm, 能书能言 wrote:
> Recently I was learning the working principle of "constellation
> modulator". I read the file "generic_mod_demod.py" and realized that
> it is a hierarchical block. I was confused about its working
> principle, why there is no other action after it is connected to
> rrc_filter. What? Shouldn't the general IQ modulation have
> "acoswt-bsinwt" or "(a + bi) exp(-jwt)" operation? I haven't seen
> similar operations in the code, but the output of the "constellation
> modulator" is a baseband complex modulated signal. Is there anything
> else I can't see?
> mod code:
> # Connect
> self._blocks = [self, self.bytes2chunks]
> if self.pre_diff_code:
> self._blocks.append(self.symbol_mapper)
> if differential:
> self._blocks.append(self.diffenc)
> self._blocks += [self.chunks2symbols, self.rrc_filter, self]
> self.connect(*self._blocks)
>
No comments:
Post a Comment