一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

相位累加器的實(shí)現(xiàn)原理

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 2025-05-16 13:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

相位累加器

關(guān)于相位累加器的使用,我不確定放在FPGA專題中是否合適,但是因?yàn)榇_實(shí)很多應(yīng)用都是在FPGA上面的,所以暫時(shí)先這樣定吧。

標(biāo)題中所提到的DDS,我感覺(jué)這兩個(gè)放一起也可以,因?yàn)镈DS的核心思想就是使用的相位累加器。那么這玩意兒的作用是啥?簡(jiǎn)單來(lái)說(shuō)就是在FPGA工作主頻之下,可以生成任意頻率的周期信號(hào)出來(lái)。

定義一個(gè)32bit的頻率字Acc

定義一個(gè)32bit的頻率控制字F_word

假設(shè)系統(tǒng)時(shí)鐘(準(zhǔn)確的說(shuō)法應(yīng)該是相位累加器的參考時(shí)鐘)fclk

需要產(chǎn)生的時(shí)鐘頻率 fout

根據(jù)公式:

729e5854-3098-11f0-afc8-92fbcf53809c.jpg

上面兩個(gè)公式可以在已知需要獲得的輸出頻率的基礎(chǔ)上,計(jì)算得到需要的頻率控制字。

然后看下頻率控制字是怎么用的,這里就是用的相位累加器的原理。

72ac3e88-3098-11f0-afc8-92fbcf53809c.jpg

上式是一個(gè)累加的過(guò)程,實(shí)現(xiàn)的原理是在一個(gè)32bit的數(shù)據(jù)范圍內(nèi),即在(0~2^32-1)這個(gè)范圍內(nèi)進(jìn)行累加,累加的步進(jìn)是F_word;完成這一個(gè)范圍內(nèi)的累加之后,用時(shí)為T,那么這個(gè)T的倒數(shù)就是我們需要的fout了。完成一次累加之后,頻率字Acc會(huì)溢出,然后進(jìn)入下一次累加,形成下一個(gè)周期信號(hào);如此重復(fù)進(jìn)行后就是一個(gè)振蕩的周期信號(hào)了。

那么這個(gè)周期信號(hào)該怎么表示出來(lái)呢?上面說(shuō)了,完成(0~2^32-1)的累加過(guò)程是一個(gè)周期T,那么在這個(gè)周期里面,應(yīng)該會(huì)有一次信號(hào)翻轉(zhuǎn)。即高電平時(shí)間T/2,低電平時(shí)間也是T/2。

對(duì)于一個(gè)32bit的數(shù),當(dāng)?shù)?1位不斷累加,直到第32bit從0跳轉(zhuǎn)到1的時(shí)間段內(nèi),就是用了T/2的時(shí)間;當(dāng)?shù)?2bit變成1之后,低31位又開(kāi)始累加,直到數(shù)據(jù)溢出,又是T/2的時(shí)間。

如果不能理解,結(jié)合下圖

72bd68d4-3098-11f0-afc8-92fbcf53809c.jpg

也就是說(shuō),在整個(gè)累加過(guò)程中,我們只要判斷Acc的最高的情況,在0~T/2時(shí)間內(nèi),最高位為0;

在T/2~T的時(shí)間內(nèi),最高位為1;這樣就是會(huì)產(chǎn)生一個(gè)fout的方波信號(hào)了。

assign clk_out=Acc(31);

這樣的clk_out就是需要的fout了。

亦或者,直接對(duì)Acc的值進(jìn)行判斷

always@(posedgeclkornegedgerst)if(!rst) clk_out <=?1'b0;elseif(Acc <=?32'h7fffffff) clk_out <=?1'b0;elseif(Acc >32'h7fffffff) clk_out <=?1'b1;

同樣可以輸出fout。

采樣率

同時(shí),想說(shuō)一下關(guān)于采樣率的問(wèn)題。

常見(jiàn)于ADC這類芯片中,例如,某ADC芯片的采樣率為1MHz,意思是每秒可以采樣1M個(gè)點(diǎn),那么采一個(gè)點(diǎn)所要花的時(shí)間是(1/1M) 秒。

在做FFT的時(shí)候,通常需要采集一個(gè)完整的正弦波,來(lái)進(jìn)行FFT,這里就會(huì)涉及采樣率的問(wèn)題。

