spafdr
利用频谱分析估计频率响应与频谱,该分析具有频率依赖性分辨率
语法
g = spafdr(data)
g = spafdr(data,Resol,w)
g = spafdr(___,Name-Value)
说明
g = spafdr(data) 估计通用线性模型的输入-输出频率响应函数 G(ω) 及其噪声谱 Φυ
其中 Φυ (ω) 是 υ (t) 的频谱。
data 包含时域或频域输入/输出数据或时间序列数据。data 可以是 timetable 的形式、用逗号分隔的数值矩阵对,或 iddata 对象。数据可以是复值,且存在于时域或频域中。如果存在多个实验,data 可以是一个元胞数组。
data 也可以是一个包含频率响应数据的 idfrd 对象。g 是 idfrd 对象,其中包含在行向量 w 指定的频率 ω 处对 的估计值。
g 还包含关于 Φυ (ω) 在相同频率下频谱估计的信息。两个结果均附带估计协方差,包含在 g 中。频谱的归一化与 spa 中描述的方法相同。
估计结果及所用选项的相关信息存储在模型的 Report 属性中。Report 包含以下字段:
Status- 模型状态摘要,用于指示模型是通过构建创建还是通过估计获得。Method- 使用的估计命令。WindowSize- 频率分辨率。DataUsed- 用于估计的数据属性。包含以下字段的结构:Name- 数据集名称。Type- 数据类型。Length- 数据采样数。Ts- 采样时间。InterSample- 输入采样间行为。InputOffset- 估计期间从时域输入数目据中移除的偏移量。OutputOffset- 估计期间从时域输出数目据中移除的偏移量。
g = spafdr(data,Resol,w) 指定频率和频率分辨率。
g = spafdr(___, 使用由一个或多个名称-值参量指定的附加模型选项。 Name-Value)
可用的参量包括:
InputName和OutputName- 输入和输出通道名称。尤其当data是一个包含比您想要使用的变量更多的变量的时间表时,请使用这些参量。当时间表OutputName包含多个输出变量时,也可以使用data来辨识输出通道。否则,软件仅将最后一个变量解释为输出通道。例如,使用
sys = spafdr(data,'InputName',["u1","u3"],'OutputName',["y1","y4"])指定输入和输出信号变量名称。此语法可与上述任一输入参量组合结合使用。Ts和TimeUnit- 采样时间与时间单位。当data包含数值矩阵时,尤其要使用这些参量,因为数值矩阵不提供采样时间信息。
频率
频率变量 w 可指定为以弧度/TimeUnit 为单位的频率向量,其中 TimeUnit 表示数据的 TimeUnit 属性,或指定为元胞数组 {wmin,wmax}。在后一种情况下,覆盖的频率范围将包含从 wmin 到 wmax 的 50 个对数间隔点。您可以通过输入 {wmin,wmax,NP} 将数值改为 NP。
省略 w 或将其输入为空矩阵将采用默认值,即在数据最小频率与最大频率之间均匀分布 100 个对数间隔频率。对于时域数据,默认范围从 到 ,其中 Ts 表示数据采样时间,N 表示数据点数量。
分辨率
参量 Resol 定义了估计值的频率分辨率。分辨率(以 rad/TimeUnit 为单位)是频率函数和频谱中由估计量所解析的最小细节尺寸。该决议是在获取精细可靠的细节估计与承受虚假随机效应之间做出的权衡:分辨率越精细,估计值的方差就越大。Resol 可作为标量输入(单位为弧度/TimeUnit),该参数定义了整个频率区间内的分辨率。它也可以作为与 w 相同长度的行向量输入。那么 Resol(k) 就是频率 w(k) 周围的局部、频率依赖性分辨率。
省略 Resol 或将其设为空矩阵时,其默认值是向上调整后的 Resol(k) = 2(w(k+1)-w(k)),以确保获得合理的估计值。在所有情况下,解析结果都将返回至变量 g.Report.WindowSize 中。
算法
若数据以时域形式给出,则首先将其转换为频域。随后在频率范围 w 内分别对 Y(w)Conj(U(w)) 和 U(w)Conj(U(w)) 进行平均运算,从而获得目标频率附近所需的分辨率。随后计算这些平均值的比值以获得频率函数估计值,相应的表达式则定义了噪声谱估计值。