国产良妇出轨视频在线_国产高清无码视频在线观看_国产精品亚洲精品久久精品_国产男女猛视频在线观看网站

你的位置:首頁 > 互連技術(shù) > 正文

如何在ADI DSP中設(shè)計一個合理的混響?

發(fā)布時間:2024-01-31 責(zé)任編輯:lina

【導(dǎo)讀】本文圍繞對混響的需求、原理以及實現(xiàn)流程展開詳細(xì)描述,一方面可以幫助大家了解混響效果的一些基本知識,另一方面工程師可以參考這些模型用到自己的產(chǎn)品上,從而設(shè)計出比較貼合自身產(chǎn)品的算法。


摘要


本文圍繞對混響的需求、原理以及實現(xiàn)流程展開詳細(xì)描述,一方面可以幫助大家了解混響效果的一些基本知識,另一方面工程師可以參考這些模型用到自己的產(chǎn)品上,從而設(shè)計出比較貼合自身產(chǎn)品的算法。

DSP混響的需求來源

聲波在室內(nèi)傳播時,會被墻壁、天花板、地板等障礙物反射,每經(jīng)過反射一次都會被障礙物吸收一些。當(dāng)聲源停止發(fā)聲后,聲波在室內(nèi)要經(jīng)過多次反射和吸收,最后才消失。因此我們可以感覺到,當(dāng)聲源停止發(fā)聲后還有若干個聲波混合持續(xù)一段時間,即室內(nèi)聲源停止發(fā)聲后仍然存在的聲延續(xù)現(xiàn)象,這種現(xiàn)象叫做混響,這段時間叫做混響時間。

在演奏表演時,為了獲取一個高質(zhì)量的音樂效果,混響是極為重要的組成部分。隨著目前聲學(xué)相關(guān)設(shè)備的需求量越來越高,大家對音樂中的聲音質(zhì)感要求也越來越高。在混響上主要的實現(xiàn)方式包括物理模擬、采樣混響以及人工混響三種方式,物理模擬因為計算量巨大,在實際場景落地比較困難,用的極少。采樣混響實現(xiàn)簡單,但是靈活度不夠,種類也比較少。而人工混響計算量小、實現(xiàn)簡單,所以在實際應(yīng)用上比較廣泛,當(dāng)然缺點就是不如前兩種逼真,但是支持普通的調(diào)音、混音、演奏需求是完全沒有問題的。下面將介紹混響在DSP中的概念、應(yīng)用及其實現(xiàn)。

DSP混響的定義及優(yōu)點

DSP混響(Digital Signal Processing Reverb)是一種使用數(shù)字信號處理技術(shù)(DSP)來實現(xiàn)混響效果的技術(shù)?;祉懯侵嘎暡ㄔ谑覂?nèi)或其他封閉空間內(nèi)反射、散射和衰減的現(xiàn)象,它可以使聲音更具空間感、深度和寬度。在音頻處理和音樂制作中,混響效果非常重要,它可以讓聲音更加自然、豐富和立體。它具有以下幾種優(yōu)點:

? 靈活性:可輕松調(diào)整改變混響參數(shù),如延遲時間、衰減率、房間大小等,適應(yīng)不同應(yīng)用場景。
? 實時處理:通過實時處理技術(shù),對音頻信號進(jìn)行實時處理,從而實現(xiàn)混響效果。
? 高質(zhì)量:可提供高質(zhì)量的混響效果,使聲音更加自然和真實。
? 節(jié)省資源:可節(jié)省寶貴的音頻處理資源,如CPU、內(nèi)存等。

總之,DSP混響在音樂制作、錄音、廣播、游戲、電影等領(lǐng)域有著廣泛的應(yīng)用,通過DSP混響技術(shù),我們可以創(chuàng)造出更加豐富、立體和自然的聲音效果。 說到混響,我們還需要知道的一個概念就是回聲。回聲是在一個方向的延遲反射,而混響則是在多個方向的多次延遲反射。在軟件混響原理中我們能看到的基本上分為以下三種類型:

