直接數(shù)字頻率合成方法和直接數(shù)字頻率合成器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字信號(hào)處理,特別是涉及一種直接數(shù)字頻率合成方法和一種直接數(shù) 字頻率合成器。
【背景技術(shù)】
[0002] 在一些需要進(jìn)行正弦波的頻率調(diào)節(jié)的應(yīng)用中,對(duì)頻率的可調(diào)性要求很高。例如PZT 架構(gòu)的陀螺儀傳感器的共振頻率的調(diào)節(jié),其頻率的可調(diào)性要達(dá)到〇. 1赫茲以下。DDS(Direct DigitalSynthesizer,直接數(shù)字頻率合成)提供了一種以數(shù)字方式來精確控制正弦頻率的 方法。
[0003] DDS的工作原理是基于正弦波每隔2 π相角循環(huán)一次的特性,利用相位累加模塊 (Ν位)來等分0~2π相位為2Ν個(gè)單元,再根據(jù)不同的頻率要求,每隔一段時(shí)間增加一個(gè) 頻率控制字的角度到相位累加模塊中,可以由相位累加模塊輸出的相角經(jīng)正弦查表得出信 號(hào)幅度,經(jīng)數(shù)模轉(zhuǎn)換得到正弦波的輸出。其中相位累加模塊的溢出代表一個(gè)2π相角的循 環(huán)。
[0004] 對(duì)于一個(gè)頻率控制字為Μ的一次調(diào)節(jié),經(jīng)Ν位的相位累加模塊的處理,DDS最終正 弦波的頻率f。與工作基頻f。具有如下關(guān)系:
[0005] fD = (MXfc)/2N〇
[0006] 當(dāng)2N/M為整數(shù)時(shí),該次調(diào)節(jié)不會(huì)出現(xiàn)相位截?cái)?,而其他情況則會(huì)因?yàn)橄辔唤財(cái)鄷?huì) 有大大小小的誤差。因此,傳統(tǒng)的DDS實(shí)際上能夠輸出的頻率精度十分有限,也限制了其應(yīng) 用范圍。
[0007] 另一方面,如上所述,目標(biāo)信號(hào)的幅度生成是通過正弦查找表實(shí)現(xiàn)的?;趥鹘y(tǒng)的 DDS,仍然可以通過減少相位累加模塊舍棄相位的位數(shù),增加正弦查找表的大小,從而減少 相位舍棄誤差。但是正弦查找表的深度是與地址位數(shù)成指數(shù)關(guān)系的,無法使用的合理的成 本來構(gòu)建一個(gè)龐大的正弦查找表以降低相位誤差。
【發(fā)明內(nèi)容】
[0008] 基于此,有必要提供一種低成本且可以減少相位截?cái)嗾`差的直接數(shù)字頻率合成
[0009] -種直接數(shù)字頻率合成方法,包括以下步驟:
[0010] 相位累加模塊根據(jù)頻率合成字計(jì)算得到第一相位;
[0011] 根據(jù)所述第一相位,通過預(yù)設(shè)的正弦查找表查找得到幅度值;
[0012] 根據(jù)所述幅度值,通過預(yù)設(shè)的相位查找表查找得到第二相位;
[0013] 若所述第二相位小于第一相位,則對(duì)所述幅度值進(jìn)行調(diào)整后輸出;否則輸出原幅 度值;
[0014] 數(shù)模轉(zhuǎn)換器根據(jù)輸出的幅度值進(jìn)行數(shù)模轉(zhuǎn)換得到正弦波輸出;
[0015] 其中,對(duì)于N位的相位累加模塊和D位的數(shù)模轉(zhuǎn)換器,所述預(yù)設(shè)的相位查找表包含 2D ^1個(gè)對(duì)應(yīng)于0~2D ^2幅度的相位邊界值記錄,每個(gè)相位邊界值采用N-2位存儲(chǔ)。
[0016] 在其中一個(gè)實(shí)施例中,%和ψ2是相位累加模塊在第一象限的相鄰數(shù)值,獲得所 述預(yù)設(shè)的相位查找表的步驟包括:
[0017] 從φ:1為0開始,判斷是否與相等,若二 者不相等,則將Φι的末N-2位存入所述相位查找表,并將奶和物同時(shí)增加1后再判斷 (2^-1)8^1^/2^是否與(2^-1^11(92/2^相等;否則直接將奶和牝同時(shí)增加1后再判 斷(2D-是否與(2^-1)8^1(92/23 相等;
[0018] 如此反復(fù)直至pM-Osii^qvf)等于2DΜ。
[0019] 在其中一個(gè)實(shí)施例中,所述根據(jù)所述幅度值,通過預(yù)設(shè)的相位查找表查找得到第 二相位的步驟包括:
[0020] 根據(jù)相位累加模塊的高二位和相位查找表輸出的0~/2之間的相位值還原得 到位于第一至第四象限的相位邊界值。
[0021] 在其中一個(gè)實(shí)施例中,對(duì)所述幅度值進(jìn)行的調(diào)整包括增加或減少預(yù)設(shè)值。
[0022] -種直接數(shù)字頻率合成器,包括:
[0023] 相位累加模塊,用于根據(jù)輸入的頻率控制字計(jì)算得到第一相位;
[0024] 正弦計(jì)算模塊,用于根據(jù)所述第一相位計(jì)算得到幅度值;
[0025] 其特征在于,還包括:
[0026] 幅度修正模塊,用于根據(jù)由第一相位得到的幅度值,通過預(yù)設(shè)的相位查找表查找 得到第二相位,若所述第二相位小于第一相位,則對(duì)所述幅度值進(jìn)行調(diào)整后輸出;否則輸出 原幅度值;
[0027] 模數(shù)轉(zhuǎn)換模塊,用于根據(jù)所述幅度值進(jìn)行數(shù)模轉(zhuǎn)換得到正弦波輸出;
[0028] 其中,對(duì)于N位的相位累加模塊和D位的數(shù)模轉(zhuǎn)換器,所述預(yù)設(shè)的相位查找表包含 2D ^1個(gè)對(duì)應(yīng)于0~2D ^2幅度的相位邊界值記錄,每個(gè)相位邊界值采用N-2位存儲(chǔ)。
[0029] 在其中一個(gè)實(shí)施例中,所述相位查找表中存儲(chǔ)0~π/2之間的相位值及對(duì)應(yīng)的幅 度值,對(duì)0~η/2之間的多個(gè)依次相鄰的相角,若其對(duì)應(yīng)的幅值相等,則將該幅值與該多個(gè) 依次相鄰的相角中最大的相角對(duì)應(yīng)存儲(chǔ)。
[0030] 在其中一個(gè)實(shí)施例中,所述幅度修正模塊包括:
[0031] 存儲(chǔ)單元,用于存儲(chǔ)相位查找表;
[0032] 相位調(diào)適比較單元,用于根據(jù)所述相位查找表獲取第二相位,并與所述第一相位 比較;
[0033] 正弦調(diào)適單元,用于根據(jù)所述相位調(diào)適比較單元的比較結(jié)果對(duì)所述幅度值進(jìn)行調(diào) 整。
[0034] 在其中一個(gè)實(shí)施例中,所述相位調(diào)適比較單元包括:
[0035] 第一選擇器,用于根據(jù)相位累加模塊的高二位選擇0、π和2 π中的一個(gè);其中當(dāng) 高二位為01或10時(shí),第一選擇器的輸出均為π;
[0036] 第二選擇器,用于根據(jù)相位累加模塊的次高位選擇相位查找表的原始輸出或原始 輸出的負(fù)值,
[0037] 第一加法器,用于將第一選擇器和第二選擇器的輸出結(jié)果相加;
[0038] 比較器,用于將所述第一加法器的輸出結(jié)果與相位累加模塊的輸出結(jié)果進(jìn)行比 較,并輸出比較結(jié)果。
[0039] 在其中一個(gè)實(shí)施例中,所述正弦調(diào)適單元包括:
[0040] 第三選擇器,用于根據(jù)所述相位調(diào)適比較單元的比較結(jié)果選擇調(diào)整值;
[0041] 第二加法器,用于將第三選擇器和正弦計(jì)算模塊的輸出結(jié)果相加并輸出。
[0042] 由于傳統(tǒng)DDS的處理總是存在相位截?cái)嗾`差,而上述直接數(shù)字頻率合成方法和直 接數(shù)字頻率合成器,通過對(duì)相角的再次比較和處理,能夠反映出相位截?cái)嗟某潭龋瑢?duì)截?cái)噍^ 多的情況進(jìn)行補(bǔ)償可減小誤差、提高精度。同時(shí),在正弦查找表中經(jīng)常會(huì)是以多個(gè)相位對(duì)應(yīng) 于同一個(gè)正弦值,正弦查找表的深度至少要高于正弦輸出的分辨率4倍以上。如果通過增 加其精度來減小截?cái)嗾`差,其成本相對(duì)較高。而新增的相位查找表是以一個(gè)正弦值對(duì)應(yīng)一 個(gè)相位邊界值的方式來建表,因此相位查找表的深度與正弦輸出的分辨率相當(dāng),可以基于 所需的正弦分辨率有效的消除相位誤差,而成本也不會(huì)很高。
【附圖說明】
[0043]圖1為一實(shí)施例的直接數(shù)字頻率合成方法流程圖;
[0044] 圖2為獲得相位查找表的流程圖;
[0045] 圖3為一實(shí)施例的直接數(shù)字頻率合成器模塊圖;
[0046] 圖4為圖3中相位調(diào)適比較單元的模塊圖;
[0047] 圖5為圖3中正弦調(diào)適單元的模塊圖。
【具體實(shí)施方式】
[0048]如圖1所示,為一實(shí)施例的直接數(shù)字頻率合成方法流程圖。該方法包括以下步驟。
[0049] 步驟S101:相位累加模塊根據(jù)頻率合成字計(jì)算得到第一相位。在DDS中,頻率合 成字也叫頻率控制碼,是用戶輸入的用于控制頻率調(diào)節(jié)的數(shù)據(jù)。頻率合成字存儲(chǔ)在頻率控 制寄存器中。相位累加模塊根據(jù)頻率合成字在每個(gè)時(shí)鐘周期內(nèi)進(jìn)行累加,得到一個(gè)相位值, 本實(shí)施例中稱為第一相位。
[0050] 步驟S102:根據(jù)所述第一相位,通過預(yù)設(shè)的正弦查找表查找得到幅度值。預(yù)設(shè)的 正弦查找表是以相位為地址、幅度值為內(nèi)容的查找表。傳統(tǒng)一般采用具有相關(guān)功能的芯片 實(shí)現(xiàn)。在此不贅述。
[0051] 步驟S103:根據(jù)所述幅度值,通過預(yù)設(shè)的相位查找表查找得到第二相位。
[0052] 步驟S104:比較第二相位和第一相位,若第二相位小于第一相位,則執(zhí)行步驟 S105,否則執(zhí)行步驟S106。
[0053] 步驟S105:對(duì)所述幅度值進(jìn)行調(diào)整后輸出。若第二相位小于第一相位,則表示相 位截?cái)噙^多,需要對(duì)其幅度值進(jìn)行一定的補(bǔ)償以對(duì)應(yīng)到正確的相位或與正確相位更加接近 的相位。其中的補(bǔ)償值是定值。
[0054] 步驟S106 :輸出原幅度值。
[0055] 步驟S107:數(shù)模轉(zhuǎn)換器根據(jù)輸出的幅度值進(jìn)行數(shù)模轉(zhuǎn)換得到正弦波輸出。
[0056] 其中,對(duì)于N位的相位累加模塊和D位的數(shù)模轉(zhuǎn)換器,所述預(yù)設(shè)的相位查找表包含 2D ^1個(gè)對(duì)應(yīng)于0~2D ^2幅度的相位邊界值記錄,每個(gè)相位邊界值采用N-2位存儲(chǔ)。
[0057] 由于傳統(tǒng)DDS的處理不包括步驟S103~S106,因此在獲得幅值時(shí),總是存在相位 截?cái)嗾`差。而通過步驟S103~S106對(duì)相角的再次比較和處理,能夠反映出相位截?cái)嗟某?度,對(duì)截?cái)噍^多的情況進(jìn)行補(bǔ)償可減小誤差、提高精度。同時(shí),在正弦查找表中經(jīng)常會(huì)是以 多個(gè)相位對(duì)應(yīng)于同一個(gè)正弦值,正弦查找表的深度至少要高于正弦輸出的分辨率4倍以 上。如果通過增加其精度來減小截?cái)嗾`差,其成本相對(duì)較高。而新增的相位查找表是以一 個(gè)正弦值對(duì)應(yīng)一個(gè)相位邊界值的方式來建表,因此相位查找表的深度與正弦輸出的分辨率 相當(dāng),可以基于所需的正弦分辨率有效的消除相位誤差,而成本也不會(huì)很高。
[0058] 本實(shí)施例中,參考圖2,采用如下方法獲得預(yù)設(shè)的相位查找表。
[0059] %和φ2是相位累加模塊在第一象限的相鄰數(shù)值。從_為0開始(此時(shí)92為 1),判斷αΜ-?χφΜν)是否與相等,若二者不相等,則將奶的末Ν-2位存入所述相位查找表,并將_和cp2同時(shí)增加1后再判斷(2D4-1 是否與 相等;否則直接將φι和φ2:同時(shí)增加1后再判斷是否 與相等。如此反復(fù)直至(2^-1)8^(^/23等于f匕2。
[0060] 進(jìn)一步地,基于上述獲得相位查找表的方法,相位查找表可以輸出0