Перейти к содержанию
    

Получение eyediagram 4-QPSK сигнала.

Здравствуйте. Есть задание построить QPSK сигнала и построить его глазковую диаграмму на выходе модулятора, данные действия необходимо произвести в matlab. Функциями matlab для формирования данного сигнала пользоваться нельзя. Используя формулы, я сформировал отсчеты сигнала (см.ниже.)

%-------------Сформированнные отсчеты сигналов с разной фазой--------------
%+45 
mod_funct(1,:)=[0.707106781186548 0.634393284163646 0.555570233019602 0.471396736825998 0.382683432365090 0.290284677254462 0.195090322016128 0.0980171403295608 6.12323399573677e-17 -0.0980171403295607 -0.195090322016128 -0.290284677254462 -0.382683432365090 -0.471396736825998 -0.555570233019602 -0.634393284163645 -0.707106781186548 -0.773010453362737 -0.831469612302545 -0.881921264348355 -0.923879532511287 -0.956940335732209 -0.980785280403230 -0.995184726672197 -1 -0.995184726672197 -0.980785280403230 -0.956940335732209 -0.923879532511287 -0.881921264348355 -0.831469612302546 -0.773010453362737 -0.707106781186548 -0.634393284163645 -0.555570233019602 -0.471396736825998 -0.382683432365090 -0.290284677254462 -0.195090322016129 -0.0980171403295605 -1.83697019872103e-16 0.0980171403295601 0.195090322016128 0.290284677254462 0.382683432365089 0.471396736825998 0.555570233019602 0.634393284163646 0.707106781186547 0.773010453362737 0.831469612302545 0.881921264348355 0.923879532511287 0.956940335732209 0.980785280403230 0.995184726672197 1 0.995184726672197 0.980785280403230 0.956940335732209 0.923879532511287 0.881921264348355 0.831469612302546 0.773010453362737 0.707106781186548];
%-45
mod_funct(2,:)=[0.707106781186548 0.773010453362737 0.831469612302545 0.881921264348355 0.923879532511287 0.956940335732209 0.980785280403230 0.995184726672197 1 0.995184726672197 0.980785280403230 0.956940335732209 0.923879532511287 0.881921264348355 0.831469612302545 0.773010453362737 0.707106781186548 0.634393284163646 0.555570233019602 0.471396736825998 0.382683432365090 0.290284677254462 0.195090322016129 0.0980171403295608 1.22464679914735e-16 -0.0980171403295606 -0.195090322016128 -0.290284677254462 -0.382683432365090 -0.471396736825998 -0.555570233019602 -0.634393284163645 -0.707106781186548 -0.773010453362737 -0.831469612302545 -0.881921264348355 -0.923879532511287 -0.956940335732209 -0.980785280403230 -0.995184726672197 -1 -0.995184726672197 -0.980785280403230 -0.956940335732209 -0.923879532511287 -0.881921264348355 -0.831469612302546 -0.773010453362737 -0.707106781186548 -0.634393284163646 -0.555570233019602 -0.471396736825998 -0.382683432365090 -0.290284677254463 -0.195090322016129 -0.0980171403295605 -2.44929359829471e-16 0.0980171403295600 0.195090322016128 0.290284677254462 0.382683432365089 0.471396736825998 0.555570233019602 0.634393284163646 0.707106781186547];
%+135
mod_funct(3,:)=[-0.707106781186548 -0.773010453362737 -0.831469612302545 -0.881921264348355 -0.923879532511287 -0.956940335732209 -0.980785280403230 -0.995184726672197 -1 -0.995184726672197 -0.980785280403230 -0.956940335732209 -0.923879532511287 -0.881921264348355 -0.831469612302545 -0.773010453362737 -0.707106781186548 -0.634393284163646 -0.555570233019602 -0.471396736825998 -0.382683432365090 -0.290284677254462 -0.195090322016129 -0.0980171403295608 -1.22464679914735e-16 0.0980171403295606 0.195090322016128 0.290284677254462 0.382683432365090 0.471396736825998 0.555570233019602 0.634393284163645 0.707106781186548 0.773010453362737 0.831469612302545 0.881921264348355 0.923879532511287 0.956940335732209 0.980785280403230 0.995184726672197 1 0.995184726672197 0.980785280403230 0.956940335732209 0.923879532511287 0.881921264348355 0.831469612302546 0.773010453362737 0.707106781186548 0.634393284163646 0.555570233019602 0.471396736825998 0.382683432365090 0.290284677254463 0.195090322016129 0.0980171403295605 2.44929359829471e-16 -0.0980171403295600 -0.195090322016128 -0.290284677254462 -0.382683432365089 -0.471396736825998 -0.555570233019602 -0.634393284163646 -0.707106781186547];
%-135
mod_funct(4,:)=[-0.707106781186548 -0.634393284163646 -0.555570233019602 -0.471396736825998 -0.382683432365090 -0.290284677254462 -0.195090322016128 -0.0980171403295608 -6.12323399573677e-17 0.0980171403295607 0.195090322016128 0.290284677254462 0.382683432365090 0.471396736825998 0.555570233019602 0.634393284163645 0.707106781186548 0.773010453362737 0.831469612302545 0.881921264348355 0.923879532511287 0.956940335732209 0.980785280403230 0.995184726672197 1 0.995184726672197 0.980785280403230 0.956940335732209 0.923879532511287 0.881921264348355 0.831469612302546 0.773010453362737 0.707106781186548 0.634393284163645 0.555570233019602 0.471396736825998 0.382683432365090 0.290284677254462 0.195090322016129 0.0980171403295605 1.83697019872103e-16 -0.0980171403295601 -0.195090322016128 -0.290284677254462 -0.382683432365089 -0.471396736825998 -0.555570233019602 -0.634393284163646 -0.707106781186547 -0.773010453362737 -0.831469612302545 -0.881921264348355 -0.923879532511287 -0.956940335732209 -0.980785280403230 -0.995184726672197 -1 -0.995184726672197 -0.980785280403230 -0.956940335732209 -0.923879532511287 -0.881921264348355 -0.831469612302546 -0.773010453362737 -0.707106781186548];
%--------------------------------------------------------------------------

На один период я взял 64 отсчета. После этого я получаю данные в двоичном коде из файла и перевожу их в дибиты. После чего формирую выходной сигнал используя дибиты и сформированные отсчеты, выходной сигнал я приложил в файле под названием untitled.jpg. Пользуясь примером с сайта https://www.mathworks.com/help/comm/ref/eyediagram.html я понял, что для построения eyediagram(x,n) вместо х нужно подавать комплексные отсчеты сигнала на несущей частоте, а вместо n (честно не разобрался до конца что за n, на сайте написано что это "Количество выборок на трассу, указанное как целое число больше 1") я подаю двойку (2) .данной функции необходимо подавать. Я произвел fft над каждым периодом (у меня 24 дибита), получается 24 комплексно сопряженные числа показывающие начальную. Данные комплексные числа я приложил в txt файле. После чего я подаю данные на вход функции eyediagram(x,n) и получаю не то что я вижу в примере. То что получается я приложил в файле под названием eye.jpg. И получается, что диаграмма не полная, я предполагаю, что диаграмма не полная из-за того, что не хватает символов в сообщении, так это или нет? Или я вообще делаю не то что нужно?

untitled.jpg

fft_signal.txt

eye.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ой. Никакого FFT не нужно, ровно как и несущей. Вся ваша задача выполняется исключительно в baseband. Для вашего типа модуляции обычно используется 4 отсчёта на символ, собственно, это даже в примере есть в MATLAB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...