发烧论坛

注册

 

发新话题 回复该主题

计算芯片的发展将让普通CD战胜LP [复制链接]

查看: 51042|回复: 320
31#

abob 在 2004-11-22 14:31:15 发表的内容
楼主既然涉足这个领域,想来必是学习过的。

所以这个不需要什么更多的学习吧?
基本上只是个“逻辑”上的问题,
“初始波形”是什么?你如果先“假设!”
一种中并不存在的(含超22K成分的)信号,
那还真就是瞎拆腾,我看你多半就是在“解决”
这样一个“伪”问题。 : )


这位朋友过奖了。可能我和你所说的不是同一个焦点:我从来就不指望我的算法能够对付44.1/16格式所不能记录的那些高频,我只图我的算法能够更好地应付CD格式所能记录的频率,我就心满意足了——但现在因为我还很缺乏其他方面的相关知识,我还不能对这个算法作出评价。
TOP
32#

多谢diala朋友的鼓励!

也谢谢开心果兄的意见!另外是否您给的Z那个函数漏了一个归一化系数呢?因为您看我按照您给的函数画出来的图像(红色线是原函数,蓝色线是我的插值多项式,红色的点按预计应该是在原函数上的,但现在它们有一些不在)。噢,对了,似乎Z函数的相位要往右移一个1/44100?(不然的话原来的数据点全部都不在您给的函数上)我在画这幅图的时候已经加入这个相位了:

[upload=jpg]Upload/2004112212555236196.jpg[/upload]
TOP
33#

谢谢开心果兄!我画的是Z那条曲线,其余两条曲线要画的话要改动程序里的数据,我就偷偷懒不画了 :)

振幅超出1 的那些坏点都是属于我前面分析的:1,要么它们是开头和末尾的点;2,要么它们是衔接点,您所看到的那个第19个点就是我设定的一个衔接点,还有第10个点,那个也是我设定的衔接点。对于衔接点,我在改进的算法里面会对衔接点再作一次三次样条逼近,这样可以把问题解决(不过具体三次样条的误差,我还要动手去算算),恩,有待改进。再次很多谢开心果朋友的关心!
TOP
34#

abob 在 2004-11-22 13:59:39 发表的内容
楼主还是回到基本面吧,基本的东西都是错的,还折腾个啥劲!
不要左顾而言它噢,:)

将你的新算法弄出来的东东再变到频域看看,那么:

1,有超出22K成分,那你这是个“超级算法”,可以“无中生有”
2,没有超出22K成分,那你的算法不会比滤波更好。

That's all !


恩,多谢指教,下阶段我会努力补充相关的知识的。现在我仅仅知道,我要尽量去用多项式曲线拟合输入端输进来的波形,前面一幅图画就是我的算法的实际例子,效果我看来觉得不错;当然也有可能用现在通用的方法可以解出更精确的信号出来,因为我还没掌握这方面的知识,我真的不敢肯定,也不敢否定。我懂得实在太少了,学无止境。
TOP
35#

爱乐苍狼 在 2004-11-22 15:50:02 发表的内容
曲线的恢复的一点疑问:取样是每秒44100次吧,那么时间间隔应是1/44099,31个点总时间长度是30/44099即6.8028753*10e-4,但图上标的超过7*10e-4了,不知是否是我理解错了。另外我还是支持楼主的,我一同学(广州某大学教授,水平比我高多了)也是搞应用数学的,他的算法椐说一个买20万(我另一同学说的,广州难怪为最发烧地,收入比我们内地高许多可能是一个重要原因)。


苍狼兄:我们只需要看那个插值多项式在给定数据的范围内的表现。对于处于插值范围之外的区域,误差无法保证。所以说我们要一段一段地来插值,每段对应一个不同的多项式。我们不能只用唯一的一个去打遍天下。
TOP
36#

楼上的朋友先不用着急,等今天上完课,把其它同学的作业改完之后,我把插值计算的公式打出来传给你,你只要把那两个正弦函数往里面一代,就能够算出来的了。
TOP
37#

