我一直在研究一个小型系统,该系统在房间内传输 35Hz-20kHz 频率范围内的线性啁啾,同时使用两个微控制器记录带有回声(来自地板、墙壁等)的传输信号。使用接收到的数据并在接收器中重构发送的啁啾获得信道频率响应,和是和分别。然后我尝试通过计算来计算通道脉冲响应。然后我尝试使用时间门控来消除回声。
我没有使用外部存储器这一事实限制了我最多使用长度为 N=2048 的浮点数组的计算能力,所以我正在处理的信号在单毫秒区域内(这当然限制了我的分辨率,但那是我必须接受的问题)。
困扰我的问题是,当我查看计算出的脉冲响应时,我得到如下信息:
似乎主要响应似乎周期性地向左移动了一点,因此它的开始位于数组的末尾并且那里有一个大的“尖峰”(要么那个要么响应有很大的延迟,这不会' t 适合物理系统,因为扬声器和麦克风在我正在执行的测试中仅相距几厘米)。这可能是什么原因?我在这里读过一些看起来很相似的帖子,还有关于预振铃的讨论;这可能是这种情况吗?
我想计算时间门控(理想情况下是“固定”)脉冲响应的 FFT 以从中获取一些数据,其中一部分是获得主响应的延迟 - 在这种情况下可以这样做吗?
洞察力将不胜感激!
阿夫纳
编辑:试图将这个问题与我不得不回答彼得的后续问题一起提出。如果我应该尝试在一个单独的问题中提出这个问题 - 请告诉我。
“非常感谢!到目前为止,我一直在发送持续 25 毫秒的啁啾声,接收持续 32 毫秒(因此有一个基本假设,即由于扬声器和麦克风之间的距离短,通道长度为 7 毫秒)。我”我用零填充啁啾样本以匹配接收长度(以样本为单位),并使用此方案为我提供了问题中所附的图表。
我读过使用正弦扫描并执行反卷积会导致分离非线性谐波以及时“落后”通道响应,因此这可能是循环移动并在通道上运行的东西。考虑到这些限制,您认为这个问题有解决方案吗?我几乎用两个 2048 浮点数组填充了我正在使用的微控制器上的 32kB 内存,这些数组构成了我正在处理的通用数组,占用了 16kB(就地处理)和另外两个整数数组它占用了 12kB 以上的空间,所以没有多少内存可以使用了。”