? 回聲類:以多回聲構(gòu)建的echos系統(tǒng),回聲數(shù)量由自身根據(jù)具體類型進(jìn)行控制。
? 脈沖響應(yīng)類(IR 類):多見于現(xiàn)場采集各種模型,通過與后音源做卷積來得到較好的輸出效果。
? Schroeder & Moorer類:它是一種混合模型結(jié)構(gòu)。

對于目前市面上主流的一些混響種類,比如房間混響、大廳混響、板式混響、教堂混響、彈簧混響等等,其實現(xiàn)原理都可以用上面三類方式來進(jìn)行實現(xiàn)。目前我們常見這些混響種類,在調(diào)音師或者混音師的工程里,主要用于提升特殊效果,增加音樂的氛圍感、空間感和立體感。

ECHO類混響系統(tǒng)

談及回聲類混響系統(tǒng),這里不得不提到Comb Filter混響器,簡單理解就是聲音在空間中不斷碰撞并產(chǎn)生回聲的一個過程。同理,在播放器端,我們需要播放的其實就是一個音源,以及它被無數(shù)次后續(xù)回聲追加的一個過程,簡稱梳狀濾波混響器。這里我們需要建立一個數(shù)學(xué)模型,下圖(圖1)為一個簡單的房間混響模型表示:


如何在ADI DSP中設(shè)計一個合理的混響?圖1 房間聲音模型


從圖中可以看出,房子的反射效果受房間大小以及反射強度影響。如果房間足夠大、吸音材料非常好,就會導(dǎo)致房間內(nèi)基本上沒什么反射。反之反射就會比較強烈。在房間建筑學(xué)設(shè)計中,比較多通過塞賓公式來進(jìn)行估算,而混響強度的標(biāo)準(zhǔn)一般以RT60為主。參考該物理模型,我們在梳狀濾波器的設(shè)計過程中就可以進(jìn)行一系列的公式推導(dǎo),例如:

假設(shè)說話者說出的信號是x[n],聽者某時刻接收到的信號是y[n],那么y[n]包含那些內(nèi)容呢?

y[n] 應(yīng)該是 x[n] + 反射1 + 反射2 .......

反射怎么表示?它應(yīng)該是x[n] 的延時。我們假設(shè)延時m ,那么反射1 應(yīng)該是 x[n-m] ,但是我們還應(yīng)該考慮反射時的衰減,也就是上面所說的房子的反射效果。假設(shè)衰減是a,則反射1 應(yīng)該表示成 x[n -m]*a

所以,y[n] = x[n] + a*x[n-m] + a^2*x[n- 2m] + a^3*x[n- 3m]......

簡化下求和,利用差分或者z變化可以得到差分方程:y[n] = ay[n-m] + x[n]

通過以上公式推導(dǎo),可以得到如下圖(圖2)所示的該模型結(jié)構(gòu)圖以及時域和頻域表現(xiàn)。


如何在ADI DSP中設(shè)計一個合理的混響?圖2 模型塊狀圖


在時域上,作為一個等比例(反饋衰減系數(shù)取決于自身設(shè)計的衰減公式)衰減模型,其呈現(xiàn)一種周期性遞減規(guī)律,如下圖(圖3)所示:


如何在ADI DSP中設(shè)計一個合理的混響?圖3 單位沖擊響應(yīng)隨時間的變化


在頻域上,系統(tǒng)對頻率具有周期響應(yīng),且具備最大值與最小值,這樣我們將會得到像梳子一樣的波形圖,如下圖(圖4)所示,因此也被稱為梳狀濾波器。


如何在ADI DSP中設(shè)計一個合理的混響?圖4 頻譜以及相位表現(xiàn)圖


由此,我們就可以根據(jù)這樣一個模型去設(shè)計一個簡單的算法,在DSP芯片中,它的算力不是很高,存儲空間不是很大,但有時候在我們需要選取一點點回聲類混響系統(tǒng)里比較好用的產(chǎn)品時,例如一些輕量級的低功耗電子產(chǎn)品,需要有一點混響的鑲邊效果,我們就可以用這種方式去實現(xiàn)。而對于另外那些較高標(biāo)準(zhǔn)、功耗不敏感的產(chǎn)品,我們使用以下介紹的兩種方式實現(xiàn)效果將會更好。

