計算機基礎(8)——音頻數字化(模電與數電)

💗計算機基礎系列文章💗

  • 👉🍀計算機基礎(1)——計算機的發展史🍀
  • 👉🍀計算機基礎(2)——馮諾依曼體系結構🍀
  • 👉🍀計算機基礎(3)——計算機的系統組成🍀
  • 👉🍀計算機基礎(4)——操作系統概述🍀
  • 👉🍀計算機基礎(5)——進制與進制轉換🍀
  • 👉🍀計算機基礎(6)——編碼與解碼🍀
  • 👉🍀計算機基礎(7)——數字圖像技術🍀
  • 👉🍀計算機基礎(8)——音頻數字化(模電與數電)🍀
  • 👉🍀計算機基礎(9)——原碼、補碼、反碼🍀
  • 👉🍀計算機基礎(10)——編程語言與跨平臺🍀

音頻的編碼與解碼

二進制轉換音頻的過程也叫音頻數字化,其過程較為復雜,是模擬聲音信號轉變為數字信號再由數字信號轉換為模擬信號的一個技術實現,其過程涉及到聲音的采集,轉換為模擬信號,采樣、量化等。了解音頻數字化之前我們先了解一些關于聲音的一些前置知識,

1.1 聲波

我們知道聲音是以聲波的形式在空氣中傳播的,聲波是聲音的物理表現形式,它是由物體振動產生的能量傳播方式。當物體振動時,它會激發周圍介質(如空氣、液體或固體)中的分子或原子振動,這些振動隨后以波的形式傳播開來。

一段聲波中包含有聲音的頻率、振幅、音色等聲音元素,通過聲波我們可以將聲音這一抽象概念通過數據的形式表現出來。聲波的采集就是原聲音的采集,通過麥克風、話筒等錄音設備就可以采集到一段聲音的聲波。

例如我們通過聲波來反映一段聲音的頻率、振幅、音色等信息。

(1)通過聲波的頻率反映聲音音調,頻率低音調低,頻率高音調高。

(2)通過聲波的振幅反映聲音響度,振幅大響度大,振幅小響度小。

(3)通過聲波的規律性反映聲音音色,一般來說具有規律性的聲波聽起來悅耳,反之為噪音。

1.2 模擬信號

當錄音設備采集到聲波數據后將會以電信號的方式模擬出聲波信號,聲波被電信號模擬出來的信號就是聲音模擬信號,這種模擬信號是對聲波的一種電子化表示,以便在音響設備中再現出類似原始聲波的效果。

模擬信號是連續變化的,模擬信號的最大特點是隨著時間連續變化的值,它可以包含無限數量的可能幅度值。

我們可以把模擬信號模擬聲波的過程看作是汽車的儀表盤模擬汽車行駛速度的過程,當駕駛員深踩一腳油門時,汽車會迅速提高行駛速度,然而汽車儀表盤的數據并不是從0km/h直接變成80km/h,雖然這個變化的時間很短,但也是從0km/h連續變化到80km/h,期間汽車儀表盤指針肯定指向過10、11.7、12.785、20.491、38.4、69.8、78等這樣的數據。同理,當聲波的頻率忽高忽低,振幅忽大忽小時模擬信號也會隨著時間連續不間斷的模擬出聲波頻率的高低以及振幅的大小。

例如汽車行駛速度的通過儀表盤來模擬,如圖所示。

通過觀察曲線圖我們可以看到,取任意一個時間點都可以獲取到這個時間點所對應的速度值,通過聲音模擬信號模擬聲波的變化也類似于這樣。如圖所示,當通過模擬信號將聲波信息模擬出來后,取任意一個時間點所對應的聲波幅度數值也能取出來,這就是模擬信號的最大特點——隨著時間連續變化的值。

類似于模擬信號的變化還有水銀溫度計的變化,當我們把水銀溫度計放置在10°的水溫環境下時突然加了一些溫水進去,使得水溫一下子驟升至50°,然而水銀溫度計的數值肯定經過了20°、32.7°、39.1°、45.8°等數值,并不是從10°直接變成到50°,而是隨著時間的變化溫度上數值從10°增加至50°(雖然這個時間可能非常短)。

1.3 數字信號

數字信號是模擬信號的數字化,它是一系列離散的電脈沖(信號),可以利用其某一瞬間的狀態來表示具體的數據。數字信號與模擬信號最大的不同點在于模擬信號是隨著時間連續變化的值,它可以去任意時間點上的數據。而數字信號則是離散的數值,即取某幾個瞬間的狀態來表示具體的數據,數字信號包含的是有限數量的可能幅度值。

