當前位置:首頁 » 操作系統 » 音頻cs演算法

音頻cs演算法

發布時間: 2023-02-15 09:05:55

❶ 音頻信號的採集方式

電台等由於其自辦頻道的廣告、新聞、廣播劇、歌曲和轉播節目等音頻信號電平大小不一,導致節目播出時,音頻信號忽大忽小,嚴重影響用戶的收聽效果。在轉播時,由於傳輸距離等原因,在信號的輸出端也存在信號大小不一的現象。過去,對大音頻信號採用限幅方式,即對大信號進行限幅輸出,小信號不予處理。這樣,仍然存在音頻信號過小時,用戶自行調節音量,也會影響用戶的收聽效果。隨著電子技術,計算機技術和通信技術的迅猛發展,數字信號處理技術已廣泛地深入到人們生活等各個領域。其中語音處理是數字信號處理最活躍的研究方向之一,在IP電話和多媒體通信中得到廣泛應用。語音處理可採用通用數字信號處理器DSP和現場可編程門陣列(FPGA) 實現,其中DSP實現方法具有實現簡便、程序可移植行強、處理速度快等優點,特別是TI公司TMS320C54X系列在音頻處理方面有很好的性價比,能夠解決復雜的演算法設計和滿足系統的實時性要求,在許多領域得到廣泛應用。在DSP的基礎上對音頻信號做AGC演算法處理可以使輸出電平保持在一定范圍內,能夠解決不同節目音頻不均衡等問題。
TI公司DSP晶元TMS320VC5402具有獨特的6匯流排哈佛結構,使其能夠6條流水線同時工作,工作頻率達到100MHZ。利用VC5402的2個多通道緩沖串列口(McBSP0和McBSP1)來實現與AIC23的無縫連接。VC5402的多通道帶緩沖的串列口在標准串口的基礎上加了一個2K的緩沖區。每次串口發送數據時,CPU自動將發送緩沖中的數據送出;而當接收數據時,CPU自動將收到的數據寫入接收緩存。在自動緩沖方式下,不需每傳送一個字就發一次中斷,而是每通過一次緩沖器的邊界,才產生中斷至CPU,從而減少頻繁中斷對CPU的影響。
音頻晶元採用TLV320 AIC23,它是TI公司的一款高性能立體聲音頻A/D,D/A放大電路。AIC23的模數轉換和數模轉換部件高度集成在晶元內部,採用了先進的過采樣技術。AIC23的外部硬體介面分為模擬口和數字口。模擬口是用來輸入輸出音頻信號的,支持線路輸入和麥克風輸入;有兩組數字介面,其一是由/CS、SDIN、SCLK和MODE構成的數字控制介面。AIC23是一塊可編程的音頻晶元,通過數字控制口將晶元的控制字寫入AIC23內部的寄存器,如采樣率設置,工作方式設置等,共有12個寄存器。音頻控制口與DSP的通信主要由多通道緩沖串列口McBSP1來實現。
AIC23通過數字音頻口與DSP的McBSP0完成數據的通信,DSP做主機,AIC23做從機。主機提供發送時鍾信號BCLKX0和發送幀同步信號BFSX0。在這種工作方式下,接收時種信號BCLKR0和接收幀同步信號BFSR0實際上都是由主機提供的。圖1是AIC23與VC5402的介面連接。
AIC23的數字音頻介面支持S(通用音頓格式)模式,也支持DSP模式(專與TIDSP連接模式),在此採用DSP模式。DSP模式工作時,它的幀寬度可以為一個bit長。圖2是音頻信號採集的具體電路圖。
電路的設計和布線是信號採集過程中一個很重要的環節,它的效果直接關繫到後期信號處理的質量。對於DSP達類高速器件,外部晶體經過內部的PLL倍頻以後可達上百兆。這就要求信號線走等長線和繪制多層電路板來消除電磁干擾和信號的反射。在兩層板的前提下,可以採取頂層與底層走交叉線、盡量加寬電源線和地線的寬度、電源線成樹杈型、模擬區和數字區分開等原則,可以達到比較好的效果。

❷ 音頻演算法入門-變音項目

本文主要是基於一個變音項目帶大家入門音頻演算法。項目用到了波形相似疊加演算法(Waveform similarity Overlap-Add WSOLA)和重采樣演算法。wsola能做到變時不變調,重采樣是變時也變調,兩者結合就能做到變調不變時。項目地址在文章末尾給出。

    該演算法屬於時域法,能做到音頻的變時不變調(改變語速但不改變語調)。時域法的基本思路是將音頻切分成很小的若乾等份,然後每份都去刪減一截或者復制一截數據,來減少或增加音頻數據,這樣就不會改變音頻波形,也就不影響音調,最後把每份重新合成播放就達到了變時不變調的目的。但如果只是這么做的話播放出來的聲音是有瑕疵的。例如想要加快播放速度,也就是對每份數據刪減一截,問題會出在合成的時候,前後兩份音頻的波形會出現斷橫,如果是想要減緩播放速度,也就是每份復制一截數據,問題會出在復制後的數據拼接到原數據末尾的時候,拼接處會出現斷橫。波形相似度疊加演算法就是為了優化這個斷橫問題而提出的。橫斷如下圖所示。

    首先介紹幾個概念,分別為有效幀,分析幀、搜索窗、重疊區域,合成幀、搜索窗可移動距離。
有效幀:把音頻切分成很小的若乾等份,每份數據就叫做有效幀。
分析幀:實際分析和處理的時候,僅僅有有效幀是不夠的,需要把上個分析幀末尾的一段數據復制並拼接到當前分析幀的頭部,這樣的一份數據被稱為分析幀。分析幀的組成為:analysisFrameLength(分析幀長度) = (有效幀長度)+plicateLengthInAnalysisFrame(重復數據長度)
搜索窗:通過波形相似查找演算法在分析幀里截取出的一段數據,數據長度為搜索窗長度,但搜索窗數據並不是直接用於拼接成最終的音頻,因為搜索窗里包含重疊區域。
重疊區域:搜索窗數據在處理成最終音頻的時候,每個搜索窗數據都會被下一個搜索窗數據重疊一塊區域,這塊區域叫做重疊區域。
合成幀:由於每個搜索窗數據都會被下一個搜索窗數據重疊一塊區域,所以真正用於合成拼接的數據=搜索窗數據-重疊區域,這段數據叫做合成幀。所以播放速度=有效幀/合成幀
搜索窗可移動距離:用上一個搜索窗尾部重疊區域大小的數據(波形數據)作為參考,從當前分析幀頭部開始往後平移尋找最相似的數據(相似的波形數據),可平移的最大距離就是搜索窗可移動距離。所以分析幀必須要比搜索窗+搜索窗可移動距離大才行。

