idinput

Сгенерируйте входные сигналы

Команда idinput генерирует входной сигнал с заданными характеристиками для вашей системы. Можно использовать сгенерированный вход и моделировать ответ системы, чтобы изучить поведение системы. Например, можно изучить отклик системы к периодическим входным параметрам. Система может быть фактической физической системой или моделью, такой как модель Simulink®. Можно также разработать оптимальные эксперименты. Например, можно определить, какие входные сигналы изолируют отказы или нелинейность в системе. Можно также использовать idinput, чтобы разработать вход, который имеет достаточную пропускную способность, чтобы взволновать динамический диапазон системы.

Синтаксис

u = idinput(N)
u = idinput([N,Nu])
u = idinput([Period,Nu,NumPeriod])
u = idinput(___,Type)
u = idinput(___,Type,Band)
u = idinput(___,Type,Band,Range)
[u,freq] = idinput(___,'sine',Band,Range,SineData)

Описание

пример

u = idinput(N) возвращается одноканальный случайный двоичный вход сигнализируют о u длины N. Сгенерированные значения сигналов или-1 или 1.

пример

u = idinput([N,Nu]) возвращает Nu - канал случайный сигнал двоичного входа, где каждый сигнал канала имеет длину N. Сигналы в каждом канале отличаются друг от друга.

пример

u = idinput([Period,Nu,NumPeriod]) возвращает Nu - канал периодический случайный сигнал двоичного входа с установленным периодом и количеством периодов. Каждый входной сигнал канала имеет длину NumPeriod *Period.

пример

u = idinput(___,Type) задает тип входа, который будет сгенерирован как одно из следующего:

  • 'rbs' — Случайный двоичный сигнал

  • 'rgs' — Случайный Гауссов сигнал

  • 'prbs' — Псевдослучайный двоичный сигнал

  • 'sine' — Сигнал суммы синусоид

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

пример

u = idinput(___,Type,Band) задает диапазон частот сигнала. Для псевдослучайных двоичных сигналов (PRBS) Band задает инверсию периода часов сигнала.

пример

u = idinput(___,Type,Band,Range) задает амплитудную область значений сигнала.

пример

[u,freq] = idinput(___,'sine',Band,Range,SineData) задает Type, когда сумма синусоид сигнализирует, и указывает, что характеристики синусоид раньше генерировали сигнал в SineData. Можно задать характеристики, такие как количество синусоид и их разделения частоты. Частоты синусоид возвращены в freq.

Примеры

свернуть все

Сгенерируйте одноканальный случайный сигнал двоичного входа с 200 выборками.

N = 200;
u = idinput(N);

u является вектор-столбцом длины 200. Значения в u или-1 или 1.

Создайте объект iddata из сгенерированного сигнала. В данном примере задайте шаг расчета как 1 секунду.

u = iddata([],u,1);

Чтобы исследовать сигнал, постройте его.

plot(u)

Сгенерированный сигнал является случайным сигналом двоичного входа со значениями-1 или 1. Можно использовать сгенерированный входной сигнал, чтобы моделировать вывод системы с помощью команды sim.

Сгенерируйте двухканальный случайный сигнал двоичного входа с 200 выборками.

N = 200;
u = idinput([N,2]);

u 200 2 матрица со значениями-1 или 1.

Создайте объект iddata из сгенерированного сигнала. В данном примере задайте шаг расчета как 1 секунду.

u = iddata([],u,1);

Постройте сигналы для двух каналов и исследуйте сигналы.

plot(u)

График показывает два сгенерированных случайных двоичных сигнала со значениями-1 или 1.

Сгенерируйте одноканальный периодический случайный сигнал двоичного входа с периодом 10 выборок и 5 периодами в сигнале.

NumChannel = 1;
Period = 10;
NumPeriod = 5;
u = idinput([Period,NumChannel,NumPeriod]);

u является вектор-столбцом длины 50 (= Period*NumPeriod). Значения в u или-1 или 1.

Создайте объект iddata из сгенерированного сигнала. Задайте шаг расчета как 1 секунду.

u = iddata([],u,1);

Постройте сигнал.

plot(u)

Как задано, сгенерированный одноканальный периодический случайный сигнал двоичного входа имеет период 10 секунд, и в сигнале существует 5 целых периодов.

Сгенерируйте одноканальный периодический случайный Гауссов входной сигнал с периодом 50 выборок и 5 периодами в сигнале. Сначала сгенерируйте сигнал с помощью целого частотного диапазона, затем задайте полосу пропускания.

NumChannel = 1;
Period = 50;
NumPeriod = 5;
u = idinput([Period,NumChannel,NumPeriod],'rgs');

u является вектор-столбцом длины 250 (= Period*NumPeriod).

Создайте объект iddata из сгенерированного сигнала и постройте сигнал. В данном примере задайте шаг расчета как 0,01 секунды.

u = iddata([],u,0.01);
plot(u)

График показывает, что u содержит случайный сегмент 50 выборок, повторенных 5 раз. Сигнал является Гауссовым белым шумовым сигналом с нулевым средним значением и отклонением один.

Поскольку шаг расчета составляет 0,01 секунды, сгенерированный сигнал имеет период 0,5 секунд. Содержимое частоты сигнала порождает целую доступную линейную оболочку столбцов (0-50 Гц).

Теперь задайте полосу пропускания между 0 и 25 Гц (= 0.5 раза частота Найквиста).

Band = [0 0.5];
u2 = idinput([Period,NumChannel,NumPeriod],'rgs',Band);

Создайте объект iddata и постройте сигнал.

u2 = iddata([],u2,0.01);
plot(u2)

Содержимое частоты сгенерированного u2 сигнала ограничивается 0-25 Гц.

Псевдослучайный сигнал двоичного входа (PRBS) является детерминированным сигналом, свойства частоты которого подражают белому шуму. PRBS является по сути периодической длиной периода имеющей 2n-1, где целое число n является порядком PRBS. Для получения дополнительной информации смотрите Псевдослучайные Двоичные сигналы.

Укажите, что одноканальное значение PRBS переключается между-2 и 2.

Range = [-2,2];

Задайте период часов сигнала как 1 выборка. Таким образом, значение сигналов может измениться на каждом временном шаге. Для сигналов PRBS период часов задан в Band = [0 B], где B является инверсией необходимого периода часов.

Band = [0 1];

Сгенерируйте апериодический PRBS длины 100 выборок.

u = idinput(100,'prbs',Band,Range);
Warning: The PRBS signal delivered is the 100 first values of a full sequence of length 127.

PRBS является по сути периодическим. Чтобы сгенерировать апериодический сигнал, программное обеспечение генерирует максимальную длину PRBS длины 127, который имеет период, больше, чем необходимое количество выборок, 100. Программное обеспечение возвращает первые 100 выборок сгенерированного PRBS. Это действие гарантирует, что сгенерированный сигнал не является периодическим, как обозначено в сгенерированном предупреждении.

Создайте объект iddata из сгенерированного сигнала. В данном примере задайте шаг расчета как 1 секунду.

u = iddata([],u,1);

Постройте и исследуйте сгенерированный сигнал.

plot(u);
title('Non-Periodic Signal')

Сгенерированный сигнал является апериодическим PRBS длины 100, который переключается между-2 и 2.

Укажите, что псевдослучайный сигнал двоичного входа (PRBS) переключается между-2 и 2.

Range = [-2,2];

Задайте период часов сигнала как 1 выборка. Таким образом, значение сигналов может измениться на каждом временном шаге. Для сигналов PRBS период часов задан в Band = [0 B], где B является инверсией необходимого периода часов.

Band = [0 1];

Сгенерируйте одноканальный, периодический PRBS с периодом 100 выборок и 3 периодами в сигнале.

u1 = idinput([100,1,3],'prbs',Band,Range);
Warning: The period of the PRBS signal was changed to 63. Accordingly, the length of the generated signal will be 189.

PRBS является по сути периодической длиной периода имеющей 2n-1, где целое число n является порядком PRBS. Если период, который вы задаете, не равен максимальной длине PRBS, программное обеспечение настраивает период сгенерированного сигнала получить целое число максимальной длины PRBS и выдает предупреждение. Для получения дополнительной информации о максимальной длине PRBS, смотрите Псевдослучайные Двоичные сигналы. В этом примере желаемый период, 100, не равен максимальной длине PRBS, таким образом программное обеспечение вместо этого генерирует максимальную длину PRBS порядка n = floor(log2(Period)) = 6. Таким образом период сигнала PRBS равняется 63 (= 26-1), и длина сгенерированного сигнала равняется 189 (= NumPeriod *63). Этот результат обозначается в сгенерированном предупреждении.

Создайте объект iddata из сгенерированного сигнала и постройте сигнал. Задайте период сигнала как 63 выборки.

u1 = iddata([],u1,1,'Period',63);
plot(u1)
title('Periodic Signal')

Сгенерированный сигнал является периодическим PRBS с тремя периодами.

Сгенерируйте периодические и апериодические псевдослучайные сигналы двоичного входа (PRBS) с заданным периодом часов.

Сгенерируйте одноканальный PRBS, который переключается между-2 и 2. Задайте период часов сигнала как 4 выборки. Таким образом, сигнал должен остаться постоянным по крайней мере для 4 последовательных выборок, прежде чем он сможет измениться. Для сигналов PRBS период часов задан в Band = [0 B], где B является инверсией необходимого периода часов.

Range = [-2,2];
Band = [0 1/4];

Сначала сгенерируйте апериодический сигнал длины 100.

u1 = idinput(100,'prbs',Band,Range);
Warning: The PRBS signal delivered is the 100 first values of a full sequence of length 124.

Чтобы понять сгенерированное предупреждение, сначала обратите внимание, что код эквивалентен генерации одноканального PRBS с периодом с 100 выборками и 1 периодом.

u1 = idinput([100,1,1],'prbs',Band,Range);

Сгенерированный сигнал PRBS должен остаться постоянным по крайней мере для 4 выборок, прежде чем значение сможет измениться. Чтобы удовлетворить это требование, программное обеспечение сначала вычисляет порядок наименьшей максимальной длины PRBS как n = floor(log2(Period*B)) = 4 и период 2n-1=15. Для получения информации о максимальной длине PRBS смотрите Псевдослучайные Двоичные сигналы. Программное обеспечение затем расширяет этот PRBS, таким образом, что период расширенного сигнала P=(1/B)(2n-1)=60.

Однако, поскольку этот период является меньше, чем заданная длина, 100, программное обеспечение вычисляет вместо этого максимальную длину PRBS порядка m = n+1 = 5. Программное обеспечение затем расширяет этот PRBS, таким образом, что период теперь P2=(1/B)(2m-1)=124. Программное обеспечение возвращает первые 100 выборок этого сигнала как u1. Этот результат гарантирует, что сгенерированный сигнал не является периодическим, но является постоянным для каждых 4 выборок.

Создайте объект iddata из сгенерированного сигнала. В данном примере задайте шаг расчета как 1 секунду.

u1 = iddata([],u1,1);

Постройте и исследуйте сигнал.

plot(u1);
title('Nonperiodic Signal')

Сгенерированный сигнал является апериодическим PRBS длины 100. Сигнал остается постоянным по крайней мере для 4 выборок перед каждым изменением в значении. Таким образом сигнал удовлетворяет период часов, заданный в Band.

Теперь сгенерируйте периодический сигнал с периодом с 100 выборками и 3 периодами.

u2 = idinput([100,1,3],'prbs',Band,Range);
Warning: The period of the PRBS signal was changed to 60. Accordingly, the length of the generated signal will be 180.

Чтобы сгенерировать периодический сигнал с заданным периодом часов, программное обеспечение генерирует u2 как 3 повторения исходного расширенного сигнала периода P = 60. Таким образом длиной u2 является P*NumPeriod = 60*3 = 180. Это изменение в период и длину сгенерированного сигнала обозначается в сгенерированном предупреждении.

Создайте объект iddata из сгенерированного сигнала и постройте сигнал. Задайте период сигнала как 60 секунд.

u2 = iddata([],u2,1,'Period',60);
plot(u2)
title('Periodic Signal')

Сгенерированный сигнал является периодическим PRBS с 60-секундным периодом и 3 периодами. Сигнал остается постоянным по крайней мере для 4 выборок перед каждым изменением в значении. Таким образом сигнал удовлетворяет заданный период часов.

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

Укажите, что сигнал имеет 50 выборок в каждый период и 3 периода. Также укажите, что амплитудная область значений сигнала между-1 и 1.

Period = 50;
NumPeriod = 3;
Range = [-1 1];

Задайте частотный диапазон сигнала. Для сигнала суммы синусоид вы задаете более низкие и верхние частоты полосы пропускания в частях частоты Найквиста. В этом примере используйте целый частотный диапазон между 0 и частота Найквиста.

Band = [0 1];

Сначала сгенерируйте сигнал с помощью характеристик по умолчанию для синусоид. По умолчанию программное обеспечение использует 10 синусоид, чтобы сгенерировать сигнал. Программное обеспечение присваивает случайную фазу каждой синусоиде, и затем изменяет эти фазы 10 раз, чтобы получить самое маленькое распространение сигнала. Распространение сигнала является различием между минимумом и максимальным значением сигнала по всем выборкам.

[u,freq] = idinput([Period 1 NumPeriod],'sine',Band,Range);

Программное обеспечение возвращает сигнал суммы синусоид в u и частотах синусоид в freq. Значения в freq масштабируются, принимая, что шаг расчета является 1 единицей измерения времени. Предположим, что шаг расчета составляет 0,01 часа. Чтобы получить фактические частоты в раде/часы, разделите значения на шаг расчета.

Ts = 0.01; % Sample time in hours
freq = freq/Ts;
freq(1)
ans = 12.5664

freq(1) является частотой первой синусоиды. Чтобы видеть, как программное обеспечение выбирает частоты, см. описание аргумента SineData на странице с описанием idinput.

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

ufft = fft(u);
Fs = 2*pi/Ts; % Sampling frequency in rad/hour
L = length(u);
w = (0:L-1)*Fs/L;
stem(w(1:L/2),abs(ufft(1:L/2))) % Plot until Nyquist frequency
title('Single-Sided Amplitude Spectrum of u(t)')
xlabel('Frequency (rad/hour)')
ylabel('Amplitude')

Сгенерированный график показывает, что частоты этих 10 синусоид раньше генерировали сигнал. Например, график показывает, что первая синусоида имеет частоту 12,57 радов/час, то же самое как freq(1).

Преобразуйте сгенерированный сигнал в объект iddata и постройте сигнал. Задайте шаг расчета как 0,01 часа.

u = iddata([],u,Ts,'TimeUnit','hours');
plot(u)

u сигнала сгенерирован с помощью 10 синусоид и имеет период 0,5 часов и 3 периода.

Теперь измените номер, частоту и фазу синусоид, которые используются, чтобы сгенерировать сигнал суммы синусоид. Используйте 12 синусоид и попробуйте 15 различных наборов фаз. Чтобы установить частоты синусоид, задайте GridSkip = 2. Программное обеспечение выбирает частоты синусоид от пересечения сетки частоты 2*pi*[1:GridSkip:fix(Period/2)]/Period и полоса пропускания pi*Band.

NumSinusoids = 12;
NumTrials = 15;
GridSkip = 2;
SineData = [NumSinusoids,NumTrials,GridSkip];
u2 = idinput([Period 1 NumPeriod],'sine',Band,Range,SineData);

Преобразуйте сгенерированный сигнал в объект iddata и постройте сигнал.

u2 = iddata([],u2,Ts,'TimeUnit','hours');
plot(u2)

u2 сигнала сгенерирован с помощью 12 синусоид и имеет период 0,5 часов и 3 периода.

Входные параметры

свернуть все

Количество сгенерированных выборок входных данных, заданных как действительное положительное целое число. Для одноканальные входные данные, сгенерированный вход u имеет строки N. Для Nu - входные данные канала, u возвращен как N-by-Nu матрица, где каждый сигнал канала имеет длину N.

Количество входа образовывает канал в сгенерированном сигнале, заданном как действительное положительное целое число.

Количество выборок в каждый период сгенерированного сигнала, заданного как действительное положительное целое число. Используйте этот вход, чтобы задать периодический сигнал. Также задайте количество периодов в NumPeriod. Каждый сгенерированный входной сигнал канала имеет выборки NumPeriod*Period.

Количество периодов в сгенерированном сигнале, заданном как действительное положительное целое число. Используйте этот вход, чтобы задать периодический сигнал. Также задайте Period сигнала. Каждый сгенерированный входной сигнал канала имеет выборки NumPeriod*Period.

Тип сгенерированного сигнала, заданного как одно из следующих значений:

  • 'rbs' — Генерирует случайный двоичный сигнал. Случайный двоичный сигнал является вероятностным процессом, который принимает только два значения. Можно задать эти значения с помощью Range. Чтобы сгенерировать ограниченный полосой сигнал, задайте полосу пропускания в Band. Чтобы сгенерировать периодический сигнал, задайте Period и NumPeriod.

  • 'rgs' — Генерирует случайный Гауссов сигнал. Сгенерированный Гауссов сигнал имеет среднее значение μ и стандартное отклонение σ таким образом, который [μ-σ, μ +σ] равняется Range. Чтобы сгенерировать ограниченный полосой Гауссов сигнал, задайте полосу пропускания в Band. Чтобы сгенерировать периодический Гауссов сигнал с демонстрационным периодом n, который повторяется времена m, задайте Period как n и NumPeriod как m.

  • 'prbs' — Генерирует псевдослучайный двоичный сигнал (PRBS). PRBS является периодическим, детерминированным сигналом со свойствами "белый шум как", который переключает между двумя значениями. Можно задать эти два значения с помощью Range. Можно также задать период часов, минимальное количество интервалов выборки, для которых не изменяется значение сигнала. Вы задаете инверсию периода часов в Band.

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

  • 'sine' — Генерирует сигнал, который является суммой синусоид. Программное обеспечение выбирает частоты синусоид, которые будут одинаково распространены по выбранной сетке, и присваивает каждую синусоиду случайная фаза. Программное обеспечение затем пробует несколько случайных фаз за каждую синусоиду и выбирает фазы, которые дают самое маленькое распространение сигнала. Распространение сигнала является различием между минимумом и максимальным значением сигнала по всем выборкам. Амплитуда сгенерированного сигнала суммы синусоид масштабируется, чтобы удовлетворить Range, который вы задаете.

    Можно указать, что характеристики синусоид раньше генерировали сигнал, такой как количество синусоид и их разделения частоты, в аргументе SineData.

Частотный диапазон сгенерированного сигнала, заданного как 1 2 вектор - строка, содержащий минимальные и максимальные значения частоты.

  • Если Type является 'rgs', 'rbs', или 'sine' — Задает Band как полосу пропускания [wlow whigh]. Где, wlow и whigh являются более низкими и верхними частотами полосы пропускания, выраженной в частях частоты Найквиста. Например, чтобы сгенерировать вход с белыми шумовыми характеристиками, используйте Band = [0 1].

    Программное обеспечение достигает содержимого частоты для случайного Гауссова сигнала ('rgs') с помощью idfilt с восьмым порядком Баттерворт, непричинный фильтр. Для генерации случайного двоичного сигнала ('rbs') программное обеспечение использует тот же фильтр и затем делает двоичный файл сигнала. Таким образом содержимое частоты в сгенерированном случайном двоичном сигнале не может совпадать с заданной полосой пропускания.

    Для сигналов 'sine' частоты синусоид выбраны, чтобы быть одинаково распространенными по выбранной сетке в заданной полосе пропускания. Для получения дополнительной информации см. описание аргумента SineData.

  • Если Type является 'prbs' — Задают Band как [0 B], где B является инверсией периода часов сигнала. Период часов является минимальным количеством интервалов выборки, для которых не изменяется значение сигнала. Таким образом сгенерированный сигнал является постоянным на интервалах длины выборки 1/B. Если 1/B не является целым числом, программное обеспечение использует floor(1/B) в качестве периода часов.

Сгенерированная область значений входного сигнала, заданная как двухэлементный вектор - строка из формы [umin,umax].

  • Если Type является 'rbs' или 'prbs' — сгенерированный u сигнала имеет значения umin или umax.

  • Если Type является 'sine' — сгенерированный u сигнала имеет значения между umin и umax.

  • Если Type является 'rgs' — сгенерированный Гауссов сигнал имеет среднее значение μ и стандартное отклонение σ таким образом, что umin и umax равны μ-σ и μ +σ, соответственно. Например, Range = [-1,1] возвращает Гауссов белый шумовой сигнал с нулевым средним значением и отклонением один.

Характеристика синусоид раньше генерировала сигнал суммы синусоид, заданный как трехэлементный вектор - строка [NumSinusoids,NumTrials,GridSkip]. Где,

  • NumSinusoids является количеством синусоид, используемых, чтобы сгенерировать сигнал. Значением по умолчанию является 10.

  • NumTrials является количеством различных случайных относительных фаз синусоид, что программное обеспечение пытается найти самое низкое распространение сигнала. Распространение сигнала является различием между минимумом и максимальным значением сигнала по всем выборкам.

    Максимальная амплитуда сигнала суммы синусоид зависит от относительных фаз различных синусоид. Чтобы найти фазы, которые дают самое маленькое распространение сигнала, программное обеспечение пробует NumTrials различный случайный выбор фаз найти лучшие значения фазы. Например, предположите, что NumSinusoids является 20, и NumTrials является 5. Программное обеспечение пробует 5 различных наборов относительных фаз для этих 20 синусоид и выбирает фазы, которые дают самое маленькое распространение сигнала. Значением по умолчанию для NumTrials является 10.

  • GridSkip используется, чтобы охарактеризовать частоту синусоид. Программное обеспечение выбирает частоту синусоид от пересечения сетки частоты 2*pi*[1:GridSkip:fix(Period/2)]/Period и полоса pi*[Band(1) Band(2)] передачи. Для многоканальных входных сигналов программное обеспечение использует различные частоты от этой сетки частоты, чтобы сгенерировать различные входные каналы. Можно использовать GridSkip для управления четными и нечетными множителями частоты, например, чтобы обнаружить нелинейность различных видов.

    Чтобы извлечь частоты, freq, которые выбраны программным обеспечением, чтобы сгенерировать сигнал, использует следующий синтаксис.

    [u,freq] = idinput(__)

Выходные аргументы

свернуть все

Сгенерированный входной сигнал, возвращенный как вектор-столбец длины N для одноканального входа или N-by-Nu матрица для Nu - образовывает канал сигнал. Вы используете сгенерированный сигнал моделировать ответ вашей системы с помощью sim.

Можно создать объект iddata из u путем определения выходных данных как [].

u = iddata([],u);

В объекте iddata можно также задать свойства сигнала, такие как шаг расчета, ввести имена и периодичность.

Частоты синусоид, используемых для сигнала суммы синусоид, возвращенного как вектор-столбец длины, равняются количеству синусоид, NumSinusoids. Вы задаете NumSinusoids в аргументе SineData. Значения частоты масштабируются, принимая, что шаг расчета является 1 единицей измерения времени. Чтобы получить фактические частоты, разделите значения на шаг расчета. Для примера смотрите, Генерируют Сигнал Суммы Синусоид.

Для многоканальных входных сигналов freq является Nu-by-NumSinusoids матрица, где k th строка содержит частоты, соответствующие k th канал. Для получения информации о том, как программное обеспечение выбирает частоты, см. описание аргумента SineData.

Больше о

свернуть все

Псевдослучайные двоичные сигналы

Псевдослучайный двоичный сигнал (PRBS) является периодическим, детерминированным сигналом со свойствами "белый шум как", который переключает между двумя значениями.

PRBS сгенерирован как:

u(t)=rem(a1u(t1)++anu(tn),2)

Здесь, u(t1),u(tn) вектор прошлых входных параметров, n является порядком PRBS, и rem обозначает остаток когда (a1u(t1)+anu(tn)) разделен на 2. Таким образом PRBS может только принять значения 0 и 1. Программное обеспечение масштабирует эти значения согласно Range, который вы задаете. Кроме того, вектор прошлых входных параметров u(t1),u(tn) может только принять значения 2n. Из этих значений проигнорировано состояние со всеми нулями, потому что оно приведет к будущим равным нулю сигналам. Таким образом PRBS является по сути периодической длиной периода имеющей сигнала 2n-1. В следующей таблице перечислены максимальную длину, возможную для различных порядков n PRBS.

Закажите nМаксимальная длина PRBS (2n-1)
23
37
415
531
663
7127
324294967295

Примечание

Программное обеспечение не генерирует сигналы с периодом, больше, чем 232-1.

Длина сгенерированного PRBS

Поскольку PRBS являются по сути периодическими, длина и период сгенерированного сигнала зависят от периода часов, который вы задаете и требуете ли вы периодического или апериодического сигнала. Период часов является минимальным количеством интервалов выборки, для которых не изменяется значение сигнала. Вы задаете период часов в Band.

Синхронизируйте период = 1 выборка (Band = [0 B] = [0 1]):

  • Чтобы сгенерировать апериодический сигнал длины N, (NumPeriod = 1), программное обеспечение сначала вычисляет максимальную длину PRBS с периодом, больше, чем N. Программное обеспечение затем возвращает первые выборки N PRBS как u. Это действие гарантирует, что u не является периодическим. Например, если N равняется 100, программное обеспечение создает максимальную длину PRBS периода 127 (порядок 7) и возвращает первые 100 выборок как u.

    Для примера смотрите, Генерируют Апериодический Псевдослучайный Сигнал Двоичного входа.

  • Сгенерировать периодический сигнал (NumPeriod> 1), программное обеспечение настраивает период сигнала получить целое число максимальной длины PRBS. Для этого программное обеспечение вычисляет PRBS порядка n = floor(log2(Period)) и период P = 2n-1. u сигнала затем сгенерирован как повторения NumPeriod этого сигнала PRBS периода P. Таким образом длиной u является P*NumPeriod.

    Для примера смотрите, Генерируют Периодический Псевдослучайный Сигнал Двоичного входа.

    В нескольких - входной случай канала, максимально переключены сигналы. Таким образом, перекрытие между различными входными параметрами минимизировано. Это означает, что Period/NumPeriod является верхней границей для порядков модели, что можно оценить использование такого сигнала.

Синхронизируйте период> 1 выборка (Band = [0 B], where B<1):

Сгенерированный сигнал должен остаться постоянным, по крайней мере, для выборок 1/B. Чтобы удовлетворить это требование, программное обеспечение сначала вычисляет порядок наименьшей максимальной длины PRBS как n = floor(log2(Period*B)) и период 2n-1. Программное обеспечение затем расширяет PRBS, таким образом, что периодом расширенного сигнала является P = B-1(2n-1).

  • Чтобы сгенерировать апериодический сигнал длины, N, если период P расширенного сигнала больше, чем или равен N, программное обеспечение, возвращает первые выборки N расширенного сигнала как u. Это гарантирует, что u является апериодическим, но постоянным для каждого 1/B выборки. Обратите внимание на то, что для апериодического сигнала, Period равен N.

    Если период, P является меньше, чем N, программное обеспечение, вычисляет вместо этого максимальную длину PRBS порядка n2 = n+1. Программное обеспечение затем расширяет этот PRBS, таким образом, что периодом является теперь P2 = B-1(2n2-1). Программное обеспечение затем возвращает первые выборки N этого сигнала как u.

  • Чтобы сгенерировать периодический сигнал, программное обеспечение генерирует u как повторения NumPeriod расширенного сигнала периода P. Таким образом длиной u является P*NumPeriod.

Для примера смотрите, Генерируют Псевдослучайный Сигнал Двоичного входа с Заданным Периодом Часов.

Ссылки

[1] Söderström, T. и П. Стойка., глава C5.3 в System Identification, Prentice Hall, 1989.

[2] Ljung, L., разделите 13.3 в System Identification: теория для пользователя, PTR Prentice Hall, 1999.

Представлено до R2006a