IR類混響系統(tǒng)

對于模擬現(xiàn)實生活的中混響,試想一下,如果我們在一個房間里面對面地交談,因為聲音在房間里面的反射是無處不在的,在開始溝通的過程中,會有最開始的一部分直達(dá)聲進(jìn)入我們的耳朵,這時它的能量是最高的。隨后通過各種各樣的反射,聲音的能量得到衰減后慢慢進(jìn)入到我們的耳朵,這個時間和能量的表現(xiàn)就像是一個個脈沖,所以在這里描述它就是脈沖響應(yīng)類的其中一種混響。那么在實現(xiàn)上,如何達(dá)到這種接近現(xiàn)實的混響效果呢?

在計算機領(lǐng)域里,我們很多時候是根據(jù)不同的混響特征來生成IR文件,也可以根據(jù)錄制等方式去獲取特定的空間混響。因為有一些混響,在算法的實現(xiàn)上十分困難,且具備一定的特異條件,但是當(dāng)我們又需要到這種混響背景的時候就需要用到它了。

在實現(xiàn)上,我們通常通過特定的IR文件和原始音源來進(jìn)行卷積運算,而卷積的計算公式和方式比較復(fù)雜,為了方便大家理解,可以想象是把輸入的信號和IR進(jìn)行乘法運算,從而達(dá)到使輸入的信號里面有IR的混響效果。

在DSP的實現(xiàn)上,類比我們經(jīng)常能夠在一些上位機軟件中看到的特征混響,這些IR文件將以各種方式存儲在我們的Flash內(nèi),并且可能具備多個model1、model2、model3等等。取特定文件出來,在DSP內(nèi)部進(jìn)行卷積運算輸出即可,這多見于一些音樂設(shè)備中特定類型的混響。

Schroeder & Moorer類混響系統(tǒng)

上文提及的ECHO類混響,在梳狀濾波器設(shè)計完畢后,會存在一些不完美的地方。其實從幅度譜以及相位譜就能看出來,幅度譜不是足夠平坦,這樣在共振峰和瞬態(tài)比較大的條件下,它所帶來的聲音表現(xiàn)著色非常嚴(yán)重,相位的變化也不恒定。因此Schroeder對混響進(jìn)行了大量的改良技術(shù),在 “Colorless” Artificial Reverberation – 1961和Natural Sounding Artificial Reverberation – 1962的2篇論文中有提到該技術(shù)。針對回波密度不夠的表現(xiàn),增加了多組梳狀濾波器的并聯(lián)組合,同時加入了全通濾波器。因為全通濾波器的頻譜就是一條直線,不對任何頻率產(chǎn)生影響,且僅僅只是附帶一些群延時的效果,這樣就可以用來實現(xiàn)消除強烈著色的效果。同時因為回聲密度的增加,將使得系統(tǒng)更加趨近于真實的效果,如下圖(圖5)所示:

如何在ADI DSP中設(shè)計一個合理的混響?圖5 真實混響模型圖


其脈沖響應(yīng)大概可以描述成如下圖(圖6)所示的圖形:


如何在ADI DSP中設(shè)計一個合理的混響?圖6 脈沖響應(yīng)模型圖


其模型塊狀圖如下圖(圖7)所示:


如何在ADI DSP中設(shè)計一個合理的混響?圖7 Schroeder脈沖響應(yīng)模型圖


從上圖模型不難看出,四個梳狀濾波器的疊加會使我們大大增加回聲密度,從而彌補了ECHO類回聲密度過于稀少的問題。在Schroeder的觀念里,每秒的回聲至少要達(dá)到1000個才能基本符合,且每個回聲的延遲不能一樣,一樣就會導(dǎo)致4個梳狀濾波器制造的回聲時域上的一致,這樣就失去其意義。做完梳狀濾波器的疊加后,通過連接2個全通濾波器做乘法運算,在進(jìn)一步增加回聲密度的同時減少金屬音。