如圖所示,數字信號來模擬聲波時,只有某個具體的時間點才會有對應的聲波數據,而不是和模擬信號那樣任意的時間點上都能查詢到對應的聲波數據。

數字信號只有某幾個時間點上才能有對應的數據,這些時間點并不是連續的,這意味著某些時間上的數據會缺失,將數字信號的這些時間點連接起來可以大致還原模擬信號。

如果將模擬信號看著是汽車上的儀表盤、水銀溫度計,那么數字信號就可以看做是電動車上面的數字儀表盤和電子溫度槍。

不管是數字儀表盤還是電子溫度槍,這些設備的數值和時間都是離散的。以電動車的數字儀表盤舉例,例如我們騎電動車時突然深擰加速,假設速度從0提速到了40km/h,那么電子儀表盤上的速度很有可能就從10km/h變化到25km/h再變化到34km/h,最后變化到40km/h,在電子儀表盤模擬電動車行駛速度的變化時,只顯示了(模擬了)25、34、40這些數值,而25~34以及34~40之間的數據都不會被顯示(模擬)。

那為什么有了模擬信號還要轉換為數字信號呢?因為數字信號相對比模擬信號存在有很多優點,如下:

(1)數字信號抗干擾性強:數字信號在傳輸和處理過程中可以通過糾錯碼等技術來提高抗干擾能力,相比之下,模擬信號在傳輸和處理過程中容易受到噪聲和干擾的影響,導致信號失真或丟失。

(2)數字信號的可編程性:數字信號可以通過編程進行處理和操作,例如濾波、壓縮、加密等,這使得數字信號在處理和存儲方面更加靈活和方便。

(3)數字信號的可復制性:數字信號可以通過復制和傳輸進行無損的復制和傳遞,而模擬信號在復制和傳輸過程中可能會產生失真或損失。

(4)數字信號便于存儲和傳輸:數字信號以二進制數的形式表示,便于計算機進行存儲和傳輸。同時,數字信號可以進行壓縮處理,以節省存儲空間和提高傳輸效率。

(5)數字信號便于加密和解密:數字信號可以通過加密算法進行加密處理,以保護信號的安全性和隱私性。而模擬信號則難以實現加密和解密操作。

數字信號相對模擬具有許多優勢,使其在現代通信中占據主導地位。

1.4 音頻數字化

所謂音頻數字化就是把模擬信號如何具體的轉換為數字信號,其過程分為采樣、量化、編碼等。

1.4.1 采樣

(1)采樣:將連續的模擬聲音信號轉換為一系列離散的采樣點的過程,采樣點隨后由模擬數字轉換器(ADC)轉換為數字信號,以便計算機或其他數字設備進行處理、存儲、傳輸和播放。每秒鐘對聲波幅度值樣本的采樣次數稱為采樣頻率,單位為HZ,聲音的質量受采樣頻率的影響。

如圖所示,在一段模擬信號中,我們對其根據指定時間進行采樣,我們可以發現采樣的頻率越高,與模擬信號越接近,聲音還原程度越高,數據量也越大。

1.4.2 量化

(2)量化:將幅度上連續取值(模擬量)的每一個樣本轉換為離散值(數字量)表示的過程,它實現了在幅度軸上對信號的數字化。通過量化,音頻信號被轉換為一系列的數字值,這些數字值可以精確地表示原始音頻信號的幅度,如圖所示。

通過對比不同的量化等級,我們可以發現量化等級越高量化值的精度也越高,更高的量化等級意味著更多的量化值可以用來表示音頻樣本,就能夠更好的還原音頻。

計算機底層是以二進制存儲的,因此我們需要將量化值轉換為二進制。在聲音量化過程中,我們使用量化位數來表示量化值所需要的二進制位數,例如在量化等級為4的情況下使用兩位二進制數就可以表示量化值,因此它的量化位數就是2bit,量化等級為8的量化位數就是3bit,如圖所示。

然而,需要注意的是,量化位數的提高雖然能夠提升音質,但也會導致音頻文件的數據量增大。因為每個音頻樣本都需要用更多的二進制位來表示,所以音頻文件的存儲空間會相應增加。例如,一個16bit的音頻文件在數據量上會是8bit音頻文件的兩倍。

1.4.3 編碼

(3)編碼

聲音通過采樣、量化過后就成為了010101的二進制數,編碼決定了這些二進制數如何存儲,有的編碼規則的存儲效率非常高,同樣一段的音頻可以使用非常少的空間將其存儲,有的編碼規則則更加注重與音頻的質量,但可能會花費更多的空間來存儲。

