POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 15204|回复: 18
打印 上一主题 下一主题

讨论观点:整数倍提高采样率可以在不失真的前提下改善听感

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-1 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 归德居士 于 2010-4-1 21:56 编辑 * [" G+ H+ ~+ O; S- b

/ G4 z  o9 a! P, I+ T4 n- Q. H8 l* I和大家讨论个观点啊,我分析认为整数倍重采样提高采样率可以在不失真的前提下改善听感。
: D; q! D9 L6 ?0 D# F% N' F) S/ u! R2 _; H3 f: c
因为我想,整数倍提高重采样不需要破坏原来的采样点,仅仅是在原来的采样点每两个之间增加几个采样点来过渡。
* E! X3 J5 W9 C4 O8 \1 V' [$ _( P  j( E' ^. [
比如第一个采样点数值为a,第二个数值为b,如果把采样率提高整数倍,就只需要在两个采样点之间增加一个数值在前后两个采样点之间的采样点作为过渡,比如说采用直线算法升频两倍,就只需要在两个采样点之间的中间点增加一个数值为 二分之一(a+b)的采样点,升频三倍,只需在两个采样点之间的三分之一处和三分之二处各增加一个采样点,共增加两个采样点,数值分别为 三分之二a+三分之一b 和 三分之一a+三分之二b。1 @2 M6 a: a  v  H7 K; Q6 N
+ ?: A% _& [! M7 Y& F' }9 x# r1 J
这样,原来的采样点都没有失真,新增加的过渡采样点使声音更细腻,原来是从一个采样点猛跳到另一个,现在是在中间加几个,逐步过渡过去。
4 g8 X+ E% W# j2 ^7 Z& S- M
% }  ]; |! @1 ~* E鄙人才学疏浅,经验匮乏,还请大家多多指教和批评。
2#
发表于 2010-4-2 00:31 | 只看该作者
整数倍转换是可以改善听感的,但非整数倍转换不行,如图
( X6 P" u% ~' ~! N0 ~; F" n

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

3#
发表于 2010-4-2 00:52 | 只看该作者
讨论下假如40Hz采样率提高到60Hz会怎么样还比较有意思。
回复 支持 反对

使用道具 举报

4#
发表于 2010-4-2 01:26 | 只看该作者
你的结论正确,但是原理不对
回复 支持 反对

使用道具 举报

5#
发表于 2010-4-2 13:21 | 只看该作者
N久前,,就流行88Khz采样率去播放的啦,,,
. o4 y4 R# g; Y! {# \& ]+ D* o也确实感觉好一些,,,
2 _% z! |6 o4 N3 }不过原理,,不懂,,,
回复 支持 反对

使用道具 举报

6#
发表于 2010-4-2 13:29 | 只看该作者
本帖最后由 caileili 于 2010-4-2 13:31 编辑 / a" Y4 O' `) v" S* }4 @; y
: }% l, K1 p4 T  Q6 H4 y
单纯的整数倍提高采样率,然后中间采用简单的线性插值算法填充的话,只能说可以减少失真,但对提升音质意义不大!
  ^2 ?; _5 A7 F. `3 N如果能配合扰动算法,按音频信号曲线或趋向计算插值,这样可使波形接近采样前的原始声音,从而一定程度上提高音质!  `" b& F) m( P' m% X0 U! b3 x
但这个毕竟类似于把低像素的照片放大,最先进的放大算法画质也提升不了多少的,所以没什么人钻这个牛角尖!
回复 支持 反对

使用道具 举报

7#
发表于 2010-4-2 19:59 | 只看该作者
简单说一下,这个做法意义很大。
, G. m! J0 _9 S$ K% X因为可以大幅度提高SNR
, s% J6 E1 t, I) A" o' u大到了示波器上都能看出区别来
回复 支持 反对

使用道具 举报

8#
发表于 2010-4-2 21:26 | 只看该作者
在PC上软件实现这个转换没有任何意义. f9 Q, A, s, V; P6 D6 q' N* S
* X+ m) X& b& p3 ^9 j
对于固定的DAC,采样率越低非线性失真越小(就是频率范围满足的前提下采样率越低越好)
回复 支持 反对

使用道具 举报