在Comb的參數(shù)選擇上,延時的比例一般選在1:1.5,盡量選擇沒有公因數(shù)的延遲時間,有公因數(shù)會導(dǎo)致某些地方的重疊,并且合理地設(shè)計好G(衰減系數(shù))的大小,一般都是根據(jù)D值和RT60進(jìn)行計算,確保大小是在一個比較合理的范圍。在全通濾波器的選擇上,延時盡可能要低(1-5ms),增益值在0.5-0.77之間會比較合適。

Schroeder混響的算法相對而言比較簡單,而且也能達(dá)到一個非常不錯的效果。但是隨著后來的發(fā)展,Schroeder算法也存在一些可以改進(jìn)的點,例如上圖(圖6)的預(yù)梳理和預(yù)延時模塊,如果想獲取更加逼真的效果,在早期反射其實不能夠完全按照Schroeder模型進(jìn)行設(shè)計,要增加APF以及Pre-delay模塊,或者可以考慮是否可以增加更加多的Comb來獲取更多的回聲密度、后端的APF是否可以嵌套使用等等。在Schroeder的基礎(chǔ)之上,Moorer的數(shù)字混響模型也就誕生了,下圖(圖8)為Moorer脈沖響應(yīng)模型圖:


如何在ADI DSP中設(shè)計一個合理的混響?圖8 Moorer脈沖響應(yīng)模型圖


Moorer算法模型大概將一個混響分成了三個階段:直達(dá)聲、早期混響、晚期混響。早期混響通過增加前級反饋和FIR來模擬,同時增加低通濾波器來模擬高通在空氣中的衰減效果,后端增加到6個Comb組以及APF的嵌套使用。

隨著目前大家對音頻相關(guān)產(chǎn)品的需求增加,混響對于音頻設(shè)備來說已經(jīng)成為一種基本需求。那么在混響中又有哪些參數(shù)調(diào)整?在ADI的DSP中我們該如何選擇DSP去設(shè)計一套合理的算法?接下來將對混響的具體參數(shù)調(diào)整以及選擇ADI的DSP設(shè)計合理算法進(jìn)行深入解析。

混響的常見參數(shù)

目前做一個專業(yè)級的混響需要設(shè)置許多的參數(shù),有些參數(shù)是必備的,而有些是特定的需求下慢慢增加起的。專業(yè)的效果器一般包含如下圖(圖9)的一些參數(shù):


如何在ADI DSP中設(shè)計一個合理的混響?圖9 混響的相關(guān)參數(shù)


? 混響時間:能夠逼真地模擬自然混響的數(shù)碼混響器上都有一套復(fù)雜的程序,其中雖然有很多技術(shù)參數(shù)可調(diào),然而對這些技術(shù)參數(shù)的調(diào)整都不會比原有的效果更為自然,尤其是混響時間(取決于預(yù)延遲時間,以及衰減速率和收斂的判定)。

? 預(yù)延遲時間:在混響效果器上的眾多參數(shù)中,預(yù)延遲時間(Predelay)是一個比較重要的點。所謂的預(yù)延遲時間,指的是達(dá)到人耳的直達(dá)聲和第一次反射聲之間的時間間隔。在混音中,預(yù)延遲時間的選擇是與我們的基準(zhǔn)時間有著一定的關(guān)聯(lián)性的。而基準(zhǔn)時間的計算方式一般來說就是拿60秒除以音樂BPM的值(取決于直達(dá)聲之后做的延遲時間以及FIR的時間)。

? 高頻滾降:此項參數(shù)用于模擬自然混響當(dāng)中,空氣對高頻的吸收效應(yīng),以產(chǎn)生較為自然的混響效果。一般高頻混降的可調(diào)范圍為0.1~1.0。此值較高時,混響效果也較接近自然混響;此值較低時,混響效果則較清澈(取決于低通濾波器的階數(shù)以及截至頻率的設(shè)計)。

? 擴散度:此項參數(shù)可調(diào)整混響聲陣密度的增長速度,其可調(diào)范圍為0~10,其值較高時,混響效果比較豐厚、溫暖;其值較低時,混響效果則較空曠、冷僻(取決于Comb Filter的D值選取以及回聲密度遞增數(shù)值)。