不同的編碼方式就被分成了不同類型的音頻文件類型,常見的音頻文件有:

  • WAV(Waveform Audio File Format)格式:WAV是一種無損音頻格式,音質非常好,因為是無損的,保留了原始音頻的所有信息。常用于多媒體開發的中間文件、保存音樂和音效素材。由于WAV是無損壓縮,因此文件體積相對較大。
  • MP3(MPEG Audio Layer III):MP3是一種有損音頻格式,廣泛應用于音樂、廣播、電視等領域,具有較高的壓縮比和較好的音質。音質在128Kbit/s以上表現還不錯,但相較于無損格式有所損失。適合需要較小文件體積,且對音質要求不太苛刻的場合,如網絡音樂下載、移動設備存儲等。
  • AAC(Advanced Audio Coding):ACC是一種高壓縮比的音頻壓縮算法,它的壓縮比要遠超過較老的音頻壓縮算法,如AC-3、MP3等。適用于需要較高音質,同時文件體積也要相對較小的場合,如在線音樂流媒體、手機鈴聲等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22368.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在GlobalMapper中加載高清衛星影像?

GlobalMapper在GIS行業幾乎無人不知,無人不曉,但它可以直接加載衛星影像也許就不是每個人都知道的了。 這里就來分享一下如何在GlobalMapper中加載高清衛星影像,并可以在文末查看領取軟件安裝包和圖源的方法。 如何加載高清圖源 首先&…

45-1 waf繞過 - 文件上傳繞過WAF方法

環境準備: 43-5 waf繞過 - 安全狗簡介及安裝-CSDN博客然后安裝dvwa靶場:構建完善的安全滲透測試環境:推薦工具、資源和下載鏈接_滲透測試靶機下載-CSDN博客打開dvwa靶場,先將靶場的安全等級調低,然后切換到文件上傳 一、符號變異 在PHP中,由于其弱類型特性,有時候僅有一…

4月份新出!外網爆火的大模型黑書!內行人都在學~

今天給大家推薦一本4月份才新出的大型語言模型(LLM)的權威教程《基于GPT-3、ChatGPT、GPT-4等Transformer架構的自然語言處理》!Google工程總監Antonio Gulli作序,一堆大佬推薦!這含金量不用多說,在這里給大…

Docker容器搭建ELK日志分析系統

Docker容器搭建ELK日志分析系統 文章目錄 Docker容器搭建ELK日志分析系統資源列表基礎環境一、創建容器網絡二、創建容器掛載目錄三、構建systemctl鏡像三、構建Elasticsearch鏡像3.1、構建Elasticsearch3.2、構建鏡像3.3、啟動容器3.4、進入容器3.5、查看節點信息 四、構建Log…

NLP基礎——語言模型(動手學深度學習)

語言模型 聯合概率 給定文本序列 x 1 , ? , x t x_1,\cdots,x_t x1?,?,xt?,語言模型的目標是估計聯合概率 P ( x 1 , ? , x t ) P(x_1,\cdots,x_t) P(x1?,?,xt?). 這里的 x t x_t xt? 可以認為是文本序列在時間步 t t t 處的觀測或標簽,而…

亞信安慧AntDB:卓越的拓展性和靈活性

在當今這個信息爆炸的時代,企業對數據處理的需求不斷增長,傳統的數據庫系統往往難以應對海量數據的存儲和處理挑戰。然而,隨著亞信安慧AntDB的出現,解決這一難題的曙光終于出現在眼前。AntDB不僅僅具備了高吞吐、高并發、高性能的…

Linux系統之mv命令的基本使用

Linux系統之mv命令的基本使用 一、mv命令介紹1. mv命令簡介2. mv命令的使用結果 二、mv命令的使用幫助1. 在命令行的幫助信息2. mv常用選項 三、mv命令的基本使用1. 創建源目錄和目標目錄2. 新建測試文件3. 將源目錄文件復制到目標目錄4. 將文件進行改名5. 將目錄的所有文件轉移…

前端面試寶典總結4-手搓代碼JavaScript(數據處理)

前端面試寶典總結4之手寫代碼JavaScript(數據處理) 本文章 對各大學習技術論壇知識點,進行總結、歸納自用學習,共勉🙏 上一篇👉: 前端面試寶典總結3-JavaScript(2) 文章目錄 前端…

python長方形周長面積 2024年3月青少年編程電子學會python編程等級考試二級真題解析

