示例#1
0
def demodulation_fsk(shiftKeyingSamples):

    time, informationSamplesTrueOnly = informationSignal(
        SECONDS_PER_BIT, tile(1,
                              int(len(shiftKeyingSamples) / SAMPLES_PER_BIT)),
        SAMPLES_PER_BIT)
    _, informationSamplesFalseOnly = informationSignal(
        SECONDS_PER_BIT, tile(0,
                              int(len(shiftKeyingSamples) / SAMPLES_PER_BIT)),
        SAMPLES_PER_BIT)

    samplesTrueOnly = frequencyShiftKeying(informationSamplesTrueOnly, time)
    samplesFalseOnly = frequencyShiftKeying(informationSamplesFalseOnly, time)

    productSamplesTrueOnly = [
        s * ts for s, ts in zip(shiftKeyingSamples, samplesTrueOnly)
    ]
    productSamplesFalseOnly = [
        s * ts for s, ts in zip(shiftKeyingSamples, samplesFalseOnly)
    ]

    integralPerBitSum, demodulatedInformationSamples = demodulationFSK(
        shiftKeyingSamples, productSamplesTrueOnly, productSamplesFalseOnly)

    return convert_samples_to_bits(demodulatedInformationSamples)
示例#2
0
def informationSignal(secondsPerBit, bits, samplesPerBit):
    time = linspace(0, secondsPerBit * len(bits), samplesPerBit * len(bits))

    signalSamples = samplesPerBit * len(bits) * [None]
    for i, bit in enumerate(bits):
        signalSamples[i * samplesPerBit:(i + 1) * samplesPerBit] = tile(bit, samplesPerBit)
    return time, signalSamples
示例#3
0
def demodulation_psk(shiftKeyingSamples):

    time, informationSamplesTrueOnly = informationSignal(SECONDS_PER_BIT, tile(1, int(len(shiftKeyingSamples) / SAMPLES_PER_BIT)), SAMPLES_PER_BIT)
    samplesTrueOnly = phaseShiftKeying(informationSamplesTrueOnly, time)
    productSamples = [s * ts for s, ts in zip(shiftKeyingSamples, samplesTrueOnly)]
    integralPerBitSum, demodulatedInformationSamples = demodulationASKandPSK(shiftKeyingSamples, productSamples)

    return convert_samples_to_bits(demodulatedInformationSamples)