? 聲陣密度:此項參數(shù)可調(diào)整聲陣的密度,其值較高時,混響效果較為溫暖,但有明顯的聲染色;其值較低時,混響效果較深邃,切聲染色也較弱(取決于Comb Filter的數(shù)量)。

? 頻率調(diào)制:這是一項技術(shù)性的參數(shù),因為電子混響的聲陣密度比自然混響稀疏,為了使混響的聲音比較平滑、連貫,需要對混響聲陣列的延時時間進(jìn)行調(diào)制。此項技術(shù)可以有效地消除延時聲陣列的段裂聲,可以增加混響聲的柔和感(取決于Comb Filter的延時時間)。

? 混響類型:不同房間的自然混響聲陣列差別也較大,而這種差別也不是一兩項參數(shù)就能表現(xiàn)的。在數(shù)碼混響器當(dāng)中,不同的自然混響需要不同的程序。其可選項一般有小廳(S-Hall)、大廳(L-Hall)、房間(Room)、隨機(Random)、反混響(Reverse)、鋼板(Plate)、彈簧(Spring)等。其中小廳、大廳房間混響屬自然混響效果;鋼板、彈簧混響則可以模擬早期機械式混響的處理效果。

? 干濕比:干聲信號和混響信號的比例,調(diào)節(jié)直達(dá)聲以及混響信號的分量比重。

從這些后續(xù)發(fā)展出來的參數(shù)不難看出,涉及的調(diào)節(jié)選擇變得越來越多,那么對于設(shè)計者來講如何挑選合適的參數(shù)和類型去搭建自己想要的產(chǎn)品就變得非常重要。

DSP和混響類型的選擇

在實際的生產(chǎn)應(yīng)用中,選擇混響的類型,并不是直接去選一個最完善的類型就好了。實際上很多時候應(yīng)用達(dá)不到這個條件,越完善的混響類型意味著對DSP的內(nèi)存空間的需求以及算力的大小都是有需求的,然而很多成本預(yù)算不是那么充足,或者工作環(huán)境對功耗等等方面都有需求的產(chǎn)品,我們是無法選擇那么一個比較高復(fù)雜度的混響。

舉個很簡單的例子,比如A客戶需要做一個輕量級的吉他拾音器,拾音器主要的目的就是拾音,當(dāng)然為了豐富一些效果,可能我們需要調(diào)節(jié)高中低頻的EQ,加一個混響,在這個時候,選擇一個ECHO類的混響要比選擇MOORER類的混響好太多。從控制成本和功耗的角度上來講,雖然ECHO類并不如Moorer類的好,但是在演奏中已經(jīng)夠用,復(fù)雜的可以通過拾取后,送到效果器或者功放中去實現(xiàn)。

在選擇時,建議都要根據(jù)自己的產(chǎn)品類型合理地從成本、封裝體積大小,以及功耗上選擇最為合適的產(chǎn)品。

ADI DSP在ECHO類算法的基本實現(xiàn)

眾所周知,ADI在音頻的DSP上相當(dāng)有競爭力,從其Sigma到Sharc 類的DSP均用到了各類的音頻電子產(chǎn)品中。如下圖(圖10)所示為ADI SigmaDSP產(chǎn)品選型對比表:


如何在ADI DSP中設(shè)計一個合理的混響?圖10  SigmaDSP的產(chǎn)品選型對比表


下圖(圖11)為ADI Sharc DSP產(chǎn)品選型對比表:


如何在ADI DSP中設(shè)計一個合理的混響?圖11 SharcDSP的產(chǎn)品選型對比表


ADI SigmaDSP的產(chǎn)品是定點的數(shù)字信號處理器,而SharcDSP即全浮點的數(shù)字信號處理器。全浮點的DSP可以處理復(fù)雜度比較高的混響,SigmaDSP一般用于處理一些簡單一點的混響。以下將展示一些ECHO類混響在DSP上的應(yīng)用實現(xiàn),目前混響主要對內(nèi)存的空間需求是比較多的,存在著很多Delay。

在ADAU1701和ADAU1761中的實現(xiàn):


如何在ADI DSP中設(shè)計一個合理的混響?圖12  ECHO類混響在ADAU1761中的實現(xiàn)