假如一個(gè)正弦波的頻率為fsig=50KHz,我們需要用128個(gè)點(diǎn)來(lái)進(jìn)行FFT,那就是要128個(gè)點(diǎn)采集完成這個(gè)正弦波。根據(jù)正弦波的頻率可以計(jì)算出正弦波的周期Tsig=1/fsig;那么這128個(gè)點(diǎn)所占的時(shí)間就應(yīng)該是這個(gè)周期Tsig。也就是說(shuō),采樣芯片需要在Tsig時(shí)間內(nèi)采集完成128個(gè)點(diǎn),那么這個(gè)就可以計(jì)算出需要的采樣率了。采樣率設(shè)為Fs,則采一個(gè)點(diǎn)的時(shí)間是1/Fs;采128個(gè)點(diǎn)的時(shí)間就是128/Fs;則

128/Fs=1/fsig;會(huì)得出采樣率Fs=128fsig;得到的是和被采樣信號(hào)頻率的關(guān)系;

根據(jù)奈奎斯特定律,采樣頻率至少要是被采樣信號(hào)頻率的2倍,才能獲得被采樣信號(hào)的有效信息,否則就會(huì)出現(xiàn)失真。這里其實(shí)就可以分析得到,這里的128個(gè)點(diǎn)其實(shí)是可以人為設(shè)定的,假如設(shè)置為N;那么最后的公式就是Fs=Nfsig 。當(dāng)然,保證這里的N>2是非常有必要的。

一般來(lái)說(shuō),我們的N會(huì)取的比較大。

FFT

說(shuō)到上面的信息,不得不再說(shuō)下FFT

其中的參數(shù)就包括上面說(shuō)的Fs、N、fsig

FFT是一種計(jì)算,采樣到一個(gè)點(diǎn),進(jìn)行一系列的運(yùn)算后,輸出一個(gè)復(fù)數(shù),假設(shè)為A+Bi;這個(gè)復(fù)數(shù)中就包含這個(gè)被采樣信號(hào)sig的信息,對(duì)A和B求平方和再開(kāi)根號(hào),就是當(dāng)前采樣點(diǎn)在頻譜上的幅值(注意并不是在正弦波形上的幅值),頻譜上幅值最大的點(diǎn)出現(xiàn)在fsig頻率處。

對(duì)于一個(gè)未知頻率的正弦波信號(hào),對(duì)其進(jìn)行采樣,然后進(jìn)行頻譜幅值的最大值篩選,可以計(jì)算出這個(gè)信號(hào)的頻率。

Fs/N的意思是,對(duì)所有的N個(gè)采樣點(diǎn),用Fs的采樣率來(lái)采樣,則在每個(gè)點(diǎn)處的頻率值(這個(gè)是在頻域上的信息)。假設(shè)fsig出現(xiàn)在從0~N之間的某個(gè)點(diǎn)n處,則會(huì)有Fs/N*(n-1)=fsig;同樣是可以計(jì)算出這個(gè)n。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22050

    瀏覽量

    618590
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1901

    瀏覽量

    133241
  • 相位累加器
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9276

