前两天讨论了在单片机频谱分析软件中,通过数据加窗方法来减少结果中的杂散频谱。有同学提议,既然理论上知道,举行加窗引起结果中频谱失真。是信号频谱与 方波的频谱,也就是 sinc 函数卷积的结果。那么为什么不能够直接对频谱信号,通过解卷积运算,恢复原始信号的频谱呢? 提出这个观点的同学显然对于卷积,解卷积运算比较熟悉。那么到底是否可以通过解卷积来恢复原始信号的频谱呢?
对于两个离散序列信号,它们的卷积, 定义为右边的表达式。如果已知它们的卷积结果,以及其中一个信号,求解另外 一个信号,这个过程被称为解卷积。一般情况下,求解解卷积不太方便。但是,当两个信号都是因果信号时,我们可以有一个比较简洁的解卷积递推公式。也就是把卷积和分成两部分,把卷积结果记为 y[n],基于这个表达式,我们可以得到 x[n] 求解的递推公式。
基于这个表达式,将累加部分,转移到方程的左边, 再把 h[0] 除到左边,这一下就好了,我们得到了 关于 x[n] 求解的递推公式了。
在这个公式中,y[n]是已知的卷积结果,h[n]是已知的一个序列。从 0 到 n-1 的 x[n] 是已经求出的前 x[n]由此,可以计算出 x[n]。根据这个方法, 可以写出x[0] 的表达式,接下来求出x[1],求出x[2],求出x[3]。由此,逐步求出所有的 x[n] 的取值。
这种通过递推进行解卷积的方法,需要一个假设条件,那就是要求参与卷积的两个序列信号 x[n], h[n] 都是因果信号才行。
在前面数据加窗频谱分析过程中,参与卷积的两个频谱,矩形窗口的频谱不是因果信号。所以,上面解卷积的方法就无法使用。
实际上,无法通过解卷积获得信号真实频谱,这其中的原因也可以在时域进行分析。对于得到的一段数据,是由无限长的正弦波与窗口信号相乘而得。因此,将加窗后的数据,除以窗口信号 理论上就可以得到原始信号。但在这里就遇到了困难。因为窗口信号两边都是 0,实际上 乘以 0 之后,原来的数据是无法从乘积结果中进行恢复的。这也说明,无法通过对频谱进行解卷积获得实际频谱了。
本文对通过解卷积恢复数据频谱进行了探讨。实际上,是无法进行恢复的。