因此,如果仅通过在样本边界上的两个值之间切换信号来生成方波,它将产生无限次谐波,这些谐波会混叠并产生低于您的基本音的声音,这是非常可听的。解决方案是带限合成,可以使用加法合成或带限步骤生成与采样之前对理想数学方波进行带限相同的波形:

http: //flic.kr/p/83JMjT



但是我才意识到,如果对数字正弦波进行大的放大然后将其数字化,它将产生相同的方波形状,没有吉布斯现象的涟漪。因此,它还会产生混淆的失真产物,对吗?那么在数字域中产生超出奈奎斯特极限的谐波的非线性失真会产生混叠失真产物吗? (编辑:我已经进行了一些测试,并确认这部分是正确的。)

是否存在诸如带限失真之类的东西,以模拟(在数字域中)失真的影响(在模拟域中)进行限带和采样之前?如果是这样,您该怎么做?如果我搜索“带限失真”,则会找到一些有关Chebyshev多项式的参考,但是我不知道如何使用它们,或者它们仅适用于正弦波或什么:


仪器不会尝试生成带限失真。那些对带限失真感兴趣的人应该研究使用切比雪夫多项式来产生这种影响。双曲正切失真





“ Chebyshev多项式”-整形函数具有重要的性质,即它们本质上是带限的,即它们不由于重叠等原因会引入杂散频谱谐波。波形整形器


评论

我不确定你在问什么。如果您执行的操作导致在您正在操作的奈奎斯特区域之外生成频率内容,则无论您如何生成上述内容,都将看到混叠。您要模拟哪种模拟失真?一种方法可能是先将信号上采样到足够高的采样率,然后使用更宽的奈奎斯特区域进行信号处理。完成后,您可以将采样率降低到原始速率。

@JasonR:是的,对于生成方波,您可以执行真正的带限方法(例如加法合成),也可以通过先进行上采样,以朴素的方式生成方波然后进行下采样来进行近似(但仍然会有一些混叠,仅在较低级别)。同样,您可以通过先进行上采样来近似估计失真,但是有没有一种方法可以生成零失真的失真,类似于方波生成的加法合成方法?

@JasonR:我想问的是任何非线性失真,但是像模拟吉他放大器的失真电路之类的东西就是一个很好的例子。如果我理解正确,那么在数字域中天真地进行操作会产生失真产物,而这些失真产物在模拟域中失真时是不存在的,其中一些可能在低于基频的频率下清晰可见,等等。

@endolith Chebyshev多项式可能就是您想要的。

@datageist:您能写一个关于如何使用Chebyshev多项式的答案吗?甚至很短。

#1 楼

应用非线性函数将始终引入谐波,并且将非线性函数与连续信号的采样版本混合会增加您在上面注意到的皱纹(高频谐波会混叠为低频。)

我可以考虑几种方法:


您可以使用足够高的过采样因子来捕获多余的谐波(达到某种任意精度,例如本底噪声),
您可以使用“较软”的削波功能(例如,参见此处),其谐波比硬削波器更容易消失。这更易于建模,但会在低频下引入其自身的失真。
在上面建议的方法的基础上,对采样信号进行插值(例如,使用Lagrange或Chebyshev插值器)以构建连续时间模型。然后,在模拟的连续时间域中应用硬限幅器和低通。对结果进行采样。

您可以组合(1)和(2)。第三种方法很复杂,但是可以最好地控制要接受的失真程度,并且可能会更好地缩放以适应非常高的保真度要求。