熟悉了上面介紹的概念後再來看下面的波形相似度疊加演算法示意圖,圖中展示了兩個分析幀變成兩個合成幀的完整過程。具體實現細節就看項目吧,主要涉及的操作就是計算波形相似度和疊加這兩個相似波形。

重采樣分為上采樣和下采樣,上采樣就是增加數據,帶來的效果是語速變慢且音調降低,下采樣就是減少數據,帶來的效果是語速變快且音調提高。所以配合波形相似疊加演算法能做到變時不變調。下采樣會造成混疊,上采樣會造成鏡像,想要了解的更細,需要先了解香濃采樣定理,然後我推薦一個網址,講的是上采樣和下采樣的內容https://www.cnblogs.com/TaigaCon/p/8512219.html。為了讓重采樣不出現混疊和鏡像,本項目用的是窗函數(凱澤窗)設計的sinc低通濾波器進行重采樣操作。

低通濾波的目的就是把低頻信號保留,把高頻信號除去,這相當於把一段音頻的頻域信號點乘sinc函數傅里葉變換後的頻譜函數(該函數的形狀請看上圖的sinc函數頻譜圖)。頻域點乘又相當於時域卷積,所以又相當於把一段音頻時域信號和sinc函數做卷積,但是由於sinc函數在時域上是從負無窮到正無窮的,這就導致沒法做卷積,我們觀察一下這個sinc函數會發現,離坐標原點越遠,曲線上下波動就越小,y值也越接近0,就表示信息量就越少,這時候有人肯定會想到那就裁剪一下,把接近坐標原點的中間這塊裁剪下來做卷積。卷積後的結果如下圖所示。

看上圖會發現不再是標準的矩形函數,兩邊會有長長的拖尾,而且拖尾的y值還挺大的,這種現象叫做泄露,這不是我們想要的效果,我們還是希望能盡量的接近原來的矩形窗,這就引出了窗函數,對這個sinc函數進行加窗操作(就是裁剪並和窗函數點乘)就可以減少泄露。下面這圖就是加了凱澤窗後的sinc函數頻譜圖

看上圖會發現拖尾雖然還是存在,但是拖尾的y值變得更小了,這個效果雖然不是最理想的,但比原來好多了。所以用這個加了窗的sinc函數進行卷積就可以實現低通濾波。那麼怎麼用這個低通濾波器進行插值呢?請看下圖。

為了方便項目的理解,可以先看看這個項目的簡單介紹,該項目是先定義了搜索窗大小,搜索窗可移動距離大小和重疊區域大小,然後通過播放速度計算出其他的參數,包括合成幀大小,分析幀大小,有效幀大小和分析幀的重復區域大小。公式如下:
合成幀 = 搜索窗可移動距離重疊區域
有效幀 = 播放速度*(搜索窗-重疊區域)
分析幀 = Math.max(有效幀+重疊區域,搜索窗)+搜索窗可移動距離
分析幀的重復區域 = 分析幀-有效幀

今天春節,是新一年的開端,祝大家在新的一年裡付出的努力都能有所收獲,年牛大吉!

❸ 數字音頻壓縮的主要基本演算法有哪些

