1 正弦扫频信号幅值及相位的提取(1) 正弦振动控制系统提供输入的扫频信号 ,对于对数扫频, ,其中Sr 为对数扫描率,若频响函数为 则系统输出为
测量系统中可得到 Calo 信号及响应信号,通过对二者进行数据处理,可得到频域下的响应
不知道 LMS 的信号采集软件是如何提取频域响应的,个人认为软件计算速度有限,LMS 应该是通过硬件实现的
下面我提供几种方法并进行比较
算例对于Calo 信号 ,频响函数为 ,其中 ,信号采样率为1000 次/秒,图 1 给出了时域下的响应信号
图 1 时域下的响应信号 正弦扫频信号幅值及相位的提取(2) 2 方法1 分段FFT 在[f, f+df]区间内对Calo 信号、响应信号进行 FFT 变换,二者在频率 f 处的谱值比即为频响函数在f 处的值
此方法的缺陷是由于信号采样率为 1000Hz,而[f, f+df]的区间很窄,在此区间下时域的点不会很多,因而 FFT 的频率分辨率不高
对于没有相位差的扫频信号,此方法能较好的提取幅值
图 2 给出了使用此方法提取的幅值与理论结果比较,由图中可以看出二者基本吻合
图 2 使用分段FFT 提取的频域幅值 对于有相位差的扫频信号,则要对结果进行光滑处理,Matlab 的 smooth 函数提供了这一功能
图 3 给出了有相位差时分段FFT 提取的幅值与相位同理论结果的比较,从图中可以看出在频域峰值处分段FFT 比理论值大,在其余频段二者吻合较好
3 图 3 使用分段FFT 提取的频域幅值、相位 下面给出了实现分段FFT 提取扫频信号的频域幅值、相位的Matlab 代码
---------------------------------------------------------------------- % Decompose the amplitude and phase