新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于麥克風陣列聲源定位系統的FPGA實現

        基于麥克風陣列聲源定位系統的FPGA實現

        作者: 時間:2011-05-24 來源:網絡 收藏


        2 各模塊設計實現
        2.1 FIR帶通濾波模塊
        為了消除噪聲和回聲干擾的影響,首先需要進行濾波。語音信號的帶寬是0.3~3.4 kHz,因而需要設計一個帶通濾波器濾除語音信號帶寬之外的噪聲。為了使處理過的信號相位不發生變化即保持線性相位,需要采用FIR濾波器。
        這里采用切比雪夫逼近法,由Matlab濾波器設計工具求得濾波器的各系數,乘以1024進行量化,轉化為CSD編碼以提高其運行效率,最后由Verilog代碼實現。
        2.2 半重疊漢明窗模塊
        為了保證語音信號平穩性,一幀信號的時間窗長度選為10~30 ms。而采樣器頻率為10 kHz,為了便于FFT處理選擇25.6 ms即幀長為256點。為了保證統計特征的連續性和得到更好的語音處理效果,各幀之間進行50%的重疊,即每次處理只更新12.8 ms的數據。這樣,一幀內的信號可以近似認為是平穩的。

        本文引用地址:http://www.104case.com/article/191197.htm

        f.jpg


        分幀是用可移動的有限長度窗口進行加權的方法實現,這就是用某窗函數w(n)乘以s(n),從而形成加窗的語音信號sw(n)=s(n)×w(n),其中窗函數的值存儲在內部存儲資源中。常用的窗函數有漢明窗與矩形窗,漢明窗比矩形窗的平滑效果更好,故選擇漢明窗,其表達式如式(5)所示
        g.jpg
        其中,N是幀長。
        2.3 FFT運算模塊
        由于語音信號是連續的實時采樣,為了能使傳來的語音信號連續不斷的處理,這里采用了乒乓結構,即采用兩個分別能存儲一幀數據的雙口RAM,第一個RAM在存儲新數據時,第二個RAM進行FFT運算,并存儲其結果。然后,第一個RAM進行FFT運算,并存儲其結果,第二個RAM存儲新的數據,這樣就保證了信號處理的連續性。

        h.jpg


        乒乓存儲時由倒序地址模塊產生倒序存儲地址,使RAM中存儲數據為倒序,為FFT運算做準備。為了加快運算速度,蝶形運算旋轉因子,先由Matlab軟件生成,量化為12位帶符號數,然后存儲在內部ROM里面。
        整個FFT運算單元由狀態機設計完成,共由5個狀態完成;S1狀態輸出第一個操作數地址;S2狀態得到第一個操作數,輸出第二個操作數地址;S3狀態得到第2個操作數,計算出第一個結果;S4狀態寄存第一個結果,計算出第二個結果;S5狀態寄存第二個結果,產生下一級運算地址。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盐山县| 泰安市| 浦北县| 平潭县| 武义县| 锦屏县| 横峰县| 三穗县| 禄劝| 容城县| 石城县| 永城市| 中山市| 林芝县| 亚东县| 左贡县| 内江市| 宁南县| 固始县| 土默特左旗| 怀仁县| 梨树县| 阿克陶县| 波密县| 商丘市| 苗栗县| 南靖县| 伊金霍洛旗| 安西县| 珠海市| 苏尼特左旗| 金昌市| 营口市| 汝南县| 古蔺县| 麻江县| 台北县| 根河市| 丽水市| 林州市| 灵武市|