WAV:無損
是微軟公司開發的一種聲音文件格式,它符合 PIFFResource Interchange File Format 文件規范,用於保存WINDOWS平台的音頻信息資源,被WINDOWS平台及其應用程序所支持。「*.WAV」格式支持MSADPCM、CCITT A LAW等多種壓縮演算法,支持多種音頻位數、采樣頻率和聲道,標准格式的WAV文件和CD格式一樣,也是44.1K的采樣頻率,速率88K/秒,16位量化位數,看到了吧,WAV格式的聲音文件質量和CD相差無幾,也是目前PC機上廣為流行的聲音文件格式,幾乎所有的音頻編輯軟體都「認識」WAV格式。
這里順便提一下由蘋果公司開發的AIFF(Audio Interchange File Format)格式和為UNIX系統開發的AU格式,它們都和和WAV非常相像,在大多數的音頻編輯軟體中也都支持它們這幾種常見的音樂格式。
MP3:流行
MP3格式誕生於八十年代的德國,所謂的MP3也就是指的是MPEG標准中的音頻部分,也就是MPEG音頻層。根據壓縮質量和編碼處理的不同分為3層,分別對應 「*.mp1"/「*.mp2」/「*.mp3」這3種聲音文件。需要提醒大家注意的地方是:MPEG音頻文件的壓縮是一種有損壓縮,MPEG3音頻編碼具有10:1~12:1的高壓縮率,同時基本保持低音頻部分不失真,但是犧牲了聲音文件中12KHz到16KHz高音頻這部分的質量來換取文件的尺寸,相同長度的音樂文件,用*.mp3格式來儲存,一般只有*.wav文件的1/10,而音質要次於CD格式或WAV格式的聲音文件。由於其文件尺寸小,音質好;所以在它問世之初還沒有什麼別的音頻格式可以與之匹敵,因而為*.mp3格式的發展提供了良好的條件。直到現在,這種格式還是風靡一時,作為主流音頻格式的地位難以被撼動。但是樹大招風,MP3音樂的版權問題也一直是找不到辦法解決,因為MP3沒有版權保護技術,說白了也就是誰都可以用。
MP3格式壓縮音樂的采樣頻率有很多種,可以用64Kbps或更低的采樣頻率節省空間,也可以用320Kbps的標准達到極高的音質。我們用裝有Fraunhofer IIS Mpeg Lyaer3的 MP3編碼器(現在效果最好的編碼器)MusicMatch Jukebox 6.0在128Kbps的頻率下編碼一首3分鍾的歌曲,得到2.82MB的MP3文件。採用預設的CBR(固定采樣頻率)技術可以以固定的頻率采樣一首歌曲,而VBR(可變采樣頻率)則可以在音樂「忙」的時候加大采樣的頻率獲取更高的音質,不過產生的MP3文件可能在某些播放器上無法播放。我們把VBR的級別設定成為與前面的CBR文件的音質基本一樣,生成的VBR MP3文件為2.9MB。
MIDI:作曲家最愛
經常玩音樂的人應該常聽到MIDI(Musical Instrument Digital Interface)這個詞,MIDI允許數字合成器和其他設備交換數據。MID文件格式由MIDI繼承而來。MID文件並不是一段錄制好的聲音,而是記錄聲音的信息,然後在告訴音效卡如何再現音樂的一組指令。這樣一個MIDI文件每存1分鍾的音樂只用大約5~10KB。今天,MID文件主要用於原始樂器作品,流行歌曲的業余表演,游戲音軌以及電子賀卡等。*.mid文件重放的效果完全依賴音效卡的檔次。*.mid格式的最大用處是在電腦作曲領域。*.mid文件可以用作曲軟體寫出,也可以通過音效卡的 MIDI口把外接音序器演奏的樂曲輸入電腦里,製成*.mid文件。
WMA:最具實力
WMA (Windows Media Audio) 格式是來自於微軟的重量級選手,後台強硬,音質要強於MP3格式,更遠勝於RA格式,它和日本YAMAHA公司開發的VQF格式一樣,是以減少數據流量但保持音質的方法來達到比MP3壓縮率更高的目的,WMA的壓縮率一般都可以達到1:18左右,WMA的另一個優點是內容提供商可以通過DRM(Digital Rights Management)方案如Windows Media Rights Manager 7加入防拷貝保護。這種內置了版權保護技術可以限制播放時間和播放次數甚至於播放的機器等等,這對被盜版攪得焦頭亂額的音樂公司來說可是一個福音,另外 WMA還支持音頻流(Stream) 技術,適合在網路上在線播放,作為微軟搶占網路音樂的開路先鋒可以說是技術領先、風頭強勁,更方便的是不用象MP3那樣需要安裝額外的播放器,而 Windows操作系統和Windows Media Player的無縫捆綁讓你只要安裝了windows操作系統就可以直接播放WMA音樂,新版本的Windows Media Player7.0更是增加了直接把CD光碟轉換為WMA聲音格式的功能,在新出品的操作系統Windows XP中,WMA是默認的編碼格式,大家知道Netscape的遭遇,現在「狼」又來了。WMA這種格式在錄制時可以對音質進行調節。同一格式,音質好的可與CD媲美,壓縮率較高的可用於網路廣播。雖然現在網路上還不是很流行,但是在微軟的大規模推廣下已經是得到了越來越多站點的承認和大力支持,在網路音樂領域中直逼*.mp3,在網路廣播方面,也正在瓜分Real打下的天下。因此,幾乎所有的音頻格式都感受到了WMA格式的壓力。
RealAudio:流動旋律
RealAudio主要適用於在網路上的在線音樂欣賞,現在大多數的用戶仍然在使用56Kbps或更低速率的Modem,所以典型的回放並非最好的音質。有的下載站點會提示你根據你的Modem速率選擇最佳的Real文件。現在real的的文件格式主要有這么幾種:有RA(RealAudio)、 RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured),還有更多。這些格式的特點是可以隨網路帶寬的不同而改變聲音的質量,在保證大多數人聽到流暢聲音的前提下,令帶寬較富裕的聽眾獲得較好的音質。
近來隨著網路帶寬的普遍改善,Real公司正推出用於網路廣播的、達到CD音質的格式。如果你的RealPlayer軟體不能處理這種格式,它就會提醒你下載一個免費的升級包。許多音樂網站 提供了歌曲的Real格式的試聽版本。現在最新的版本是RealPlayer 11。
VQF:無人問津
雅馬哈公司另一種格式是*.vqf,它的核心是減少數據流量但保持音質的方法來達到更高的壓縮比,可以說技術上也是很先進的,但是由於宣傳不力,這種格式難有用武之地。*.vqf可以用雅馬哈的播放器播放。同時雅馬哈也提供從*.wav文件轉換到*.vqf文件的軟體。 此文件缺少特點外加缺乏宣傳,現在幾乎已經宣布死刑了。
OGG:新生代音頻格式
ogg格式完全開源,完全免費, 和mp3不相上下的新格式。 與MP3類似,OGGVorbis也是對音頻進行有損壓縮編碼,但通過使用更加先進的聲學模型去減少損失,因此,相同碼率編碼的OGGVorbis比MP3音質更好一些,文件也更小一些。另外,MP3格式是受專利保護的。發布或者銷售MP3編碼器、MP3解碼器、MP3格式音樂作品,都需要付專利使用費。而OGGVorbis就完全沒有這個問題。目前,OGGVorbis雖然還不普及,但在音樂軟體、游戲音效、便攜播放器、網路瀏覽器上都得到廣泛支持。
FLAC:自由無損音頻格式
FLAC即是Free Lossless Audio Codec的縮寫,中文可解為無損音頻壓縮編碼。FLAC是一套著名的自由音頻壓縮編碼,其特點是無損壓縮。不同於其他有損壓縮編碼如MP3 及AAC,它不會破壞任何原有的音頻資訊,所以可以還原音樂光碟音質。現在它已被很多軟體及硬體音頻產品所支持。FLAC是免費的並且支持大多數的操作系統,包括 Windows,基於Unix內核而開發的系統 (Linux, *BSD,Solaris,OSX,IRIX),BeOS,OS/2,Amiga。並且FLAC提供了在開發工具 autotools,MSVC,Watcom C,ProjectBuilder上的build系統。
APE:最有前途的網路無損格式
APE是目前流行的數字音樂文件格式之一。與MP3這類有損壓縮方式不同,APE是一種無損壓縮音頻技術,也就是說當你將從音頻CD上讀取的音頻數據文件壓縮成APE格式後,你還可以再將APE格式的文件還原,而還原後的音頻文件與壓縮前的一模一樣,沒有任何損失。APE的文件大小大概為CD的一半,但是隨著寬頻的普及,APE格式受到了許多音樂愛好者的喜愛,特別是對於希望通過網路傳輸音頻CD的朋友來說,APE可以幫助他們節約大量的資源。
作為數字音樂文件格式的標准,WAV格式容量過大,因而使用起來很不方便。因此,一般情況下我們把它壓縮為MP3或 WMA 格式。壓縮方法有無損壓縮,有損壓縮,以及混成壓縮。MPEG, JPEG就屬於混成壓縮,如果把壓縮的數據還原回去,數據其實是不一樣的。當然,人耳是無法分辨的。因此,如果把 MP3, OGG格式從壓縮的狀態還原回去的話,就會產生損失。
然而APE壓縮格式即使還原,也能毫無損失地保留原有音質。所以,APE可以無損失高音質地壓縮和還原。當然,目前只能把音樂CD中的曲目和未壓縮的WAV文件轉換成APE格式,MP3文件還無法轉換為APE格式。事實上APE的壓縮率並不高,雖然音質保持得很好,但是壓縮後的容量也沒小多少。一個34MB的WAV文件,壓縮為APE格式後,仍有17MB左右。對於一整張CD來說,壓縮省下來的容量還是可觀的。
APE的本質,其實它是一種無損壓縮音頻格式。龐大的WAV音頻文件可以通過Monkey's Audio這個軟體壓縮為APE。很多時候它被用做網路音頻文件傳輸,因為被壓縮後的APE文件容量要比WAV源文件小一半多,可以節約傳輸所用的時間。更重要的是,通過Monkey's Audio解壓縮還原以後得到的WAV文件可以做到與壓縮前的源文件完全一致。所以APE被譽為「無損音頻壓縮格式」,Monkey''s Audio被譽為「無損音頻壓縮軟體」。與採用WinZip或者WinRAR這類專業數據壓縮軟體來壓縮音頻文件不同,壓縮之後的APE音頻文件是可以直接被播放的。Monkey's Audio會向Winamp中安裝一個「in_APE.dll」插件,從而使Winamp也具備播放APE文件的能力。同樣foobar2000,以及千千靜聽也能支持APE的播放。

