发烧论坛

注册

 

发新话题 回复该主题

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

查看: 50962|回复: 320
1#

felixcat 在 2004-11-22 9:49:38 发表的内容
恩,多谢开心果兄的指正!插值多项式的一个最大的缺点(呵呵,也是特点)就是头尾几个点肯定有较大误差。我会想办法继续完善它的(比如说只取最中间的那些点,尽管这样会减低运算效率)。

我的PC(迅驰1.6G)运行计算最后一组数据的时间,假如要画出图象的话,要0.16秒;假如仅仅是计算,不画图的话,仅用0.06秒。

0.06秒,太长了,无法跟上CD的数据流速度。按您PC的速度,要90块以上的芯片来协调工作才行,目前难以实现。

另外您恢复的曲线,与原曲线相比,除前面提到的那几个点外,其它部分的精度还不太理想。
就30个数据,除去头尾,中间就有两个很大的误差点,坏点比例太高了,是个大问题。

不过总的思路正确,继续怒力,早日实现您的梦想。
分享 转发
TOP
2#

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

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

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

That's all !





felixcat 在 2004-11-22 9:49:38 发表的内容
恩,多谢开心果兄的指正!插值多项式的一个最大的缺点(呵呵,也是特点)就是头尾几个点肯定有较大误差。我会想办法继续完善它的(比如说只取最中间的那些点,尽管这样会减低运算效率)。

我的PC(迅驰1.6G)运行计算最后一组数据的时间,假如要画出图象的话,要0.16秒;假如仅仅是计算,不画图的话,仅用0.06秒。


与滤波是不同的,如果波峰在两个取样点之间,那么滤波后波峰是不能还原的。但F兄的算法可以还原(尽管精度还不够),这就是区别。
TOP
3#

看到新曲线了。该系数是:Y曲线0.51,X 和Z曲线都是0.5
TOP
4#

我说的坏点(说坏区可能更好点)是指该点波形与原函数波相差太大。如第二个坏区(第19个和第20个取样点之间),归一化后最大应该是1吧,但它超过了。显然是不对的。
TOP
5#

felixcat 在 2004-11-20 3:01:50 发表的内容
可能有朋友就觉得奇怪了:“你不是说插值多项式对于任何音频曲线都有极小的误差的吗?”——这个问题的答案是:任何音频曲线不等价于任何曲线——音频曲线是由一系列不同频率的正弦、余弦波线性叠加而成,由误差公式可以证明,把正余弦函数代进去算,它的误差数量级前面的系数(也就是f(x)的n+1次导数)是很小的有界值,它是收敛的;但是假如随便代进一条不是音频曲线的曲线,那么那项系数在某些点就可能会变得十分大,可能是发散的,使得最后的误差值变得不可以忽略(就像在这个例子里面的头尾两个点那样),这种现象在数值分析里称为Runge现象。
所以说,为什么我这么强调插值多项式对于音频曲线的奇妙作用,而不把它推广到其它范围,就是是因为音频曲线的特殊性质。

zjize 在 2004-11-22 12:10:41 发表的内容
F兄,你有一个小小的错误,音频曲线分两种,一种是噪声,曲线可以不是正弦波,一种是乐声,曲线是正弦波。但是,由于音乐的发展,许多“噪声”也被加到了音乐当中。


Z兄的这种说法也不完全正确,实际上乐声的曲线也不是正弦波,只是更象正弦波而已;不管多么复杂厂的噪声,都可以用一定数量的正弦波来表达。
TOP
6#

是有个系数,但该系数不会影响的,就象把音量开大和开小不会使波形改变一样。
TOP
7#

很好的贴。所以我想请楼主解决一个问题:某段曲线用44.1千赫兹的取样频率取了20个点的值,归一化后的数值如下。请楼主用你的办法把取了样的那部分曲线较完整的恢复出来。如果不行,请说个理由。

某段曲线的20个取样点的归一化后的值。

Y1= 0.99052893306607875  
Y2= 0.096982402252215
Y3=-0.76671929073969825
Y4=-0.12753077620947075
Y5=0.37891833033298425
Y6=0.0512970632911395
Y7=0.070955568000393
Y8=0.1289391300598875
Y9=-0.46879862132289
Y10=-0.3653106934581435
Y11=0.721148870374401
Y12=0.578993041036494
Y13=-0.78083391236193675
Y14=-0.68602728567114225
Y15=0.6577366102265445
Y16=0.626435509897464
Y17=-0.41178134978839425
Y18=-0.38694829379113125
Y19=0.130909909922556
Y20=0.0095532813991275
TOP
8#

多谢F兄恢复了曲线。从三条曲线恢复的情况看,这种算法还是可行的,也有别于升频。但还不够完善,如每条曲线的头三个取样点和最后三个取样点恢复得不好,可以说是面目全非了。X 、Z曲线的中间部分也有失真的地方,就是我画了方框的地方。

还有个问题,您处理每条曲线大约用多少时间(指机器运算的时间)?

三条曲线的原函数表达式如下图:[upload=jpg]Upload/20041122923746041.jpg[/upload]
[upload=jpg]Upload/2004112293944393.jpg[/upload][upload=jpg]Upload/20041122934155808.jpg[/upload]
TOP
9#

楼主辛苦了,麻烦您把下面另两条曲线恢复一下(取样频率不变)。到时我把三条曲线的情况说一说。
X0= 0.1477601
X1 = 0.73360197
X2 = -0.216881915
X3 = 0.16000234
X4 = -0.510931185
X5 = -0.26793822
X6 = 0.993557905
X7 = -0.123437865
X8 = -0.41243081
X9 = -0.03032599
X10= -0.365017745
X11= 0.763833435
X12= 0.29430282
X13= -0.858049015
X14= 0.0746672
X15= 0.009572675
X16= 0.271527465
X17= 0.577738085
X18= -0.865449105
X19= -0.262377135
X20= 0.552593
X21= -0.01110786
X22= 0.39518144
X23= -0.458949595
X24= -0.676030305
X25= 0.795651966
X26 = 0.178484445
X27= -0.137689155
X28= -0.054651565
X29= -0.721665
X30= 0.555471125

Z0= 0
Z1 = 0.05909474
Z2 = -0.033534165
Z3 = 0.017817735
Z4 = -0.145784895
Z5 = -0.091876365
Z6 = 0.39328339
Z7 = -0.054868325
Z8 = -0.20178149
Z9 = -0.016084675
Z10= -0.20741086
Z11= 0.46059378
Z12= 0.1868772
Z13= -0.570076085
Z14= 0.051626535
Z15= 0.006856705
Z16= 0.200695105
Z17= 0.43916622
Z18= -0.674590515
Z19= -0.209175835
Z20= 0.44957152
Z21= -0.00920381
Z22= 0.3328982
Z23= -0.39244284
Z24= -0.58595763
Z25=0.6981808
Z26 = 0.15838055
Z27= -0.123429635
Z28= -0.049447605
Z29=-0.65848306
Z30= 0.510756965
TOP
发新话题 回复该主题