对于允许进行序列展开的非线性函数(例如,泰勒/麦克劳林(Taylor / Maclaurin),您可以对谐波衰减的速度有一个直观的认识。函数$ f(x)$的Maclaurin扩展为:

$$ f(x)= \ sum_ {n = 0} ^ \ infty \ left [\ frac {f ^ {(n )}(0)} {n!} x ^ n \ right] $$

在您的情况下,$ f(x)$是剪切函数。 (至少不能天真地使用硬剪程序不能做到这一点!)如果考虑替换$ x = g(t)$,其中$ g(t)$是您的输入信号,则$ x ^ n $变为$ g(t)^ n $,您可以将其视为输入信号与其自身$ n $乘积的卷积。因此,对于低通信号,无限求和的第$ n $项的带宽为信号的带宽$ n $倍。要完整显示图片,您需要弄清楚与每个项相关的幅度,并确定求和中有多少项是相关的。

(稍加思考,您也许也可以直接使用这种形式来近似滤波后的非线性。这将需要对剪切器进行良好的序列表示。)

评论


$ \ begingroup $
要澄清的是,#3不仅仅是通过插值进行过采样,而是在寻找适合采样点的连续Chebyshev多项式的参数,然后使用这些参数和多项式模型进行运算?
$ \ endgroup $
– Endolith
2012年6月12日18:49



$ \ begingroup $
我正在想象一个多项式插值器序列,每个插值器都在短样本范围内有效。因此,随着一批新样本的出现,您将构造一个仅在定义的时间间隔内有效的插值器。您对采样信号的连续时间近似值由这些多项式组成。 (我在考虑拉格朗日,但Chebyshev可能是同一回事。我不记得Chebyshev插值器是否与采样点完全匹配。如果不完全匹配,则在插值器之间切换时会出现间断。)
$ \ endgroup $
– Graeme
2012年6月12日19:36

#2 楼

消除无混叠非线性失真的几种方法(按难度递增):子带失真:使用低通滤波器提取信号的下端。如果选择截止频率$ \ frac {f_s} {2N} $,则可以应用任何非线性传递函数$ f $,并且其导数从$ f ^ {N + 1} $开始消失,以避免混叠。仅将低频带的失真输出添加回原始信号。为此,修改非线性传递函数,使其仅产生失真,而不产生输入信号。这种方法对于音频来说通常是完全足够的,因为在大多数情况下,较高频率的失真贡献是听不到的。
过采样:与方法1类似,但是确实需要额外的上采样和下采样步骤以确保如果您认为有必要,则原始信号频带中的所有信息都会导致失真的信号。它还可以使您失真更高,因为向下采样的滤波器将消除部分向后折叠的频谱。这意味着,如果您对因子$ N $进行过采样,则非线性传递函数的导数必须从$ 2N $阶开始消失。该过程很简单,例如上采样,应用非线性传递函数,下采样。<​​br />使用局部解析解:任何平滑的非线性传递函数都可以应用于幂级数描述的信号。如果让传递函数作用于幂级数,您将得到一个幂级数。如果将自己限制为一定阶数的截断幂级数,并且将传递函数限制为一定程度的平滑度,则可以将传递函数写为映射在截短级数的系数上。这意味着您可以考虑使用$ f:\ mathbb {R} ^ N \ to \ mathbb {R} ^ M $来代替$ f:\ mathbb {R} \ to \ mathbb {R} $ $ N $到长度为$ M> N $的输出序列展开。有了这种理解,您就可以使用幂级数形式使用输入信号的局部有限逼近,并将其映射到输出的幂级数逼近。然后,您可以对输出序列进行分析积分,以创建箱式抗混叠滤波器,以获取输出样本值。所有这些计算都可以象征性地进行,并且由于必须包含输入信号的局部特征,因此最终将获得一个非线性滤波器,该滤波器使用输入信号的过去值来生成当前输出。
基于约束的代数设计:在上一项中,您已经看到抗混叠非线性失真会导致非线性滤波器。当然,并非所有的非线性滤波器都没有混叠,但有些可能没有。因此,一个显而易见的问题是,对于一个标准,过滤器必须严格免于别名以及如何设计。事实证明,没有混叠的等效陈述是,非线性滤波器与子样本转换转换。因此,如果先翻译然后过滤,或者先过滤然后翻译,您必须确保它不会有所不同。这种情况对非线性滤波器产生了非常严格的设计约束,但取决于您如何实现信号转换。例如,理想的平移对于非线性滤波器将需要无限多个系数。因此,您必须将信号转换近似为有限阶,以获得有限的非线性滤波器。无别名会随您使用的近似值而缩放,但是您可以很好地控制它。在研究了这种方法的数学原理之后,您可以将任何(不仅仅是平滑的)非线性传递函数设计为非线性滤波器形式的几乎理想的数字模型。我可能无法在此处绘制细节,但是也许您可以从此描述中找到一些启发。


评论


$ \ begingroup $
您知道非迟滞单项式传递函数的无别名版本吗?换句话说,对于某些正整数k,$ y [t] = x [t] ^ k $的无别名版本。还是您知道有关此主题的任何已发表著作?
$ \ endgroup $
–迈克·巴塔格利亚(Mike Battaglia)
18年8月22日在5:38

$ \ begingroup $
或者,另一个(可能是相关的)问题-如果使用您提到的局部有限方法,您将获得从截断幂级数到截断幂级数的映射。然后,当您尝试低通截断的幂级数时,通常将其与sinc函数卷积在一起,结果是否有任何简单的表达呢?可以再次将结果表示为截短的幂级数吗?如果是,则它看起来像什么?
$ \ endgroup $
–迈克·巴塔格利亚(Mike Battaglia)
18年8月22日在15:29

$ \ begingroup $
@MikeBattaglia,也许您可​​以提出一个新问题,以便在那里我给出完整的答案。要回答第二个问题,您不使用SINC内核,而在最简单的情况下使用Boxcar内核。高阶内核确实可以工作,但是为了获得分析结果,您必须将自己局限于某些内核。
$ \ endgroup $
–爵士乐狂人
18年8月22日在15:50

$ \ begingroup $
谢谢-在这里为过滤器设计问题创建了一个新问题:dsp.stackexchange.com/q/51533/18276
$ \ endgroup $
–迈克·巴塔格利亚(Mike Battaglia)
18/08/27在3:31



#3 楼

可以称为带限失真的一种算法是将具有正弦输入的Chebyshev多项式用于波动合成。可以将[第一类] Chebyshev多项式定义为
$$
T_n(x)= \ mathrm {cos}(n \,\ mathrm {arccos}(x))。
$$

我在这里不做详细介绍,但是使用De Moivre定理进行了一个相对简单的推导,该定理显示了上述公式如何定义一组多项式(参见数字滤波器中的7.2节)。 (由汉明)。三角函数定义非常有用,因为它可以很容易地看到每个$ T_n(x)$如何将单位幅度余弦映射到其n次谐波,即

$$
$$

多项式本身可以使用以下递归关系轻松生成:

$$
T_0(x )= 1 \\ T_1(x)= x \\ T_n(x)= 2x \,T_ {n-1}(x)-T_ {n-2}(x)。
$$

以下是前几个:

$$
\ eqalign {
T_0(x)&= 1 \\
T_1(x)& = x \\
T_2(x)= 2x(x-1)&= 2x ^ 2-1-1 \\
T_3(x)= 2x(2x ^ 2-1-1)-x&= 4x ^ 3-3x \\
T_4(x)= 2x(4x ^ 3-3x)-(2x ^ 2-1-)&= 8x ^ 4-8x ^ 2 +1 \\
\ ldots
}
$$

获得属性$(1)$的直觉的另一种方法是考虑例如$ T_2 $在复指数形式上的操作。 $ \ mathrm {cos}(x)$

$$
\ eqalign {2 \,\ mathrm {cos} ^ 2(x)-1&= 2 \ left(\ frac {e ^ {ix} + e ^ {-ix}} {2} \ right)^ 2-1-1 \\&= \ frac {2} {4}(e ^ {i2x} + 2e ^ {ix} e ^ {-ix} + e ^ {-i2x})-1 \\&= \ left(\ frac {e ^ {i2x} + e ^ {-i2x}} {2} \ right)+ \ frac {2} { 2}-1 \\&= \ mathrm {cos}(2x)。
}
$$

通过计算切比雪夫级数

$ $
f(x)= \ sum _ {n = 0} ^ {\ infty} {a_n \,T_n(x)}
$$

将其截短为适当的$ n $值,会得到一个波形整形器(即$ f(x)$),将其应用于单位幅度余弦时,将生成一组任意的[整数]带限谐波。

评论


$ \ begingroup $
谢谢!对于单个正弦波以外的波形,会发生什么?带宽互调与否?
$ \ endgroup $
– Endolith
13年4月21日在17:10

$ \ begingroup $
是的,您会得到互调,但是它是带宽受限的。对于大多数全带宽音频,这仅意味着您知道需要使用的过采样因子。直到$ x ^ n $的所有多项式波整形器都是如此。
$ \ endgroup $
–datageist♦
13年4月21日在21:14



#4 楼

@ robert-bristow-johnson在comp.dsp上非常清楚地解释了这一点:


您必须在一定程度上进行过采样。如果您将
(无内存,我假设)非线性表示为有限阶多项式(该
近似于您尝试实现的曲线),那么无论
是多项式的阶为需要相同的过采样因子
,并且不会出现别名。然后使用低通滤波器(以过采样的速率
)来消除高于原始奈奎斯特的所有频率分量,然后进行下采样,就不会出现混叠。


换句话说,如果您的非线性是多项式,则由失真产生的最高频率将是信号中的最高频率乘以多项式的阶数N。 (多项式非线性将信号本身乘以N倍,因此它的频谱会被卷积并以相同的比率扩展。)

因此,您知道最大频率(无论是奈奎斯特还是更低的频率)限制),并且知道多项式的阶数,因此您可以对样本进行足够的过采样以防止混叠,进行失真处理,然后进行低通滤波器和下采样。<​​br />
实际上,您可以只要让某些混叠发生,就可以降低过采样率,只要它包含在下采样之前将要删除的频段中即可:


另一个小技巧是,您不必担心混叠
向下折叠到您将要进行LPF的区域。因此5阶多项式
只需具有3的过采样率。那些前2个谐波
可能会混叠,但不会回到基带。下采样时,
可以滤除那些混叠的谐波。所以我认为强而有力的规则是

过采样率=(多项式阶数+ 1)/ 2


评论


$ \ begingroup $
我似乎已经高估了那篇文章中的过采样要求。只要混叠谐波不会使其回落到原始基带,就可以允许某些谐波折叠。这意味着,如果表示无记忆非线性的多项式的阶次为$ N $,则您需要进行过采样的所有因素就是$ \ frac {N + 1} {2} $。例如如果您以4的倍数进行过采样(例如向上采样至192 kHz),则可以应用7阶多项式,滤除(在$ f_s $ = 192 kHz时)所有高于20 kHz的废话,然后向下采样回48 kHz 。
$ \ endgroup $
–罗伯特·布里斯托-约翰逊
16-2-10在6:37



$ \ begingroup $
@robert我在您评论时看到并添加了该部分。如果您将其重写为自己的答案,我将其删除并接受您的答案
$ \ endgroup $
– Endolith
16-2-10在6:39



$ \ begingroup $
亲爱的。打扮一个好的答案需要工作。
$ \ endgroup $
–罗伯特·布里斯托-约翰逊
16年2月10日在6:43

$ \ begingroup $
@ robertbristow-johnson好吧,如果您需要虚构的Internet积分,这些都是您的
$ \ endgroup $
– Endolith
16年2月10日在13:42