❹ 基礎篇_8.音頻編碼MP3\AAC

學習整理的相關章節鏈接:
基礎篇_1.音視頻學習框架
基礎篇_2. 顏色空間模型 RBG、YUV、HSV
基礎篇_3.圖像編碼之Bmp
基礎篇_4.音頻基礎概念
基礎篇_5.音頻數據採集
基礎篇_6.音頻編碼PCM
基礎篇_7.音頻編碼WAV
基礎篇_8.音頻編碼MP3AAC

mp3編碼詳細信息參考如下鏈接
https://www.jianshu.com/p/58df71a19901

AAC是高級音頻編碼(Advanced Audio Coding)的縮寫,出現於1997年,最初是基於MPEG-2的音頻編碼技術。由Fraunhofer IIS、Dolby Laboratories、AT&T、Sony等公司共同開發,目的是取代MP3格式。2000年,MPEG-4標准出台,AAC重新集成了其它技術(PS,SBR),為區別於傳統的MPEG-2 AAC,故含有SBR或PS特性的AAC又稱為MPEG-4 AAC。
AAC是新一代的音頻有損壓縮技術,它通過一些附加的編碼技術(比如PS,SBR等),衍生出了LC-AAC,HE-AAC,HE-AACv2三種主要的編碼,LC-AAC就是比較傳統的AAC,相對而言,主要用於中高碼率(>=80Kbps),HE-AAC(相當於AAC+SBR)主要用於中低碼(<=80Kbps),而新近推出的HE-AACv2(相當於AAC+SBR+PS)主要用於低碼率(<=48Kbps),事實上大部分編碼器設成<=48Kbps自動啟用PS技術,而>48Kbps就不加PS,就相當於普通的HE-AAC

AAC共有9種規格,以適應不同的場合的需要:

MPEG-2 AAC LC 低復雜度規格(Low Complexity)--比較簡單,沒有增益控制,但提高了編碼效率,在中等碼率的編碼效率以及音質方面,都能找到平衡點
MPEG-2 AAC Main 主規格
MPEG-2 AAC SSR 可變采樣率規格(Scaleable Sample Rate)
MPEG-4 AAC LC 低復雜度規格(Low Complexity)------現在的手機比較常見的MP4文件中的音頻部份就包括了該規格音頻文件
MPEG-4 AAC Main 主規格 ------包含了除增益控制之外的全部功能,其音質最好
MPEG-4 AAC SSR 可變采樣率規格(Scaleable Sample Rate)
MPEG-4 AAC LTP 長時期預測規格(Long Term Predicition)
MPEG-4 AAC LD 低延遲規格(Low Delay)
MPEG-4 AAC HE 高效率規格(High Efficiency)-----這種規格適合用於低碼率編碼,有
Nero ACC 編碼器支持

目前使用最多的是 LC和HE(適合低碼率) 。流行的Nero AAC編碼程序只支持LC,HE,HEv2這三種規格,編碼後的AAC音頻,規格顯示都是LC。 HE其實就是AAC(LC)+SBR技術,HEv2就是AAC(LC)+SBR+PS技術;

** Hev1和HEv2用此圖簡單表示:**

** (圖中AAC即指的是原來的AAC-LC)**

** HE:「High Efficiency」(高效性)。 HE-AAC v1(又稱AACPlusV1,SBR),用容器的方法實現了AAC(LC)+SBR技術。 SBR其實代表的是Spectral Band Replication(頻段復制)**。簡要敘述一下,音樂的主要頻譜集中在低頻段,高頻段幅度很小,但很重要,決定了音質。如果對整個頻段編碼,若是為了保護高頻就會造成低頻段編碼過細以致文件巨大;若是保存了低頻的主要成分而失去高頻成分就會喪失音質。SBR把頻譜切割開來,低頻單獨編碼保存主要成分,高頻單獨放大編碼保存音質,「統籌兼顧」了,在減少文件大小的情況下還保存了音質,完美的化解這一矛盾。

** HEv2:**用容器的方法包含了HE-AAC v1和PS技術。PS指「parametric stereo」(參數立體聲)。原來的立體聲文件文件大小是一個聲道的兩倍。但是兩個聲道的聲音存在某種相似性,根據香農信息熵編碼定理,相關性應該被去掉才能減小文件大小。所以PS技術存儲了一個聲道的全部信息,然後,花很少的位元組用參數描述另一個聲道和它不同的地方

(1)AAC是一種 高壓縮比 的音頻壓縮演算法,但它的 壓縮比要遠超過較老的音頻壓縮演算法,如AC-3、MP3 等。並且其 質量可以同未壓縮的CD音質相媲美
(2)同其他類似的音頻編碼演算法一樣,AAC也是採用了變換編碼演算法,但AAC使用了解析度更高的濾波器組,因此它可以達到更高的壓縮比。
(3)AAC使用了 臨時雜訊重整、後向自適應線性預測、聯合立體聲技術和量化哈夫曼編碼 等最新技術,這些新技術的使用都使壓縮比得到進一步的提高。
(4)AAC支持 更多種采樣率和比特率、支持1個到48個音軌、支持多達15個低頻音軌、具有多種語言的兼容能力、還有多達15個內嵌數據流
(5)AAC支持 更寬的聲音頻率范圍,最高可達到96kHz,最低可達8KHz ,遠寬於MP3的16KHz-48kHz的范圍。
(6)不同於MP3及WMA, AAC幾乎不損失聲音頻率中的甚高、甚低頻率成分 ,並且比WMA在頻譜結構上更接近於原始音頻,因而聲音的保真度更好。專業評測中表明, AAC比WMA聲音更清晰,而且更接近原音
(7)AAC採用優化的演算法達到了 更高的解碼效率 ,解碼時只需較少的處理能力。

ADIF Audio Data Interchange Format 音頻數據交換格式 。這種格式的特徵是 可以確定的找到這個音頻數據的開始 ,不需進行在音頻數據流中間開始的解碼,即 它的解碼必須在明確定義的開始處進行。故這種格式常用在磁碟文件中

ADTS Audio Data Transport Stream 音頻數據傳輸流 。這種格式的特徵是它 是一個有同步字的比特流,解碼可以在這個流中任何位置開始 。它的特徵類似於mp3數據流格式。

