新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 使用LPC1700的IEC 60601-1-8音頻警報發生器

        使用LPC1700的IEC 60601-1-8音頻警報發生器

        作者: 時間:2010-02-08 來源:網絡 收藏
        音符發生器功能

        對于音符發生器,存在許多需要處理的數據,它們涉及到多重頻率和多重正弦波發生器。如果將與每個頻率相關的數據變量和常數組織在具有相同尺寸的矩陣中,那么就能恰好使用簡單遞歸函數來“走”過這些矩陣數據。



        音符發生器定義

        定義若干個定點和浮點常數,以及定義結構標簽和兩個矩陣。它們當中之一是結構的一個矩陣。

        算法中使用的變量和系數之結構的優點是:它允許我們在結構矩陣和頻率常數矩陣中具有類似的矩陣組織。常數頻率矩陣和算法結構矩陣之間的一一對應關系使得在初始化每個頻率時,容易使用兩個矩陣的類似索引。

        音符發生器初始化

        上文提到為了使Goertzel算法能振蕩,除了系數以外,y[-1]和y[-2]值也必須初始化。必須針對對應于每個頻率的結構變量而完成此工作。下面顯示了用于初始化的代碼。一排5個結構中的每一個被初始化,然后每一個另外的排被初始化,直到整個結構矩陣都被初始化。在這個演示應用程序中,這些計算是在復位初始化期間完成的。不過,如果你正在最優化它,可以通過事先進行這些計算而將代碼保存起來,并且將結果作為常數儲存在快速存儲器中。這是因為,如果數學程序庫需要浮點和正弦/余弦算法,那么預先計算好的初始化值則不需要。這些程序庫例行程序使用大約一半本應用程序中使用的代碼空間。系數和初始化值是通過32768(帶符號的短值)定標的。還有,系數計算不包括公式(18)中顯示的2X系數。其目的是使系數的規模保持在帶符號的短值,以最小化儲存要求。2X被包括在最終Goertzel計算中;此處,輸出的定標是通過>>14(而不是>>15)乘以2。



        多重正弦波發生、求和及DAC輸出

        一旦算法變量和系數都已經被初始化,那么,讓Goertzel計算來生成基本音符和4個諧波就變得很容易。方法是簡單地遞增通過結構矩陣中的一排,并且求五個值的和。正如上文所述,第204行包括通過>>14、而不是>>15定標到2X中的系數,而這些系數在初始化時不予考慮。



        一旦函數已經完成了矩陣排中所有5個結構的計算,相加的值就被定標、格式化、并從帶符號的值轉化為不帶符號的值,然后被送到DAC。由于這些計算是在每個25kHz定時器中斷處執行的(當音符活躍時),所以DAC輸出速率就是25 kHz。這允許使用便宜的輸出濾波器,因為相對于正在生成的最高正弦波頻率,這大約是9X的過度取樣。



        關鍵詞: 60601 1700 LPC IEC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 女性| 博白县| 徐闻县| 康定县| 凭祥市| 黄梅县| 延边| 宜良县| 青龙| 莱芜市| 农安县| 娄底市| 迁西县| 静乐县| 志丹县| 商洛市| 黑山县| 来安县| 亳州市| 新蔡县| 赣州市| 庐江县| 阿拉善右旗| 绩溪县| 抚州市| 克什克腾旗| 闽侯县| 台南县| 昌宁县| 忻城县| 建平县| 信宜市| 东阳市| 鸡东县| 浦东新区| 乌兰察布市| 漾濞| 扬中市| 久治县| 浏阳市| 龙里县|