idinput
生成输入信号以支持系统识别
语法
描述
的idinput
命令为系统生成具有指定特征的输入信号。您可以使用生成的输入,并模拟系统的响应来研究系统行为。例如,您可以研究系统对周期性输入的响应。该系统可以是一个实际的物理系统或一个模型,如Simulink®模型。你也可以设计最佳实验。例如,您可以确定哪些输入信号可以隔离系统中的故障或非线性。你也可以用idinput
设计一个有足够带宽的输入来激发系统的动态范围。
例子
生成一个随机二进制输入信号
生成具有200个样本的单通道随机二进制输入信号。
N = 200;u = idinput (N);
u
长度为200的列向量。中的值u
不是-1就是1。
创建一个iddata
对象生成的。对于本例,将采样时间指定为1秒。
u = iddata ([], u, 1);
要检查信号,把它画出来。
情节(u)
生成的信号是一个值为-1或1的随机二进制输入信号。方法可以使用生成的输入信号来模拟系统的输出sim卡
命令。
生成一个多通道随机二进制输入信号
生成200个样本的双通道随机二进制输入信号。
N = 200;u = idinput ([N, 2]);
u
是一个值为-1或1的200 × 2矩阵。
创建一个iddata
对象生成的。对于本例,将采样时间指定为1秒。
u = iddata ([], u, 1);
画出这两个通道的信号,并检查信号。
情节(u)
该图显示了两个生成的值为-1或1的随机二进制信号。
生成一个周期性随机二进制输入信号
生成一个单通道周期随机二进制输入信号,周期为10个样本,信号中有5个周期。
NumChannel = 1;时间= 10;NumPeriod = 5;u = idinput ([NumChannel, NumPeriod]);
u
为长度为50的列向量(= Period*NumPeriod)。中的值u
不是-1就是1。
创建一个iddata
对象生成的。指定采样时间为1秒。
u = iddata ([], u, 1);
画出信号。
情节(u)
根据指定,生成的单通道周期随机二进制输入信号周期为10秒,信号中有5个完整周期。
生成指定频率范围内的周期性随机高斯输入信号
生成一个单通道周期随机高斯输入信号,其周期为50个样本,信号中有5个周期。首先使用整个频率范围生成信号,然后指定通带。
NumChannel = 1;时间= 50;NumPeriod = 5;u = idinput ([NumChannel, NumPeriod],“该公司”);
u
为长度为250的列向量(= Period*NumPeriod)。
创建一个iddata
对象,并绘制该信号。对于本例,将采样时间指定为0.01秒。
u = iddata ([], u, 0.01);情节(u)
这幅图显示u
包含50个样本的随机片段,重复5次。该信号是均值为0,方差为1的高斯白噪声信号。
由于采样时间为0.01秒,因此生成的信号周期为0.5秒。信号的频率内容跨越整个可用范围(0- 50hz)。
现在指定0到25hz之间的通频带(= 0.5倍Nyquist频率)。
Band = [0 0.5];u2 = idinput ([NumChannel, NumPeriod],“该公司”、带);
创建一个iddata
对象,并绘制信号。
u2 = iddata ([], u2, 0.01);情节(u2)
所生成信号的频率内容u2
限制在0- 25hz。
生成一个非周期伪随机二进制输入信号
伪随机二元输入信号(PRBS)是一种频率特性模拟白噪声的确定性信号。一个PRBS具有固有的周期性,其最大周期长度为 ,其中整数n是PRBS的阶数。有关更多信息,请参见伪随机二进制信号.
指定单通道PRBS值在-2和2之间切换。
范围= (2,2);
指定信号的时钟周期为1个样本。也就是说,信号的值可以在每一个时间步变。对于PRBS信号,时钟周期在乐队
= [0 B],其中B
是所需时钟周期的倒数。
Band = [0 1];
生成长度为100个样本的非周期性PRBS。
u = idinput (100“伪随机位序列”、乐队、范围);
警告:交付的PRBS信号是长度为127的完整序列的前100个值。
PRBS本质上是周期性的。为了生成非周期信号,该软件生成长度为127的最大长度PRBS,其周期大于所需的样本数100。该软件返回生成的PRBS的前100个样本。该操作确保所生成的信号不是周期性的,如所生成的警告所示。
创建一个iddata
对象生成的。对于本例,将采样时间指定为1秒。
u = iddata ([], u, 1);
绘制,并检查生成的信号。
情节(u);标题(非周期信号的)
生成的信号是一个长度为100的非周期PRBS,在-2和2之间切换。
生成一个周期伪随机二进制输入信号
指定伪随机二进制输入信号(PRBS)在-2和2之间切换。
范围= (2,2);
指定信号的时钟周期为1个样本。也就是说,信号的值可以在每一个时间步变。对于PRBS信号,时钟周期在乐队
= [0 B],其中B
是所需时钟周期的倒数。
Band = [0 1];
生成一个单通道、周期的PRBS,周期为100个样本,信号中有3个周期。
u1 = idinput (100, 1, 3,“伪随机位序列”、乐队、范围);
警告:PRBS信号的周期被更改为63。因此,生成的信号的长度将是189。
一个PRBS具有固有的周期性,其最大周期长度为
,其中整数n是PRBS的阶数。如果指定的周期不等于最大长度的PRBS,软件将调整生成信号的周期,得到一个整数个最大长度的PRBS,并发出警告。有关最大长度PRBS的更多信息,请参见伪随机二进制信号.在本例中,所需的周期100不等于最大长度的PRBS,因此软件生成最大长度的顺序PRBSn = floor(log2(Period)) = 6
.因此,PRBS信号的周期为63 (=
),生成的信号长度为189 (=NumPeriod
* 63)。这个结果显示在生成的警告中。
创建一个iddata
对象,并绘制该信号。指定信号的周期为63个样本。
u1 = iddata ([], u1, 1,“时间”, 63);情节(u1)标题(周期信号的)
所产生的信号是一个具有三个周期的周期PRBS。
生成具有指定时钟周期的伪随机二进制输入信号
生成具有指定时钟周期的周期性和非周期性伪随机二进制输入信号(PRBS)。
生成一个在-2和2之间切换的单通道PRBS。指定信号的时钟周期为4个样本。也就是说,信号必须在至少4个连续样本中保持不变,才能发生变化。对于PRBS信号,时钟周期在乐队
= [0 B],其中B
是所需时钟周期的倒数。
范围= (2,2);Band = [0 1/4];
首先生成一个长度为100的非周期信号。
u1 = idinput (100“伪随机位序列”、乐队、范围);
警告:交付的PRBS信号是长度为124的完整序列的第100个头值。
要理解生成的警告,首先要注意代码等价于生成具有100个样本周期和1个周期的单通道PRBS。
u1 = idinput([100年,1,1],“伪随机位序列”,乐队,范围);
生成的PRBS信号必须在至少4个样本中保持恒定,才能改变其值。为了满足这一要求,软件首先计算最小可能的最大长度PRBS的顺序为n = floor(log2(周期*B)) = 4
和时间
.有关最大长度PRBS的信息,请参见伪随机二进制信号.然后软件拉伸这个PRBS,这样被拉伸信号的周期是
.
但是,由于这个时间段小于指定的长度100,软件会计算最大长度的顺序PRBSM = n+1 = 5
.然后,软件将这个PRBS延伸到现在
.软件返回这个信号的前100个样本作为u1
.这个结果确保了生成的信号不是周期性的,而是每4个样本的常数。
创建一个iddata
对象生成的。对于本例,将采样时间指定为1秒。
u1 = iddata ([], u1, 1);
绘制,并检查信号。
情节(u1);标题(非周期的信号的)
生成的信号是一个长度为100的非周期PRBS。在每次值变化之前,该信号在至少4个样本中保持不变。因此,信号满足中指定的时钟周期乐队
.
现在生成一个具有100个采样周期和3个周期的周期信号。
u2 = idinput (100, 1, 3,“伪随机位序列”、乐队、范围);
警告:PRBS信号的周期被更改为60。因此,生成的信号的长度为180。
为了生成具有指定时钟周期的周期信号,软件生成u2
相当于原来的周期拉长信号的3次重复P = 60
.因此,的长度u2
是P*NumPeriod = 60*3 = 180
.所生成信号的周期和长度的变化在所生成的警告中显示出来。
创建一个iddata
对象,并绘制该信号。指定信号的周期为60秒。
u2 = iddata ([], u2, 1,“时间”、60);情节(u2)标题(周期信号的)
生成的信号是一个周期为60秒和3个周期的周期PRBS。在每次值变化之前,该信号在至少4个样本中保持不变。因此,信号满足指定的时钟周期。
生成正弦和信号
您可以使用正弦波的默认特性生成正弦波和信号。或者,您可以配置正弦波的数量,以及正弦波的频率和相位。这个例子展示了两种方法。
指定信号在每个周期中有50个样本和3个周期。还要指定信号振幅范围在-1和1之间。
时间= 50;NumPeriod = 3;Range = [-1 1];
指定信号的频率范围。对于正弦和信号,用奈奎斯特频率的分数指定通带的低频和高频。在本例中,使用0到Nyquist频率之间的整个频率范围。
Band = [0 1];
首先使用正弦波的默认特性生成信号。软件默认使用10个正弦波来产生信号。该软件为每个正弦信号分配一个随机相位,然后改变这些相位10次,以获得最小的信号传播。信号差是所有样本中信号的最大值和最小值之间的差。
[u,freq] = idinput([Period 1 NumPeriod],的正弦、乐队、范围);
软件返回正弦信号的和u
正弦信号的频率频率
.中的值频率
被缩放假设样本时间是1时间单位。假设采样时间为0.01小时。要检索以rad/小时为单位的实际频率,请将值除以样本时间。
t = 0.01;%采样时间(以小时为单位)频率=频率/ Ts;频率(1)
ans = 12.5664
频率(1)
是第一个正弦波的频率。要了解软件如何选择频率,请参阅SineData
参数的描述idinput
参考页面。
为了验证该信号是由10个正弦波产生的,可以查看该信号的频率内容。对信号进行傅里叶变换,画出信号的单侧振幅谱。
ufft = fft (u);Fs = 2 *π/ Ts;%采样频率,单位为rad/hourL =长度(u);w = (0: L - 1) * Fs / L;茎(w (1: L / 2), abs (ufft (1: L / 2)))%绘制到奈奎斯特频率标题(“u(t)的单边振幅谱”)包含(的频率(rad /小时)) ylabel (“振幅”)
生成的图显示了用于生成信号的10个正弦波的频率。例如,图中显示第一个正弦波的频率为12.57 rad/hour,与频率(1)
.
将生成的信号转换为iddata
对象,并绘制信号。指定采样时间为0.01小时。
u = iddata ([], u, Ts,“TimeUnit”,“小时”);情节(u)
信号u
使用10个正弦信号生成,周期为0.5小时和3个周期。
现在修改用于生成正弦信号和的正弦信号的数量、频率和相位。使用12个正弦信号,尝试15组不同的相位。若要设置正弦信号的频率,请指定GridSkip
= 2。该软件从频率网格的交点中选取正弦信号的频率2 *π* [1:GridSkip:修复(周期/ 2)]/
和通频带π*乐队
.
NumSinusoids = 12;NumTrials = 15;GridSkip = 2;SineData = [NumSinusoids、NumTrials GridSkip];u2 = idinput([Period 1 NumPeriod],的正弦、乐队、范围、SineData);
将生成的信号转换为iddata
对象,并绘制信号。
u2 = iddata ([], u2, Ts,“TimeUnit”,“小时”);情节(u2)
信号u2
使用12个正弦信号生成,周期为0.5小时和3个周期。
输入参数
ν
- - - - - -输入通道数
1
(默认)|真正的正整数
所生成信号的输入通道数,指定为实正整数。
期
- - - - - -每个周期的样本数量
真正的正整数
在产生的信号的每个周期的样本数,指定为一个实正整数。使用此输入指定一个周期信号。中指定句点数NumPeriod
.每个产生的输入通道信号都有NumPeriod *时期
样本。
NumPeriod
- - - - - -产生的信号的周期数
1
(默认)|真正的正整数
生成信号的周期数,指定为实正整数。使用此输入指定一个周期信号。还要指定信号期
.每个产生的输入通道信号都有NumPeriod *时期
样本。
类型
- - - - - -产生的信号类型
苏格兰皇家银行的
(默认)|“该公司”
|“伪随机位序列”
|的正弦
生成信号的类型,指定为以下值之一:
苏格兰皇家银行的
—生成随机二进制信号。随机二进制信号是一个随机过程,它只假设两个值。您可以使用范围
.若要生成限带信号,请指定通带乐队
.要生成周期信号,请指定期
而且NumPeriod
.“该公司”
—产生随机的高斯信号。生成的高斯信号具有均值μ和标准差σ,使[μ-σ, μ+σ]等于范围
.若要生成带受限的高斯信号,请指定在中的通带乐队
.生成一个周期高斯信号n
采样重复的周期米
次,指定期
作为n
而且NumPeriod
作为米
.“伪随机位序列”
—产生伪随机二进制信号(PRBS)。PRBS是一种周期性的确定性信号,具有类似白噪声的特性,在两个值之间移动。可以使用指定这两个值范围
.您还可以指定时钟周期,即信号值不变的最小采样间隔数。您指定时钟周期的倒数乐队
.生成的信号的长度并不总是与您指定的相同。长度取决于您需要的是周期信号还是非周期信号,也取决于您指定的时钟周期。有关更多信息,请参见伪随机二进制信号.
的正弦
-产生一个正弦信号的和。该软件选择正弦信号的频率均匀分布在选定的网格中,并为每个正弦信号分配一个随机相位。然后,该软件对每个正弦信号尝试几个随机相位,并选择给出最小信号传播的相位。信号差是所有样本中信号的最大值和最小值之间的差。对产生的正弦和信号的幅值进行缩放,以满足范围
你指定。控件中指定用于生成信号的正弦波的特征,例如正弦波的个数和它们的频率分离
SineData
论点。
乐队
- - - - - -产生的信号的频率范围
[0 1]
(默认)|1×2行向量
所生成信号的频率范围,指定为1 × 2的行向量,其中包含最小和最大频率值。
如果
类型
是“该公司”
,苏格兰皇家银行的
,或的正弦
——指定乐队
作为一个通频带[wlow whigh]
.在那里,wlow
而且whigh
为通带的低频和高频,用奈奎斯特频率的分数表示。例如,要生成具有白噪声特性的输入,使用Band = [0 1]
.该软件实现了随机高斯信号的频率内容(
“该公司”
)使用idfilt
用八阶巴特沃斯非因果滤波器。用于生成随机二进制信号(苏格兰皇家银行的
),软件使用相同的滤波器,然后使信号二进制。因此,生成的随机二进制信号中的频率内容可能与指定的通带不匹配。为
的正弦
信号,正弦信号的频率被选择均匀地分布在指定的通带中选定的网格上。有关更多信息,请参见SineData
参数描述。如果
类型
是“伪随机位序列”
——指定乐队
作为[0 B]
,在那里B
是信号时钟周期的倒数。时钟周期是信号值不变的最小采样间隔数。因此,生成的信号在长度的间隔上是恒定的1 / B
样本。如果1 / B
不是整数,软件用地板(1 / B)
作为时钟周期。
范围
- - - - - -生成的输入信号范围
[1]
(默认)|双元素行向量
生成输入信号范围,指定为双元行向量的形式[umin, umax]
.
如果
类型
是苏格兰皇家银行的
或“伪随机位序列”
-生成的信号u
有值umin
或umax
.如果
类型
是的正弦
-生成的信号u
之间有值umin
而且umax
.如果
类型
是“该公司”
-生成的高斯信号具有平均值μ和标准差σumin
而且umax
分别等于μ-σ和μ+σ。例如,范围= [1]
返回均值为0,方差为1的高斯白噪声信号。
SineData
- - - - - -正弦曲线的特征
[10 10 1]
(默认)|三元素行向量[NumSinusoids, NumTrials GridSkip]
用于生成正弦信号和的正弦信号的特性,指定为三元素行向量[NumSinusoids, NumTrials GridSkip]
.在那里,
NumSinusoids
是用来产生信号的正弦信号的数量。默认值为10
.NumTrials
是软件试图找出最小信号传播的正弦信号的不同随机相对相位的数量。信号差是所有样本中信号的最大值和最小值之间的差。正弦和信号的最大振幅取决于不同正弦信号的相对相位。为了找到信号传播最小的相位,软件进行了尝试
NumTrials
不同的相位随机选择,以找到最佳的相位值。例如,假设这样NumSinusoids
是20.
而且NumTrials
是5
.该软件对20个正弦信号尝试5组不同的相对相位,并选择给出最小信号传播的相位。的默认值。NumTrials
是10
.GridSkip
用来表征正弦信号的频率。该软件从频率网格的交点中选取正弦信号的频率2 *π* [1:GridSkip:修复(周期/ 2)]/
通频带π*(乐队乐队(1)(2))
.对于多通道输入信号,该软件使用该频率网格中的不同频率生成不同的输入通道。您可以使用GridSkip
例如,用于控制奇偶频率倍数,以检测不同类型的非线性。提取频率
频率
由软件选择来生成信号的,请使用以下语法。(u,频率)= idinput (__)
输出参数
更多关于
伪随机二进制信号
伪随机二进制信号(PRBS)是一种周期性的确定性信号,具有类似白噪声的特性,在两个值之间移动。
生成的PRBS为:
在这里,
是过去输入的向量,n是PRBS的命令,和快速眼动
表示余数当
除以2。因此,一个PRBS只能取0和1的值。软件会根据范围
你指定。此外,矢量过去的输入
只能采取2n
值。在这些值之外,全为0的状态将被忽略,因为它将导致未来的信号等于零。因此,一个PRBS是一个固有的周期信号,其最大周期长度为2n-1
.下表列出了不同订单可能的最大长度n伪随机位序列。
订单n | 最大长度PRBS (2n-1 ) |
---|---|
2 | 3. |
3. | 7 |
4 | 15 |
5 | 31 |
6 | 63 |
7 | 127 |
⋮ | ⋮ |
32 | 4294967295 |
请注意
软件不会产生周期大于的信号232-1
.
由于PRBS本质上是周期性的,因此生成的信号的长度和周期取决于您指定的时钟周期,以及您需要的是周期信号还是非周期信号。时钟周期是信号值不变的最小采样间隔数。指定时钟周期乐队
.
时钟周期= 1个样本(波段= [0 B] = [0 1]
):
生成一个非周期的信号的长度
N
, (NumPeriod
= 1)时,软件首先计算周期大于的最大长度PRBSN
.然后,软件返回第一个N
PRBS的样本u
.此操作确保u
不是周期性的。例如,如果N
= 100时,软件创建周期为127(订单7)的最大长度PRBS,并返回前100个样本作为u
.示例请参见生成一个非周期伪随机二进制输入信号.
生成一个周期信号(
NumPeriod
> 1),软件调整信号的周期,以获得最大长度PRBS的整数个数。为了做到这一点,软件计算一个顺序的PRBSn =地板(log2(时期)
和时间P = 2n-1
.信号u
然后生成为NumPeriod
重复这个周期的PRBS信号P
.因此,的长度u
是P * NumPeriod
.示例请参见生成一个周期伪随机二进制输入信号.
在多输入通道的情况下,信号被最大限度地移动。也就是说,不同输入之间的重叠被最小化。这意味着
期/ NumPeriod
是使用这种信号可以估计的模型阶数的上限。
时钟周期> 1样本(Band = [0 B],其中B<1
):
产生的信号至少要保持恒定1 / B
样本。为了满足这一要求,软件首先计算最小可能的最大长度PRBS的顺序为地板(n = log2(周期* B))
和时间2n-1
.然后,软件拉伸PRBS,使拉伸信号的周期为P = B-1(2n-1)
.
生成一个非周期的信号的长度
N
,如果周期P
的值大于或等于N
,软件返回第一个N
拉伸信号的样本为u
.这将确保u
是非周期性的,但对每一个都是常数1 / B
样本。注意,对于非周期信号,期
等于N
.如果这段时间
P
小于N
,该软件计算的是顺序的最大长度PRBSn2 = n + 1
.然后,软件将这个PRBS延伸到现在P2= B-1(2n2-1)
.然后,软件返回第一个N
此信号的样本为u
.生成一个周期信号,软件生成
u
作为NumPeriod
重复延长的周期信号P
.因此,的长度u
是P * NumPeriod
.
示例请参见生成具有指定时钟周期的伪随机二进制输入信号.
参考文献
[1] Söderström T.和P.斯托伊卡。,第C5.3章系统识别普林蒂斯·霍尔,1989年。
[2] Ljung, L.,第13.3节系统识别:用户的理论, Prentice Hall PTR, 1999。
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。