簡單說,ADTS可以在任意幀解碼,也就是說它每一幀都有頭信息。ADIF只有一個統一的頭,所以必須得到所有的數據後解碼。且這兩種的header的格式也是不同的,目前一般編碼後的和抽取出的都是ADTS格式的音頻流。兩者具體的組織結構如下所示:

AAC的ADIF格式見下圖:

AAC的ADTS的一般格式見下圖:

圖中表示出了ADTS一幀的簡明結構,其兩邊的空白矩形表示一幀前後的數據。

ADIF 的頭信息:

ADIF頭信息位於AAC文件的起始處,接下來就是連續的 raw data blocks。
組成ADIF頭信息的各個域如下所示:

ADTS 的固定頭信息:

ADTS的可變頭信息:

(1) 幀同步目的在於找出幀頭在比特流中的位置 ,13818-7規定,aac ADTS格式的幀頭同步字為12比特的「1111 1111 1111」.

(2)ADTS的頭信息為兩部分組成,其一為固定頭信息,緊接著是可變頭信息。固定頭信息中的數據每一幀都相同,而可變頭信息則在幀與幀之間可變。

在AAC中,原始數據塊的組成可能有六種不同的元素:
SCE: Single Channel Element單通道元素 。單通道元素基本上只由一個ICS組成。一個原始數據塊最可能由16個SCE組成。
CPE: Channel Pair Element 雙通道元素 ,由兩個可能共享邊信息的ICS和一些聯合立體聲編碼信息組成。
CCE: Coupling Channel Element 藕合通道元素 。代表一個塊的多通道聯合立體聲信息或者多語種程序的對話信息。
LFE: Low Frequency Element 低頻元素 。包含了一個加強低采樣頻率的通道。
DSE: Data Stream Element 數據流元素 ,包含了一些並不屬於音頻的附加信息。
PCE: Program Config Element 程序配置元素 。包含了聲道的配置信息。它可能出現在ADIF 頭部信息中。
FIL: Fill Element 填充元素 。包含了一些擴展信息。如SBR,動態范圍控制信息等。
AAC解碼流程

[圖片上傳失敗...(image-eaf24c-1543569949388)]

如圖:

在主控模塊開始運行後,主控模塊將AAC比特流的一部分放入輸入緩沖區,通過 查找同步字得到一幀的起始 ,找到後,根據ISO/IEC 13818-7所述的語法 開始進行Noisless Decoding(無噪解碼),無噪解碼實際上就是哈夫曼解碼,通過反量化(Dequantize)、聯合立體聲(Joint Stereo),知覺雜訊替換(PNS),瞬時雜訊整形(TNS),反離散餘弦變換(IMDCT),頻段復制 (SBR)這幾個模塊之後,得出左右聲道的PCM碼流 ,再由主控模塊將其放入輸出緩沖區輸出到聲音播放設備。

技術解析:

1.主控模塊:
所謂的主控模塊,它的主要任務是操作輸入輸出緩沖區,調用其它各模塊協同工作。
其中,輸入輸出緩沖區均由DSP控制模塊提供介面。輸出緩沖區中將存放的數據為解碼出來的PCM數據,代表了聲音的振幅。它由一塊固定長度的緩沖區構成,通過調用DSP控制模塊的介面函數,得到頭指針,在完成輸出緩沖區的填充後,調用中斷處理輸出至I2S介面所連接的音頻ADC晶元(立體聲音頻DAC和DirectDrive耳機放大器)輸出模擬聲音。

2.Noisless Decoding(無噪解碼):
無噪編碼就是哈夫曼編碼,它的作用在於進一步減少尺度因子和量化後頻譜的冗餘,
即將尺度因子和量化後的頻譜信息進行哈夫曼編碼。全局增益編碼成一個8位的無符號整數,第一個尺度因子與全局增益值進行差分編碼後再使用尺度因子編碼表進行哈夫曼編碼。後續的各尺度因子都與前一個尺度因子進行差分編碼。量化頻譜的無噪編碼有兩個頻譜系數的劃分。其一為4元組和2元組的劃分,另一個為節劃分。對前一個劃分來說,確定了一次哈夫曼表查找出的數值是4個還是2個。對後一個劃分來說,確定了應該用哪一個哈夫曼表,一節中含有若乾的尺度因子帶並且每節只用一個哈夫曼表。
——分段
無雜訊編碼將輸入的1024個量化頻譜系數分為幾個段(section),段內的各點均使用
同一個哈夫曼表,考慮到編碼效率,每一段的邊界最好同尺度因子帶的邊界重合。所以每一段必段傳送信息應該有:段長度,所在的尺度因子帶,使用的哈夫曼表。

——分組和交替
分組是指忽略頻譜系數所在窗,將連續的,具有相同尺度因子帶的頻譜系數分為一組放在
一起,共享一個尺度因子從而得到更好的編碼效率。這樣做必然會引起交替,即本來是以
c[組][窗][尺度因子帶][ 系數索引]為順序的系數排列,變為將尺度因子帶同的系數放在一起: c[組][尺度因子帶][窗][ 系數索引]
這樣就引起了相同窗的系數的交替。

——大量化值的處理
大量化值在AAC中有兩種處理方法:在哈夫曼編碼表中使用escape標志或使用脈沖
escape方法。前者跟mp3編碼方法相似,在許多大量化值出現時採用專門的哈夫曼表,這個表暗示了它的使用將會在哈夫曼編碼後面跟跟一對escape值及對值的符號。在用脈沖escape方法時,大數值被減去一個差值變為小數值,然後使用哈夫曼表編碼,後面會跟一個脈沖結構來幫助差值的還原.

3.尺度因子解碼及逆量化
在AAC編碼中,逆量化頻譜系數是由一個非均勻量化器來實現的,在解碼中需進行其逆運算。即保持符號並進行4/3次冪運算。在頻域調整量化雜訊的基本方法就是用尺度因子來進行雜訊整形。尺度因子就是一個用來改變在一個尺度因子帶的所有的頻譜系數的振幅增益值。使用尺度因子這種機制是為了使用非均勻量化器在頻域中改變數化雜訊的比特分配。

——尺度因子帶(scalefactor-band)
頻率線根據人耳的聽覺特性被分成多個組,每個組對應若干個尺度因子,這些組就叫做尺度因子帶。為了減少信息含有短窗的邊信息,連續的短窗可能會被分為一組,即將若干個短窗當成一個窗口一起傳送,然後尺度因子將會作用到所有分組後的窗口去。

4.聯合立體聲(Joint Stereo)
聯合立體聲的是對原來的取樣進行的一定的渲染工作,使聲音更」好聽」些。