恩,首先这个算法没有说完全保证原来是什么信号,有什么频率,这个插值多项式就一定完完整整地把它还原出来——否则的话,也就不用发展SACD或者DVDA了。

但是,Hermite多项式插值的误差估计公式(上面的文本里我没有写出来),它的分母是(2n+2)的阶乘,分子是一个有界的常数,再乘上所有那些数据点之间区间的长度的乘积,对于CD的格式,您大概算一算就可以知道它的误差的数量级就是我前面所说的那个级别。

对,没错,不管什么算法,都是不可能从数据点里面完全100%还原出真实的波形——但是,不用说我的算法了,就算性能最差的算法,对于21kHz以下的频率,却肯定都是有保证的,肯定能够全部反映出来的,区别只是误差多少而已。

这里顺便提一下,误差的大小和各种频率的重现的能力的好坏是没有必然的联系,请看下图:

[upload=jpg]Upload/2004111910294247301.jpg[/upload]

黑色的曲线表示真实的波形,蓝色曲线:虽然它漏掉了中间那一个频率较高的信号,但它每一段的误差都很小;而红色的曲线表示虽然它什么频率的波形都没有漏掉、都反映出来了,但是它的误差比较大。因此人耳听上去,肯定是蓝色的曲线那段信号更加真实一些。

所以说,我设想的这个算法,并不是专门去增加它能否反映各种频率的能力,我是改善的是它的误差度。相反,假如误差度小的话,那么它漏掉的那些可能存在的高频成分也只是轻微的——否则的话,假如漏掉了很重要的高频信号,那么它的误差度也会随着增大
。当然我给出的误差估计是数量级的范围估计,实际中相差个一百倍上千倍也是有可能的,不过对于我给出的10的负几十次方的基础,就算它乘上个一亿倍,误差也仍然很小很小的。据我所了解,CD播放时候的总体误差,很大一部分是由于电路运行的时候产生的,和物理相关。所以这也说明了为什么采用同一种类的解码芯片的两部CD机,电路设计精良、用料的好的那一部的声音听上去会好一些。

事实上,也没有算法能够在保证真实度的基础上,同时也拓宽CD的频宽的。另外我这个算法也是多项式算法呀。
最后编辑felixcat
TOP
38#

promise朋友,不好意思我把命令行写错了,请试用这组数据:

xj = [ .25 0 -1 1.5 1 1.5 4 4 6 5 3.5 2.5 3.5 5 5.5 3.5 3.5 1.25 1 2 .5 -1 -.25 .25]'

y = [0  .25 0 -1 1.5 1 1.5 4 4 6 5 3.5 2.5 3.5 5 5.5 3.5 3.5 1.25 1 2 .5 -1 -.25 .25 0]'

然后draw(xj,y)即可。它应该画出这样一个图案:

[upload=jpg]Upload/200411221702068235.jpg[/upload]
TOP
39#

呵呵,可能您觉得很奇怪,既然在44.1/16的数据里面不可能记录得了的一些信息,怎么可能用插值多项式就能逼近出来呢?这个是由插值理论的性质和定理决定了。。。至于我们问:凭什么会存在这些定理和性质的呢?这个可能只还有天知道了。假如有造物主的话,我们倒可以问问他:为啥你当初造宇宙的时候要创造这些看上去这么不明显的数理逻辑规律呢?
TOP
40#

Dr kuang 在 2004-11-19 12:16:42 发表的内容
应该说现在对人脑的研究还不够深入,而现在的技术更多的只是放在了对声音的研究上了。


说得很对!人脑的确太复杂了,前面的路很长很长。不过现在这样也好——假如有一天把人脑的所有原理都搞清楚了,我可能会害怕的——因为我脑海里有什么秘密,都有可能被别人“推算”出来,我在想什么,别人也可能会知道。。。
TOP
发新话题 回复该主题