Skip to content

Реализация QAM 4;16;64 модулятора/демодулятора.

Notifications You must be signed in to change notification settings

RuslanRamaldanov/QAM

Repository files navigation

QAM 4, QAM 16, QAM 64 модулятор/демодулятор

Проект реализует классы модулятора, демодулятора, двоичного сигнала, аддитивного белого гауссовского шума. Для демодуляции сигнала был использован алгоритм оптимального приема QAM сигнала по минимуму расстояния от сигнальной точки зашумленного сигнала, до ближайщей сигнальной точки в созвездии.

Краткое описание классов

QAMbase - базовый абстрактный класс, реализующий генерацию QAM сигналов по заданным в конструкторе параметрам.

Modulator - класс, реализующий модуляцию сигнала по заданной битовой последовательности. Имеет метод modulate(), возвращающий вектор значений сигнала.

Demodulator - класс, реализующий демодуляцию сигнала. Имеет метод demodulate(), возвращающий битовую последовательность (индекс сигнала).

BinarySignal - класс, реализующий входной двоичный сигнал (битовую последовательность). Имеет метод generate_signal(), генерирующий случайную битовую последовательность. Имеет равномерное распределение для генерации.

GaussianNoise - класс, реализующий аддитивный белый гауссовский шум (АБГШ). Имеет единственный метод add_noise(), который высчитывает значение шума в дБ и дисперсию, затем добавляет его к сигналу.

Saver - класс, предназначенный для сохранения выходной информации (значения сигналов, сигнальное созвездие, зависимость ошибки от шума), для последующей визуализации в Matlab.

Визуализация

Для построения графиков используется Matlab. Выходные файлы хранятся в папке OUTPUT вместе с файлом matlab.

Примеры работы программы

Все приведенные ниже изображения были получены для QAM 64 системы. Иллюстрация к проекту

Иллюстрация к проекту

Иллюстрация к проекту

Для большей наглядности, на изображении сигнального множества было выведено всего 32 сигнала. При большем их количестве график становится трудно воспринимать. Также на изображении сигнального множества хорошо заметен фазовый и амплитудный сдвиг сигналов относительно друг-друга.

Предупреждение

Если количество сигналов меньше 64, получение графика вероятностей ошибки может быть сильно затратным по времени. Из за того, что расстояние между сигнальными точками увеличивается, увеличиваются также и решающие облати. Таким образом, вероятность ошибки падает, зашумленному сигналу тяжелее попасть в решающую область не своего исходного сигнала. Остальные модули программы, такие как построение сигнального множества и созведия, модуляция, демодуляция и т.д работают без изменений.

About

Реализация QAM 4;16;64 модулятора/демодулятора.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published