為取樣頻率;ss
ft即為取樣間隔。
因此,要想產生乙個正弦波,
需要在每乙個取樣間隔計算
x[n]
的值,並通過數模轉換器
dacdigital-to-analog convector
)輸出。通過將
x[n]
的值以不同的幅度和不同的取樣間
隔輸出,就可以得到任意幅度、任意頻率的正弦波或余弦波。
根據上式,
x[n]
通過計算正弦函式而得。基於此,可以構造乙個查詢表,表中所列為餘
弦函式的值。
考慮到不可能把正弦函式或余弦函式的所有值都放在查詢表內,
不妨將表的大
小初設為
項。又考慮到正弦函式和余弦函式之間只有乙個
°的相移,可以將表的大
小縮減為
項。表中的第乙個值對應於
,最後乙個值對應於
°,或者說π。這樣,
表中相鄰兩點之間的間隔為
180/256=0.7031250
°,即**中的第
項是cos0
°的值,第
項是cos0.7031250
°的值,第
項是cos1.406250
°的值,以此類推,最後一項是
cos180
的值。利用該錶所能構成的波形的相位步進通常是
0.7031250
°的整數倍。
在取樣過程中,上式中的
n值在每乙個取樣間隔遞增,從而得到模擬正弦波的取樣版
本。但是,如何通過查詢余弦表的方法來產生乙個任意頻率
f的正弦波呢?由於在前面構
造的余弦函式表中,
已經包括了以
0.7031250
°為間隔的余弦函式值,
現在的問題就變成了,當n
遞增時,怎樣估計出相位
fn的值。
記錄波形的初始相位和當前相位,以得到連續相位的正弦波。如果記錄了上乙個輸出
點的相位值,
利用正弦波的頻率資訊,
就可以計算出當前輸出點的相位值,
該相位值是和幅
度值相對應的。
在此基礎上,
就可以根據相位值去查詢余弦表中相應的位置,
得到當前輸出
點的幅度值。
假設需要產生頻率為
f的正弦波,它的起始相位是
init_phase,和f
對應的相位步進為
phase_step
。相位步進的計算式為
arctan查表法 查表法
查表法是將一些事先計算好的結果,儲存在常量陣列中,執行時節省計算開銷。例如,計算位元組中位1的個數,int countbits unsigned char dat static char nbittab 256 return nbittab dat 或將位元組按位逆序,unsigned char r...
arctan查表法 arctan 函式的查表演算法
arctan 函式的查表演算法 文集庫2020 05 13 14 34 56 目標 實現反正切函式的查表演算法,精度0.5 分析 f x arctan x 函式單調但非線性,越接近原點處,斜率越大。90 比較特殊,其值為正無窮大,只要得到的正切值tana大於114.59 89.5度對應的正切值 就可...
快速計算正弦波
快速計算正弦波 在dsp運用中,經常需要產生正弦波。如果直接用c的數學函式sin,當然可以產生正弦波,但是由於sin函式本身的效率很低,產生正弦波所需要的mips就會占去dsp處理能力的相當大的一部分。本章介用遞推數列算正弦波的方法,先介紹原理,推導出遞推公式,然後用浮點小數實現計算,再用定點小數進...