Следующее обозначение используется в этом Приложении:
Количество или операция | Обозначение |
---|---|
Размер созвездия модуляции |
|
Количество битов на символ |
|
Энергия на отношение спектральной плотности степени бита к шуму |
|
Энергия на отношение спектральной плотности степени символа к шуму |
|
Частота ошибок по битам (BER) |
|
Коэффициент ошибок символа (SER) |
|
Действительная часть |
|
Самое большое целое число, меньшее, чем |
|
Следующие математические функции используются:
Функция | Математическое выражение |
---|---|
Q функция |
|
Marcum Q функция |
|
Модифицированная Функция Бесселя первого вида порядка |
где
гамма функция. |
Вырожденная гипергеометрическая функция |
где символ Pochhammer, , задан как , . |
Следующие акронимы используются:
Акроним | Определение |
---|---|
M-PSK | M-арное манипулирование сдвига фазы |
DE-M-PSK | Дифференцированно закодированное M-арное манипулирование сдвига фазы |
BPSK | Бинарное манипулирование сдвига фазы |
DE-BPSK | Дифференцированно закодированное бинарное манипулирование сдвига фазы |
QPSK | Четвертичное манипулирование сдвига фазы |
DE-QPSK | Дифференцированно закодированное квадратурное манипулирование сдвига фазы |
OQPSK | Возместите квадратурное манипулирование сдвига фазы |
DE-OQPSK | Дифференцированно закодированное квадратурное манипулирование сдвига фазы смещения |
M-DPSK | M-арное дифференциальное манипулирование сдвига фазы |
M-PAM | M-арная импульсная амплитудная модуляция |
M-QAM | M-арная квадратурная амплитудная модуляция |
M-FSK | M-арное манипулирование сдвига частоты |
MSK | Минимальное манипулирование сдвига |
M-CPFSK | M-арное манипулирование сдвига частоты непрерывной фазы |
Предварительно закодированный MSK с когерентным обнаружением
Дифференцированно закодированный MSK с когерентным обнаружением
M-PSK. От уравнения 8.22 в [2]
Следующее выражение очень близко, но не строго равно к точному BER (от [4] и уравнение 8.29 от [2]):
где , , вес Хэмминга битов, присвоенных символу i, и
Особый случай , например, BPSK (уравнение 5.2-57 от [1]):
Особый случай , например, QPSK (уравнения 5.2-59 и 5.2-62 от [1]):
DE-M-PSK. , например, DE-BPSK (уравнение 8.36 от [2]):
, например, DE-QPSK (уравнение 8.38 от [2]):
От уравнения 5 в [3]:
OQPSK. Тот же BER/SER как QPSK [2].
DE-OQPSK. Тот же BER/SER как DE-QPSK [3].
M-DPSK. От уравнения 8.84 в [2]:
Следующее выражение очень близко, но не строго равно к точному BER [4]:
где , , вес Хэмминга битов, присвоенных символу i, и
Особый случай (уравнение 8.85 от [2]):
M-PAM. От уравнений 8.3 и 8.7 в [2] и уравнения 5.2-46 в [1]:
От [5]:
M-QAM. Для квадратного M-QAM, является четным (уравнение 8.10 от [2] и уравнения 5.2-78 и 5.2-79 от [1]):
От [5]:
Для прямоугольного (неквадратного) M-QAM, является нечетным, , , и :
От [5]:
где
и
Ортогональный M-FSK с Когерентным Обнаружением. От уравнения 8.40 в [2] и уравнения 5.2-21 в [1]:
Неортогональный 2-FSK с когерентным обнаружением. Для (от уравнения 5.2-21 в [1] и уравнения 8.44 в [2]):
комплексный коэффициент корреляции:
где и комплексные сигналы lowpass, и
Например:
где .
(от уравнения 8.44 в [2], где )
Ортогональный M-FSK с Некогерентным Обнаружением. От уравнения 5.4-46 в [1] и уравнения 8.66 в [2]:
Неортогональный 2-FSK с некогерентным обнаружением. Для (от уравнения 5.4-53 в [1] и уравнения 8.69 в [2]):
где
Предварительно закодированный MSK с когерентным обнаружением. Тот же BER/SER как BPSK.
Дифференцированно закодированный MSK с когерентным обнаружением. Тот же BER/SER как DE-BPSK.
MSK с Некогерентным Обнаружением (Оптимальный Блок Блоком). Верхняя граница (от уравнений 10.166 и 10.164 в [6]):
где
CPFSK Когерентное Обнаружение (Оптимальный Блок Блоком). Нижняя граница (от уравнения 5.3-17 в [1]):
Верхняя граница:
где h является индексом модуляции, и количество путей, имеющих минимальное расстояние.
Обозначение. Следующее обозначение используется в выражениях, найденных в berfading
.
Значение | Обозначение |
---|---|
Степень исчезающего амплитудного r | , где обозначает статистическое ожидание |
Количество ветвей разнообразия |
|
ОСШ на символ на ветвь |
Для тождественно распределенных ветвей разнообразия: |
Производящие функции момента для каждой ветви разнообразия | Релеевское замирание:
Исчезновение Rician:
где K является отношением энергии в зеркальном компоненте к энергии в рассеянном компоненте (линейная шкала). Для тождественно распределенных ветвей разнообразия: для всего l. |
Следующие акронимы используются:
Акроним | Определение |
---|---|
MRC | объединение максимального отношения |
EGC | объединение равного усиления |
M-PSK с MRC. От уравнения 9.15 в [2]:
где , , вес Хэмминга битов, присвоенных символу i, и
Для особого случая Релеевского замирания с (от уравнений C-18, C-21 и Таблица c-1 в [6]):
где
Если :
DE-M-PSK с MRC. Для (от уравнений 8.37 и 9.8-9.11 в [2]):
M-PAM с MRC. От уравнения 9.19 в [2]:
M-QAM с MRC. Для квадратного M-QAM, является четным (уравнение 9.21 в [2]):
Для прямоугольного (неквадратного) M-QAM, является нечетным, , , , , и
M-DPSK с Постобнаружением EGC. От уравнения 8.165 в [2]:
где , , вес Хэмминга битов, присвоенных символу i, и
Для особого случая Релеевского замирания с , и (уравнение 8.173 от [2]):
Ортогональный 2-FSK, Когерентное Обнаружение с MRC. От уравнения 9.11 в [2]:
Для особого случая Релеевского замирания (уравнения 14.4-15 и 14.4-21 в [1]):
Неортогональный 2-FSK, когерентное обнаружение с MRC. Уравнения 9.11 и 8.44 в [2]:
Для особого случая Релеевского замирания с (уравнение 20 в [8] и уравнение 8.130 в [2]):
Ортогональный M-FSK, Некогерентное Обнаружение с EGC. Релеевское замирание (уравнение 14.4-47 в [1]):
Исчезновение Rician (уравнение 41 в [8]):
где
и если и 0 в противном случае.
Неортогональный 2-FSK, Некогерентное Обнаружение без Разнообразия. От уравнения 8.163 в [2]:
где
Общее обозначение для этого раздела
Описание | Обозначение |
---|---|
Отношение спектральной плотности степени бита к шуму энергии на информацию |
|
Передайте длину | |
Разрядность кода | |
Уровень кода |
|
Блочное кодирование. Определенное обозначение для выражений блочного кодирования: минимальное расстояние кода.
Мягкое решение
BPSK, QPSK, OQPSK, PAM-2, QAM-4 и предварительно закодированный MSK (уравнение 8.1-52 в [1]):
DE-BPSK, DE-QPSK, DE-OQPSK и DE-MSK:
BFSK, когерентное обнаружение (уравнения 8.1-50 и 8.1-58 в [1]):
BFSK, некогерентное квадратичное обнаружение (уравнения 8.1-65 и 8.1-64 в [1]):
DPSK:
Трудное решение
Общий линейный блочный код (уравнения 4.3, 4.4 в [9], и 12.136 в [6]):
Код Хемминга (уравнения 4.11, 4.12 в [9], и 6.72, 6.73 в [7]):
(24, 12), расширил код Golay (уравнение 4.17 в [9], и 12.139 в [6]):
где среднее количество ошибок символа канала, которые остаются в откорректированном N - кортеж, когда канал вызвал ошибки символа m (таблица 4.2 в [9]).
Код тростника-Solomon с :
для FSK (уравнения 4.25, 4.27 в [9], 8.1-115, 8.1-116 в [1], 8.7, 8.8 в [7], и 12.142, 12.143 в [6]), и
в противном случае.
Если где h является целым числом (уравнение 1 в [10]):
где s является коэффициентом ошибок символа (SER) в незакодированном канале AWGN.
Например, для BPSK, и
В противном случае, дан таблицей 1 и уравнением 2 в [10].
Сверточное Кодирование. Определенное обозначение для сверточных выражений кодирования: свободное расстояние кода, и количество путей расстояния d от все-нулевого пути, которые объединяют со все-нулевым путем впервые.
Мягкое решение
От уравнений 8.2-26, 8.2-24, и 8.2-25 в [1], и уравнений 13.28 и 13.27 в [6]:
с передаточной функцией
где экспонента N как функция d.
Результаты для BPSK, QPSK, OQPSK, PAM-2, QAM-4, предварительно закодировали MSK, DE-BPSK, DE-QPSK, DE-OQPSK, DE-MSK, DPSK, и BFSK получен как:
где BER в соответствующем незакодированном канале AWGN. Например, для BPSK (уравнение 8.2-20 в [1]):
Трудное решение
От уравнений 8.2-33, 8.2-28, и 8.2-29 в [1], и уравнений 13.28, 13.24, и 13.25 в [6]:
где
когда d является нечетным, и
когда d является четным (p является частотой ошибок по битам (BER) в незакодированном канале AWGN).
Используя симулированные данные, чтобы вычислить коэффициенты ошибок бита и символа
Сравнение коэффициента ошибок символа и частоты ошибок по битам
Один способ вычислить частоту ошибок по битам или коэффициент ошибок символа для системы связи состоит в том, чтобы симулировать передачу сообщений данных и сравнить все сообщения до и после передачи. Симуляция компонентов системы связи с помощью Communications Toolbox™ покрыта другими частями этого руководства. В этом разделе описывается сравнить сообщения данных, которые вводят и оставляют симуляцию.
Другой пример вычислительных результатов производительности через симуляцию находится в Curve Fitting для Графиков Коэффициента ошибок в обсуждении аппроксимирования кривыми.
biterr
функция сравнивает два набора данных и вычисляет количество битовых ошибок и частоты ошибок по битам. symerr
функция сравнивает два набора данных и вычисляет количество ошибок символа и коэффициента ошибок символа. Ошибка является несоответствием между соответствующими точками в двух наборах данных.
Из двух наборов данных обычно каждый представляет сообщения, вводящие передатчик, и другой представляет восстановленные сообщения, оставляя получатель. Вы можете также сравнить ввод данных и отъезд других частей вашей системы связи, например, данные, вводящие энкодер и данные, оставив декодер.
Если ваша система связи использует несколько битов, чтобы представлять один символ, подсчет битовых ошибок отличается от подсчета ошибок символа. Или в бите - или в считающем символ случае, коэффициент ошибок является количеством ошибок, разделенных на общее количество (битов или символов) переданный.
Чтобы гарантировать точный коэффициент ошибок, необходимо обычно симулировать достаточно данных, чтобы произвести по крайней мере 100 ошибок.
Если коэффициент ошибок очень мал (например, 10-6 или меньший), полуаналитический метод может вычислить результат более быстро, чем подход только для симуляции. Смотрите Результаты Производительности через Полуаналитический Метод для получения дополнительной информации о том, как использовать этот метод.
Скрипт ниже использует symerr
функция, чтобы вычислить коэффициенты ошибок символа для шумного линейного блочного кода. После искусственного добавления шума к закодированному сообщению это сравнивает получившийся шумный код с оригинальным кодом. Затем это декодирует и сравнивает декодируемое сообщение с исходным.
m = 3; n = 2^m-1; k = n-m; % Prepare to use Hamming code. msg = randi([0 1],k*200,1); % 200 messages of k bits each code = encode(msg,n,k,'hamming'); codenoisy = rem(code+(rand(n*200,1)>.95),2); % Add noise. % Decode and correct some errors. newmsg = decode(codenoisy,n,k,'hamming'); % Compute and display symbol error rates. noisyVec = step(comm.ErrorRate,code,codenoisy); decodedVec = step(comm.ErrorRate,msg,newmsg); disp(['Error rate in the received code: ',num2str(noisyVec(1))]) disp(['Error rate after decoding: ',num2str(decodedVec(1))])
Выход ниже. Уменьшения коэффициента ошибок после декодирования, потому что декодер Хэмминга корректирует некоторые ошибки. Ваши результаты могут варьироваться, потому что этот пример использует случайные числа.
Error rate in the received code: 0.054286 Error rate after decoding: 0.03
В примере выше, ошибки символа и битовые ошибки являются тем же самым, потому что каждый символ немного. Команды ниже иллюстрируют различие между ошибками символа и битовыми ошибками в других ситуациях.
a = [1 2 3]'; b = [1 4 4]'; format rat % Display fractions instead of decimals. % Create ErrorRate Calculator System object serVec = step(comm.ErrorRate,a,b); srate = serVec(1) snum = serVec(2) % Convert integers to bits hIntToBit = comm.IntegerToBit(3); a_bit = step(hIntToBit, a); b_bit = step(hIntToBit, b); % Calculate BER berVec = step(comm.ErrorRate,a_bit,b_bit); brate = berVec(1) bnum = berVec(2)
Выход ниже.
snum = 2 srate = 2/3 bnum = 5 brate = 5/9
bnum
5, потому что вторые записи отличаются по двум битам, и третьи записи отличаются по трем битам. brate
5/9, потому что общее количество битов равняется 9. Общее количество битов является, по определению, количеством записей в a
или b
времена максимальное количество битов среди всех записей a
и b
.
Метод, описанный в Результатах Производительности через Моделирование хорошо для большого множества систем связи, но, может быть предельно длительным, если коэффициент ошибок системы очень мал (например, 10-6 или меньше). В этом разделе описывается использовать полуаналитический метод в качестве альтернативного способа вычислить коэффициенты ошибок. Для определенных типов систем полуаналитический метод может привести к результатам намного более быстро, чем неаналитический метод, который использует только симулированные данные.
Полуаналитический метод использует комбинацию симуляции и анализа, чтобы определить коэффициент ошибок системы связи. semianalytic
функция в Communications Toolbox помогает вам реализовать полуаналитический метод путем выполнения части анализа.
Полуаналитический метод работает хорошо на определенные типы систем связи, но не на других. Полуаналитический метод применим, если система имеет все эти характеристики:
Любые эффекты многопутевого исчезновения, квантования и нелинейности усилителя должны предшествовать эффектам шума в фактическом смоделированном канале.
Получатель отлично синхронизируется с поставщиком услуг, и синхронизирующий дрожание незначительно. Поскольку шум фазы и синхронизирующий дрожание является медленными процессами, они уменьшают применимость полуаналитического метода к системе связи.
Бесшумная симуляция не имеет никаких ошибок в полученном сигнальном созвездии. Искажения из источников кроме шума должны быть достаточно умеренными, чтобы сохранить каждую точку сигнала в ее правильной области решения. Если дело обстоит не так, расчетный BER является слишком низким. Например, если смоделированная система имеет вращение фазы, которое помещает полученные очки сигнала за пределами их соответствующих областей решения, полуаналитический метод не подходит, чтобы предсказать производительность системы.
Кроме того, semianalytic
функция принимает, что шум в фактическом смоделированном канале является Гауссовым. Для получения дополнительной информации о том, как адаптировать полуаналитический метод к негауссову шуму, смотрите обсуждение обобщенных экспоненциальных распределений в [11].
Процедура ниже описывает, как вы обычно реализовывали бы полуаналитический метод с помощью semianalytic
функция:
Сгенерируйте сигнал сообщения, содержащий, по крайней мере, символы ML, где M является размером алфавита модуляции, и L является длиной импульсной характеристики канала в символах. Общий подход должен начать с увеличенного бинарного псевдошума (PN) последовательность общей длины (log2M)ML
. Увеличенная псевдошумовая последовательность является псевдошумовой последовательностью с дополнительным добавленным нулем, который делает распределение единиц и нулей равным.
Модулируйте поставщика услуг с сигналом сообщения использование полосовой модуляции. Поддерживаемые типы модуляции перечислены на странице с описанием для semianalytic
. Сформируйте результирующий сигнал с формированием меандра, с помощью фактора сверхдискретизации, что вы будете дальнейшее использование, чтобы отфильтровать модулируемый сигнал. Сохраните результат этого шага как txsig
для дальнейшего использования.
Отфильтруйте модулируемый сигнал с фильтром передачи. Этот фильтр часто является повышенным фильтром косинуса квадратного корня, но можно также использовать Баттерворта, функцию Бесселя, Чебышевский тип 1 или 2, эллиптического, или более общего КИХ или БИХ-фильтр. Если вы используете повышенный фильтр косинуса квадратного корня, используйте его на несверхдискретизированном модулируемом сигнале и укажите, что сверхдискретизация включает функцию фильтрации. Если вы используете другой тип фильтра, можно применить его к rectangularly сигналу импульсной формы.
Запустите пропущенный сигнал через бесшумный канал. Этот канал может включать многопутевые исчезающие эффекты, сдвиги фазы, нелинейность усилителя, квантование и дополнительную фильтрацию, но это не должно включать шум. Сохраните результат этого шага как rxsig
для дальнейшего использования.
Вызовите semianalytic
функция с помощью txsig
и rxsig
данные из более ранних шагов. Задайте получить фильтр как пару входных параметров, если вы не хотите использовать фильтр функции по умолчанию. Функция фильтрует rxsig
и затем определяет вероятность появления ошибки каждого полученного очка сигнала путем аналитичного применения Гауссова шумового распределения к каждой точке. Функциональные средние значения вероятности появления ошибки по целому полученному сигналу определить полную вероятность появления ошибки. Если вероятность появления ошибки, вычисленная таким образом, является вероятностью появления ошибки символа, функция преобразует ее в небольшой коэффициент ошибок, обычно путем принятия Грэя, кодирующего. Функция возвращает частоту ошибок по битам (или, в случае модуляции DQPSK, верхней границы на частоте ошибок по битам).
Пример ниже иллюстрирует процедуру для полуаналитического метода, с помощью 16-QAM модуляции. Это также сравнивает коэффициенты ошибок, полученные из полуаналитического метода с теоретическими коэффициентами ошибок, полученными из опубликованных формул и вычисленного использования berawgn
функция. Получившийся график показывает, что полученное использование коэффициентов ошибок этих двух методов почти идентично. Несоответствия между теоретическими и вычисленными коэффициентами ошибок происходят в основном из-за смещения фазы, вставленного через бесшумную модель канала.
Сгенерируйте сигнал сообщения длины> = M^L.
M = 16; % Alphabet size of modulation L = 1; % Length of impulse response of channel msg = [0:M-1 0]; % M-ary message sequence of length > M^L
Модулируйте сигнал сообщения использование полосовой модуляции.
modsig = qammod(msg',M); % Modulate data Nsamp = 16; modsig = rectpulse(modsig,Nsamp); % Use rectangular pulse shaping.
Примените фильтр передачи.
txsig = modsig; % No filter in this example
Запустите txsig
через бесшумный канал.
rxsig = txsig*exp(1i*pi/180); % Static phase offset of 1 degree
Используйте semianalytic
функция.
Задайте получить фильтр как пару входных параметров. В этом случае цифра и логово описывают идеальный интегратор.
num = ones(Nsamp,1)/Nsamp; den = 1; EbNo = 0:20; % Range of Eb/No values under study ber = semianalytic(txsig,rxsig,'qam',M,Nsamp,num,den,EbNo); % For comparison, calculate theoretical BER. bertheory = berawgn(EbNo,'qam',M); % Plot computed BER and theoretical BER. figure; semilogy(EbNo,ber,'k*'); hold on; semilogy(EbNo,bertheory,'ro'); title('Semianalytic BER Compared with Theoretical BER'); legend('Semianalytic BER with Phase Offset',... 'Theoretical BER Without Phase Offset','Location','SouthWest'); hold off;
В то время как biterr
функция, обсужденная выше, может помочь вам собрать эмпирическую ошибочную статистику, вы можете также сравнить те результаты с теоретической ошибочной статистикой. Определенные типы систем связи сопоставлены с выражениями закрытой формы для частоты ошибок по битам или привязанного это. Функции, перечисленные в таблице ниже, вычисляют выражения закрытой формы для некоторых типов систем связи, где такие выражения существуют.
Тип системы связи | Функция |
---|---|
Незакодированный канал AWGN | berawgn
|
Закодированный канал AWGN | bercoding |
Незакодированный Rayleigh и Rician, исчезающий канал | berfading
|
Незакодированные AWGN образовывают канал с несовершенной синхронизацией | bersync
|
Страница с описанием каждой функции перечисляет одну или несколько книг, содержащих выражения закрытой формы, которые реализует функция.
Этот пример использует bercoding
функция, чтобы вычислить верхние границы на частотах ошибок по битам для сверточного кодирования с декодером мягкого решения.
coderate = 1/4; % Code rate
Создайте структуру dspec
с информацией о спектре расстояния. Задайте развертку EbNo, располагаются и генерируют теоретические связанные результаты.
dspec.dfree = 10; % Minimum free distance of code dspec.weight = [1 0 4 0 12 0 32 0 80 0 192 0 448 0 1024 ... 0 2304 0 5120 0]; % Distance spectrum of code EbNo = 3:0.5:8; berbound = bercoding(EbNo,'conv','soft',coderate,dspec);
Постройте теоретические связанные результаты.
semilogy(EbNo,berbound) xlabel('E_b/N_0 (dB)'); ylabel('Upper Bound on BER'); title('Theoretical Bound on BER for Convolutional Coding'); grid on;
[1] Proakis, J. G. цифровая связь, 4-й Эд., McGraw-Hill, 2001.
[2] Frenger, Приятель, Приятель Ортен, и Тони Оттоссон, "Сверточные коды с Оптимальным Спектром Расстояния", Коммуникационные Буквы IEEE, Издание 3, № 11, ноябрь 1999, стр 317-319
Этот пример использует berawgn
функция, чтобы вычислить коэффициенты ошибок символа для импульсной амплитудной модуляции (PAM) с серией значений Eb/N0. Для сравнения код симулирует 8-PAM с каналом AWGN и вычисляет эмпирические коэффициенты ошибок символа. Код также строит теоретические и эмпирические коэффициенты ошибок символа того же набора осей.
Вычислите и постройте теоретический коэффициент ошибок с помощью berawgn
.
rng('default') % Set random number seed for repeatability M = 8; EbNo = 0:13; [ber, ser] = berawgn(EbNo,'pam',M); semilogy(EbNo,ser,'r'); xlabel('E_b/N_0 (dB)'); ylabel('Symbol Error Rate'); grid on;
Вычислите эмпирический коэффициент ошибок путем симуляции. Задайте параметры симуляции и предварительно выделите переменные, чтобы сэкономить время. Преобразуйте от EbNo до ОСШ. С тех пор No = 2*noiseVariance^2, мы должны добавить 3 дБ, чтобы получить ОСШ. Для получения дополнительной информации см. книгу Проукиса, перечисленную в "Выбранной Библиографии для Оценки результатов деятельности".
n = 10000; % Number of symbols to process k = log2(M); % Number of bits per symbol snr = EbNo+3+10*log10(k); ynoisy = zeros(n,length(snr)); z = zeros(n,length(snr)); berVec = zeros(3,length(EbNo));
Создайте объекты для калькулятора коэффициента ошибок канала AWGN. Калькулятор коэффициента ошибок используется, чтобы сравнить декодируемые символы с исходными переданными символами.
awgnchan = comm.AWGNChannel('NoiseMethod', 'Signal to noise ratio (SNR)'); errcalc = comm.ErrorRate;
Сгенерируйте случайное сообщение данных и примените модуляцию PAM. Нормируйте канал, чтобы сигнализировать о степени. Симуляция цикла, чтобы сгенерировать BERs в области значений значений ОСШ.
x = randi([0 M-1],n,1); % Create message signal. y = pammod(x,M); % Modulate. awgnchan.SignalPower = (real(y)' * real(y))/ length(real(y)); for jj = 1:length(snr) reset(errcalc) awgnchan.SNR = snr(jj); % Assign Channel SNR ynoisy(:,jj) = awgnchan(real(y)); % Add AWGN z(:,jj) = pamdemod(complex(ynoisy(:,jj)),M); % Demodulate. % Compute symbol error rate from simulation. berVec(:,jj) = errcalc(x,z(:,jj)); end
Сравните теоретические и эмпирические результаты.
hold on; semilogy(EbNo,berVec(1,:),'b.'); legend('Theoretical SER','Empirical SER'); title('Comparing Theoretical and Empirical Error Rates'); hold off;
Графики коэффициента ошибок обеспечивают визуальный способ исследовать производительность системы связи, и они часто включаются в публикации. Этот раздел упоминает некоторые инструменты, которые можно использовать, чтобы создать графики коэффициента ошибок, изменить их, чтобы удовлетворить потребностям и сделать аппроксимирование кривыми на данных о коэффициенте ошибок. Это также обеспечивает пример аппроксимирования кривыми. Для более детальных обсуждений о более общих возможностях графического вывода в MATLAB® смотрите набор документации MATLAB.
semilogy
Во многих графиках коэффициента ошибок горизонтальная ось указывает на значения Eb/N0 в дБ, и вертикальная ось указывает на коэффициент ошибок с помощью логарифмического (базируйтесь 10), шкала. Чтобы видеть пример такого графика, а также кода, который создает его, смотрите Сравнение Теоретических и Эмпирических Коэффициентов ошибок. Часть того примера, который создает график, использует semilogy
функционируйте, чтобы произвести логарифмический масштаб на вертикальной оси и линейную шкалу на горизонтальной оси.
Другие примеры, которые иллюстрируют использование semilogy
находятся в этих разделах:
Используя Полуаналитический Метод, который также иллюстрирует
Графический вывод двух наборов данных по одной паре осей
Добавление заголовка
Добавление легенды
Графический вывод Теоретических Коэффициентов ошибок, который также иллюстрирует
Добавление подписей по осям
Добавление линий сетки
Аппроксимирование кривыми полезно, когда вы имеете небольшой или несовершенный набор данных, но хотите построить плавную кривую в целях представления. berfit
функция в Communications Toolbox предлагает возможности подбора кривых, которые хорошо подходят для ситуации, когда эмпирические данные описывают коэффициенты ошибок в различных значениях Eb/N0. Эта функция позволяет
Настройте различные соответствующие аспекты процесса подбора кривых, такие как тип функции закрытой формы (из списка предварительно установленного выбора) раньше генерировал подгонку.
Отобразите эмпирические данные на графике наряду с кривой что berfit
подгонки к данным.
Интерполируйте точки на кривой по экспериментальным точкам между значениями Eb/N0 в вашем наборе эмпирических данных, чтобы сделать график более сглаженным взглядом.
Соберите релевантную информацию о подгонке, такой как численные значения точек вдоль кривой по экспериментальным точкам и коэффициентов подходящего выражения.
berfit
функция предназначается для аппроксимирования кривыми или интерполяции, не экстраполяции. Экстраполирование данных о BER вне порядка величины ниже наименьшего эмпирического значения BER по сути ненадежно.
Для полного списка вводов и выводов для berfit
, смотрите его страницу с описанием.
Этот пример симулирует простую систему связи дифференциального бинарного манипулирования сдвига фазы (DBPSK) и отображает данные о коэффициенте ошибок на графике для серии значений Eb/N0. Это использует berfit
функционируйте, чтобы соответствовать кривой к несколько грубому набору эмпирических коэффициентов ошибок.
Инициализируйте параметры симуляции
Задайте длину сообщения входного сигнала, порядок модуляции, область значений значений Eb/N0, чтобы рассмотреть, и минимальное количество ошибок, которые должны произойти, прежде чем симуляция вычислит коэффициент ошибок для этого значение Eb/N0. Предварительно выделите переменные для результатов и промежуточных результатов.
Для статистически точных результатов коэффициента ошибок минимальное количество ошибок должно быть на порядке 100, но эта симуляция использует небольшое количество ошибок сократить время выполнения и проиллюстрировать, как аппроксимирование кривыми может сгладить грубый набор данных.
siglen = 100000; % Number of bits in each trial M = 2; % DBPSK is binary. EbN0vec = 0:5; % Vector of EbN0 values minnumerr = 5; % Compute BER only after 5 errors occur. numEbN0 = length(EbN0vec); % Number of EbN0 values ber = zeros(1,numEbN0); % final BER values berVec = zeros(3,numEbN0); % Updated BER values intv = cell(1,numEbN0); % Cell array of confidence intervals
Создайте Систему калькулятора коэффициента ошибок object™.
errorCalc = comm.ErrorRate;
Цикл симуляции
Симулируйте модулируемую систему связи DBPSK и вычислите BER с помощью for
цикл, чтобы варьироваться значение Eb/N0. Внутренний while
цикл гарантирует, что минимальное количество битовых ошибок происходит для каждого значения Eb/N0. Статистические данные коэффициента ошибок сохранены для каждого значения Eb/N0, чтобы использовать когда аппроксимирование кривыми и графический вывод.
% Loop over the vector of EbN0 values. for jj = 1:numEbN0 EbN0 = EbN0vec(jj); snr = EbN0; % Because of binary modulation reset(errorCalc) awgnChan.SNR = snr; % Assign Channel SNR while (berVec(2,jj) < minnumerr) msg = randi([0,M-1],siglen,1); % Generate message sequence % txsig = step(hMod,msg); % Modulate txsig = dpskmod(msg,M); % Modulate awgnChan.SignalPower = (txsig'*txsig)/length(txsig); % Calculate and assign signal power % rxsig = awgnChan(txsig); % Add noise. rxsig = awgn(txsig,snr,'measured'); % Add noise. % decodmsg = step(hDemod, rxsig); % Demodulate. decodmsg = dpskdemod(rxsig,M); % Demodulate. berVec(:,jj) = errorCalc(msg,decodmsg); % Calculate BER end
Используйте berconfint
вычислить коэффициент ошибок в 98%-м доверительном интервале для значения Eb/N0.
[ber(jj), intv1] = berconfint(berVec(2,jj),berVec(3,jj),0.98); intv{jj} = intv1; disp(['EbN0 = ' num2str(EbN0) ' dB, ' num2str(berVec(2,jj)) ... ' errors, BER = ' num2str(ber(jj))]) end
EbN0 = 0 dB, 18392 errors, BER = 0.18392 EbN0 = 1 dB, 14307 errors, BER = 0.14307 EbN0 = 2 dB, 10190 errors, BER = 0.1019 EbN0 = 3 dB, 6940 errors, BER = 0.0694 EbN0 = 4 dB, 4151 errors, BER = 0.04151 EbN0 = 5 dB, 2098 errors, BER = 0.02098
Используйте berfit
построить лучшую кривую по экспериментальным точкам, интерполируя, чтобы получить сглаженный график. Добавьте доверительные интервалы в график.
fitEbN0 = EbN0vec(1):0.25:EbN0vec(end); % Interpolation values berfit(EbN0vec,ber,fitEbN0); hold on; for jj=1:numEbN0 semilogy([EbN0vec(jj) EbN0vec(jj)],intv{jj},'g-+'); end hold off;
Команда bertool запускает Аналитический Инструмент Частоты ошибок по битам (BERTool) приложение.
Приложение позволяет вам анализировать производительность частоты ошибок по битам (BER) систем связи. BERTool вычисляет BER как функцию отношения сигнал-шум. Это анализирует производительность или с симуляциями Монте-Карло функций MATLAB и моделей Simulink® или с теоретическими выражениями закрытой формы для выбранных типов систем связи.
Используя BERTool вы можете:
Сгенерируйте данные о BER для использования системы связи
Выражения закрытой формы для теоретической производительности BER выбранных типов систем связи.
Полуаналитический метод.
Симуляции содержатся в функциях симуляции MATLAB или моделях Simulink. После того, как вы создаете функцию или модель, которая симулирует систему, BERTool выполняет итерации по вашему выбору значений Eb/N0 и собирает результаты.
Постройте один или несколько наборов данных BER на одном наборе осей. Например, можно графически сравнить данные моделирования с теоретическими результатами или данные моделирования от ряда подобных моделей системы связи.
Соответствуйте кривой к набору данных моделирования.
Отправьте данные о BER в рабочее пространство MATLAB, или в файл для дальнейшей обработки вас может хотеть выполнить.
BERTool спроектирован для анализа частот ошибок по битам только, не коэффициентов ошибок символа, коэффициентов ошибок слова или других типов коэффициентов ошибок. Если, например, ваша симуляция вычисляет коэффициент ошибок символа (SER), преобразуйте SER в BER перед использованием симуляции с BERTool.
Следующие разделы описывают Аналитический Инструмент Частоты ошибок по битам (BERTool) и обеспечивают примеры, показывающие, как использовать его графический интерфейс пользователя.
Чтобы открыть BERTool, ввести
bertool
Компоненты BERTool
Средство просмотра данных наверху. Это первоначально пусто.
После того, как вы дадите BERTool команду генерировать один или несколько наборов данных BER, они появляются в средстве просмотра данных. Пример, который показывает, как взгляд наборов данных в средстве просмотра данных находится в Примере: Используя Симуляцию MATLAB с BERTool.
Набор вкладок на нижней части. Пометил Theoretical, Semianalytic и Monte Carlo, вкладки соответствуют различным методам, которыми BERTool может сгенерировать данные о BER.
При использовании BERTool, чтобы сравнить теоретические результаты и результаты Монте-Карло, предоставленная модель Simulink должна смоделировать точно систему, заданную параметрами на вкладке Theoretical.
Чтобы узнать больше о каждом из методов, смотрите
Отдельное Окно рисунка BER, которое отображает некоторых или все наборы данных BER, которые перечислены в средстве просмотра данных. BERTool создает Окно фигуры BER после того, как это имеет по крайней мере один набор данных, чтобы отобразиться, таким образом, вы не видите Окно рисунка BER, когда вы открываете сначала BERTool. Для примера того, как Окно рисунка BER выглядит, смотрите Пример: Используя Теоретическую Вкладку в BERTool.
Взаимодействие Среди Компонентов BERTool. Компоненты BERTool действуют как один интегрированный инструмент. Эти поведения отражают свое интегрирование:
Если вы выбираете набор данных в средстве просмотра данных, BERTool реконфигурировал вкладки, чтобы отразить параметры, сопоставленные с тем набором данных, и также подсвечивает соответствующие данные в Окне рисунка BER. Это полезно, если средство просмотра данных отображает несколько наборов данных, и вы хотите вспомнить значение и источник каждого набора данных.
Если вы кликаете по данным, отображенным на графике в Окне рисунка BER, BERTool реконфигурировал вкладки, чтобы отразить параметры, сопоставленные с теми данными, и также подсвечивает соответствующий набор данных в средстве просмотра данных.
Вы не можете нажать на точку данных, в то время как BERTool генерирует результаты симуляции Монте-Карло. Необходимо ожидать, пока инструмент не генерирует все точки данных прежде, чем щелкнуть для получения дополнительной информации.
Если вы конфигурируете вкладку Semianalytic или Theoretical способом, которая уже отражается в существующем наборе данных, BERTool подсвечивает что набор данных в средстве просмотра данных. Это препятствует тому, чтобы BERTool копировал свои расчеты и свои записи в средстве просмотра данных, все еще показывая вам результаты, которые вы запросили.
Если вы закрываете Окно рисунка BER, то можно вновь открыть его путем выбора BER Figure из меню Window в BERTool.
Если вы выбираете опции в средстве просмотра данных, которые влияют на график BER, Окно рисунка BER сразу отражает ваши выборы. Такие опции относятся к именам набора данных, доверительным интервалам, аппроксимированию кривыми, и присутствию или отсутствию определенных наборов данных в графике BER.
Если вы хотите наблюдать интегрирование сами, но еще не имеете никаких наборов данных в BERTool, то сначала пробуют процедуру в Примере: Используя Теоретическую Вкладку в BERTool.
Если вы сохраняете Окно рисунка BER с помощью меню File окна, получившийся файл содержит содержимое окна, но не данных BERTool, которые привели к графику. Чтобы сохранить целый сеанс BERTool, смотрите Сохранение Сеанса BERTool.
Разделите Обзор. Можно использовать BERTool, чтобы сгенерировать и анализировать теоретические данные о BER. Теоретические данные полезны для сравнения с вашими результатами симуляции. Однако выражения BER закрытой формы существуют только для определенных видов систем связи.
Чтобы получить доступ к возможностям BERTool, связанного с теоретическими данными о BER, используйте следующую процедуру:
Откройте BERTool и перейдите к вкладке Theoretical.
Установите параметры, чтобы отразить систему, производительность которой вы хотите анализировать. Некоторые параметры отображаются и активны только, когда другие параметры имеют определенные значения. Смотрите Доступные Наборы Теоретических Данных о BER для деталей.
Нажмите Plot.
Для примера, который показывает, как сгенерировать и анализировать теоретические данные о BER через BERTool, смотрите Пример: Используя Теоретическую Вкладку в BERTool.
Кроме того, Доступные Наборы Теоретических Данных о BER указывает, какие комбинации параметров доступны на вкладке Theoretical и какие базовые функции выполняют расчеты.
Пример: Используя Теоретическую Вкладку в BERTool. Этот пример иллюстрирует, как использовать BERTool, чтобы сгенерировать и отобразить теоретические данные о BER на графике. В частности, пример сравнивает производительность системы связи, которая использует канал AWGN и модуляцию QAM различных порядков.
Выполнение теоретического примера
Откройте BERTool и перейдите к вкладке Theoretical.
Установите параметры как показано в следующем рисунке.
Нажмите Plot.
BERTool создает запись в средстве просмотра данных и отображает данные на графике в Окне рисунка BER. Даже при том, что параметры запрашивают, чтобы Eb/N0 подошли 18, BERTool строит только те значения BER, которые являются по крайней мере 10-8. Следующие фигуры иллюстрируют этот шаг.
Измените параметр Modulation order в 16
, и нажмите Plot.
BERTool создает другую запись в средстве просмотра данных и отображает новые данные на графике в том же Окне рисунка BER (не изображенный).
Измените параметр Modulation order в 64
, и нажмите Plot.
BERTool создает другую запись в средстве просмотра данных и отображает новые данные на графике в том же Окне рисунка BER, как показано в следующих фигурах.
Чтобы вспомнить, какое значение Modulation order соответствует данной кривой, кликните по кривой. BERTool отвечает путем корректировки параметров во вкладке Theoretical, чтобы отразить значения, которые соответствуют той кривой.
Чтобы удалить последнюю кривую из графика (но не из средства просмотра данных), снимите флажок в последней записи средства просмотра данных в столбце Plot. Чтобы восстановить кривую к графику, установите флажок снова.
Доступные Наборы Теоретических Данных о BER. BERTool может сгенерировать большой набор теоретических частот ошибок по битам, но не все комбинации параметров в настоящее время поддержаны. Вкладка Theoretical настраивает себя к вашему выбору, так, чтобы комбинация параметров была всегда допустима. Можно установить параметр Modulation order путем выбора выбора из меню или путем ввода значения в поле. Normalized timing error должен быть между 0 и 0.5.
BERTool принимает, что Грэй, кодирующий, используется во всех модуляциях.
Для QAM, когда является нечетным (M, являющийся порядком модуляции), прямоугольное созвездие принято.
Комбинации параметров для систем канала AWGN
В следующей таблице перечислены доступные наборы теоретических данных о BER для систем, которые используют канал AWGN.
Модуляция | Порядок модуляции | Другой выбор |
---|---|---|
PSK | 2, 4 | Дифференциальное или недифференциальное кодирование. |
8, 16, 32, 64, или более высокая степень 2 | ||
OQPSK | 4 | Дифференциальное или недифференциальное кодирование. |
DPSK | 2, 4, 8, 16, 32, 64, или более высокая степень 2 | |
PAM | 2, 4, 8, 16, 32, 64, или более высокая степень 2 | |
QAM | 4, 8, 16, 32, 64, 128, 256, 512, 1024, или более высокая степень 2 | |
FSK | 2 | Ортогональный или неортогональный; Coherent или Noncoherent демодуляция. |
4, 8, 16, 32, или более высокая степень 2 | Ортогональный; Coherent демодуляция. | |
4, 8, 16, 32, или 64 | Ортогональный; Noncoherent демодуляция. | |
MSK | 2 | Coherent обычный или предварительно закодированный MSK; Noncoherent предварительно закодированный MSK. |
CPFSK | 2, 4, 8, 16, или более высокая степень 2 | Modulation index > 0. |
Результаты BER также доступны для следующего:
блокируйтесь и сверточное кодирование с декодированием трудного решения для всех модуляций кроме CPFSK
блочное кодирование с декодированием мягкого решения для всех двоичных модуляций (включая 4-PSK и 4-QAM) кроме CPFSK, некогерентного неортогонального FSK и некогерентного MSK
сверточное кодирование с декодированием мягкого решения для всех двоичных модуляций (включая 4-PSK и 4-QAM) кроме CPFSK
незакодированный недифференцированно закодированный 2-PSK с ошибками синхронизации
Для получения дополнительной информации об определенных комбинациях параметров, включая библиографические ссылки, которые содержат выражения закрытой формы, смотрите страницы с описанием для следующих функций:
Комбинации параметров для рэлеевского и систем канала Rician
В следующей таблице перечислены доступные наборы теоретических данных о BER для систем, которые используют канал Rayleigh или Rician.
Когда разнообразие используется, ОСШ на каждой ветви разнообразия выведен из ОСШ во входе канала (EbNo
) разделенный на порядок разнообразия.
Модуляция | Порядок модуляции | Другой выбор |
---|---|---|
PSK | 2 | Дифференциальное или недифференциальное кодирование
В случае недифференциального кодирования, порядок разнообразия, являющийся 1, и исчезновение Rician, может быть задано значение для шума фазы RMS (в радианах). |
4, 8, 16, 32, 64, или более высокая степень 2 | Diversity order ≧1 | |
OQPSK | 4 | Diversity order ≧1 |
DPSK | 2, 4, 8, 16, 32, 64, или более высокая степень 2 | Diversity order ≧1 |
PAM | 2, 4, 8, 16, 32, 64, или более высокая степень 2 | Diversity order ≧1 |
QAM | 4, 8, 16, 32, 64, 128, 256, 512, 1024, или более высокая степень 2 | Diversity order ≧1 |
FSK | 2 | Коэффициент корреляции .
В случае ненулевого коэффициента корреляции и некогерентной демодуляции, порядок разнообразия равняется 1 только. |
4, 8, 16, 32, или более высокая степень 2 | Noncoherent демодуляция только. Diversity order ≧1 |
Для получения дополнительной информации об определенных комбинациях параметров, включая библиографические ссылки, которые содержат выражения закрытой формы, смотрите страницу с описанием для berfading
функция.
Разделите Обзор. Можно использовать BERTool, чтобы сгенерировать и анализировать данные о BER через полуаналитический метод. Полуаналитический метод обсужден в Результатах Производительности через Полуаналитический Метод, и Когда Использовать Полуаналитический Метод, особенно релевантно как справочный материал.
Чтобы получить доступ к полуаналитическим возможностям BERTool, откройте вкладку Semianalytic.
Для получения дальнейшей информации о том, как BERTool применяет полуаналитический метод, смотрите страницу с описанием для semianalytic
функция, который использование BERTool выполнить расчеты.
Пример: Используя Полуаналитическую Вкладку в BERTool. Этот пример иллюстрирует, как BERTool применяет полуаналитический метод, с помощью 16-QAM модуляции. Этим примером является изменение на примере в Использовании Полуаналитического Метода, но это адаптируется, чтобы использовать BERTool вместо того, чтобы использовать semianalytic
функционируйте непосредственно.
Выполнение полуаналитического примера
Настройте переданные и полученные сигналы. Сгенерируйте сигнал сообщения длины> = M L. Модулируйте сигнал сообщения использование полосовой модуляции. Примените формирование импульса без дальнейшей фильтрации передачи. Передайте сигнал передачи через бесшумный канал.
M = 16; % Alphabet size of modulation L = 1; % Length of impulse response of channel msg = [0:M-1 0]; % M-ary message sequence of length > M^L modsig = qammod(msg,M); % Use 16-QAM. Nsamp = 16; modsig = rectpulse(modsig,Nsamp); % Use rectangular pulse shaping. txsig = modsig; % No filter in this example rxsig = txsig*exp(j*pi/180); % Static phase offset of 1 degree
Откройте BERTool и перейдите к вкладке Semianalytic.
Установите параметры как показано в следующем рисунке.
Нажмите Plot.
Видимые результаты полуаналитического примера
После того, как вы нажмете Plot, BERTool создает листинг для получившихся данных в средстве просмотра данных.
BERTool отображает данные на графике в Окне рисунка BER.
Процедура для Использования Полуаналитической Вкладки в BERTool. Процедура ниже описывает, как вы обычно реализуете полуаналитический метод с помощью BERTool:
Сгенерируйте сигнал сообщения, содержащий, по крайней мере, символы ML, где M является размером алфавита модуляции, и L является длиной импульсной характеристики канала в символах. Общий подход должен начать с увеличенного бинарного псевдошума (PN) последовательность общей длины (log2M)ML
. Увеличенная псевдошумовая последовательность является псевдошумовой последовательностью с дополнительным добавленным нулем, который делает распределение единиц и нулей равным.
Модулируйте поставщика услуг с сигналом сообщения использование полосовой модуляции. Поддерживаемые типы модуляции перечислены на странице с описанием для semianalytic
. Сформируйте результирующий сигнал с формированием меандра, с помощью фактора сверхдискретизации, что вы будете дальнейшее использование, чтобы отфильтровать модулируемый сигнал. Сохраните результат этого шага как txsig
для дальнейшего использования.
Отфильтруйте модулируемый сигнал с фильтром передачи. Этот фильтр часто является повышенным фильтром косинуса квадратного корня, но можно также использовать Баттерворта, функцию Бесселя, Чебышевский тип 1 или 2, эллиптического, или более общего КИХ или БИХ-фильтр. Если вы используете повышенный фильтр косинуса квадратного корня, используйте его на несверхдискретизированном модулируемом сигнале и укажите, что сверхдискретизация включает функцию фильтрации. Если вы используете другой тип фильтра, можно применить его к rectangularly сигналу импульсной формы.
Запустите пропущенный сигнал через бесшумный канал. Этот канал может включать многопутевые исчезающие эффекты, сдвиги фазы, нелинейность усилителя, квантование и дополнительную фильтрацию, но это не должно включать шум. Сохраните результат этого шага как rxsig
для дальнейшего использования.
На вкладке Semianalytic BERTool введите параметры как в приведенную ниже таблицу.
'ParameterName' | Значение |
---|---|
Eb/No range | Вектор, который перечисляет значения Eb/N0, для которого вы хотите собрать данные о BER. Значение в этом поле может быть выражением MATLAB или именем переменной в рабочем пространстве MATLAB. |
Modulation type | Эти параметры описывают схему модуляции, которую вы использовали ранее в этой процедуре. |
Modulation order | |
Differential encoding | Этот флажок, который отображается и активен для MSK и модуляции PSK, позволяет вам выбрать между дифференциальным и недифференциальным кодированием. |
Samples per symbol | Количество выборок на символ в переданном сигнале. Это значение является также уровнем выборки переданных и полученных сигналов в Гц. |
Transmitted signal | txsig сигнализируйте, что вы сгенерировали ранее в этой процедуре |
Received signal | rxsig сигнализируйте, что вы сгенерировали ранее в этой процедуре |
Numerator | Коэффициенты фильтра получателя, что BERTool применяется к полученному сигналу |
Denominator |
Непротиворечивость среди значений в графический интерфейсе пользователя важна. Например, если сигнал, на который ссылаются в поле Transmitted signal, был сгенерирован с помощью DPSK, и вы устанавливаете Modulation type на MSK
, результаты не могут быть значимыми.
Нажмите Plot.
Полуаналитические расчеты и результаты
После того, как вы нажмете Plot, BERTool выполняет эти задачи:
Фильтры rxsig
и затем определяет вероятность появления ошибки каждого полученного очка сигнала путем аналитичного применения Гауссова шумового распределения к каждой точке. BERTool составляет в среднем вероятности появления ошибки по целому полученному сигналу определить полную вероятность появления ошибки. Если вероятность появления ошибки, вычисленная таким образом, является вероятностью появления ошибки символа, BERTool преобразует ее в небольшой коэффициент ошибок, обычно путем принятия Грэя, кодирующего. (Если тип модуляции является DQPSK или перекрестным QAM, результатом является верхняя граница на частоте ошибок по битам, а не самой частоте ошибок по битам.)
Вводит получившиеся данные о BER в средство просмотра данных окна BERTool.
Отображает получившиеся данные о BER на графике в Окне рисунка BER.
Разделите Обзор. Можно использовать BERTool в сочетании с собственными функциями симуляции MATLAB, чтобы сгенерировать и анализировать данные о BER. Функция MATLAB симулирует систему связи, производительность которой вы хотите изучить. BERTool вызывает симуляцию для значений Eb/N0, которые вы задаете, собирает данные о BER от симуляции и создает график. BERTool также позволяет вам легко изменить область значений Eb/N0 и критерий остановки для симуляции.
Чтобы изучить, как сделать ваши собственные функции симуляции совместимыми с BERTool, смотрите Функции Симуляции Использования с BERTool.
Пример: Используя Симуляцию MATLAB с BERTool. Этот пример иллюстрирует, как BERTool может запустить функцию симуляции MATLAB. Функцией является viterbisim
, один из демонстрационных файлов включен с программным обеспечением Communications Toolbox.
Чтобы запустить этот пример, выполните эти шаги:
Откройте BERTool и перейдите к вкладке Monte Carlo. (Параметры по умолчанию зависят от того, установили ли вам программное обеспечение Communications Toolbox. Также обратите внимание, что поле BER variable name применяется только к моделям Simulink.)
Установите параметры как показано в следующем рисунке.
Нажмите Run.
BERTool запускает функцию симуляции однажды для каждого заданного значения Eb/N0 и собирает данные о BER. (В то время как BERTool занят этой задачей, он не может обработать определенные другие задачи, включая отображение на графике данных из других вкладок графический интерфейса пользователя.)
Затем BERTool создает листинг в средстве просмотра данных.
BERTool отображает данные на графике в Окне рисунка BER.
Чтобы изменить область значений Eb/N0 при сокращении количества битов, обработанных в каждом случае, введите [5 5.2 5.3]
в поле Eb/No range введите 1e5
в поле Number of bits, и нажимают Run.
BERTool запускает функцию симуляции снова для каждого нового значения Eb/N0 и собирает новые данные о BER. Затем BERTool создает другой листинг в средстве просмотра данных.
BERTool отображает данные на графике в Окне рисунка BER, настраивая горизонтальную ось, чтобы хранить новые данные.
Две точки, соответствующие 5 дБ от этих двух наборов данных, отличаются, потому что меньшее значение Number of bits во второй симуляции заставило симуляцию заканчиваться прежде, чем наблюдать много ошибок. Чтобы узнать больше о критериях что использование BERTool для конечных симуляций, смотрите Варьирование Критерия остановки.
Для другого примера, который использует BERTool, чтобы запустить функцию симуляции MATLAB, смотрите Пример: Подготовьте Функцию Симуляции к Использованию с BERTool.
Варьируясь Критерий остановки. Когда вы создаете функцию симуляции MATLAB для использования с BERTool, необходимо управлять потоком так, чтобы симуляция закончилась, когда это или обнаруживает целевое количество ошибок или обрабатывает максимальное количество битов, какой бы ни происходит сначала. Чтобы узнать больше об этом требовании, смотрите Требования для Функций; для примера смотрите Пример: Подготовьте Функцию Симуляции к Использованию с BERTool.
После создания вашей функции, определенной целевой номер ошибок и максимальное количество битов во вкладке Monte Carlo BERTool.
Как правило, значение Number of errors, по крайней мере, 100
производит точный коэффициент ошибок. Значение Number of bits препятствует тому, чтобы симуляция запускалась слишком долго, особенно в больших значениях Eb/N0. Однако, если значение Number of bits так мало, что симуляция собирает очень немного ошибок, коэффициент ошибок не может быть точным. Можно использовать доверительные интервалы, чтобы измерить точность коэффициентов ошибок, которые производит симуляция; чем больше доверительный интервал, тем менее точный вычисленный коэффициент ошибок.
Как пример, выполните процедуру, описанную в Примере: Используя Симуляцию MATLAB с BERTool и набором Confidence Level к 95
для каждого из этих двух наборов данных. Доверительные интервалы для второго набора данных больше, чем те для набора First Data. Это вызвано тем, что второй набор данных использует маленькое значение в Number of bits относительно свойств системы связи и значения в Eb/No range, приводящем к значениям BER только на основе небольшого количества наблюдаемых ошибок.
Можно также использовать кнопку Stop в BERTool, чтобы остановить ряд симуляций преждевременно, пока функция настраивается, чтобы обнаружить и реагировать на нажатие кнопки.
Графический вывод Доверительных интервалов. После того, как вы запустите симуляцию с BERTool, получившийся набор данных в средстве просмотра данных имеет активное меню в столбце Confidence Level. Значением по умолчанию является off
, так, чтобы данные моделирования в Окне рисунка BER не показывали доверительные интервалы.
Чтобы показать доверительные интервалы в Окне рисунка BER, установите Confidence Level на численное значение: 90%
, 95%, или
99%
.
График в Окне рисунка BER сразу отвечает на ваш выбор. Демонстрационный график ниже.
Для примера, который строит доверительные интервалы для симуляции Simulink, смотрите Пример: Используя Модель Simulink с BERTool.
Чтобы найти доверительные интервалы для уровней не перечисленными в меню Confidence Level, используйте berconfint
функция.
Подходящие Точки BER к Кривой. После того, как вы запустите симуляцию с BERTool, Окно рисунка BER строит отдельные точки данных BER. Чтобы соответствовать кривой к набору данных, который содержит по крайней мере четыре точки, выберите поле в столбце Fit средства просмотра данных.
График в Окне рисунка BER сразу отвечает на ваш выбор. Демонстрационный график ниже.
Для примера, который выполняет аппроксимирование кривыми для данных из симуляции Simulink и генерирует график, показанный выше, смотрите Пример: Используя Модель Simulink с BERTool. Для примера, который выполняет аппроксимирование кривыми для данных из функции симуляции MATLAB, смотрите Пример: Подготовьте Функцию Симуляции к Использованию с BERTool.
Для большей гибкости в процессе подбора кривой кривой к данным о BER используйте berfit
функция.
Требования для Функций. Когда вы создаете функцию MATLAB для использования с BERTool, гарантируете, что функция взаимодействует правильно с графический интерфейсом пользователя. В этом разделе описываются входные параметры, выходные параметры и основную операцию BERTool-совместимой функции.
Входные параметры
BERTool оценивает ваши записи в областях графический интерфейса пользователя и передает данные функции как эти входные параметры в последовательности:
Одно значение от вектора Eb/No range каждый раз BERTool вызывает функцию симуляции
Значение Number of errors
Значение Number of bits
Выходные аргументы
Ваша функция симуляции должна вычислить и возвратить эти выходные аргументы в последовательности:
Частота ошибок по битам симуляции
Количество битов, обработанных при вычислении BER
BERTool использует эти выходные аргументы при создании отчетов и графическом выводе результатов.
Операция симуляции
Ваша функция симуляции должна выполнить эти задачи:
Симулируйте систему связи для значения Eb/N0, заданного в первом входном параметре.
Прекратите симулировать, когда количество ошибок или количество обработанных битов будут равняться или будут превышать соответствующий порог, заданный во втором или третьем входном параметре, соответственно.
Обнаружьте, нажимаете ли вы Stop in BERTool и прерываете симуляцию в этом случае.
Обработайте по шаблону для Функции Симуляции. Используйте следующий шаблон при адаптации кода, чтобы работать с BERTool. Можно открыть его в редакторе путем ввода edit bertooltemplate
в Окне Команды MATLAB. Понимание Шаблона объясняет ключевые разделы шаблона, в то время как Используя Шаблон указывает, как использовать шаблон с вашим собственным кодом симуляции. В качестве альтернативы можно разработать функцию симуляции, не используя шаблон, но быть уверены, что это удовлетворяет требованиям, описанным в Требованиях для Функций.
Шаблон еще не готов к употреблению с BERTool. Необходимо ввести собственный код симуляции в местах, отмеченных INSERT YOUR CODE HERE
. Для полного примера на основе этого шаблона смотрите Пример: Подготовьте Функцию Симуляции к Использованию с BERTool.
function [ber, numBits] = bertooltemplate(EbNo, maxNumErrs, maxNumBits) % Import Java class for BERTool. import com.mathworks.toolbox.comm.BERTool; % Initialize variables related to exit criteria. berVec = zeros(3,1); % Updated BER values % --- Set up parameters. --- % --- INSERT YOUR CODE HERE. % Simulate until number of errors exceeds maxNumErrs % or number of bits processed exceeds maxNumBits. while((berVec(2) < maxNumErrs) && (berVec(3) < maxNumBits)) % Check if the user clicked the Stop button of BERTool. if (BERTool.getSimulationStop) break; end % --- Proceed with simulation. % --- Be sure to update totErr and numBits. % --- INSERT YOUR CODE HERE. end % End of loop % Assign values to the output variables. ber = berVec(1); numBits = berVec(3);
От изучения кода в шаблоне функции наблюдайте, как функция или удовлетворяет требованиям, перечисленным в Требованиях для Функций, или указывает, где ваши собственные вставки кода должны сделать так. В частности,
Функция имеет соответствующие аргументы ввода и вывода.
Функция включает заполнителя для кода, который симулирует систему для данного значения E b/N0.
Функция использует циклическую структуру, чтобы прекратить симулировать, когда количество ошибок превышает maxNumErrs
или количество битов превышает maxNumBits
, какой бы ни происходит сначала.
Несмотря на то, что while
оператор цикла описывает выходные критерии, ваш собственный код, введенный в раздел, отметил Proceed with simulation
должен вычислить количество ошибок и количество битов. Если вы не выполняете эти расчеты в своем собственном коде, нажатие по Stop является единственным способом отключить цикл.
В каждой итерации цикла функция обнаруживает, когда пользователь нажимает Stop in BERTool.
Вот процедура для использования шаблона с вашим собственным кодом симуляции:
Определите задачи настройки, которые необходимо выполнить. Например, вы можете хотеть инициализировать переменные, содержащие размер алфавита модуляции, коэффициенты фильтра, сверточную решетку кодирования или состояния сверточного interleaver. Поместите код для этих задач настройки в разделе шаблона отметил Set up parameters
.
Определите базовые задачи симуляции, приняв, что вся настройка работает, был уже выполнен. Например, эти задачи могут включать кодирование контроля ошибок, модуляцию/демодуляцию и моделирование канала. Поместите код для этих базовых задач симуляции в разделе шаблона отметил Proceed with simulation
.
Также в шаблоне раздел отметил Proceed with simulation
, включайте код, который обновляет значения totErr
и numBits
. Количество totErr
представляет количество ошибок, наблюдаемых до сих пор. Количество numBits
представляет количество битов, обработанных до сих пор. Расчеты, чтобы обновить эти переменные зависят от того, как работают ваши базовые задачи симуляции.
Обновление количеств ошибок и битов важно для обеспечения, что цикл завершает работу. Однако, если вы случайно создаете бесконечный цикл рано в вашей технической разработке с помощью шаблона функции, нажмите Stop in BERTool, чтобы прервать симуляцию.
Не используйте любой код настройки, который инициализирует EbNo
, maxNumErrs
, или maxNumBits
, потому что BERTool передает эти количества функции как входные параметры после оценки данных, вводимых в графический интерфейс пользователя.
Настройте свой код или код шаблона по мере необходимости, чтобы использовать сопоставимые имена переменных и значения. Например, если ваш оригинальный код использует переменную под названием ebn0
и объявление функции шаблона (первая линия) использует имя переменной EbNo
, необходимо поменять одно из имен, таким образом, они соответствуют. Как другой пример, если ваш оригинальный код использует ОСШ вместо E b/N0, необходимо преобразовать количества соответственно.
Пример: Подготовьте Функцию Симуляции к Использованию с BERTool. Этот раздел адаптирует шаблон функции, данный в Шаблоне для Функции Симуляции.
Подготовка функции
Чтобы подготовить функцию к использованию с BERTool, выполните эти шаги:
Скопируйте шаблон с Шаблона для Функции Симуляции в новый файл MATLAB в редакторе MATLAB. Сохраните его в папке на своем пути MATLAB с помощью имени файла bertool_simfcn
.
Из исходного примера следующие линии являются задачами настройки. Они изменяются из исходного примера, чтобы использовать входные параметры, которые BERTool предоставляет функции, вместо того, чтобы задать переменные, такие как EbNovec
и numerrmin
непосредственно.
% Set up initial parameters. siglen = 1000; % Number of bits in each trial M = 2; % DBPSK is binary. snr = EbNo; % Because of binary modulation % ErrorRate calculator System object to compare decoded symbols to the % original transmitted symbols. errorCalc = comm.ErrorRate;
Поместите эти строки кода в разделе шаблона отметили Set up parameters
.
Из исходного примера следующие линии являются базовыми задачами симуляции, после того, как вся настройка работает, был выполнен.
msg = randi([0,M-1], siglen, 1); % Generate message sequence. txsig = dpskmod(msg,M); % Modulate. hChan.SignalPower = (txsig'*txsig)/length(txsig); % Calculate and % assign signal power rxsig = awgn(txsig,snr,'measured'); % Add noise. decodmsg = dpskdemod(rxsig,M); % Demodulate. berVec = errorCalc(msg,decodmsg); % Calculate BER
Поместите код для этих базовых задач симуляции в разделе шаблона отметил Proceed with simulation
.
bertool_simfcn
функция теперь совместима с BERTool. Обратите внимание на то, что различающийся исходный пример, функция здесь не инициализирует EbNovec
, задайте EbNo
как скаляр или использование numerrmin
как целевое количество ошибок; это вызвано тем, что BERTool обеспечивает входные параметры для подобных количеств. bertool_simfcn
функция также исключает код, связанный с графическим выводом, аппроксимированием кривыми и доверительными интервалами в исходном примере, потому что BERTool позволяет вам сделать подобные задачи в интерактивном режиме без написания кода.
Используя подготовленную функцию
Использовать bertool_simfcn
в сочетании с BERTool продолжите пример путем выполнения этих шагов:
Откройте BERTool и перейдите к вкладке Monte Carlo.
Установите параметры на вкладке Monte Carlo как показано в следующем рисунке.
Нажмите Run.
BERTool тратит результаты вычисления некоторого времени и затем строит их. Они, кажется, не падают вдоль плавной кривой, потому что симуляция потребовала только пяти ошибок для каждого значения в EbNo
.
Чтобы соответствовать кривой к серии точек в Окне рисунка BER, выберите поле рядом с Fit в средстве просмотра данных.
BERTool строит кривую как показано в следующем рисунке.
Разделите Обзор. Можно использовать BERTool в сочетании с моделями Simulink, чтобы сгенерировать и анализировать данные о BER. Модель Simulink симулирует систему связи, производительность которой вы хотите изучить, в то время как BERTool управляет рядом симуляций с помощью модели и собирает данные о BER.
Чтобы использовать модели Simulink в BERTool, у вас должна быть лицензия Simulink. Программное обеспечение Communications Toolbox настоятельно рекомендовано. Остальная часть этого раздела принимает, что у вас есть лицензия и на Simulink и на приложения Communications Toolbox.
Чтобы получить доступ к возможностям BERTool, связанного с моделями Simulink, откройте вкладку Monte Carlo.
Для получения дальнейшей информации о доверительных интервалах и аппроксимировании кривыми для данных моделирования, смотрите Доверительные интервалы Графического вывода и Подходящие Точки BER к Кривой, соответственно.
Пример: Используя Модель Simulink с BERTool. Этот пример иллюстрирует, как BERTool может управлять рядом симуляций модели Simulink, и как можно варьироваться график. Моделью является commgraycode
, одна из демонстрационных моделей включена с программным обеспечением Communications Toolbox. Пример принимает, что вам установили программное обеспечение Communications Toolbox.
Чтобы запустить этот пример, выполните эти шаги:
Откройте BERTool и перейдите к вкладке Monte Carlo. Имя файла модели, commgraycode.mdl
, появляется как параметр Simulation MATLAB file or Simulink model. (Если viterbisim.m
появляется там, выберите, чтобы указать, что программное обеспечение Communications Toolbox установлено.)
Нажмите Run.
BERTool загружает модель в память (который в свою очередь инициализирует несколько переменных в рабочем пространстве MATLAB), запускает симуляцию однажды для каждого значения Eb/N0 и собирает данные о BER. BERTool создает листинг в средстве просмотра данных.
BERTool отображает данные на графике в Окне рисунка BER.
Чтобы соответствовать кривой к серии точек в Окне рисунка BER, выберите поле рядом с Fit в средстве просмотра данных.
BERTool строит кривую, как ниже.
Чтобы указать на 99%-й доверительный интервал вокруг каждой точки в данных моделирования, установите Confidence Level на 99%
в средстве просмотра данных.
BERTool отображает значение погрешности, чтобы представлять доверительные интервалы, как ниже.
Другой пример, который использует BERTool, чтобы управлять рядом симуляций Simulink, находится в Примере: Подготовьте Модель к Использованию с BERTool.
Варьируясь Критерий остановки. Когда вы создаете модель Simulink для использования с BERTool, необходимо настроить его так, чтобы симуляция закончилась, когда это или обнаруживает целевое количество ошибок или обрабатывает максимальное количество битов, какой бы ни происходит сначала. Чтобы узнать больше об этом требовании, смотрите Требования для Моделей; для примера смотрите Пример: Подготовьте Модель к Использованию с BERTool.
После создания вашей модели Simulink, определенной целевой номер ошибок и максимальное количество битов во вкладке Monte Carlo BERTool.
Как правило, значение Number of errors, по крайней мере, 100
производит точный коэффициент ошибок. Значение Number of bits препятствует тому, чтобы симуляция запускалась слишком долго, особенно в больших значениях Eb/N0. Однако, если значение Number of bits так мало, что симуляция собирает очень немного ошибок, коэффициент ошибок не может быть точным. Можно использовать доверительные интервалы, чтобы измерить точность коэффициентов ошибок, которые производит симуляция; чем больше доверительный интервал, тем менее точный вычисленный коэффициент ошибок.
Можно также нажать Stop in BERTool, чтобы остановить ряд симуляций преждевременно.
Требования для Моделей. Модель Simulink должна удовлетворить этим требованиям, прежде чем можно будет использовать ее с BERTool, где чувствительные к регистру имена переменных нужно точно так же, как показать ниже:
Блок канала должен использовать переменную EbNo
вместо трудно закодированного значения для Eb/N0.
Симуляция должна остановиться, когда ошибочное количество достигает значения переменной maxNumErrs
или когда количество обработанных битов достигает значения переменной maxNumBits
, какой бы ни происходит сначала.
Можно сконфигурировать блок Error Rate Calculation в программном обеспечении Communications Toolbox, чтобы остановить симуляцию на основе таких критериев.
Симуляция должна отправить данные об уровне конечной погрешности в рабочее пространство MATLAB как переменная, имя которой вы вводите в поле BER variable name в BERTool. Переменная должна быть трехэлементным вектором, который перечисляет BER, количество битовых ошибок и количество обработанных битов.
Этот трехэлементный векторный формат поддерживается блоком Error Rate Calculation.
Советы для Подготовки Моделей. Вот некоторые советы для подготовки модели Simulink для использования с BERTool:
Чтобы избегать использования имени неопределенной переменной в диалоговом окне для блока Simulink на шагах, которые следуют, настройте переменные в рабочем пространстве MATLAB с помощью команды, такие как та ниже.
EbNo = 0; maxNumErrs = 100; maxNumBits = 1e8;
Вы можете также хотеть поместить ту же команду в коллбэк функции предварительной нагрузки модели, инициализировать переменные, если вы вновь открыли модель в будущем сеансе работы с MATLAB.
Когда вы используете BERTool, он вводит фактические значения на основе того, что вы вводите в графический интерфейс пользователя, таким образом, начальные значения выше несколько произвольны.
Чтобы смоделировать канал, используйте блок AWGN Channel в программном обеспечении Communications Toolbox этими параметрами:
Mode = Signal to noise ratio (Eb/No)
Eb/No = EbNo
Чтобы вычислить коэффициент ошибок, используйте блок Error Rate Calculation в программном обеспечении Communications Toolbox этими параметрами:
Проверяйте Stop simulation.
Target number of errors = maxNumErrs
Maximum number of symbols = maxNumBits
Чтобы отправить данные от блока Error Rate Calculation до рабочего пространства MATLAB, установите Output data на Port
, присоедините блок To Workspace и установите параметр Limit data points to last последнего блока на 1
. Параметр Variable name в блоке To Workspace должен совпадать со значением, которое вы вводите в поле BER variable name BERTool.
Больше чем один блок To Workspace доступен. Обязательно выберите To Workspace из подбиблиотеки DSP System Toolbox™ / Sinks.
Если ваша модель вычисляет коэффициент ошибок символа вместо небольшого коэффициента ошибок, используйте блок Integer to Bit Converter в программном обеспечении Communications Toolbox, чтобы преобразовать символы вдребезги.
Обрабатываются основанные на системе координат симуляции, часто запускаемые быстрее, чем основанные на выборке симуляции для того же количества битов. Количество ошибок или количество обработанных битов могут превысить значения, которые вы вводите в BERTool, потому что симуляция всегда обрабатывает установленную сумму данных в каждой системе координат.
Если у вас есть существующая модель, которая использует блок AWGN Channel с помощью параметра Mode кроме Signal to noise ratio (Eb/No)
, можно адаптировать блок, чтобы использовать режим Eb/No вместо этого. Чтобы узнать о том, как различные режимы блока связаны друг с другом, нажмите кнопку Help блока AWGN Channel, чтобы просмотреть онлайновую страницу с описанием.
Если ваша модель использует функцию предварительной нагрузки или другой коллбэк, чтобы инициализировать переменные в рабочем пространстве MATLAB после загрузки, убедитесь, прежде чем вы будете использовать кнопку Run в BERTool, что одно из этих условий соблюдают:
Модель не находится в настоящее время в памяти. В этом случае BERTool загружает модель в память и запускает функции обратного вызова.
Модель находится в памяти (ли в окне или не), и переменные неповреждены.
Если вы очищаете или перезаписываете переменные модели и хотите восстановить их значения перед использованием кнопки Run в BERTool, можно использовать bdclose
функция в Окне Команды MATLAB, чтобы очистить модель из памяти. Это заставляет BERTool перезагружать модель после того, как вы нажмете Run. Точно так же, если вы обновляете свою рабочую область путем издания clear all
или clear variables
команда, необходимо также очистить модель из памяти при помощи bdclose all
.
Пример: Подготовьте Модель к Использованию с BERTool. Этот пример использует модель Simulink, которая настраивается для использования с BERTool. Пример также иллюстрирует, как сравнить производительность BER симуляции Simulink теоретическими результатами BER. Пример принимает, что вам установили программное обеспечение Communications Toolbox.
Чтобы подготовить модель к использованию с BERTool, выполните эти шаги, с помощью точных чувствительных к регистру имен переменных как показано:
Откройте модель путем ввода следующей команды в Окно Команды MATLAB.
doc_bpsk
Чтобы инициализировать параметры в рабочем пространстве MATLAB и избегать использования неопределенных переменных как параметров блоков, введите следующую команду в Окно Команды MATLAB.
EbNo = 0; maxNumErrs = 100; maxNumBits = 1e8;
Чтобы гарантировать, что BERTool использует правильное количество шума каждый раз, это запускает симуляцию, откройте диалоговое окно для блока AWGN Channel путем двойного клика по блоку. Проверьте, что Es/No установлен в EbNo
и нажмите OK. В этой конкретной модели Es/N0 эквивалентен Eb/N0, потому что тип модуляции является BPSK.
Гарантировать, что BERTool использует правильный критерий остановки в каждой итерации,
Откройте диалоговое окно для блока Error Rate Calculation. Проверьте, что Target number of errors установлен в maxNumErrs
, и что Maximum number of symbols установлен в maxNumBits
. Нажмите OK.
Время остановки симуляции должно быть установлено в Inf
.
Позволять BERTool получить доступ к результатам BER, которые блок Error Rate Calculation вычисляет, блок To Workspace, BER
, соединяется с выходом блока Error Rate Calculation.
Больше чем один блок To Workspace доступен. Обязательно выберите To Workspace из подбиблиотеки DSP System Toolbox / Sinks.
Использовать doc_bpsk
модель с BERTool, выполните эти шаги:
Откройте BERTool и перейдите к вкладке Monte Carlo.
Установите параметры на вкладке Monte Carlo как показано в следующем рисунке.
Нажмите Run.
BERTool тратит результаты вычисления некоторого времени и затем строит их.
Чтобы сравнить эти результаты симуляции с теоретическими результатами, перейдите к вкладке Theoretical в BERTool и установите параметры как показано ниже.
Нажмите Plot.
BERTool строит теоретическую кривую в Окне рисунка BER наряду с более ранними результатами симуляции.
Экспорт Наборов данных или Сеансов BERTool. BERTool позволяет вам экспортировать отдельные наборы данных в рабочее пространство MATLAB или в MAT-файлы. Одна опция для экспорта удобна для обработки данных вне BERTool. Например, чтобы создать очень индивидуально настраиваемый отображают данные об использовании на графике из BERTool, экспортируют набор данных BERTool в рабочее пространство MATLAB и используют любую из команд графического вывода в MATLAB. Другая опция для экспорта позволяет вам повторно импортировать данные в BERTool позже.
BERTool также позволяет вам сохранить целый сеанс, который полезен, если ваш сеанс содержит несколько наборов данных, к которым вы хотите возвратиться на более позднем сеансе.
В этом разделе описываются эти возможности:
Экспорт наборов данных
Чтобы экспортировать отдельный набор данных, выполните эти шаги:
В средстве просмотра данных выберите набор данных, который вы хотите экспортировать.
Выберите File > Export Data.
Установите Export to указывать на формат и место назначения данных.
Если вы хотите повторно импортировать данные в BERTool позже, необходимо выбрать Workspace structure
или MAT-file structure
создать структуру в рабочем пространстве MATLAB или MAT-файле, соответственно.
Появляется новое поле под названием Structure name. Установите его на имя, которое вы хотите, чтобы BERTool использовал в структуре, которую это создает.
Если вы выбрали Workspace structure
и вы хотите, чтобы BERTool использовал ваше выбранное имя переменной, даже если переменная тем именем уже существует в рабочей области, выберите Overwrite variables.
Если вы не должны повторно импортировать данные в BERTool позже, удобный способ получить доступ к данным вне BERTool состоит в том, чтобы иметь BERTool, создают пару массивов в рабочем пространстве MATLAB. Один массив содержит значения Eb/N0, в то время как другой массив содержит значения BER. Чтобы выбрать эту опцию, установите Export to на Workspace arrays
.
Затем введите два имен переменных в полях под Variable names.
Если вы хотите, чтобы BERTool использовал ваши выбранные имена переменных, даже если переменные теми именами уже существуют в рабочей области, выберите Overwrite variables.
Нажмите OK. Если вы выбрали MAT-file structure
, BERTool предлагает вам путь к MAT-файлу, который вы хотите создать.
Чтобы повторно импортировать структуру позже, смотрите Наборы данных Импорта.
Исследование экспортируемой структуры
Этот раздел кратко описывает содержимое структуры, которую BERTool экспортирует в рабочую область или в MAT-файл. Поля структуры обозначаются в приведенной ниже таблице. Полями, которые являются самыми важными для вас, когда это необходимо, чтобы управлять экспортированными данными, является paramsEvaled
и data
.
Имя поля | Значение |
---|---|
params | Значения параметров в БЕРТОЛЕ ГИ, некоторые из которых могут быть невидимыми и следовательно не важными для расчетов. |
paramsEvaled | Значения параметров, которые BERTool использует при вычислении набора данных. |
data | Eb/N0, BER и количество битов обрабатываются. |
dataView | Информация о внешнем виде в средстве просмотра данных. Используемый BERTool в переимпорте данных. |
cellEditabilities | Указывает, имеет ли средство просмотра данных активный Confidence Level или запись Fit. Используемый BERTool в переимпорте данных. |
Поля параметра
params
и paramsEvaled
поля похожи друг на друга, за исключением того, что params
описывает точное состояние графический интерфейса пользователя тогда как paramsEvaled
указывает на значения, которые на самом деле используются в расчетах. Как пример различия, для теоретической системы с каналом AWGN, params
записи, но paramsEvaled
не использует параметр порядка разнообразия. Порядок разнообразия не используется в расчетах, потому что это важно только для систем с каналами Рейли. Как другой пример, если вы вводите [0:3]+1
в графический интерфейсе пользователя как область значений значений Eb/N0, params
указывает на [0:3]+1
в то время как paramsEvaled
указывает на 1 2 3 4
.
Длина и точное содержимое paramsEvaled
зависьте от набора данных, потому что только релевантная информация появляется. Если значение содержимого paramsEvaled
не ясно после контроля, один способ узнать больше состоит в том, чтобы повторно импортировать набор данных в BERTool и смотреть значения параметров, которые появляются в графический интерфейсе пользователя. Чтобы повторно импортировать структуру, следуйте инструкциям в Импорте Наборов данных или Сеансов BERTool.
Поле данных
Если ваша экспортируемая переменная рабочей области называется ber0
, поле ber0.data
массив ячеек, который содержит числовые результаты в этих векторах:
ber0.data{1}
перечисляет значения Eb/N0.
ber0.data{2}
перечисляет значения BER, соответствующие каждому из значений Eb/N0.
ber0.data{3}
указывает, для симуляции или полуаналитических результатов, сколько битов BERTool обработал при вычислении каждого из соответствующих значений BER.
Чтобы сохранить целый сеанс BERTool, выполните эти шаги:
Выберите File > Save Session.
Когда BERTool предлагает вам, введите путь к файлу, который вы хотите создать.
BERTool создает текстовый файл, который записывает все наборы данных в настоящее время в средстве просмотра данных, наряду с параметрами графический интерфейса пользователя, сопоставленными с наборами данных.
Если ваш сеанс BERTool требует конкретных переменных рабочей области (таких как txsig
или rxsig
для вкладки Semianalytic), сохраните тех отдельно в MAT-файле с помощью save
команда в MATLAB.
Импорт Наборов данных или Сеансов BERTool. BERTool позволяет вам повторно импортировать отдельные наборы данных, которые вы ранее экспортировали в структуру, или перезагружать целые сеансы что вы ранее сохраненный. В этом разделе описываются эти возможности:
Чтобы узнать больше об экспорте наборов данных или сохранении сеансов от BERTool, смотрите Наборы данных Экспорта или Сеансы BERTool.
Чтобы импортировать отдельный набор данных, который вы ранее экспортировали от BERTool до структуры, выполните эти шаги:
Выберите File > Import Data.
Установите Import from на любой Workspace structure
или MAT-file structure
. Если вы выбираете Workspace structure
, введите имя переменной рабочей области в поле Structure name.
Нажмите OK. Если вы выбираете MAT-file
, BERTool предлагает вам выбирать файл, который содержит структуру, которую вы хотите импортировать.
После того, как вы отклоняете диалоговое окно Data Import (и диалоговое окно выбора файла, в случае MAT-файла), средство просмотра данных показывает недавно импортированный набор данных, и Окно рисунка BER строит его.
Открытие предыдущего сеанса BERTool
Чтобы заменить наборы данных в средстве просмотра данных с наборами данных от предыдущего сеанса BERTool, выполните эти шаги:
Выберите File > Open Session.
Если BERTool уже содержит наборы данных, он спрашивает вас, хотите ли вы сохранить текущий сеанс. Если вы отвечаете не и продолжаете процесс загрузки, BERTool отбрасывает текущий сеанс после открытия нового сеанса из файла.
Когда BERTool предлагает вам, введите путь к файлу, который вы хотите открыть. Это должен быть файл, что вы ранее создали использование опции Save Session в BERTool.
После того, как BERTool читает файл сеанса, средство просмотра данных показывает наборы данных из файла.
Если ваш сеанс BERTool требует конкретных переменных рабочей области (таких как txsig
или rxsig
для вкладки Semianalytic), что вы сохраненный отдельно в MAT-файле, можно получить их использующий load
команда в MATLAB.
Данные об управлении в Средстве просмотра Данных. Средство просмотра данных дает вам гибкость, чтобы переименовать и удалить наборы данных и переупорядочить столбцы в средстве просмотра данных.
Чтобы переименовать набор данных в средстве просмотра данных, дважды кликните его имя в столбце BER Data Set и введите новое имя.
Чтобы удалить набор данных из средства просмотра данных, выберите его и выберите Edit > Delete.
Если набор данных произошел из вкладки Semianalytic или Theoretical, BERTool удаляет данные, не прося подтверждение. Вы не можете отменить эту операцию.
Чтобы переместить столбец в средство просмотра данных, перетащите заголовок столбца налево или направо с мышью. Например, изображение ниже показов мышь, перетаскивающая столбец BER слева от его положения по умолчанию. Когда вы отпускаете кнопку мыши, столбцы привязываются в место.