中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 使用LPC1700的IEC 60601-1-8音頻警報發(fā)生器

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

        作者: 時間:2010-02-08 來源:網(wǎng)絡(luò) 收藏
        音符發(fā)生器功能

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



        音符發(fā)生器定義

        定義若干個定點和浮點常數(shù),以及定義結(jié)構(gòu)標簽和兩個矩陣。它們當中之一是結(jié)構(gòu)的一個矩陣。

        算法中使用的變量和系數(shù)之結(jié)構(gòu)的優(yōu)點是:它允許我們在結(jié)構(gòu)矩陣和頻率常數(shù)矩陣中具有類似的矩陣組織。常數(shù)頻率矩陣和算法結(jié)構(gòu)矩陣之間的一一對應(yīng)關(guān)系使得在初始化每個頻率時,容易使用兩個矩陣的類似索引。

        音符發(fā)生器初始化

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



        多重正弦波發(fā)生、求和及DAC輸出

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



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



        關(guān)鍵詞: 60601 1700 LPC IEC

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