yxiao 在 2004-11-19 23:29:17 发表的内容 本不想再和这位朋友争论了,根本是对牛弹琴。但这位朋友实在是太能能装蒜了,有些朋友的思想比较容易产生混乱,所以有必要向大家澄清一下事实。我将努力用比较通俗的语言向大家解释,以便更多的朋友能够了解问题的所在,更多的朋友能够参与进来。
1、没有任何一种算法在任何时候都是绝对的优或绝对的劣。譬如,一组由1,-1,1,-1,1,-1……组成的PCM编码,可能代表一组方型波或者锯齿型波,那么假设现在有三种算法,算法A把这样的PCM编码解码为正弦波,算法B把这样的PCM编码解码为方型波,算法C把这样的PCM编码解码为锯齿型波,那么,我们怎么比较算法 A、B和C 的优劣呢?显然简单的“计算公式”是行不通的,因为在第一种情况下,算法B最优、算法A居中、算法C最劣;而在第二种情况下,算法C最优、算法A居中、算法B最劣。。 |
首先,我没有说我的算法是最好的,以至于没有更好的算法了。我只是说,我这种算法,它的误差数量级比较小。完全有可能,存在同样误差数量级的其它算法,有时候我厉害过它,有时候它厉害过我。但是,数量级绝对是评判一种算法优劣的最基本原则之一,这个原则无需我来辩护。
两种算法,假如根本不是同一个数量级的,那么肯定最后会挑数量级较小的那个。这位朋友举的ABC的例子,数量级之类的什么的信息都是未知的,根本就无法讨论——假如有那么一个时刻的编码,使得A的确出来一个正弦波——但是相位差了一个什么60度70度(角度制)之类的,那么它任何情况下都不可能处于“居中”的;还有,还有,两种解码接出来的波形有误差,我们不是说看谁的形状比较“像”真实的那个就行的,你可以计算它的误差数量级的,计算的结果肯定是符合直观的,不信您可以自己代个具体数据,定义一种描绘误差的标准(是定义为两者相减的差的绝对值的最大值呢?还是定义为差的平方的积分的值呢?)。所以说这位朋友要想举例子,请实实在在、具具体体写清楚。假如您嫌在电脑上打数据公式麻烦,那么麻烦您一下,举个反例(实际的数据,具体的算法),算好结果后,拍个数码照片传给我,我帮您打印出来,贴到坛子上来。
想要推翻一种算法的最简单之间的方法就是找一个实际的反例,一代进去算,真假立现。
2、既然我们已经知道我们不可能针对任意连续曲线提供一重“万能”的计算公式,那么我们是不是就不可能客观地评价这些算法的优劣呢。万幸的是,任何一种模拟量的曲线(例如音频曲线),都具有一定的数学特征,例如前面的1,-1序列如果是从音频曲线编码出来的,再假定我们已经知道多数音频曲线不太可能象方波或锯齿波那么“呲牙咧嘴”而是比较柔和一些,那么显然,这时我们“差不多”就可以知道三种算法中较好的一种应当是算法A。这里用到的数学方法是概率统计学,而上面提到的模拟量的曲线“数学特征”的取得,来自于我们声学工程师的经验。
|
“再假定我们已经知道多数音频曲线不太可能象方波或锯齿波那么‘呲牙咧嘴’而是比较柔和一些”——这句话似乎保守了一点吧?声波都是由不同频率的正余弦波线性相加,怎么会出现相加的结果是不光滑的呢?
我所说的曲线一直都是指音频曲线,假如造成任何误解的话,请见谅。这个是我的疏忽,以后我会注意把所有名词的全称每次都书写完整。
另外,概率或者是统计(请注意概率和统计是两个不同的方向)在这方面的运用,不如请这位朋友详细一些介绍一下如何?我愿听其详。虽然我现在的方向不是纯粹的概率或统计,但我的方向也需要我会一些概率和统计。我所听说过的概率或统计在帮助声频领域方面的研究,能够相关的主要是语音识别,对于音频的其它方向我真的还没听说过有人或者企业在做这方面,或许我孤陋寡闻了。所以这里请熟悉这方面的这位朋友不吝赐教。
3、从上面的讨论,朋友们已经看出了一种算法以及与之相关的评估体系的选用,与算法的用途直接相关。不存在一种万能的算法,可以一般地优于其他对手,事实上,适合语音、人声还原的算法就不一定适合器乐的解码还原,因为他们具有不同的“数学特征”。也许这也是不同品牌的CD解码器具有不同风格的原因之一吧。
|
语音的特点,不必用数学去分析这么麻烦了,只要一看波形图,它们能量集中在哪一些频段就立刻清楚了——物理特征。
现在有很多很多品牌和很多很多解码器;不过能够独立研制自己的解码算法和制造芯片的厂家,似乎我们可以几下子数出来的——其它很多厂家其实都是用一些成品芯片,然后自己设计电路的。那么,造成它们之间声音风格不同的原因,使究竟主要在于解码算法上呢?还是电路的设计上呢?
最后,我原理、算式、结果、图表、实际数据验证及其所代表的意义都实实在在给出来了,并且都是一步一步推出来的,哪一步出问题,您可以直接指出来。我绝对不是所谓的“装蒜”(您这个词,实在是有点过份了),哪个地方我有疏忽、有错,我一定会及时说明并且更正的。