5.知覺雜訊替換(PNS)
知覺雜訊替換模塊是一種以參數編碼的方式模擬雜訊的模塊。在判別出音頻值中的噪
聲後,將這些雜訊不進行量化編碼,而是採用一些參數告訴解碼器端這是某種雜訊,然後解碼器端將會對這些雜訊用一些隨機的編碼來製造出這一類型的雜訊。
在具體操作上,PNS模塊對每個尺度因子帶偵測頻率4kHz以下的信號成分。如果這個
信號既不是音調,在時間上也無強烈的能量變動,就被認為是雜訊信號。其信號的音調及能量變化都在心理聲學模型中算出。
在解碼中,如果發現使用了哈夫曼表13(NOISE_HCB),則表明使用了PNS。由於M/S立體聲解碼與PNS解碼互斥,故可以用參數ms_used來表明是否兩個聲道都用同樣的PNS。如果 ms_used參數為1,則兩個聲道會用同樣的隨機向量來生成雜訊信號。PNS的能量信號用noise_nrg來表示,如果使用了PNS,則能量信號將會代替各自的尺度因子來傳送。雜訊能量編碼同尺度因子一樣,採用差分編碼的方式。第一個值同樣為全局增益值。它同強度立體聲位置值及尺度因子交替地放在一起,但對差分解碼來說又彼此忽略。即下一個雜訊能量值以上一個雜訊能量值而不是強度立體聲位置或尺度因子為標准差分解碼。隨機能量將會在一個尺度因子帶內產生noise_nrg所計算出的平均能量分布。此項技術只有在MPEG-4 AAC中才會使用。

6.瞬時雜訊整形(TNS)
這項神奇的技術可以通過在頻率域上的預測,來修整時域上的量化噪音的分布。在一
些特殊的語音和劇烈變化信號的量化上,TNS技術對音質的提高貢獻巨大!TNS瞬態雜訊整形用於控制一個轉換窗口內的瞬時雜訊形態。它是用一個對單個通道的濾波過程來實現的。傳統的變換編碼方案常常遇到信號在時域變化非常劇烈的問題,特別是語音信號,這個問題是因為量化後的雜訊分布雖然在頻率域上得到控制,但在時域上卻以一個常數分布在一個轉換塊內。如果這種塊中信號變化得很劇烈卻又不轉向一個短塊去,那這個常數分布的雜訊將會被聽到。TNS的原理利用了時域和頻域的二元性和LPC(線性預測編碼)的時頻對稱性,即在其中的任意一個域上做編碼與在另一域上做預測編碼等效,也就是說,在一個域內做預測編碼可以在另一域內增加其解析度。量化雜訊產生是在頻域產生的,降低了時域的解析度,故在這里是在頻域上做預測編碼。在AACplus中,由於基於AAC profile LC,故TNS的濾波器階數被限制在 12階以內。

7.反離散餘弦變換(IMDCT)
將音頻數據從頻域轉換到時域的過程主要是由將頻域數據填入一組IMDCT濾波器來實現的。在進行IMDCT變換後,輸出數值經過加窗,疊加,最後得到時域數值。

8.頻段復制(SBR)
簡要敘述,音樂的主要頻譜集中在低頻段,高頻段幅度很小,但很重要,決定了
音質。如果對整個頻段編碼,若是為了保護高頻就會造成低頻段編碼過細以致文件巨大;若是保存了低頻的主要成分而失去高頻成分就會喪失音質。SBR把頻譜切割開來,低頻單獨編碼保存主要成分,高頻單獨放大編碼保存音質,「統籌兼顧」了,在減少文件大小的情況下還保存了
音質,完美的化解這一矛盾。

9.參數立體聲(PS)
對於之前的立體聲文件來說,其文件大小是單聲道的兩倍,但是兩個聲道的聲音存在
某種相似性,根據香農信息熵編碼定理,相關性應該被去掉才能減小文件大小。所以PS技術存儲了一個聲道的全部信息,之後,用很少的位元組當作參數來描述另一個聲道和它不同的地方。

❺ 怎樣從音音頻號中採集節拍信號

音頻信號採集

音頻信號採集

TI公司DSP晶元TMS320V

C5402具有獨特的6匯流排 哈佛結構,使其能夠6條流水線同時工作,工作頻率達到100MHz。利用VC5402的2個多通道緩沖串列口(McBSP0和McBSP1)來實現與 AIC23的無縫連接。VC5402的多通道帶緩沖的串列口在標准串口的基礎上加了一個2K的緩沖區。每次串口發送數據時,CPU自動將發送緩沖中的數據 送出;而當接收數據時,CPU自動將收到的數據寫入接收緩存。在自動緩沖方式下,不需每傳送一個字就發一次中斷,而是每通過一次緩沖器的邊界,才產生中斷 至CPU,從而減少頻繁中斷對CPU的影響。
音頻晶元採用TLV320 AIC23,它是TI公司的一款高性能立體聲音頻A/D,D/A放大電路。AIC23的模數轉換和數模轉換部件高度集成在晶元內部,採用了先進的過采樣技 術。AIC23的外部硬體介面分為模擬口和數字口。模擬口是用來輸入輸出音頻信號的,支持線路輸入和麥克風輸入;有兩組數字介面,其一是由/CS、 SDIN、SCLK和MODE構成的數字控制介面。AIC23是一塊可編程的音頻晶元,通過數字控制口將晶元的控制字寫入AIC23內部的寄存器,如采樣 率設置,工作方式設置等,共有12個寄存器。音頻控制口與DSP的通信主要由多通道緩沖串列口McBSP1來實現。

AIC23通過數字音頻口與DSP的McBSP0完成數據的通信,DSP做主 機,AIC23做從機。主機提供發送時鍾信號BCLKX0和發送幀同步信號BFSX0。在這種工作方式下,接收時種信號BCLKR0和接收幀同步信號 BFSR0實際上都是由主機提供的。圖1是AIC23與VC5402的介面連接。

AIC23的數字音頻介面支持S(通用音頓格式)模式,也支持DSP模式(專與TIDSP連接模式),在此採用DSP模式。DSP模式工作時,它的幀寬度可以為一個bit長。

圖2是音頻信號採集的具體電路圖。

電路的設計和布線是信號採集過程中一個很重要的環節,它的效果直接關繫到後期信號處理的 質量。對於DSP達類高速器件,外部晶體經過內部的PLL倍頻以後可達上百兆。這就要求信號線走等長線和繪制多層電路板來消除電磁干擾和信號的反射。在兩 層板的前提下,可以採取頂層與底層走交叉線、盡量加寬電源線和地線的寬度、電源線成"樹杈型"、模擬區和數字區分開等原則,可以達到比較好的效果。

音頻AGC演算法的實現

AGC演算法

