В чем разница между модуляцией QPSK / QAM? - PullRequest
0 голосов
/ 22 декабря 2018

Для моего личного исследования я хочу реализовать программный модем со следующей подписью, например:

void modulate(float* buffer, float sampleRate, float carrierFreq, const char* message, int length)

Это должно занять около message из желаемых length,и закодировать его в buffer (давайте опускаем управление памятью), который я могу отправить, например, на аудио ЦАП ПК.Например, я могу очень легко выполнять AM-модуляцию:

int i, j;
for(i=0;i<length;++i)
    for(j=0;j<100;++j) 
        buffer[i*100+j] = sin(M_PI*carrierFreq*(i*100+j)) * message[i] / 256;

Здесь используется 256 уровней амплитуды и 1/100 байта на такт.FM не намного сложнее, хотя для этого может потребоваться дополнительный вызов sin().Что касается QPSK / QAM - я пытаюсь прочитать статью в Википедии, но я не могу понять, что происходит, и даже в чем разница между QPSK / QAM и как преобразовать это в код.

Не могли бы выПомогите мне разобраться с небольшим фрагментом кода о том, как выполнить это преобразование?

...