要回答您的第二个问题:要确定与离散音调的互相关,您可以通过将序列视为 FIR 滤波器的时间反转系数来获得相关的频率响应(因为 FIR 滤波器执行信号与系数的卷积,并且相关是与时间反转的序列之一的卷积)。
因此,您可以使用 Matlab/Octave 或 Python Sciiy.signal 使用 freqz 命令来查看这一点。下面是我如何使用 Python 通过按序列长度缩放来给出有意义的幅度答案(以 dB 为单位)。通过这样做,结果是峰值幅度为 1 ( ) 的正弦音调在任何给定归一化频率时的预期电平(相对于匹配的传入序列的峰值相关性)到幅度为 +1/-1 的代码(假设这样的序列在相关器中会增长到):cosωt0≤ω<12i−1
import numpy as np
import scipy.signal as sig
import matplotlib.pyplot as plt
mls_r, seed = sig.max_len_seq(5) # sequence length 2**5-1
mls = list(mls_r*2-1) # map to +/-1
f,m = sig.freqz(np.flip(mls),2**i-1) # frequency response (DTFT)
plt.plot(f/(2*np.pi),20*np.log10(np.abs(m)))
plt.grid()
plt.xlabel("Normalized Frequency (cycles/sample)")
plt.ylabel("Magnitude (dB)")
plt.title("Frequency Response of one particular 31 chip MLS")
一般来说,我们看到由给出的预期衰减,在这种情况下,将为 dB。10Log10(N)N=3114.9

重复 1023 长度的序列会得到下图,其中我们看到预期的 30 dB 衰减,但也看到任何单音的结果可能会有很大差异,包括泄漏可能高达 5 dB 强的区域:
