产生输入信号
这个伊迪普特
命令为您的系统生成具有指定特征的输入信号。您可以使用生成的输入,并模拟系统的响应来研究系统行为。例如,您可以研究系统对周期性输入的响应。该系统可以是一个实际的物理系统或一个模型,如Simulink金宝app®模型。你也可以设计最优的实验。例如,您可以确定哪些输入信号隔离了系统中的故障或非线性。你也可以用伊迪普特
设计具有足够带宽的输入,以激发系统的动态范围。
生成具有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;Period=10;NumPeriod=5;u=idinput([Period,NumChannel,NumPeriod]);
U
是长度为50的列向量(= Period*NumPeriod)。中的值U
不是-1就是1。
创建一个iddata
对象从生成的信号。指定采样时间为1秒。
u = iddata ([], u, 1);
画出信号。
绘图(u)
按照规定,生成的单通道周期随机二进制输入信号的周期为10秒,信号中有5个完整周期。
生成一个单通道周期随机高斯输入信号,周期为50个样本,信号中有5个周期。首先使用整个频率范围产生信号,然后指定通频带。
NumChannel=1;Period=50;NumPeriod=5;u=idinput([Period,NumChannel,NumPeriod],“该公司”);
U
是长度为250(=Period*NumPeriod)的列向量。
创建一个iddata
对象,并绘制信号。对于本例,将样本时间指定为0.01秒。
u=iddata([],u,0.01);绘图(u)
这张图显示U
包含50个样本的随机段,重复5次。该信号是均值为零、方差为1的高斯白噪声信号。
由于采样时间为0.01秒,因此生成的信号的周期为0.5秒。信号的频率内容跨越整个可用范围(0-50 Hz)。
现在指定一个介于0和25赫兹之间的通带(=奈奎斯特频率的0.5倍)。
波段=[0.5];u2=输入([Period,NumChannel,NumPeriod],“该公司”、带);
创建一个iddata
目标,并绘制信号。
u2=iddata([],u2,0.01);绘图(u2)
所产生信号的频率内容u2
频率限制在0-25 Hz。
伪随机二进制输入信号(PRBS)是一种确定性信号,其频率特性模拟白噪声。PRBS固有周期性,最大周期长度为 ,其中整数n是PRB的顺序。有关更多信息,请参阅伪随机二进制信号.
指定单通道PRBS值在-2和2之间切换。
范围= (2,2);
指定信号的时钟周期为1采样。也就是说,信号的值在每一个时间步长都会发生变化。对于PRBS信号,时钟周期由乐队
=[0 B],其中B
是所需时钟周期的倒数。
波段= [0 1];
生成长度为100个样本的非周期性PRBS。
u = idinput (100“prbs”、乐队、范围);
警告:发送的PRBS信号是长度为127的完整序列的前100个值。
PRBS具有固有的周期性。为了生成非周期信号,软件生成长度127的最大长度PRBS,周期大于所需的样本数100。软件返回生成的PRBS的前100个样本。此操作确保生成的信号不是周期性的,如生成的警告所示。
创建一个iddata
对象。对于本例,将采样时间指定为1秒。
u = iddata ([], u, 1);
绘制并检查生成的信号。
情节(u);头衔(非周期信号的)
生成的信号是长度为100的非周期PRB,在-2和2之间切换。
指定伪随机二进制输入信号(PRBS)在-2和2之间切换。
范围= (2,2);
指定信号的时钟周期为1采样。也就是说,信号的值在每一个时间步长都会发生变化。对于PRBS信号,时钟周期由乐队
=[0 B],其中B
是所需时钟周期的倒数。
波段= [0 1];
生成一个单通道、周期的PRBS,周期为100个样本,信号中有3个周期。
u1 = idinput (100, 1, 3,“prbs”、乐队、范围);
警告:PRBS信号的周期改为63。因此,生成的信号长度为189。
PRBS具有固有的周期性,最大周期长度为
,其中整数n是PRBS的阶数。如果指定的周期不等于最大长度PRBS,则软件调整产生的信号的周期,得到最大长度PRBS的整数,并发出警告。有关最大长度PRBS的更多信息,请参见伪随机二进制信号.在这个例子中,所需的周期100不等于最大长度PRBS,因此软件转而生成顺序的最大长度PRBSn = log2(Period) = 6
。因此,PRBS信号的周期为63(=
),生成的信号长度为189 (=NumPeriod
*63).此结果在生成的警告中显示。
创建一个iddata
对象,并绘制信号。指定信号的周期为63个样本。
u1=iddata([],u1,1,“时间”, 63);情节(u1)标题(“周期信号”)
产生的信号是一个有三个周期的周期性PRBS。
产生具有指定时钟周期的周期和非周期伪随机二进制输入信号(PRBS)。
生成一个单通道PRBS,在-2和2之间切换。指定信号的时钟周期为4个采样。也就是说,信号必须至少连续4个采样保持不变,才能发生变化。对于PRBS信号,时钟周期由乐队
=[0 B],其中B
是所需时钟周期的倒数。
范围= (2,2);波段= [0 1/4];
首先产生一个长度为100的非周期信号。
u1=输入(100,“prbs”、乐队、范围);
警告:发送的PRBS信号是长度为124的完整序列的前100个值。
要理解生成的警告,首先注意代码相当于生成一个单通道PRBS,周期为100个样本和1个周期。
u1 = idinput([100年,1,1],“伪随机位序列”,乐队,范围);
生成的PRBS信号必须保持不变,至少4个样本,才可以改变值。为了满足这一要求,软件首先计算出最小可能最大长度PRBS的阶数为n = floor(log2(Period*B)) = 4
及期间
.有关最大长度PRB的信息,请参阅伪随机二进制信号.然后,软件拉伸该PRBS,使拉伸信号的周期为
.
但是,由于该时间段小于指定的长度100,因此软件将计算顺序的最大长度PRBSM = n+1 = 5
. 然后,软件拉伸该PRB,使周期现在为
. 软件返回该信号的前100个样本,如下所示:u1
.这个结果确保了生成的信号不是周期性的,而是每4个采样都是常数。
创建一个iddata
对象。对于本例,将采样时间指定为1秒。
u1 = iddata ([], u1, 1);
绘制并检查信号。
地块(u1);头衔(“非周期信号”)
生成的信号是长度为100的非周期PRB。在每次改变值之前,信号至少在4个样本中保持恒定。因此,信号满足中规定的时钟周期乐队
.
现在生成一个周期为100采样周期和3周期的周期信号。
u2=idinput([100,1,3],“prbs”、乐队、范围);
警告: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个采样点不变。因此,信号满足指定的时钟周期。
您可以使用正弦波的默认特征生成正弦波信号的总和。或者,您可以配置正弦波的数量以及正弦波的频率和相位。此示例显示了这两种方法。
指定信号在每个周期和3个周期中有50个采样。还指定信号振幅范围在-1和1之间。
时间= 50;NumPeriod = 3;范围= [-1 1];
指定信号的频率范围。对于正弦和信号,您可以指定通频带的上低频,以奈奎斯特频率的分数表示。在本例中,使用0到Nyquist频率之间的整个频率范围。
波段= [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
参数上的参数说明伊迪普特
参考页面。
要验证是否使用了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 *时期
样本。
类型
—产生的信号类型苏格兰皇家银行的
(默认)|“该公司”
|“prbs”
|的正弦
生成信号的类型,指定为以下值之一:
苏格兰皇家银行的
-生成一个随机二进制信号。随机二进制信号是仅假设两个值的随机过程。可以使用以下命令指定这些值:范围
.要产生限带信号,请指定通频带乐队
.要产生周期信号,请指定期
和NumPeriod
.
“该公司”
-生成随机高斯信号。生成的高斯信号具有平均μ和标准差σ,使[μ-σ, μ+σ]等于范围
。要生成带限高斯信号,请在中指定通带乐队
.以生成具有N
采样周期自己重复M
次,指定期
作为N
和NumPeriod
作为M
.
“prbs”
—产生伪随机二进制信号(PRBS)。PRBS是一种周期性的、确定性的信号,具有类似白噪声的性质,在两个值之间移动。您可以使用以下命令指定这两个值范围
。您还可以指定时钟周期,即信号值不变的最小采样间隔数。您可以在中指定时钟周期的倒数乐队
.
生成信号的长度并不总是与您指定的长度相同。长度取决于您是否需要周期性或非周期性信号,以及您指定的时钟周期。有关更多信息,请参阅伪随机二进制信号.
的正弦
-生成一个由正弦波组成的信号。软件选择要均匀分布在选定网格上的正弦波频率,并为每个正弦波分配一个随机相位。然后,软件为每个正弦波尝试几个随机相位,并选择产生最小信号扩散的相位。信号扩散为差值b在所有样本上信号的最小值和最大值之间。所生成的正弦信号和的振幅被缩放以满足范围
你指定。
可以指定用于生成信号的正弦波的特征,例如正弦波的数量和它们的频率分离,在SineData
论点。
乐队
—产生信号的频率范围[0 1]
(默认)|1×2行向量生成信号的频率范围,指定为包含最小和最大频率值的1 × 2行向量。
如果类型
是“该公司”
,苏格兰皇家银行的
,或的正弦
——指定乐队
作为一个通频带[wlow whigh]
.在那里,wlow
和呜呜
为通频带的上、下频率,以奈奎斯特频率的分数表示。例如,要生成具有白噪声特征的输入,请使用[0 1]
.
该软件实现了随机高斯信号(“该公司”
)使用idfilt
用八阶巴特沃斯非因果过滤器用于产生随机二进制信号(苏格兰皇家银行的
),软件使用相同的滤波器,然后使信号为二进制。因此,产生的随机二进制信号中的频率内容可能与指定的通频带不匹配。
对于的正弦
信号,正弦波的频率被选择为在指定的通频带内均匀地分布在选定的网格上。有关更多信息,请参见SineData
参数描述。
如果类型
是“prbs”
——指定乐队
作为[0 B]
哪里B
是信号的时钟周期的倒数。时钟周期是信号值不变的最小采样间隔数。因此,生成的信号在长度区间内是恒定的1 / B
样本。如果1 / B
是不是整数,软件用的是楼层(1/B)
作为时钟周期。
范围
—生成输入信号范围[1]
(默认)|二元行向量生成的输入信号范围,指定为双元素行向量的形式[umin,umax]
.
如果类型
是苏格兰皇家银行的
或“prbs”
-生成的信号U
有值umin
或umax
.
如果类型
是的正弦
-生成的信号U
值介于umin
和umax
.
如果类型
是“该公司”
-生成的高斯信号具有平均μ和标准偏差σ,因此umin
和umax
分别等于μ-σ和μ+σ。例如,范围=[-1,1]
返回一个均值为零、方差为1的高斯白噪声信号。
SineData
—正弦波的特征[10 10 1]
(默认)|三元素行向量[NumSinusoids, NumTrials GridSkip]
用于生成正弦波和信号的正弦波特性,指定为一个三元素行向量[NumSinusoids, NumTrials GridSkip]
.在那里,
核仁
是用于生成信号的正弦波数。默认值为10
.
NumTrials
是软件试图找到最小信号传播的正弦波的不同随机相对相位的数目。信号扩展是所有样本中信号的最小值和最大值之间的差值。
正弦信号和的最大振幅取决于不同正弦信号的相对相位。为了找到使信号传播最小的相位,软件尝试NumTrials
随机选择不同的相位,以找到最佳的相位值。例如,假设核仁
是20.
和NumTrials
是5.
.软件尝试20个正弦波的5组不同相对相位,并选择信号传播最小的相位。的默认值为NumTrials
是10
.
GridSkip
用来表征正弦波的频率。该软件从频率网格的交点选择正弦波的频率2 *π* [1:GridSkip:修复(周期/ 2)]/
还有传球带π*(乐队乐队(1)(2))
. 对于多通道输入信号,软件使用该频率网格中的不同频率来生成不同的输入通道。你可以用GridSkip
用于控制奇偶频率倍数,例如,检测不同类型的非线性。
提取频率频率
由软件选择以生成信号的,请使用以下语法。
[u,freq]=输入
伪随机二进制信号(PRBS)是一种周期性的、确定性的信号,具有类白噪声的性质,在两个值之间移动。
PRBS生成如下:
在这里,
是过去输入的向量,N是PRBS订单,以及雷姆
表示余数:
除以2。因此,PRBS只能取值0和1。软件根据范围
您可以指定。此外,过去输入的向量
只能接受2.N
值。在这些值中,所有零的状态将被忽略,因为它将导致将来的信号等于零。因此,PRBS是一个固有的周期信号,其最大周期长度为2.N-1
.下表列出了不同订单可能的最大长度N伪随机位序列。
订单N | 最大长度PRBS (2.N-1 ) |
---|---|
2. | 3. |
3. | 7. |
4. | 15 |
5. | 31 |
6. | 63 |
7. | 127 |
⋮ | ⋮ |
32 | 4294967295 |
注
软件不会生成周期大于的信号2.32-1
.
由于PRBS本质上是周期性的,生成信号的长度和周期取决于您指定的时钟周期,以及您是否需要周期或非周期信号。时钟周期是信号值不变的最小采样间隔数。中指定时钟周期乐队
.
时钟周期=1个样本(波段=[0 B]=[0 1]
):
生成一个非周期的信号的长度N
, (NumPeriod
= 1)时,软件首先计算周期大于的最大长度PRBSN
.然后软件返回第一个N
样品的PRBSU
.此操作确保U
不是周期性的。例如,如果N
为100时,软件创建周期127(订单7)的最大长度PRBS,并返回前100个样品为U
.
例如,请参见生成非周期伪随机二进制输入信号.
生成一个周期信号(NumPeriod
> 1),软件调整信号的周期,以获得最大长度PRBS的整数。为了做到这一点,软件计算一个有序的PRBSn=楼层(对数2(周期))
及期间P = 2N-1
.信号U
然后生成为NumPeriod
重复这个周期的PRBS信号P
.因此,长度U
是P * NumPeriod
.
例如,请参见生成周期性伪随机二进制输入信号.
在多输入信道的情况下,信号最大移位。也就是说,不同输入之间的重叠被最小化。这意味着期/ NumPeriod
是使用该信号可以估计的模型阶数的上界。
时钟周期> 1采样(Band = [0 B],其中B<1
):
生成的信号至少要保持不变1 / B
样本。为了满足这一要求,软件首先计算出最小可能最大长度PRBS的阶数为n=楼层(对数2(周期*B))
及期间2.N-1
.然后,软件拉伸PRB,使拉伸信号的周期P = B-1(2N-1)
.
生成一个非周期的信号的长度N
,如果该期间P
拉伸信号的长度大于或等于N
,软件返回第一个N
拉伸信号的样本如下所示:U
。这可确保U
是不是每个都是非周期性的,但都是常数1 / B
样品。注意,对于非周期信号,期
等于N
.
如果这段时间P
小于N
,软件计算的最大长度PRBS的顺序n2 = n + 1
. 然后,软件拉伸该PRB,使周期现在为P2.= B-1(2n2-1)
.然后软件返回第一个N
这个信号的样本U
.
生成一个周期信号,该软件生成U
作为NumPeriod
周期拉长信号的重复P
.因此,长度U
是P * NumPeriod
.
例如,请参见生成具有指定时钟周期的伪随机二进制输入信号.
[1] Söderström,T.和P.Stoica,第C5.3章系统识别, Prentice Hall, 1989年。
[2] Ljung,L.,第13.3节系统识别:用户的理论, Prentice Hall PTR, 1999。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。