目錄 python長方形周長面積 一、題目要求 1、編程實現 2、輸入輸出 二、算法分析 三、程序代碼 四、程序說明 五、運行結果 六、考點分析 七、 推薦資料 1、藍橋杯比賽 2、考級資料 3、其它資料 python長方形周長面積 2024年3月 python編程等級考試級編程題 一、…

matlab模擬太陽耀斑噴發

代碼 function simulate_solar_flare% 參數設置gridSize 100; % 網格大小timeSteps 200; % 時間步數dt 0.1; % 時間步長% 初始化網格[X, Y] meshgrid(linspace(-5, 5, gridSize));Z zeros(size(X));% 設置耀斑初始位置和強度flareCenter [0, 0]; % 耀斑中心位置flareRad…

【實用技巧】Unity中的Image組件

Unity中的Image組件是UI系統的核心部分,用于顯示圖像和紋理。以下是一些關于Unity Image組件的實用技巧: 使用Sprite作為Image源: 將Sprite直接拖拽到Image組件的Source Image字段中,可以快速設置顯示的圖像。 調整顏色和透明度&a…

9 -力扣高頻 SQL 50 題(基礎版)

9 - 上升的溫度 -- 找出與之前(昨天的)日期相比溫度更高的所有日期的 id -- DATEDIFF(2007-12-31,2007-12-30); # 1 -- DATEDIFF(2010-12-30,2010-12-31); # -1select w1.id from Weather w1, Weather w2 wheredatediff(w1.recordDate,w2.recordDat…

SolidWorks功能強大的三維設計軟件下載安裝,SolidWorks最新資源獲取!

SolidWorks,它憑借出色的三維建模能力,使得設計師們能夠輕松構建出復雜且精細的機械模型,大大提升了設計效率和質量。 在機械設計領域,SolidWorks憑借其豐富的工具和特性,讓設計師們能夠隨心所欲地揮灑創意。無論是零…

Flutter 中的 LayoutBuilder 小部件:全面指南

Flutter 中的 LayoutBuilder 小部件:全面指南 Flutter 是一個功能豐富的 UI 框架,它允許開發者使用 Dart 語言來構建高性能、美觀的跨平臺應用。在 Flutter 的布局系統中,LayoutBuilder 是一個強大的組件,它可以根據父容器的約束…

家政預約小程序12用戶登錄

目錄 1 創建全局變量2 創建頁面3 搭建頁面4 實現登錄邏輯總結 在小程序中,登錄是一個常見的場景。比如我們在小程序預約或者購買時,通常要求用戶先登錄后購買。如果使用傳統方案,登錄這個動作其實最終的目的是為了獲取用戶的openid。而使用低…

Python學習圣經:從0到1,精通Python使用

尼恩:LLM大模型學習圣經PDF的起源 在40歲老架構師 尼恩的讀者交流群(50)中,經常性的指導小伙伴們改造簡歷。 經過尼恩的改造之后,很多小伙伴拿到了一線互聯網企業如得物、阿里、滴滴、極兔、有贊、希音、百度、網易、美團的面試機會&#x…

【智能體】文心智能體大賽第二季持續進行中,一起在智能體的海洋里發揮你的創意吧

目錄 背景作文小助手AI迅哥問答程序員黃歷助手比賽時間第二期賽題豐厚獎品評選說明獲獎智能體推薦文章 背景 AI應用(智能體),持續火熱,一句話就能創建一個有趣、好玩的應用。 可以說一分鐘內就能創建一個有創意的智能體。 看大多…

Linux網絡-自定義協議、序列化和反序列化、網絡計算服務器的實現和Windows端客戶端

文章目錄 前言一、自定義協議傳結構體對象 序列化和反序列化什么是序列化?反序列化 二、計算器服務端(線程池版本)1.main.cc2.Socket.hpp3.protocol.hpp4.Calculator.hpp5.serverCal.hpp6.threadPool.hpp7.Task.hpp8. log.hpp 客戶端Windows客…

我有點想用JDK17了

大家好呀,我是summo,JDK版本升級的非常快,現在已經到JDK20了。JDK版本雖多,但應用最廣泛的還得是JDK8,正所謂“他發任他發,我用Java8”。 其實我也不太想升級JDK版本,感覺投入高,收…

華為、華三交換機、路由器啟用基于端口的環回檢測功能配置

目的 在進行某些特殊功能測試時,例如初步定位以太網故障時,需要開啟以太網接口環回檢測功能,測試接口功能是否異常。 當以太網接口無故障時,開啟環回檢測功能后接口物理狀態和協議狀態將始終處于Up狀態;如果以太網接口…