II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
 

Раздел "Обработка сигналов и изображений\Communications Toolbox"

Список функций CommunicationsToolbox: Функции анализа сигналов

  В оглавление \ К следующему разделу \ К предыдущему разделу

EYEDIAGRAM
Вывод глазковой диаграммы

Синтаксис:

eyediagram(x,n);
eyediagram(x,n,period);
eyediagram(x,n,period,offset);
eyediagram(x,n,period,offset,plotstring);
eyediagram(x,n,period,offset,plotstring,h);
h = eyediagram(...);

Описание:

    eyediagram(x,n)

Вывод глазковой диаграммы для сигнала x с “длительностью горизонтальной развертки”, равной n отсчетам. Параметр n должен быть целым числом, большим единицы. Крайние значения горизонтальной оси считаются равными –1/2 и 1/2. Функция предполагает, что целочисленным значениям времени соответствуют первый отсчет сигнала и следующие за ним с шагом n. Интерпретация массива x и число выводимых диаграмм зависят от размера массива и наличия у него мнимой части:

  • если x — вещественная двухстолбцовая матрица, функция eyediagram интерпретирует первый столбец как синфазную, а второй — как квадратурную составляющую. Диаграммы для двух составляющих выводятся в отдельных осях в общем графическом окне;
  • если x — комплексный вектор, функция eyediagram интерпретирует его вещественную часть как синфазную, а мнимую — как квадратурную составляющую. Диаграммы для двух составляющих выводятся в отдельных осях в общем графическом окне;
  • если x — вещественный вектор, функция eyediagram интерпретирует его как вещественный сигнал. Графическое окно в данном случае содержит единственную диаграмму.

    eyediagram(x,n,period)

То же, что и предыдущий вариант синтаксиса, но крайние значения горизонтальной оси считаются равными -period/2 и period/2.

    eyediagram(x,n,period,offset)

То же, что и предыдущий вариант синтаксиса, но функция предполагает, что значениям времени, кратным длительности символьного такта period, соответствуют (offset+1)-й отсчет сигнала и следующие за ним с шагом n. Значение параметра offset должно быть неотрицательным целым числом, лежащим в диапазоне от 0 до n-1.

    eyediagram(x,n,period,offset,plotstring)

То же, что и предыдущий вариант синтаксиса, но параметр plotstring задает символы точек, тип линии и цвет для графика. Параметр plotstring — это строка, формат и назначение элементов которой те же самые, что и в функции plot.

    eyediagram(x,n,period,offset,plotstring,h)

То же, что и предыдущий вариант синтаксиса, но вместо создания нового графического окна график создается в существующем окне с дескриптором h. Параметр h должен быть дескриптором графического окна, ранее созданного функцией eyediagram.

Внимание! Для вывода нескольких сигналов в одном окне нельзя использовать команду hold on.

    h = eyediagram(...)

То же, что предыдущие варианты синтаксиса, с возвратом дескриптора окна, содержащего график, в выходном параметре h.

    Примеры.

Приведенный ниже код иллюстрирует использование глазковой диаграммы для поиска оптимальных точек взятия отсчетов. Случайный цифровой сигнал сначала преобразуется в точки 16-точечного квадратурного созвездия, затем в сигнал вносятся искажения с помощью фильтра с косинусоидальным сглаживанием АЧХ. Несколько команд выделяют из фильтрованного сигнала фрагмент, соответствующий установившемуся состоянию. Наконец, для результирующего сигнала выводится глазковая диаграмма.

    % Задаем число точек созвездия, а также две частоты дискретизации
    M = 16; Fd = 1; Fs = 10;
    % Число отсчетов сигнала
    Pd = 100;
    % Случайные целые числа в диапазоне [0,M-1]
    msg_d = randint(Pd,1,M);
    % Преобразование целых чисел в параметры квадратурной модуляции
    msg_a = modmap(msg_d,Fd,Fd,'qask',M);
    % Пусть канал связи описывается фильтром
    % с косинусоидальным сглаживанием АЧХ
    delay = 3; % вносимая фильтром задержка (в символах)
    rcv = rcosflt(msg_a,Fd,Fs,'fir/normal',.5,delay);
    % Обрезаем переходные процессы (начало и конец
    % выходного сигнала фильтра)
    propdelay = delay .* Fs/Fd + 1; % задержка (в отсчетах)
    rcv1 = rcv(propdelay:end-(propdelay-1),:); % усеченный сигнал
    N = Fs/Fd;
    % Выводим глазковую диаграмму, не сдвигая моменты взятия отсчетов
    offset1 = 0;
    h1 = eyediagram(rcv1,N,1/Fd,offset1);
    set(h1,'Name','Eye Diagram Displayed with No Offset');

Обратите внимание на то, что вертикальная линия, проведенная в центре диаграммы, пересечет “глаз” в месте его максимального “раскрытия” (левый рисунок).

На рисунке, приведенном справа, упомянутая вертикальная линия окажется в стороне от места максимального “раскрытия” “глаза”. Этот рисунок получен с помощью следующих команд:

    offset2 = 2;
    h2 = eyediagram(rcv1,N,1/Fd,offset2,'r-');
    set(h2,'Name','Eye Diagram Displayed with Offset of Two');

Продолжим пример, использовав информацию, полученную с помощью глазковой диаграммы, для сдвига точек взятия отсчетов в функции demodmap. (Обратите внимание на то, что в функцию demodmap передается значение сдвига, равное offset1+1, поскольку функции eyediagram и demodmap трактуют величину сдвига по-разному.)

    % Продолжаем, используя информацию о сдвиге для декодирования
    % цифрового квадратурного сигнала
    newmsg1 = demodmap(rcv1,[Fd offset1+1],Fs,'qask',16);
    s1 = symerr(msg_d,newmsg1) % Число искаженных символов
    s1 =

    0

Как видите, ошибки приема отсутствуют. Если же использовать значение сдвига, равное offset2, это приведет к появлению искажений в декодированном цифровом сигнале. Полученное вами число ошибок в данном примере может несколько отличаться от приведенного, поскольку обрабатываемое сообщение msg_d состоит из случайных чисел.

    newmsg2 = demodmap(rcv1,[Fd offset2+1],Fs,'qask',16);
    s2 = symerr(msg_d,newmsg2)
    s2 =

    8

Использование глазковых диаграмм иллюстрируется демонстрационной программой scattereyedemo.

Сопутствующие функции: scatterplot, plot.

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры