exponenta event banner

idinput

Формирование входных сигналов

Описание

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

пример

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)

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u.

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

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

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

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

Создание iddata объект из сформированного сигнала. В этом примере укажите время выборки как 1 секунду.

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

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

plot(u)

Figure contains 2 axes. Axes 1 with title u1 contains an object of type line. This object represents u. Axes 2 with title u2 contains an object of type line. This object represents 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)

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents 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)

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents 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)

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents 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')

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u.

Генерируемый сигнал представляет собой непериодическую 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')

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u1.

Генерируемый сигнал является периодическим 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')

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u1.

Генерируемый сигнал представляет собой непериодическую 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')

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u2.

Генерируемый сигнал является периодическим 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')

Figure contains an axes. The axes with title Single-Sided Amplitude Spectrum of u(t) contains an object of type stem.

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

Преобразование сгенерированного сигнала в iddata и постройте график сигнала. Укажите время выборки в виде 0,01 часов.

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

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents 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)

Figure contains an axes. The axes with title u1 contains an object of type line. This object represents u2.

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

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

свернуть все

Число сгенерированных выборок входных данных, указанных как действительное положительное целое число. Для одноканальных входных данных генерируемый вход u имеет N строк. Для Nu- входные данные канала, u возвращается как Nоколо-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 с фильтром Butterworth восьмого порядка. Для формирования случайного двоичного сигнала ('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] возвращает гауссовский сигнал белого шума с нулевым средним значением и дисперсией 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около-Nu матрица для Nu-канальный сигнал. Сгенерированный сигнал используется для моделирования реакции системы с помощью sim.

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

u = iddata([],u);

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

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

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

Подробнее

свернуть все

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

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

PRBS генерируется следующим образом:

u (t) = rem (a1u (t 1) +... + anu (t − n), 2)

Здесь u (t 1),... u (t − n) - вектор прошлых входов, n - порядок PRBS, иrem обозначает остаток, когда (a1u (t 1) +... anu (t − n)) делится на 2. Таким образом, PRBS может принимать только значения 0 и 1. Программное обеспечение масштабирует эти значения в соответствии сRange вы указываете. Кроме того, вектор прошлых входов u (t 1),... u (t − n) может принимать только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] Сёдерстрём, Т. и П. Стоика., глава C5.3 «Идентификация системы», Прентис Холл, 1989.

[2] Ljung, L., раздел 13.3 в документе «Идентификация системы: теория для пользователя», Prentice Hall PTR, 1999.

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