Matlab中的1ppm采样时钟偏移

信息处理 matlab fft 离散信号 数字通讯 IFFT
2022-02-12 23:36:35

如何在Matlab中模拟百万分之一(SCO = 1ppm)的采样时钟偏移(发送器和接收器之间)?从理论上讲,我可以将信号上采样 1,000,001 倍(一百万零一),然后再下采样 1,000,000 倍(一百万),以模拟以 1+1e-6 的采样率重新采样信号。但是,这在 Matlab 中是不可能的。我正在考虑通过采用 FFT 来做到这一点,然后在频域中填充零,然后进行适当的选择,然后进行 iFFT ......

谢谢

1个回答

我怀疑OP指的是频率偏移而不是静态时间偏移。

如果 1ppm 是时钟频率的频率偏移而不是静态时间偏移,则可以使用数控振荡器引入(因此在 Matlab 中,这只是将数据路径信号乘以ejΔft)。如果该时钟是接收器中其他源(例如 RF 本地振荡器)的参考,则在使用 RF 与参考频率的适当倍增比时,还必须考虑在这些位置引入的频率偏移。

如果 1ppm 确实是一个不变的静态时间偏移,那么可以使用分数延迟滤波器来引入。分数延迟滤波器的基本结构是在时间偏移处重新采样理想的插值 Sinc 函数(这可以使用加窗 Sinc 滤波器设计轻松计算)。Farrow 滤波器也非常适合此目的,具有提供可调延迟的能力。看:

https://www.dsprelated.com/showarticle/22.php