开心果 在 2004-11-19 21:47:09 发表的内容 很好的贴。所以我想请楼主解决一个问题:某段曲线用44.1千赫兹的取样频率取了20个点的值,归一化后的数值如下。请楼主用你的办法把取了样的那部分曲线较完整的恢复出来。如果不行,请说个理由。
|
开心果朋友,您要的结果已经算出来了,下面就是插值多项式在那20个数值点区间的图像,红色的点表示您原来给的数据点,由于系里的服务器也没有安装Hermite插值的插件,所以我用的是单项式基插值多项式,它们的效果差不多的:
[upload=jpg]Upload/200411202382647906.jpg[/upload]
从计算的结果来看,我估计您原来的原始信号曲线可能不属于声波的曲线。为什么呢?
请看看最后一个点和最前头一个点,插值多项式的曲线产生了极大的振幅,也就是说突然产生了极大的误差。
可能有朋友就觉得奇怪了:“你不是说插值多项式对于任何音频曲线都有极小的误差的吗?”——这个问题的答案是:任何音频曲线不等价于任何曲线——音频曲线是由一系列不同频率的正弦、余弦波线性叠加而成,由误差公式可以证明,把正余弦函数代进去算,它的误差数量级前面的系数(也就是f(x)的n+1次导数)是很小的有界值,它是收敛的;但是假如随便代进一条不是音频曲线的曲线,那么那项系数在某些点就可能会变得十分大,可能是发散的,使得最后的误差值变得不可以忽略(就像在这个例子里面的头尾两个点那样),这种现象在数值分析里称为Runge现象。
所以说,为什么我这么强调插值多项式对于音频曲线的奇妙作用,而不把它推广到其它范围,就是是因为音频曲线的特殊性质。
当然,由于我不知道开心果朋友的那条原始曲线,我也不敢绝对地说原始曲线不是音频曲线,也可能这个误差是由于插值多项式的次数还不够高(19次,对于单项式基插值来说是不高的)。