spa
使用频谱分析,以固定的频率分辨率估计频率响应
语法
说明
根据时域或频域数据,估计频率响应及其不确定度,并估计噪声频谱 G = spa(data)data。
data 包含时域或频域的输入/输出数据,或时间序列数据。data 可以是 timetable 的形式,也可以是逗号分隔的数值矩阵对、iddata 对象,或者可以包含复数的 idfrd 对象。
如果 data 是一个时间序列(即不包含输入),则 spa(data) 将返回输出频谱及其不确定度。spa 使用汉窗,在 0(不包括 0)到 π 之间 128 个等间隔频率值处计算频谱。
如果 data 采用时间表的形式,软件会将最后一个变量解释为唯一的输出变量。要更改此解释,请使用 InputName 和 OutputName 名称参量。
使用由一个或多个名称-值参量指定的附加模型选项。 sys = spa(___,Name,Value)
例如,使用 sys = spa(data,'InputName',["u1","u3"],'OutputName',["y1","y4"]) 指定输入和输出信号变量名称。
此语法可与上述任一输入参量组合结合使用。
示例
输入参数
名称-值参数
输出参量
详细信息
算法
spa 通过以下步骤应用布莱克曼-图基 (Blackman-Tukey) 谱分析法:
根据 u(t) 和 y(t) 计算协方差和交叉协方差:
计算协方差和交叉协方差的傅里叶变换:
其中 是宽度(滞后量)为 M 的汉窗。您可以指定 M 来控制估计值的频率分辨率,该分辨率约等于 2π/M 弧度/采样时间。
默认情况下,该操作使用 0(不包括 0)到 π 之间 128 个等间隔的频率值,其中
w=[1:128]/128*pi/Ts,且Ts是该数据集的采样时间。汉窗的默认滞后长度为M = min(length(data)/10,30)。对于默认频率,该操作采用快速傅里叶变换 (FFT),其效率高于用户自定义频率的情况。计算频率响应函数 和输出噪声频谱 。
spectrum 是输出通道和输入通道的频谱矩阵。也就是说,如果 z = [data.OutputData、data.InputData]、spectrum 包含 z 的矩阵值频谱作为频谱数据。
这里,' 表示复共轭转置。
参考
[1] Ljung, Lennart. System Identification: Theory for the User. 2nd ed. Prentice Hall Information and System Sciences Series. Upper Saddle River, NJ: Prentice Hall PTR, 1999.


