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 object. The axes object 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 objects. Axes object 1 with title u1 contains an object of type line. This object represents u. Axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object 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 с восьмым порядком Баттерворт, непричинный фильтр. Для генерации случайного двоичного сигнала ('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- Nu матрица для Nu- сигнал канала. Вы используете сгенерированный сигнал симулировать ответ вашего системного использования sim.

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

u = iddata([],u);

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

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

Для многоканальных входных сигналов, freq Nu- 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