pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?
以下討論均基于脈沖編碼調制(Pulse Code Modulation,PCM)
在回答這個問題之前,首先需要回答的是:高采樣率有什么好處?
高采樣率的好處主要有以下三點:
1、能記錄更高帶寬的音頻信號;
2、能降低對抗混疊濾波器和抗鏡像濾波器的性能要求;
3、能提高信噪比;
下面我們基于以上三點來分析44.1KHz是否夠用。
一、采樣率與帶寬的關系
根據香農采樣定理,采樣率44.1KHz的數字音頻格式可以無損地記錄22.05KHz以下頻率的音頻信號(假設量化精度足夠高),不理解的推薦看看這個科普視頻:
為什么24位音頻毫無意義 - 模擬信號的數字表示_嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili?www.bilibili.com而人耳的聽覺極限大約只到20KHz:
實驗證明人的聽覺無法感知20KHz以上的超聲波成分也就是說,理論上40KHz采樣率的帶寬對于絕大部分人來說就已經足夠了,更別說44.1KHz。
二、采樣率與濾波器的關系
實際歌曲制作中,經麥克風錄制得到的模擬信號需要經過模數轉換(ADC)轉成數字信號,模數轉換包括采樣和量化兩大步驟,采樣前必須對模擬信號進行低通濾波處理,以避免模擬信號中存在高于奈奎斯特頻率(采樣率的一半)的頻譜內容而導致采樣后產生混疊失真,這個濾波被稱為抗混疊濾波:
為什么需要抗混疊濾波??www.360doc.com不難想象,一個理想的抗混疊低通濾波器應該能夠完全去除被采樣信號中奈奎斯特頻率以上的頻譜內容,同時完美保留奈奎斯特頻率以下的音頻信息,也就是說,它應該具有“磚墻式”的頻響特性。然而這樣的理想濾波是不存在的,實際情況如下圖所示:
可以看到,實際的低通濾波無法實現理想的衰減特性,而是會存在一個衰減過渡帶,為了確保低通濾波在奈奎斯特頻率處有充分的衰減,就必須在奈奎斯特頻率前留出一部分頻帶作為過渡帶,要求抗混疊濾波器必須在該頻帶內實現通帶到阻帶的過渡。
不僅如此,實際的低通濾波器還可能在通帶內存在幅度波動、相位非線性等問題,造成通帶內的信號失真,這就要求抗混疊濾波器還必須在通帶內具有平直的頻響曲線與相位曲線。
由于我們只關注20000Hz以內的信號,那么對于44.1KHz采樣率,20000Hz-24100Hz就是為濾波衰減過渡提供的頭部余量,抗混疊濾波器不僅要保證24100Hz以上具有足夠的衰減,還要保證20000Hz以內有平直的頻率響應。
然而,并不是所有的低通濾波器都能很好地滿足這一要求,以最小相位低通濾波器為例:
最小相位IIR低通濾波器的頻率響應特性可以看到最小相位IIR低通濾波器雖然可以實現幾乎完美的衰減特性,但會在奈奎斯特頻率附近產生嚴重的相位失真,這是最小相位系統的固有特性,狹窄的過渡帶不足以在20KHz內排除該影響。顯然最小相位低通濾波器不適合作為44.1KHz采樣率的抗混疊濾波器。
為了避免相位失真,數字抗混疊濾波器一般使用線性相位FIR低通濾波器,以專業音頻軟件Adobe Audition中的為例:
線性相位FIR低通濾波器的頻率響應特性這樣的濾波器幾乎能夠完美地滿足44.1KHz采樣率的抗混疊濾波需求。
不過以上展示的都是數字濾波器,模擬濾波器就遠沒有這么好的性能了。模擬濾波器很難實現足夠短的過渡帶和足夠大的阻帶衰減,且不容易在帶內保持足夠的線性度,難以滿足44.1KHz采樣率的抗混疊濾波需求。但是,模擬濾波又是模擬信號轉換成數字信號的必經之路,因此即便采樣率本身夠用,但受限于模擬濾波器的性能,實際的情況是在模數轉換中,44.1KHz確實是不夠用的。
為了降低模擬濾波對保真度的負面影響,模數轉換中需要使用非常高的采樣率。采樣率越高,奈奎斯特頻率就越高,采樣后的基帶鏡像頻譜所處的頻帶也就越高,從而高采樣率能夠給濾波器過渡帶留出更多的頭部余量,大大降低了對模擬抗混疊濾波器的性能要求。
得到超高采樣率的數字音頻信號之后,就可以使用高性能的數字抗混疊濾波器進行下采樣,最終獲得高質量的目標采樣率音頻信號。
這種巧妙繞開模擬濾波器性能短板的技術,稱為過采樣技術,如今早已廣泛應用于專業聲卡等ADC中。
ADC采樣得到的還只是原始錄音素材,為了保證充足的操作余量,音頻素材乃至母帶一般使用采樣率較高的音頻格式作為載體(例如96KHz或更高),最終還需要再經過一次采樣率轉換得到低采樣率的發行版本。目前絕大多數的歌曲成品格式都是16bit 44.1KHz。
在音頻播放時,電腦、手機等平臺的系統音頻還會面臨多采樣率問題,為了兼容不同采樣率音頻的播放,系統音頻必須對不同采樣率的音頻流進行實時采樣率轉換,統一轉成與輸出設備匹配的采樣率。
采樣率轉換(Sample Rate Convertor,SRC)本質上是一個二次采樣量化過程,最基本的SRC算法是以兩個采樣率的最小公倍數作為臨時的高采樣率,將采樣源插值(插0)升頻到臨時采樣率產生中間信號,并以兩個采樣率中較低者的一半對該信號進行抗混疊低通濾波處理,最后從中按固定間隔抽取樣本產生目標采樣率信號。
對于該算法,當原采樣率與目標采樣率呈整數倍關系時,最小公倍數等于二者中較大者,可以跳過插值或抽取過程,性能開銷很低;當原采樣率與目標采樣率呈非整數倍關系時,二者的最小公倍數可能非常大,以96KHz下采樣到44.1KHz為例,它們的最小公倍數高達14112000,即需要高達14.112MHz的中間采樣率,并要求抗混疊濾波器的通帶小于π/320,實現難度急劇上升,特別是對于實時采樣率轉換的情形。
好的SRC算法可以克服非整數倍采樣率轉換的難題,目前大多數算法使用多相濾波器直接輸出目標采樣率信號,繞過了顯式的臨時升頻處理,因此SRC的性能主要還是取決于量化精度和數字抗混疊濾波器的設計。
各種SRC算法的性能對比可以參考這個網站:
SRC Comparisons?src.infinitewave.ca簡單舉一些栗子:
上:Avid Pro Tools 2018 下:Adobe Audition 2019作為行業標準級DAW,Avid Pro Tools的SRC量化誤差很低,但是卻有一定的混疊失真,這顯然是其抗混疊濾波器沒能充分濾除奈奎斯特頻率以上成分導致的:
上:Avid Pro Tools 2018 下:Adobe Audition 2019再來看看Windows 10系統默認音頻的實時SRC表現:
上:Windows 10默認音頻DirectSound 下:Adobe Audition 2019上:Windows 10默認音頻DirectSound 下:Adobe Audition 2019從圖上來看,Win10系統默認音頻的SRC似乎非常差勁,非線性失真異常嚴重。不過,這其實并不是SRC的鍋。
根據本人實測,當音頻樣本幅度值超過大約-0.13dBFS時,就會觸發Win10系統默認音頻的壓限處理,造成非線性失真顯著上升。例如輸出一個滿幅度的1KHz正弦波信號:
是不是和上面的圖如出一轍?為了避免這個莫名其妙的壓限問題,可以使用Equalizer APO對系統音頻施加一個統一的負增益,例如-0.15dB。
下面來看看Win10默認SRC的真實水平:
Windows 10 DS resampler 1KHz Tone 96KHz to 44.1KHzWindows 10 DS resampler 抗混疊濾波響應 96KHz to 44.1KHzWindows 10 DS resampler Sweep 96KHz to 44.1KHz如圖所示,Win10默認SRC的非線性失真其實很低,抗混疊濾波響應雖然不太理想,但20KHz以內的混疊失真控制得很好(<120dB),整體上絲毫不虛Pro Tools。
可見,只要正常一點的SRC算法都不會成為44.1KHz的音質瓶頸。
最后,在音頻回放階段,數字音頻信號還需要經過數模轉換(DAC)轉成模擬信號,這一過程中的最后一步同樣是低通濾波處理。
理想DA轉換器的輸出是與數字信號中各個采樣點相對應的一系列沖激脈沖串,其中不僅包含原始的信號,還包含了無數的高頻鏡像頻譜成分,為了從中準確還原出原始信號,就需要使用低通濾波器濾除高頻鏡像,這類低通濾波器被稱為抗鏡像濾波器。
盡管對于44.1KHz采樣率來說,高頻鏡像成分位于人的聽覺范圍之外,但這些成分有可能會在下游設備中引起調制導致帶內失真,因此依然有濾除的必要。
不過理想的DA轉換器是不存在的,實際的DA轉換器一般是零階保持模型(Zero-order hold),即采樣點的值會在一個采樣周期內被保持,最終重建出階梯狀的模擬波形:
由于該模型的脈沖響應是一個寬度等于采樣周期的矩形,其頻率響應是sinc函數,因此會導致包括通帶在內的高頻響應衰減,在奈奎斯特頻率處的衰減大約為-3.9224dB,對應sinc(π/2) = 2/π。這個通帶內衰減補償既可以在DA轉換器前用數字濾波器實現,也可以在最后的模擬抗鏡像濾波器實現。
抗鏡像濾波器的設計需求與抗混疊濾波器是類似的,但抗鏡像濾波器位于DAC之后,因此只能使用模擬濾波器。由于44.1KHz對模擬濾波器的要求過為苛刻,因此也需要使用軟件升頻或過采樣等技術,以繞開模擬濾波器的性能限制。
如今,過采樣技術同樣廣泛應用于DAC設備,因此回放階段的抗鏡像濾波一般也不會成為44.1KHz的音質短板。
總的來講,只有在ADC、DAC中不得不使用模擬低通濾波器時,44.1KHz才確實是不夠用的,不過借助過采樣技術,從高采樣率下采樣到44.1KHz時,高采樣率的好處幾乎能在44.1KHz中完整保留,再考慮到絕大多數數字低通濾波器性能表現良好的事實,可以說44.1KHz作為音頻信號的載體是非常夠用的。
三、采樣率與信噪比的關系
很多人可能還不理解,信噪比不是取決于位深么,跟采樣率有什么關系?
事實上在一些情況下,采樣率是可以置換成位深的,通過均值濾波將多個低位深采樣點進行均值,可以得到一個等效高位深的采樣點,從而有效提升動態范圍,降低量化噪聲,相信這在直觀上是非常好理解的吧。
本質上,均值濾波其實就是一種低通濾波,因此該方法能生效的前提條件是信號中的一部分噪聲分布在音頻頻帶以外的高頻區域,從而低通濾波能在不影響音頻信號的情況下濾除高頻噪聲,進而提高信噪比。顯然只有較高的采樣率才能滿足這一點。
那么,具體哪類噪聲才能通過這種方法減弱或消除呢?
信號處理過程中往往不可避免會引入噪聲,信號采樣自然也逃不過這點。哪怕在采樣前使用一個理想低通濾波器徹底濾除了奈奎斯特頻率以上的成分,采樣過程中依然會有高于奈奎斯特頻率的噪聲成分產生,例如數字域中的量化噪聲,以及模擬域中ADC的jitter噪聲、熱噪聲等等,這些噪聲的高頻部分會在采樣后疊回帶內產生混疊失真。因此理論上采樣率越高,混疊失真分布的帶寬往往就越寬,從而更容易被低通濾波濾除。
下面著重講講量化噪聲:
量化噪聲 - 圖文 - 百度文庫?wenku.baidu.com正如Bennett所指出的(參考文獻1),量化噪聲近似于高斯分布,幾乎均勻地分布于從DC至fs/2的奈奎斯特帶寬。這里假設量化噪聲與輸入信號不相關。在某些條件下,當采樣時鐘和信號通過諧波相關時,量化噪聲將與輸入信號相關,能量集中在信號的諧波中,但均方根值仍然約為q/√12。量化噪聲的總功率主要取決于位深,當量化噪聲與輸入信號不相關時,隨著采樣率提高,量化噪聲會被均勻分散到更寬的頻帶,由于其總功率不變,相對來講20KHz以內的量化噪聲功率就會降低,從而低通濾波能在不影響音頻信號的情況下濾除量化噪聲的高頻部分,降低量化噪聲總功率,這就等價于提高了量化位深。
然而,只有對于大幅度的復雜信號,信號與量化噪聲才是幾乎不相關的。隨著信號的幅度越來越小,量化噪聲與信號的相關性越來越強,即量化噪聲會越來越集中在音頻頻帶內,因此低通濾波的過濾作用越來越小;直到信號的幅度小于1/2 LSB時,量化噪聲與信號完全相關,即量化噪聲就是信號本身的反相,直觀原因就是PCM編碼無法對小于1/2 LSB的幅度進行量化,只能采樣到一串值為0的樣本,此時采樣率再高也無濟于事了。
有一種方法可以神奇地讓量化噪聲與信號完全去相關,那就是抖動(Dithering)。
抖動處理的原理是隨機共振,即人為地給原始信號添加一個微弱的隨機性噪聲信號(例如峰-峰值2 LSB的三角形概率密度抖動),這一操作使量化噪聲與信號完全去相關,使量化過程線性化,當然代價是輕微的信噪比損失(峰-峰值2 LSB的三角形概率密度抖動的功率是量化噪聲的2倍):
Major:信號的抖動處理?zhuanlan.zhihu.com抖動處理能夠突破位深極限,對小于1/2 LSB的微小幅度變化進行有效編碼,其本質是將小于1/2 LSB幅度區間的量化轉變為脈沖寬度調制(Pulse Width Modulation,PWM),通過低通濾波就可以從PWM中還原出原始波形:
引用自《數字音頻技術(第6版)》所以別看16bit的理論動態范圍只有大約96dB,實際上在抖動的加持下,16bit可以有效編碼幅度低至noise floor的微弱信號(約-125dBFS)。
通過調整抖動的頻譜(例如高通抖動),還可以進一步降低抖動的可聞性。
總而言之,借助抖動處理,可以使量化噪聲與信號完全去相關,從而通過提高采樣率+低通濾波的方式,幾乎可以無限制地降低量化噪聲,提升量化精度,這就是采樣率能夠置換位深的基本原理。
過采樣技術能夠提高信噪比的原理正是如此:
過采樣技術與SNR的關系_公子小白_城南_新浪博客?blog.sina.com.cn既然高采樣率能夠提高量化精度,那是不是采樣率越高越好呢?——并不是。
相比直接提高量化位深,通過提高采樣率換取量化精度的做法是極其低效的。采樣率每翻一倍,僅相當于提高0.5bit,如果想要提高8bit的量化精度,這個倍數會是2的16次方,即采樣率要翻65535倍!這完全是不現實的。
因此,僅從量化精度來考慮音頻編碼效率的話,量化精度應該通過量化位深來獲得,而采樣率應該在帶寬足夠的前提下盡量地低。從這一點來看,44.1KHz其實是非常合理的。
不過,雖然數字域的量化噪聲可以靠提高量化位深來降低,但模擬域產生的噪聲就只能通過提高采樣率來減弱了,因此ADC中使用遠高于44.1KHz采樣率的過采樣技術在這方面也是非常有意義的。好在和低通濾波一樣,通過數字下采樣,44.1KHz同樣可以受益于高采樣率在信噪比方面的好處,所以44.1KHz作為音頻信號的載體不僅非常夠用,同時還是非常合理的。
綜上,只考慮采樣率本身的話,44.1KHz毫無疑問是夠用的,因為它的帶寬完全可以滿足記錄音頻信號的需求。但是實際情況中不能一概而論,起碼還要把濾波器性能、信噪比等其他因素考慮進來,當其他因素存在難以改善的不足時,就可能有必要通過提升采樣率來彌補,此時44.1KHz就不一定夠用了。
好在44.1KHz不夠用的情況基本只存在于ADC、音頻制作和DAC等專業領域中,而對于普通用戶最終拿到手的音頻載體而言,44.1KHz已經是非常夠用的了。硬要說的話48KHz可能會更好些,因為如今的錄音行業更多使用48KHz、96KHz、192KHz的HD音頻標準,而非44.1KHz、88.2KHz、176.4KHz的古老CD標準,因此48KHz可以避免非整數倍SRC,降低對SRC算法的要求。比這再高的采樣率就幾乎沒有什么意義了,只會徒增文件容量而已。
總結
以上是生活随笔為你收集整理的pcm 采样率转换_44.1KHz够用吗?我们是否需要更高的采样率?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core 调用c dll_工具
- 下一篇: qcustomplot删除一条曲线_微凉