使放大電路的增益隨信號強度的變化而自動調整的控制方法,就是AGC-自動增益控制。實現AGC可以是硬體電路,即AGC閉環電子電路,也可以是軟體演算法。本文主要討論用軟體演算法來實現音頻信號的AGC。

音頻AGC是音頻自動增益控制演算法,更為准確的說是峰值自動增益控制演算法,是一種根據輸 入音頻信號水平自動動態地調整增益的機制。當音量(無論是捕捉到的音量還是再現的音量)超過某一門限值,信號就會被限幅。限幅指的是音頻設備的輸出不再隨 著輸入而變化,輸出實質上變成了最大音量位置上的一條水平線;當檢測到音頻增益達到了某一門限時,它會自動減小增益來避免限幅的發生。另一方面,如果捕捉 到的音量太低時,系統將自動提高增益。當然,增益的調整不會使音量超過用戶在調節向導中設置的值。圖3是音頻AGC演算法的結構框圖。

AGC演算法的實現過程

首先從串口獲取音頻數據,它是16位的整型數,一般來說,這些數都是比較小的,通過 AGC演算法將輸入的音頻數據投影在一個固定區間內,從而使得不論輸入的數據點數值大小都會等比例地向這個空間映射。一方面將獲得的音頻數據最大值與原來的 峰值進行比較,如果有新的峰值出現就計算新的增益系數;另一方面在一定的時間周期內獲取一個新的峰值,這個峰值就具有檢測性能,又與原峰值比較,然後就計 算新的增益系數。這個增益系數是相對穩定的。當音量加大時,信號峰值會自動增加,從而增益系數自動下降;當音量減小時,新的峰值會減小並且取代原來的峰 值,從而使峰值下降,使增益系數上升。最後輸出的數據乘以新增益系數後映射到音頻信號輸入的投影區間內。

圖4是音頻信號AGC演算法的程序流程圖。

AGC_Coff是初始增益系數,初始值為1;maxAGC_in是增益峰值,初始值為0;time是采樣點計數,門限值為4096;AGC_in是新的音頻數據,MAXArrIn是新的音頻增益峰值;映射區間【-20000,20000】。

整個系統的軟體部分為5人模塊。系統主函數main( )、CMD文件、中斷向量表、DSP5402頭文件和專為c語言開發的庫函數rtdx.lib。其中主函數部分是核心,主要包括:DSP器件初始化、 MCBSP1初始化、MCBSP0初始化、AIC23初始化(內部12個可編程寄存器設置)及演算法程序等。

在CCS2.0集成開發環境下,採用*.c語言和*.asm語言

相結合的方式編寫程序。將編寫的程序*.c、*.asm和鏈接程序*.cmd文件編譯鏈接後生成執行目標文件*.out,通過模擬器將執行目標文件*.out下載到系統板上,經過調試、編譯並運行,以音樂作為音頻信號源輸入到系統板上。

