Re: [討論] 自製foobar插件: Auto Integer Resampl …

看板Audiophile (電腦喇叭 音響系統)作者 (MSA-0011[Bst]PLAN303E)時間15年前 (2010/06/26 00:00), 編輯推噓5(5018)
留言23則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《wahaha99 (此方不可長)》之銘言: : 嗯...本著小白不怕死的實驗精神,做了幾項實驗,順便跑了RMAA : ....這個結果有夠歡樂的: : http://biotoxicity.0fees.net/RMAA2/Comparison.htm : Original 96K: 原生96K檔案 : 96K by PPHS: PPHS 從 48K 升頻到 96K (Ultra mode) : 96K by AIR no-int: AIR(本人惡搞SRC) 從48K升頻到96K (不含插補) : 96K by AIR: AIR(本人惡搞SRC) 從48K升頻到96K (含插補) : 嗯...被AIR惡搞過後Noise level竟然勝過原生的!? 不可能啊XD 計算出了什麼問題吧? : 不過除了頻率響應以外....失真是 AIR插補 < AIR不補 < PPHS : 嗯,這太豪洨了,沒有演算法可言的東西也能有神效嗎? : 當然不用高興的太早, 頻率響應.... AIR 很.慘..... : 放大看就根本是個半圓 XD (原因不明 有請高手解釋) : 而且因為沒有LPF, 過24k後面一整個歡樂.... 出現了傳說中的頻譜鏡射...... : (好了,這下子真的驗證為什麼oversampling 都要放digital LPF) : 某首歌的截圖: http://biotoxicity.0fees.net/RMAA2/mirror.gif
: (這是AIR不含插補的圖,插補後好一點點....) : ...這是什麼東東 = =;;;; 感覺像是方波引起的,請高手解釋吧 : 結論: : 1.天下沒有白吃的午餐...(我朋友說用牛頓曲線可以逼到很近啦 多近不知道) : 2.聽起來怎樣不知道...我只知道這很惡搞..... : 3.下次要惡搞前應該要先去K一K訊號原理....(數學啊...orz) 從 DFT 的定義開始(http://en.wikipedia.org/wiki/Discrete_Fourier_transform) N-1 X_k = Σ x_n exp(-2πi k n/N) n=0 x_n 為時域資料,n = 0,1,2,...,N-1 X_k 為頻域資料,k = 0,1,2,...,N-1 我要偷懶只算不含補差,只有昇頻的部分 |假設原來的數據:0, 1, 2 ... (x_n ←→X_k ) |昇頻後變成這樣:0, 0, 1, 1, 2, 2... (x'_n←→X'_k) 2N-1 X'_k = Σ x'_n exp(-2πi k n/2N) n=0 N-1 N-1 = Σ x'_2n exp(-2πi k 2n/2N) + Σ x'_2n+1 exp(-2πi k (2n+1)/2N) n=0 n=0 N-1 = Σ x_n exp(-2πi k n/N) * [ 1 + exp(-2πi k/2N) ] n=0 = X_k * [ 1 + exp(-2πi k/2N) ] 這個多出來的係數 abs[ 1 + exp(-2πi k/2N) ] 隨 k 遞減,當 0 < k < N --- 補上線性內插的結果 |假設原來的數據:0, 1, 2, ... (x_n ←→X_k ) |昇頻後變成這樣:0, 0.5, 1, 1.5, 2, ... (x'_n←→X'_k) X'_k = (過程省略,再省略一兩個多餘項) = X_k * [ 1 + 0.5 exp(-2πi k/2N) + 0.5 exp(2πi k/N) ] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.172.77 ※ 編輯: yeahbo 來自: 118.167.172.77 (06/26 00:12)

06/26 00:11, , 1F
高手QQ 看不太懂,這是在說為什麼頻響不平的原因嗎 XD
06/26 00:11, 1F

06/26 00:12, , 2F
不過照理說不插補時DAC的輸出不是應該一樣?(NOS DAC)
06/26 00:12, 2F

06/26 00:14, , 3F
我不確定不補差訊號會變成怎樣,不過再補上線性內插的結果
06/26 00:14, 3F

06/26 00:24, , 4F
我很懶得寫清楚 XD 反正就是這兩招會在頻域數據上增加一個
06/26 00:24, 4F

06/26 00:24, , 5F
係數,這個係數大致會隨頻率上升而變小...
06/26 00:24, 5F

06/26 00:26, , 6F
當k=N/2時,abs[ 1 + exp(-2πi k/2N) ]=√2,也就是說
06/26 00:26, 6F

06/26 00:27, , 7F
頻率在24kHz時會少3dB,還算符合你的數據,不過我還是希望
06/26 00:27, 7F

06/26 00:28, , 8F
可以實際把這兩條畫出來看看,不過住處沒有數學軟體 XD
06/26 00:28, 8F

06/26 03:32, , 9F
看到這 以前上DSP時不好回憶浮上心頭... 還好最後有pass
06/26 03:32, 9F

06/26 13:46, , 10F
沒看到毛毛蟲是比較不嚇嚇 :p exp / π 轉成電腦 expression
06/26 13:46, 10F

06/26 13:47, , 11F
後加 loop / recursion 也還好 可是 Var def. 跟 SDK 超難的
06/26 13:47, 11F

06/26 13:47, , 12F
飆淚 :::> <::: 嗯 W 還是拜託你了 也再度拜託 y 兄了 XDDDD
06/26 13:47, 12F

06/27 08:02, , 13F
要看誤差(noise)要從原本連續的信號開始才行
06/27 08:02, 13F

06/27 08:05, , 14F
假設某個信號在frequency domain都是小於22.05khz
06/27 08:05, 14F

06/27 08:05, , 15F
轉回去time domain 做sampling 然後再看DA怎麼做的
06/27 08:05, 15F

06/27 08:06, , 16F
算出來DA的輸出 跟原本的相減 就是誤差了
06/27 08:06, 16F

06/27 08:07, , 17F
誤差總量在某種度量下是不變的 但是oversampling可以
06/27 08:07, 17F

06/27 08:08, , 18F
讓他更高頻的部分變多 較低頻的部分變少 LPF就可以濾掉
06/27 08:08, 18F

06/27 08:10, , 19F
real time src的演算法我沒有研究 不過應該不是取一小段
06/27 08:10, 19F

06/27 08:12, , 20F
時間做FFT/IFFT這麼簡單 銜接的地方會出問題
06/27 08:12, 20F

06/27 12:07, , 21F
最後上視波器看時,發現無插補的upsampling反而越高頻
06/27 12:07, 21F

06/27 12:07, , 22F
gain比較大,跟軟體預測的可以說是相反...太玄妙了
06/27 12:07, 22F

06/28 16:27, , 23F
作圖的結果是線性內插的衰減較快...
06/28 16:27, 23F
文章代碼(AID): #1C9DA6Mp (Audiophile)
文章代碼(AID): #1C9DA6Mp (Audiophile)