arctan查表法 DSP正弦波查表法原理

2021-10-13 01:45:16 字數 1264 閱讀 6344

為取樣頻率;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處理能力的相當大的一部分。本章介用遞推數列算正弦波的方法,先介紹原理,推導出遞推公式,然後用浮點小數實現計算,再用定點小數進...