❻ 音頻演算法入門-傅里葉變換

    上一篇文章中講了一個時域處理的演算法wsola,接下來會學習頻域處理演算法,在這之前必須得對頻域有所了解,這就不得不提傅里葉變換了,本文的目的是讓大家學會用傅里葉變換公式和傅里葉逆變換公式進行計算。數學公式是人們對世界中的現象的描述,我們學習數學公式也不該只停留在使用公式來解決問題的層次,得明白公式到底在描述什麼現象,從這些天才數學家的角度來看世界。懂的地方可跳過。項目地址在文章末尾給出。

   我直接說結論,傅里葉級數公式包含了傅里葉變換和傅里葉逆變換(不嚴謹的說就是這么回事)。
    先簡單說下具體關系,法國數學家傅里葉發現,任何周期函數都可以用正弦函數和餘弦函數構成的無窮級數來表示,這種表示方式就是傅里葉級數。假如有個波形比較復雜的周期函數,那麼找出能用來構成這個周期函數的正弦函數和餘弦函數的頻率的方法就叫做傅里葉變換,用這些頻率的正弦函數和餘弦函數疊加起來表示這個周期函數的方法就叫做傅里葉逆變換。
    再從公式中看下他們的關系,首先介紹傅里葉級數到底是什麼,首先級數是指將數列的項依次用加號連接起來的函數。這么說可能大家還不理解,舉個例子:e^x=1+x/1!+x^2/2!+...x^n/n!....,等號左邊是指數函數,等號右邊就是級數。傅里葉級數公式如下:

    我們主要看這個指數形式的傅里葉級數公式,把求和符號去掉,展開一下就是f(t)=Fa*e^jaω0t+Fb*e^jbω0t+Fc*e^jcω0t+Fd*e^jdω0.....。現在看下面的周期函數疊加效果圖,圖中顯示的是3個周期函數分別在坐標軸(橫軸時間,縱軸幅度)的圖像,寫成傅里葉級數形式就是f(t)=fa(t)+fb(t)+0+0....,這就是傅里葉級數公式要描述的現象。其中Fa*e^jaω0t=fa(t),Fb*e^jbω0t=fb(t),Fc*e^jcω0t=0....。

    看下圖的傅里葉變換和逆變換公式,你會發現傅里葉逆變換公式和傅里葉級數公式極其相似,而傅里葉級數系數公式Fn又和傅里葉變換公式極其相似。所以對一個周期函數進行傅里葉級數展開的過程可以認為是先做傅里葉變換再做傅里葉逆變換的過程。

    上圖就是傅里葉變換公式也叫連續傅里葉變換公式,有個很重要的事情,就是傅里葉變換公式和逆變換公式一定要一起給出,不然就會讓人誤解,你們在網上會看到各種各樣的寫法,但這些寫法都是對的,常見的如下圖所示。

    為了方便後面的講解我把角頻率ω換成2πf,如上圖所示,ω是希臘字母讀作Omega,大寫是Ω,小寫是ω,以後這兩個字母會經常看到,都是等於2πf。不要和電學中的電阻單位搞混了,要明白字母只不過是一個符號而已,在不同學科領域都是混著用的,只要不和自己公式中其他字母沖突就行,例如上圖傅里葉變換公式中的j其實就是虛數單位i,一般時候我們會把虛數單位寫成i,但因為傅立葉變換經常用於電學解決一些問題,為了不和電流符號i混淆,所以公式就把i寫成j 。
    要想了解傅里葉變換公式,首先要了解歐拉公式e^ix=cosx+isinx在圖像中的含義。以實部的值cosx作為橫坐標值,虛部sinx的值作為縱坐標值,x的取值從負無窮到正無窮,畫出所有的e^ix點後,你會發現這些點會形成一個周期為2π的圓。如下圖1所示(如果不理解,建議看3Blue1Brown的視頻,視頻連接:https://www.bilibili.com/video/BV1pW411J7s8)

    所以歐拉公式e^ix其實就是隨著x的增大而在坐標繫上逆時針畫圓的過程,那麼e^-ix就表示順時針畫圓,e^-i2πx就表示畫圓的速度提高2π倍,也就是說x從0到1的過程就是順時針畫出一個完整圓的過程(當然x從1到2或者2到3等等,都能畫出一個完整的圓),把x換成t後,e^-i2πt表示每秒都會順時針畫出一個圓。e^-i2πft表示每秒都會順時針畫出f個圓。f(t)表示t時刻的振幅,f(t)函數畫出來就是時域波形圖。f(t)*e^-i2πft表示每經過1秒會順時針畫出f個圓,並在畫圓的同時,t時刻的圓半徑要乘上t時刻的振幅,其實就是以每秒的音頻振幅數據繞f圈的速度進行旋轉纏繞(為了方便理解,沒有用復雜的音頻數據,用的是一個頻率為3的正弦波音頻做的實驗,請看下圖2,圖的上半部分是時域波形圖,圖的左下角是f等於0.4的時候,用公式f(t)*e^-i2πft在實部和虛部構成的坐標系畫的圖,圖的右下角是頻譜圖,頻譜圖的橫坐標是頻率,縱坐標是振幅,振幅的值就是左下角圖中數據形成的圖案的質心(圖中的紅點)到坐標系原點的距離的2倍)。當改變f的值,你會發現數據大多數時候是和我們想的一樣,以坐標系原點為圓心環繞著,也就是振幅一直都是0,但是當f的值,也就每秒的圈數等於該音頻數據的頻率時,你會發現一個神奇的現象,那就是所有的數據會在實部或虛部坐標軸的一側形成一個圓(如下圖3所示,如此一來就知道這段音頻數據包含了一個頻率為3振幅為0.5的正弦波)。所以將多個正弦波疊加的音頻數據用傅里葉公式,f從負無窮到正無窮遍歷一遍,就可以把這個音頻數據里包含的正弦波都一一找出來。(如果不理解,建議看3Blue1Brown的視頻,視頻連接:https://www.bilibili.com/video/BV1pW411J7s8)

    平時我們說的對音頻進行傅里葉變換處理,其實說的是短時離散傅里葉變換。短時離散傅里葉變換的公式(也可以直接叫做離散傅里葉變換公式)如下。

    下面將教大家如何理解這個公式。上面說的連續傅里葉變換公式中有兩個原因導致我們無法使用,第一點要求是音頻數據的時間從負無窮到正無窮,第二點要求是任意時間t都要有幅度值x(t)才能代入公式進行計算。所以為了解決這兩個問題,把公式變為短時且離散的傅里葉變換公式,這個公式可以把一段時間(時間假設為Ts秒)的離散音頻數據(有N個采樣數據)進行傅里葉變換。你可以把離散傅里葉變換公式理解成連續傅里葉變換的變形,最重要的一點是連續傅里葉變換公式的f和離散傅里葉變換公式的k不是一個意思,他們的關系是k=f*Ts。所以離散傅里葉變換公式也可以寫成F(f)=1/n*∑f(t)*e^-j2πf*Ts*n/N,其中的Ts*n/N對應的就是連續傅里葉變換公式的t,只不過這個t沒辦法取任意時間了,t的取值也就隨著n的取值成為了離散的時間點,所以前面的系數由1/2π變為1/N。這樣這兩個公式就對應起來了。下面將進一步詳細介紹這個公式。
    上一段說了k=f*Ts,這段我來解釋下為什麼,其實離散傅里葉變換公式中k表示的是這段Ts秒的音頻數據環繞坐標系原點的圈數,所以k並不是連續傅里葉變換公式里的頻率f,而頻率f指的是1秒鍾震盪的次數,在這個公式中頻率f也對應著1秒的音頻數據環繞的圈數,所以真正的頻率f=k/Ts。
    有人可能會好奇,那為什麼不把離散傅里葉變換公式的自變數k換成f呢,這樣不是更好理解嗎?是會更好理解,但是沒有必要,用f的話還要做一次無用的換算。因為采樣點只有N個的原因,k的取值范圍就被限制住了,k的取值范圍只能是0~N-1的整數,這也是為什麼用k來做自變數而不是用f的原因。
    還有人可能會好奇,傅里葉逆變換到底是怎麼把頻域的信息還原回時域的,其實公式計算出來的F(k)是一個復數,這個復數包含了這個頻率的周期函數的振幅和相位的信息,假設F(k)=a+ib,,F(k)的模|F(k)|=(a^2+b^2)^1/2,頻率f=k/Ts時的振幅為|F(k)|*2(因為求出來的值相當於圓心,但實際上振幅是圓離圓心最遠點到坐標原點的距離,所以要乘2),頻率f=k/Ts時的相位為arctan(b/a)。所以如果你知道一個周期函數包含了哪些頻率的周期函數,並且你這到這些周期函數的振幅和相位,你就可以像下圖一樣把fa(t)和fb(t)疊加在一起還原回f(t)。傅里葉逆變換的做法略有不同,但意思就是這么個意思,理解了離散傅里葉變換公式的計算,逆變換其實也是差不多代入數值計算就是了。(如果不理解怎麼用離散傅里葉變換公式計算,建議看視頻,視頻里有離散傅里葉變換完整的計算過程,視頻連接:https://www.hu.com/zvideo/1276595628009377792)

快速傅里葉變換推薦看下面兩個視頻
https://www.bilibili.com/video/BV1za411F76U
https://www.bilibili.com/video/BV1Jh411d7CN
下面是我用java實現的離散傅里葉變換及逆變換和快速傅里葉變換及逆變換,從他們的運行時間就可以看出來快速傅里葉變換快得多。(學完快速傅里葉變換再想想頻譜為何Y軸對稱?為何N/2對稱?)

熱點內容
海量數據如何存儲的 發布:2025-07-29 13:49:56 瀏覽:34
linux安裝依賴包 發布:2025-07-29 13:49:46 瀏覽:294
怎樣賣腳本 發布:2025-07-29 13:34:31 瀏覽:312
安卓視頻助手哪個軟體好 發布:2025-07-29 13:25:23 瀏覽:125
家用寬頻搭建伺服器有用嗎 發布:2025-07-29 13:16:12 瀏覽:806
微愛安卓聊天記錄在哪裡 發布:2025-07-29 13:16:06 瀏覽:585
ins特效安卓手機哪裡有 發布:2025-07-29 13:10:28 瀏覽:494
最好演算法 發布:2025-07-29 13:10:23 瀏覽:336
sql創建表視圖 發布:2025-07-29 13:00:15 瀏覽:750
cp並創建文件夾 發布:2025-07-29 13:00:13 瀏覽:921