主要内容

本页采用了机器翻译。点击此处可查看英文原文。

时域和频域数据之间的转换

您可以将数据从一个域转换到另一个域。该表总结了在时域和频域之间转换数据的命令。有关更多命令信息,请参阅相应的命令参考页面。

命令描述语法示例
fft

时域数据转换到频域。

您可以指定 N,即频率值的数量。

要将时域 iddata 对象 t_data 转换为频域 iddata 对象 f_data(具有 N 频率点),请使用:

f_data = 
  fft(t_data,N)
ifft将频域数据变换到时域。频率是线性的并且间隔相等。

要将频域 iddata 对象 f_data 转换时域 iddata 对象 t_data,请使用:

t_data = 
  ifft(f_data)

iddata 数据转换为 idfrd 频率响应的形式是一种估计。如果您想使用 iddata 对象估计频率响应,请参阅Transforming Between Frequency-Domain and Frequency-Response Data

在时域和频域之间变换数据

将数据从时域转换到频域,再转换回时域,并比较从原始数据和转换后的数据估计的模型的性能。

加载并绘制包含 300 个采样的时域数据 z1

load iddata1 z1
plot(z1)

Ts 的采样时间 z1

Ts = z1.Ts
Ts = 
0.1000

采样时间为 0.1 秒。

z1 变换到频域。

z1f = fft(z1)
z1f = 
Frequency domain data set with responses at 151 frequencies.
Frequency range: 0 to 31.416 rad/seconds
Sample time: 0.1 seconds                                                                             
                                                                                                     
Outputs      Unit (if specified)                                                                     
   y1                                                                                                
                                                                                                     
Inputs       Unit (if specified)                                                                     
   u1                                                                                                
                                                                                                     
Data Properties

频率范围扩展至 31.416 rad/s,相当于 pi/Ts 的奈奎斯特频率。

绘制频域数据。

plot(z1f)

MATLAB figure

z1f 转换回时域并将两个时域信号绘制在一起。

z1t = ifft(z1f)
z1t = 
Time domain data set with 300 samples.
Sample time: 0.1 seconds              
                                      
Outputs      Unit (if specified)      
   y1                                 
                                      
Inputs       Unit (if specified)      
   u1                                 
                                      
Data Properties
plot(z1t,z1)

MATLAB figure

MATLAB figure

信号精确排列。

估计 z1z1t 的二阶状态空间模型。

sys1 = ssest(z1,2);
sys1t = ssest(z1t,2);
compare(z1,sys1,sys1t)

MATLAB figure

估计 z1f 的状态空间模型。

sys1f = ssest(z1f,2);
compare(z1f,sys1f)

MATLAB figure

时域和频域模型的拟合百分比相似。

另请参阅

| | | | |

主题