原文標(biāo)題:相位累加器

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于相位累加器的任意分頻原理解析

    在大部分的教科書(shū)中,都會(huì)提到如何分頻,包括奇數(shù)分頻,偶數(shù)分頻,小數(shù)分頻等。 1、DDS相位累加器 (1)DDS合成流程 首先講述DSS(直接頻率合成法)的原理。 DDS是重要的頻率合成方法,在波形
    的頭像 發(fā)表于 11-29 10:19 ?5648次閱讀

    累加器verilog語(yǔ)言編程問(wèn)題

    剛剛接觸FPGA,編程方面也不是很擅長(zhǎng)。今天做了一個(gè)累加器的verilog編程,仿真波形圖一直出錯(cuò),想請(qǐng)大神指教一下錯(cuò)誤的原因,十分感謝!我要實(shí)現(xiàn)累加器功能是:連續(xù)輸入幾百個(gè)gary_value
    發(fā)表于 05-23 20:09

    FPGA實(shí)現(xiàn)NCO中相位累加器的輸出和查找表地址什么關(guān)系?

    ,這么理解是否正確,怎樣實(shí)現(xiàn)?Q3: NCO的性能與相位累加器的位數(shù)有關(guān),但與正弦表的精確程度有什么關(guān)系,能否采用更小的正弦表。相位累加器
    發(fā)表于 03-10 20:10

    請(qǐng)問(wèn)AD9910并行端口控制相位時(shí),并行數(shù)據(jù)是輸入到相位累加器中還是輸入到相位偏移字中?

    請(qǐng)問(wèn)一下AD9910并行端口控制相位時(shí),并行數(shù)據(jù)是輸入到相位累加器中還是輸入到相位偏移字中?
    發(fā)表于 12-25 14:02

    dds相位累加器沒(méi)有提高采樣頻率

    用流水線技術(shù)設(shè)計(jì)相位累加器,時(shí)序上可以工作在更高工作頻率,但需要n個(gè)周期才能到達(dá)反饋(假設(shè)是n級(jí)流水線),也就是說(shuō)實(shí)際相位輸出頻率是clk/n ,還是沒(méi)有提高采樣頻率不是嗎,怎么改進(jìn)呢
    發(fā)表于 04-21 22:58

    控制累加器

    怎么由布爾控件控制開(kāi)始和停止累加器的運(yùn)行
    發(fā)表于 06-04 22:09

    累加器的簡(jiǎn)單使用和自定義累加器

    累加器使用的注意點(diǎn)及自定義累加器
    發(fā)表于 04-02 09:31

    計(jì)算機(jī)累加器有加法器功能嗎,累加器是什么_累加器的作用及原理介紹 精選資料推薦

    ,也許馬上就得讀回來(lái)。然而存取主存的速度是比從算術(shù)邏輯單元到有直接路徑的累加器存取更慢。相位累加器原理一個(gè)正弦波,雖然它的幅度不是線性的,但是它的相位卻是線性增加的。DDS正是利用了這
    發(fā)表于 08-30 08:57

    相位累加器原理

    相位累加器一個(gè)正弦波,雖然它的幅度不是線性的,但是它的相位卻是線性增加的。DDS 正是利用了這一特點(diǎn)來(lái)產(chǎn)生正弦信號(hào)。如圖 2,根據(jù)
    發(fā)表于 09-03 08:43 ?8330次閱讀
    <b class='flag-5'>相位</b><b class='flag-5'>累加器</b>原理

    累加器是什么_累加器的作用及原理介紹

    本文開(kāi)始介紹了累加器的概念和相位累加器原理,其次介紹了累加器的作用,最后介紹了流水線相位累加器
    發(fā)表于 04-11 11:40 ?7.6w次閱讀
    <b class='flag-5'>累加器</b>是什么_<b class='flag-5'>累加器</b>的作用及原理介紹

    累加器是寄存嗎_寄存、累加器、暫存有什么區(qū)別

    本文首先對(duì)寄存、累加器、暫存做個(gè)哥介紹,其次解答了累加器是不是寄存,最后闡述了寄存、
    發(fā)表于 04-11 16:31 ?9897次閱讀

    累加器A的主要作用是什么_一文解析累加器a和acc的區(qū)別

    在中央處理中,累加器(accumulator) 是一種寄存,用來(lái)儲(chǔ)存計(jì)算產(chǎn)生的中間結(jié)果。如果沒(méi)有像累加器這樣的寄存,那么在每次計(jì)算 (
    發(fā)表于 04-11 16:46 ?2.3w次閱讀

    32位數(shù)字相位累加器的程序和工程文件免費(fèi)下載

    累加器 (accumulator) 是一種寄存,用來(lái)儲(chǔ)存計(jì)算產(chǎn)生的中間結(jié)果。如果沒(méi)有像累加器這樣的寄存,那么在每次計(jì)算 (加法,乘法,移位等等) 后就必須要把結(jié)果寫(xiě)回到 內(nèi)存,也許
    發(fā)表于 10-14 16:00 ?8次下載
    32位數(shù)字<b class='flag-5'>相位</b><b class='flag-5'>累加器</b>的程序和工程文件免費(fèi)下載

    Arduino的累加器實(shí)驗(yàn)程序和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是Arduino的累加器實(shí)驗(yàn)程序和工程文件免費(fèi)下載。
    發(fā)表于 01-13 17:24 ?6次下載

    數(shù)字設(shè)計(jì)筆試Verilog手撕代碼—累加器

    實(shí)現(xiàn)累加器的加法器例化的個(gè)數(shù)。按照原文大佬的設(shè)計(jì)方法,因?yàn)閿?shù)據(jù)連續(xù)且加法器的延遲周期是2,使用使用一個(gè)實(shí)現(xiàn)累加,會(huì)有一半的數(shù)據(jù)丟失。
    的頭像 發(fā)表于 06-02 16:35 ?3775次閱讀
    數(shù)字設(shè)計(jì)筆試Verilog手撕代碼—<b class='flag-5'>累加器</b>