正交编码器这事儿,说白了就是给信号加个“旋转的兄弟”。 想象一下,你手里拿着一根绳子,手里还有一个小轴。绳子代表你的原始信号,小轴代表一个旋转着的正交坐标轴。你的目标,就是让这根绳子在旋转,与此同时保证它一辈子和那个小轴保持 90 度直角。
要是绳子歪了,你就得用力扭动小轴,直到绳子和小轴再次正交。
这就是正交编码的核心逻辑——在时域里做一种动态的“正交化”。 你看这个公式,$mathbf{x}(t) = mathbf{u}(t) + mathbf{v}(t)$。
这里 $mathbf{u}(t)$ 是基向量,$mathbf{v}(t)$ 是正交向量。为了让它们正交,$mathbf{u}(t)$ 务必旋转,而 $mathbf{v}(t)$ 也要跟着转。
要是是静态的,比如标准的正弦波,那 $mathbf{u}$ 和 $mathbf{v}$ 就拼不出来一个完美的正弦波。得先把 $u$ 转个弯,$v$ 再转个弯,让它们互相垂直。 真世界里,信号多半是不规则的。
比如你听一段音乐,声音忽高忽低,波形怪怪的。
这时候标准的频谱正交化可能就用得着。
比如你在做语音识别,想取高频信息。你选一个基函数 $u(t)$,让它和另一个函数 $v(t)$ 正交。有个具体的例子,你能够把 $u(t)$ 设定为高频的正弦波,频率选得高一些。
然后 $v(t)$ 就得选一个频率比它低一些,但相位要错开,这样两个信号加起来就是一个整个的波形,中间不会抵消,也不会重叠。 要是你用的 $u(t)$ 本身已经在正交了,比如它是一个已经调好相位的正弦波,那你实际上不需求动 $u(t)$ 了。你只需求动 $v(t)$ 呗。
这时候公式就好办了,$x(t) = u(t) + v(t)$。$u(t)$ 保持不变,$v(t)$ 只需求做个跟 $u(t)$ 彻底正交的函数就行了。
这在数学上实际上有点像投影,你把 $x(t)$ 拆成两个正交分量,一个是你预设的 $u(t)$,另一个是剩下的局部 $v(t)$。 不过现实情况往往没那么理想。信号可能不是纯正弦,可能有大量噪声混进去。
这时候 $u(t)$ 和 $v(t)$ 天然地就不正交了。你得做一个旋转矩阵,把这个矩阵乘进去,强行让两个向量变正交。
这就好比你在地上画两条线,本来斜着的,你就要把其中一条线顺时针要么逆时针转,直到它和另一条线垂直。转得准不准,得看你的基函数选得好不好。 选基函数忒关键了。
要是选错了,旋转出来的 $v(t)$ 可能又不会正交了。
这时候就得依赖数值优化要么迭代算法。
比如你一启动随意选个 $u(t)$,算出正交向量 $v(t)$,发现 $v(t)$ 里还是有点能量,那就得调整 $u(t)$ 的相位要么幅度,重新算。
这个过程有点像调音,你不断微调那个旋转的角度,直到两个向量彻底“钉死”在 90 度。 这种操作在信号处理里叫正交化(Orthogonalization),有时候也叫 Gram-Schmidt 过程。它的意义在于,通过正交性,你能够把复杂的信号分解成几个好办的局部。
比如你能够取出高频成分、低频成分,就连两个彻底不同的频段。
这样你就省去了后期处理里需求复杂滤波器去分离信噪比那些费事事。出于目前信噪比就在这些正交分量里了,互不干扰。 举个例子,假设你要传一段数据,里面混了高频噪声。你定义基函数 $u(t)$ 是高频的正弦波。
然后你用信号子集去匹配 $u(t)$,算出来的 $v(t)$ 就是剩下的低频局部。
这样一拆,高频噪声就被扔进 $u(t)$ 里了,低频信号被留在 $v(t)$ 里了。接收端反过来做,把 $v(t)$ 看作新信号,用同样的 $u(t)$(要么正交变换)去匹配,就能把高频噪声剥离出来。整个过程就像是在对信号讲话,你对它说“请把高频频率给我”,它就自动转来。 可是,正交编码器并不是万能的解药。它有个代价,就是计算量大。每一步正交化都要做矩阵运算,要是信号挺强,迭代次数多,计算压力就大了。
特别是要是用了自适应算法,比如 LMS(最小Mean Squared Error),它要实时调整矩阵,那延迟和算力消耗就更高了。
不过好在现代硬件,特别是 FPGA 要么 GPU,处理这种实时正交化的本事已经挺强了。 还有个难题,正交化往往是在时域做的。
要是你的输入信号是纯频率域的,比如你已经有 FFT 了,那实际上能够直接在频域正交。
这样在时域正交化反而多了一步,不如频域的正交直接。出于频域里,不同的频率本来就是正交的,不需求像时域里那样费劲地找旋转角度。 正交编码器在处理线性系统时,它实际上是把线性系统变成了非线性难题。在线性系统里,叠加是线性的。但在正交编码器里,你固定了基向量,这相当于把维数从大到变小了,要么把系统变成了非线性的。
这时候,你原来的输入信号 $x(t)$,经过正交化后,就变成了几个好办的分量。接收端再把这些分量组合起来,实际上是做了反投影。
要是基函数选得完美,反投影就能还原出原始信号。但要是基函数带误差,要么旋转角度不对,还原出来的信号就会失真,形成幻象噪声。 故此,正交编码器的魅力和局限都在这里。它供给了一种在时域或频域里做正交分解的方式,特别适用于信噪比不是特别高的情况。它能把信号拆得更干净利落。自然,对于极高信噪比的信号,你可能更愿意用香农编码要么 FEC,出于它在纠错本事上可能更强。但对于一般的语音、音频取,要么生物电信号处理,正交编码器往往是个好用且高效的工具。 最终总结一下,正交编码器就是把信号在时域里做一个旋转正交化的过程。它通过基向量 $u(t)$ 和正交向量 $v(t)$ 的匹配,把复杂的信号拆解成不同频段或不同性质的分量。别看计算上有点开销,但只要基函数选得好,配合数值优化算法,就能把信号里的噪声剥离出来,纯粹地留下有用的信息。
这就是它在信号处理领域不可替代的缘由。