Сгенерируйте входные сигналы
idinput
команда генерирует входной сигнал с заданными характеристиками для вашей системы. Можно использовать сгенерированный вход и моделировать реакцию системы на изучение поведения системы. Для примера можно изучить отклик системы на периодические входы. Система может быть фактической физической системой или такой моделью, как Simulink® модель. Можно также спроектировать оптимальные эксперименты. Для примера можно определить, какие входные сигналы изолируют отказы или нелинейности в вашей системе. Вы также можете использовать idinput
чтобы спроектировать вход, который имеет достаточную пропускную способность, чтобы возбуждать динамическую область значений вашей системы.
Сгенерируйте одноканальный случайный двоичный входной сигнал с 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 по своей сути является периодическим с максимальной длиной периода , где целое число n является порядком PRBS. Для получения дополнительной информации см. Pseudorandom Binary Signals.
Укажите, что одноканальное значение 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 по своей сути является периодическим с максимальной длиной периода , где целое число n является порядком PRBS. Если заданный период не равен максимальной длине PRBS, программа настраивает период сгенерированного сигнала, чтобы получить целое число максимальной длины PRBS, и выдает предупреждение. Для получения дополнительной информации о PRBS максимальной длины, см. Pseudorandom Binary Signals. В этом примере требуемый период 100 не равен максимальной длине PRBS, поэтому программное обеспечение вместо этого генерирует максимальную длину PRBS порядка n = floor(log2(Period)) = 6
. Таким образом, период сигнала PRBS составляет 63 (= ), и длина сгенерированного сигнала составляет 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
и период . Для получения информации о PRBS максимальной длины смотрите Pseudorandom Binary Signals. Затем программное обеспечение растягивает этот PRBS таким образом, чтобы период растянутого сигнала был .
Однако, поскольку этот период меньше указанной длины 100, программное обеспечение вычисляет вместо этого PRBS максимальной длины порядка m = n+1 = 5
. Затем программное обеспечение растягивает этот PRBS, так что период сейчас . Программное обеспечение возвращает первые 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 периодов.
N
- Количество сгенерированных выборок входных данныхNu
- Количество входных каналов1
(по умолчанию) | действительное положительное целое числоКоличество входа каналов в сгенерированном сигнале, заданное как действительное положительное целое число.
Period
- Количество выборок в каждом периодеКоличество выборок в каждом периоде сгенерированного сигнала, заданное как действительное положительное целое число. Используйте этот вход, чтобы задать периодический сигнал. Также задайте количество периодов в NumPeriod
. Каждый сгенерированный вход канала имеет NumPeriod*Period
выборки.
NumPeriod
- Количество периодов в сгенерированном сигнале1
(по умолчанию) | действительное положительное целое числоКоличество периодов в сгенерированном сигнале, заданное как действительное положительное целое число. Используйте этот вход, чтобы задать периодический сигнал. Также задайте сигнал Period
. Каждый сгенерированный вход канала имеет NumPeriod*Period
выборки.
Type
- Тип сгенерированного сигнала'rbs'
(по умолчанию) | 'rgs'
| 'prbs'
| 'sine'
Тип сгенерированного сигнала, заданный как одно из следующих значений:
'rbs'
- Генерирует случайный двоичный сигнал. Случайный двоичный сигнал является случайным процессом, который принимает только два значения. Можно задать эти значения с помощью Range
. Чтобы сгенерировать сигнал с ограниченной полосой частот, задайте полосу пропускания в Band
. Чтобы сгенерировать периодический сигнал, задайте Period
и NumPeriod
.
'rgs'
- Генерирует случайный Гауссов сигнал. У сгенерированного Гауссовского сигнала есть средний μ и стандартное отклонение σ таким образом, который [μ-σ, μ +σ] равняется Range
. Чтобы сгенерировать ограниченный полосой Гауссов сигнал, задайте полосу пропускания в Band
. Чтобы сгенерировать периодический Гауссов сигнал с n
период выборок, который повторяется m
раз, задайте Period
как n
и NumPeriod
как m
.
'prbs'
- Генерирует псевдослучайный двоичный сигнал (PRBS). PRBS является периодическим, детерминированным сигналом с белошумоподобными свойствами, который смещается между двумя значениями. Можно задать эти два значения с помощью Range
. Можно также задать тактовый период, минимальное количество интервалов дискретизации, для которых значение сигнала не меняется. Вы задаете обратную сторону тактового периода в Band
.
Длина сгенерированного сигнала не всегда совпадает с тем, что вы задаете. Длина зависит от того, требуется ли вам периодический или непериодический сигнал, а также от заданного периода времени. Для получения дополнительной информации см. Pseudorandom Binary Signals.
'sine'
- Генерирует сигнал, который является суммой синусоидов. Программа выбирает частоты синусоидов, которые будут равномерно распределены по выбранной сетке, и присваивает каждой синусоиде случайную фазу. Затем программное обеспечение пробует несколько случайных фаз для каждой синусоиды и выбирает фазы, которые дают наименьший разброс сигнала. Разброс сигнала является различием между минимальным и максимальным значением сигнала по всем выборкам. Амплитуда сгенерированного сигнала суммы синусоидов масштабируется, чтобы удовлетворить Range
вы задаете.
Можно задать характеристики синусоид, используемой для генерации сигнала, такие как количество синусоид и их разделение частот, в SineData
аргумент.
Band
- Частотная область значений сгенерированного сигнала[0 1]
(по умолчанию) | вектор-строку 1 на 2Частотная область значений сгенерированного сигнала, заданный как вектор-строка 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)
как тактовый период.
Range
- Диапазон сгенерированных входных сигналов[-1,1]
(по умолчанию) | двухэлементный вектор-строкаСгенерированный входной сигнал области значений, заданный как двухэлементный вектор-строка вида [umin,umax]
.
Если Type
является 'rbs'
или 'prbs'
- Сгенерированный сигнал u
имеет значения umin
или umax
.
Если Type
является 'sine'
- Сгенерированный сигнал u
имеет значения между umin
и umax
.
Если Type
является 'rgs'
- У сгенерированного Гауссовского сигнала есть средний μ и стандартное отклонение σ таким образом что umin
и umax
равны μ-σ и μ +σ, соответственно. Для примера, Range = [-1,1]
возвращает Гауссов сигнал белого шума с нулем среднего и дисперсионным единицей.
SineData
- Характеристика синусоидов[10,10,1]
(по умолчанию) | трехэлементный вектор-строка [NumSinusoids,NumTrials,GridSkip]
Характеристика синусоидов, используемых для генерации сигнала суммы синусоидов, заданная как трехэлементный вектор-строка [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(__)
u
- Сгенерированный входной сигналСгенерированный входной сигнал, возвращенный как вектор-столбец длины N
для одноканального входа или N
-by- Nu
матрица для Nu
-канальный сигнал. Вы используете сгенерированный сигнал, чтобы симулировать ответ вашей системы, используя sim
.
Вы можете создать iddata
объект из u
путем определения выходных данных как []
.
u = iddata([],u);
В iddata
объект, можно также задать свойства сигнала, такие как шаг расчета, входные имена и периодичность.
freq
- Частоты синусоидальных волнЧастоты синусоид, используемых для сигнала суммы синусоидов, возвращаются как вектор-столбец длины, равной количеству синусоидов, NumSinusoids
. Вы задаете NumSinusoids
в SineData
аргумент. Значения частоты масштабируются, принимая, что шаг расчета 1 раз модуля. Чтобы извлечь фактические частоты, разделите значения на шаг расчета. Для получения примера смотрите Сгенерировать сигнал суммы синусоидов.
Для многоканальных входных сигналов, freq
является Nu
-by- NumSinusoids
матрица, где k-я строка содержит частоты, соответствующие k-му каналу. Для получения информации о том, как программное обеспечение выбирает частоты, смотрите SineData
описание аргумента.
Псевдослучайный двоичный сигнал (PRBS) является периодическим, детерминированным сигналом с белошумоподобными свойствами, который смещается между двумя значениями.
PRBS генерируется как:
Вот, является вектором прошлых входов, n является порядком PRBS и rem
обозначает оставшуюся часть, когда делится на 2. Таким образом, PRBS может принимать только значения 0 и 1. Программа масштабирует эти значения в соответствии с Range
вы задаете. В сложение вектор прошлых входов может взять только 2n
значения. Из этих значений состояние со всеми нулями игнорируется, потому что это приведет к тому, что будущие сигналы будут равны нулю. Таким образом, PRBS является по своей сути периодическим сигналом с максимальной длиной периода 2n-1
. В следующей таблице перечислена максимально возможная длина для различных n порядков PRBS.
Порядок n | Максимальная длина PRBS (2n-1 ) |
---|---|
2 | 3 |
3 | 7 |
4 | 15 |
5 | 31 |
6 | 63 |
7 | 127 |
⋮ | ⋮ |
32 | 4294967295 |
Примечание
Программное обеспечение не генерирует сигналы с периодом более 232-1
.
Поскольку 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. and P. Stoica., Chapter C5.3 in Система идентификации, Prentice Hall, 1989.
[2] Ljung, L., Section 13.3 in Система Идентификации: Theory for the User, Prentice Hall PTR, 1999.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.