AGC演算法分析

2021-07-02 19:17:26 字數 1040 閱讀 1309

threshold = thresholdvar

gain = gainvar

slope = (1-(1/ratiovar))

attack_coeff = 1-(math.exp(-1*blocksize/(0.001*attacktimevar*fs)))

decay_coeff = 1-(math.exp(-1*blocksize/(0.001*decaytimevar*fs)))

smoothattack = 1-(math.exp(-1/(0.001*attacktimevar*fs)))

smoothdecay = 1-(math.exp(-1/(0.001*decaytimevar*fs)))

雜訊門(noise-gate)

現場演出或錄音時,經常多隻傳聲器同時使用。

未演出或錄音的每只傳聲器不斷拾取環境雜訊,為降低周圍環境雜訊,

系統設定乙個電平門限,高於門限值得電平訊號正常放大,

低於電平值得門限電平輸入訊號電平降低,這種器件叫雜訊門

agc思路分析

前提:   64點取樣

1.已有agc演算法,但是不夠完善,對於閥值以下的電平也會進行放大,因此會產生雜訊

這個演算法的思路是

為了得到乙個放大係數,64點先做rms,再轉db,得到db後*(-1),因為rms(正數)越大,-(負)rms越小, -rms+offset(偏置電平,防止係數太小 我取的-20db) 之後db轉amp,得到這個係數後就能進行scale縮放輸出

精華之處://  offset/20 = rms*amp

2.有雜訊門演算法,ok的,能成功對閥值以下的電平進行抑制

現在做乙個agc 對閥值一下的電平進行雜訊門抑制 ,對閥值以上的電平做agc演算法,自動控制閥值以上的電平

64點取樣,先進行雜訊門的閥值電平判斷,如果高於閥值,對原聲做agc演算法

如果低於閥值,對原聲做雜訊門演算法(輸出0)  ok

好,下面我要去寫演算法了

為什麼不經過雜訊門後再agc輸出

因為如果聲音小於閥值,雜訊門輸出0 而agc會對0進行二次放大

音訊自動增益 AGC

當有對語音的響度進行調整的需要時,就要做語音自動增益 agc 演算法處理,當你在跟遠方的朋友進行 語音交流時,背後都有這個演算法在默默的工作,如大名鼎鼎的qq聊天軟體 做語音起家的yy等,語音聊天時都會用到這個演算法。最簡單的硬性增益處理是對所有音訊取樣乘上乙個增益因子,它也等同於在頻域每個頻率都同...

AGC047 簡要題解

注意精度問題即可 建顆 trie 樹搞一搞即可 考慮用原根解決此問題,乘法變為了加法,因此用桶記錄一下 fft 即可 觀察題目性質容易發現樹高事 log n 的,即使是暴力列舉第一棵樹最淺的點複雜度也正確。因此就暴力列舉,那麼一條合法的路徑肯定是分別走向兩個兒子的,考慮從左兒子走到第二棵樹每個節點的...

AGC049 題解 總結

agc仍舊是那麼毒瘤 gmh77 幹了1h多都幹不出來,自閉 操作相當於 選擇某個 1 將其左移一位,如果左邊也有 1 就抵消。從左往右掃,把遇到的 t 的 1 搞個佇列,遇到的 s 的 1 就先嘗試配對佇列中第乙個,如果隊列為空就嘗試消掉前面乙個未配對的。wa了4次最後10min內交的 可以發現 ...