從上圖(圖12)可以看出,直達(dá)聲直接作為干音傳到輸出端,將音源的左右通達(dá)合成一路用來減少內(nèi)存空間和算力的消耗,用三個延時線創(chuàng)造混響空間,傳到后端進(jìn)行低通濾波,實現(xiàn)高頻滾降。這樣做能夠得到一定量的混響的效果,但是回聲密度不夠,增益調(diào)節(jié)以及擴散度和頻率調(diào)制是無法實現(xiàn)的,適合一些輕量化的產(chǎn)品應(yīng)用。我們在SharcDSP中一般直接通過代碼來實現(xiàn),例如下方的ECHO類回聲的實現(xiàn):

創(chuàng)建一個DSP混響的效果器。以下圖(13)是一個使用Python和NumPy庫實現(xiàn)的簡單DSP混響效果的示例代碼:


如何在ADI DSP中設(shè)計一個合理的混響?圖13 Python實現(xiàn)DSP混響效果(橫版)


如上圖(圖13)所示的代碼實現(xiàn)了一個基本的DSP混響效果,包括延遲線和低通濾波器。我們可以根據(jù)需要調(diào)整延遲時間和截止頻率來改變混響的效果。需要注意的是,這個示例使用了Python的NumPy庫來處理數(shù)字信號,并且需要在支持音頻播放的環(huán)境中運行(例如Jupyter notebook或Python腳本)。


如何在ADI DSP中設(shè)計一個合理的混響?圖14  ECHO類混響效果用C語言實現(xiàn)(橫版)


如上圖(圖14)所示的代碼是一個簡單的DSP混響效果實現(xiàn),它使用了C語言進(jìn)行編程。代碼主要有以下操作:

? 定義了一些常量,如采樣率、幀大小、通道數(shù)、延遲長度和衰減時間等;
? 定義了一個名為DelayBuffer的結(jié)構(gòu)體,用于實現(xiàn)延遲緩沖區(qū);
? 創(chuàng)建了一個名為create_delay_buffer的函數(shù),用于創(chuàng)建延遲緩沖區(qū);
? 定義了一個名為destroy_delay_buffer的函數(shù),用于銷毀延遲緩沖區(qū)。

在main函數(shù)中,首先創(chuàng)建了一個延遲緩沖區(qū),然后進(jìn)入了一個循環(huán),模擬了信號的輸入、處理和輸出過程。在每次循環(huán)中,信號被輸入到混響效果處理中,處理后的信號被輸出。同時,衰減時間也在不斷衰減。最后,當(dāng)延遲時間達(dá)到最大值時,循環(huán)結(jié)束,延遲緩沖區(qū)被銷毀。在我們的Sharc 平臺上,當(dāng)我們跑通Framework之后,導(dǎo)入這一部分代碼,將音頻流導(dǎo)入進(jìn)去就可以得到一個ECHO類的混響效果。

如果需要更高級好用的Schroeder & Moorer類混響系統(tǒng)時,可以通過開源框架Sox,F(xiàn)reeverb和Tonic去獲取,完整的算法會比較長,需要大家在線下去參考。

總結(jié)

本文圍繞對混響的需求、原理以及實現(xiàn)流程展開詳細(xì)描述,一方面可以幫助大家了解混響效果的一些基本知識,另一方面工程師可以參考這些模型用到自己的產(chǎn)品上,從而設(shè)計出比較貼合自身產(chǎn)品的算法。

作者:Terry Yuan 


免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進(jìn)行處理。


推薦閱讀:

用于開關(guān)模式電源的數(shù)字電源

均衡電流,實現(xiàn)車規(guī)智能驅(qū)動器的最佳性能

高可靠高邊驅(qū)動助力汽車應(yīng)用

有助于強化電網(wǎng)的電池管理技術(shù)

門極驅(qū)動正壓對功率半導(dǎo)體性能的影響


特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關(guān) 壓敏電阻 揚聲器 遙控開關(guān) 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設(shè)備 震動馬達(dá) 整流變壓器 整流二極管 整流濾波 直流電機 智能抄表
?

關(guān)閉

?

關(guān)閉