9#
发表于 2010-4-2 23:11 | 只看该作者
在PC上软件实现这个转换没有任何意义
; X; W/ ~+ c( q6 q; P: _: W' j) w4 ^, X9 p& ?4 C
对于固定的DAC,采样率越低非线性失真越小(就是频率范围满足的前提 ...% \0 @3 a: n5 `
Timme 发表于 2010-4-2 21:26

3 t8 K2 Q# I, E( U! z6 E* H抱歉,并不是越低越好9 {, e# ?2 a$ `" o/ Q9 O5 z
就现在的声卡 2倍频是个很好的选择
回复 支持 反对

使用道具 举报

10#
发表于 2010-4-3 00:33 | 只看该作者
支持6楼         。。。
回复 支持 反对

使用道具 举报

11#
发表于 2010-4-3 10:29 | 只看该作者
如果能配合扰动算法,按音频信号曲线或趋向计算插值,这样可使波形接近采样前的原始声音,从而一定程度上提高音质!+ i  {' P, v$ Y6 p8 t ...+ p1 ]" r8 o9 K7 L& ?, o. |/ i9 i, g
caileili 发表于 2010-4-2 13:29
8 @  Z% ~% d6 T) l$ X

- \# Z' o+ `% [* F2 rFOOBAR有没有这样功能的插件?
回复 支持 反对

使用道具 举报

12#
发表于 2010-4-3 11:03 | 只看该作者
本帖最后由 Timme 于 2010-4-3 11:11 编辑 5 x+ i. G( _" l3 i! F  d4 C; Q  G

' O" k* j8 w, j) j无论整数倍还是非整数倍,算法都是一样的。2楼的图中波形没有经过低通,这种图在N年前就被我批过了
2 C* P1 V" @0 O& ]
9 x+ E/ G9 \, |( |引用我自己设计的一个SRC算法(只是自己独立想出来的而已,不敢说第一个发明啊。后来我好像看到IEEE 70年代就有人发表这种算法了)
( ~) l0 ~7 S. d, C) V7 \8 Z) u! P/ X1 d( ]! y& V0 D; Q# G2 F
(1)采样频率2n->4n的算法,整数倍
! C: X% {% g' j1 M0 F( Z. z
  T5 \6 B; \* x6 o6 A. q原始数据:a,b,c,d...
( O2 P+ N0 c$ ?- r9 A$ Q; Z( V先机械填充为a,a,b,b,c,c,d,d...(同样时间采样点数目翻倍,多出来的采样点数值复制原采样点)$ o( b' h. e. `- W7 u* Q4 f) t
通过一个低通,变成a0,a1,b0,b1,c0,c1,d0,d1...: m4 i+ w" [9 d2 o! S% G
SRC计算完成。同样时间内,4个采样点变成了8个采样点。; u( j2 m+ }# [3 a7 a2 U- n
(当低通性能足够好并且相差接近零时,有 a约等于a0,b约等于b0...)
) j3 |  x: h4 n% U1 e; d2 f6 N$ l, q' x' b6 c7 @
(2)采样频率2n->3n的算法,非整数倍
- H8 ^& P7 v( ]
' L3 {, ^( w% |原始数据:a,b,c,d..." |5 t7 Y0 d( a. J
先机械填充为2,3的最小公倍数的采样率:6,即a,a,a,b,b,b,c,c,c,d,d,d...2 ^- P3 x1 g2 L! w) O; w' R
通过一个低通,变成a0,a1,a2,b0,b1,b2,c0,c1,c2,d0,d1,d2...
( O) |# S9 T3 J7 ~) a2 N/ l我们跳一个取数:a0,a2,b1,c0,c2,d1...9 V; D7 T7 S5 {
SRC完成。同样时间内,4个采样点变成了6个采样点。
% G2 t3 u5 D" ]- `2 e& I) Y& J* D$ i9 x7 r9 t" P& h
**************************************************4 d% R% c, b; {, E" c# w6 K

/ I( L9 y+ }5 m: ]# S9 a你看到整数倍SRC和非整数倍有什么不同吗?没有的。其实非整数倍升频 = 整数倍升频 + 整数倍降频 而已,而且降频时还根本不需要计算,直接跳着取数就可以了。
回复 支持 反对

使用道具 举报

13#
发表于 2010-4-3 11:21 | 只看该作者
另外bull,所谓硬件升频提高SNR是DAC内部电路而已,但如果你把DAC工作模式从48k改为96k,那输出频段24k-48k这范围的噪音DAC内部就不过滤了,SNR反而低了。也可以理解为外部选择的采样频率越高,DAC内部升频的倍数就越低。如果说96k比48k好,我唯一能想到的就是低通在拐点附近性能劣化而已,但这个点离听觉极限已经有几khz的余量我觉得足够了。
; U% o# F- |, d) q# k" Z% Q  _8 J; {% x" Y: l7 r4 Q
我觉得这是个很简单的问题,不知我有没有理解错
回复 支持 反对

使用道具 举报

14#
发表于 2010-4-3 14:55 | 只看该作者
另外bull,所谓硬件升频提高SNR是DAC内部电路而已,但如果你把DAC工作模式从48k改为96k,那输出频段24k-48k ...
9 f" c0 F3 u( a8 B# h4 r  A. ITimme 发表于 2010-4-3 11:21

& P: Z8 U. T! T+ R2 {你对现在的DAC芯片怎么工作的并不清楚。
回复 支持 反对

使用道具 举报

15#
发表于 2010-4-3 16:10 | 只看该作者
比教科书上写的Multibit + OverSampling + Noise Shaping还多了啥?
回复 支持 反对

使用道具 举报

16#
发表于 2010-4-3 22:36 | 只看该作者
本帖最后由 caileili 于 2010-4-4 02:05 编辑
0 A% i3 u9 }7 b# g% r+ L4 m* G7 ?
(2)采样频率2n->3n的算法,非整数倍…………5 ]2 l5 ~2 ~: F$ i/ W
整数倍SRC和非整数倍有什么不同吗?没有的。其实非整数倍升频 = 整数倍升频 + 整数倍降频 而已,而且降频时还根本不需要计算,直接跳着取数就可以了。! @7 t+ d! c! T/ r- {/ [/ |
' E4 l9 F7 n$ A
引用 ..." [# }! {6 x1 B& _$ X$ V
Timme 发表于 2010-4-3 11:03

, z; T$ b. i) w/ s4 e& G# ~9 s
+ l! a4 @0 e) [% `7 \% v) ^) ^
5 J3 x8 O" c! T  ^
' c) @2 H1 J* w6 a$ h" F4 F- j5 l$ v* F那就按这位兄台的高见对图例中非整数倍取样重新进行演算:(没时间画图,大家看步骤理解吧!)0 E1 T  d8 g+ C; x  \
原始:0,1,0,-1,0,  0,1,0 ……
# H( e1 ]  V" J: ]- ?* K' f整数倍升频:[0,0,0],[1,1,1],[0,0,0],[-1-1,-1],[0,0,0],  [0,0,0],[1,1,1],[0,0,0] ……
4 `, ~" L* O1 v& n' ?, z, D% @低通(简单):[0,0,0.33],[0.66,1,0.66],[0.33,0,-0.33],[-0.66,-1,-0.66],[-0.33,0,0],  [0,0,0.33],[0.66,1,0.66],[0.33,0,0] ……
5 `8 k5 K! \4 H1 K1 K整数倍降频:[0,0.33],[1],[0.33,-0.33],[-1],[-0.33,0],  [0],[0.66,0.66],[0] ……
* O# J* `$ E6 {( P9 z5 {6 u/ G$ N6 ^输出:0,0.33,1,0.33,-0.33,-1,-0.33,0,  0,0.66,0.66,0 ……
1 L" i+ f2 x- J4 j. c9 t* j: E5 K+ \. G( {
原始的第二三四取样点之间是条直线波形[1,0,-1],经非整数倍取样后输出波形变成了[1,0.33,-0.33,-1]仍是条直线,此时没有失真;
! @* |; t# e) E9 \3 a) ~; v原始的第四五取样点之间是条直线波形[-1,0],经非整数倍取样后输出波形变成了[-1,-0.33,0]是条折线,即对原始波形间存在变形/失真
8 S4 s" Q' E2 v  p原始的第六七八取样点之间是条上三角波形[0,1,0],经非整数倍取样后输出波形变成了[0,0.66,0.66,0]是个被削波的梯形,即对原始波形间存在较大变形/失真
- I& O2 f2 m" u看来这种非整数倍SRC算法的失真确实是存在的(演示图片描述是恰当的),而且可以看到是在整数倍降频(直接跳着取数)过程中产生了失真,在输出时的时间位移上也会产生失真,这些不是改进低通平滑算法能解决的,所以不能说是我演示时低通算法的问题哦!# z  M) I. A$ H1 \9 l$ C
! u0 m# |" _2 H9 t1 C% `
换个角度来说吧,如果这种简单的非整数倍SRC算法不存在失真,那AC97的SRC问题也就不会出现了,很多声卡也不会搞双晶振了,Foobar里面也不会开发这么多重采样插件了……!" r* X- J9 O" [6 K& |
Foobar里的SSRC X重采样插件的保真度挺高,所需CPU运算也挺高的,所以它的算法原理应该相当复杂的,不然也不会达到这么高的转换音质了!
回复 支持 反对

使用道具 举报

17#
发表于 2010-4-3 23:20 | 只看该作者
无语,低通这一步直接无视了么。。。
回复 支持 反对

使用道具 举报

18#
发表于 2010-4-3 23:36 | 只看该作者
无语,低通这一步直接无视了么。。。' m" n9 r0 d" f6 E0 m
Timme 发表于 2010-4-3 23:20
1 M  N; I& Z% ^0 e
哈哈哈,一句话直接击中要害
回复 支持 反对

使用道具 举报

19#
发表于 2010-4-4 01:10 | 只看该作者
本帖最后由 Timme 于 2010-4-4 01:23 编辑 . t' v0 }+ |- T3 r% H
4 j. D2 t+ K. W0 K6 M( o# a
在此给出一个例子,是用我楼上的算法把6khz采样率升为8khz采样率。
6 {( n! H3 I8 u
$ ?- \! g. a( i& v对6khz的原始数据,我们取12个数,循环:“0 1w 2w 3w 2w 1w 1w 0 -2w -3w -3w -2w”
& k" x+ B% a  t( `; _" w  \4 w! m0 M& I1 [! u! o+ B
【设计原始数据是个技术活,你不能产生边界频率分量(在此是3khz),此外不要有直流分量。】  Y# p* e- {+ I
# D2 W8 w* y4 {
简单扩展为24khz:“0 0 0 0 1w 1w 1w 1w 2w 2w 2w 2w 3w 3w 3w 3w 2w 2w 2w 2w 1w 1w 1w 1w 1w 1w 1w 1w 0 0 0 0 -2w -2w -2w -2w -3w -3w -3w -3w -3w -3w -3w -3w -2w -2w -2w -2w”( }' ]3 Z( i4 y  N$ i( G

. {5 C5 ?; L5 ?# u' |: j0 s+ g低通后,取一个数跳两个数,得“1402 9151 15496 24899 28865 21793 12681 9932 9094 1594 -12561 -24898 -30031 -30037 -24944 -12433”
; _9 V& _1 U" u+ h" B4 |
- b5 ]- `, z/ C8 G5 n3 d0 \8 e至此SRC计算完成。
. {: K; L5 h/ F! [  x+ b1 [6 A& P( u0 `6 ~
附SRC前后波形,自己看看有没有改变吧。另外附上每个过程产生的WAV文件供下载,可以拿去慢慢研究,看频谱,等等。。。
' s- s9 _( v4 M
( z0 ~2 M5 [- I  j6khz下的:
. G3 a8 L1 k) ?8 U
4 d. k+ J. ]& R) e% T3 a
$ C5 p( U8 `  o+ c8 w1 e
1 w4 {# ?! T" u" o3 v) V1 q0 |9 u& U7 M* j4 Y5 \0 y
24khz 低通后的:
3 @) Y" d; y8 T: _8 ~5 R8 `& c3 [; `5 ?6 |9 G- \
# \7 @8 a3 S/ b5 H! W' o
8khz下的:
6 ?. e! K1 U# q8 G) D1 K, K* k; |$ D* R8 L0 D. M) \; V
$ \- w" {% Y! I; m# K2 q
+ u7 \. l/ ^& B+ ]
为什么24khz-lowpass.wav频谱那么好看,而8khz.wav多了一些很小的谐波,这是因为由于低通不理想,低通后的波形并不是严格的以48个采样点为循环的。而我只对其中48个采样点进行了采样并拿来当做降频的循环初始数,所以降频后的波形。。。“欠Dither”4 p& u9 T1 A" Y5 v8 v' [

0 Y. R8 y5 [% J3 I+ `" ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-9-15 15:18

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表