从对数扫描频率响应数据估计传递函数

信息处理 转换功能
2022-02-03 16:32:53

我有 100 Hz 到 100 GHz 范围内的复杂频率响应数据(模拟系统的),并以对数间隔对频率进行采样。我希望能够将其转换为 MATLAB 中的滤波器,以便我可以将其与时域信号的 fft 相乘。

使用 invfreqs 时,我没有看到很好的匹配。做这个的最好方式是什么?

2个回答

使用 FDLS(频域最小二乘法)创建测量频率响应的模型。使用该模型的频率响应(在 FFT bin 频率处评估)作为您的滤波器。

替代方案:如果低阶 IIR(甚至可能是 FIR)模型提供了足够好的拟合,则使用该模型作为直接时域卷积的滤波器。

如果我理解您的原始问题,您似乎想将一些给定的复杂频率响应序列和时域“测试”序列的 FFT 样本相乘以产生滤波信号的频谱样本。除非我遗漏了什么,否则如果您有 N 个复杂的频率响应样本,那么只需将这些样本乘以您的时域“测试”序列的标准 N 点 FFT 的复杂频谱样本。(无需担心线性或对数频率轴。)这将产生“过滤信号”的复杂光谱样本。

如果您想计算相应的时域滤波信号序列,只需计算滤波信号频谱样本的逆 FFT。警告:要计算逆 FFT,您必须确保滤波信号的频谱样本覆盖零 Hz 到 fs Hz 的整个频率范围,并具有适当的共轭对称性。