99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

AM信號(hào)生成中的注意點(diǎn)

FPGA之家 ? 來源:FPGA之家 ? 2023-01-10 11:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

說是概述,但是你還是得必須容我先瞎扯一番的。又是課程的作業(yè),要通過FPGA實(shí)現(xiàn)AM信號(hào)的產(chǎn)生與解調(diào)。我們最開始手上是有硬件的板卡的,型號(hào)是叫Nexys Video。(當(dāng)然現(xiàn)在被老師收走了,所以下面的程序只能講解到仿真的層次)要求是通過VIO控制載波頻率、調(diào)制信號(hào)頻率、調(diào)制深度可調(diào),然后通過ILA觀察AM信號(hào)和解調(diào)后的信號(hào)。我記得載波信號(hào)的頻率要求是1M~10M,調(diào)制信號(hào)的頻率要求是1K~10K,調(diào)制深度從0到1、步進(jìn)0.1。當(dāng)然他規(guī)定了一定的精度。(VIO與ILA只能通過硬件板卡實(shí)現(xiàn),下面的講解中演示不了)。這個(gè)程序雖然說不算難吧,但是我確實(shí)忙活了一個(gè)星期才搞明白,每天都得超過12點(diǎn)睡覺。最讓我崩潰的是:考試驗(yàn)收的那一天,我竟然忘記把昨天晚上最后改好的程序考到U盤上來,又是各種原因不能回去拿電腦。我的那個(gè)心涼的。。。從頭一點(diǎn)點(diǎn)開始寫啊,然后還有各種各樣的波折,害的我都以為這門課是要來年重修的節(jié)奏。還好,最后一刻順利完成。好,瞎扯到此為止,下面進(jìn)入正題。

二、平臺(tái)

軟件:Vivado 2016.4

硬件:Nexys Video(這個(gè)不重要)

三、要求

為了更好的說明下面一些參數(shù)設(shè)定的意義,把我們課程的部分要求貼上來

完成AM信號(hào)調(diào)制和解調(diào)功能,具體要求如下:

(1)載波信號(hào)頻率范圍:1M-10MHz,分辨率0.01MHz;

(2)調(diào)制信號(hào)為單頻正弦波信號(hào),頻率范圍:1kHz-10kHz,分辨率0.01kHz;

(3)調(diào)制深度0-1.0,步進(jìn)0.1,精度優(yōu)于5%;

(4)調(diào)制信號(hào)和解調(diào)信號(hào)位寬為8位,AM信號(hào)16位,其他信號(hào)位寬自定義。

四、原理

雖然這部分簡(jiǎn)單,但卻是最最重要的,把這部分看懂,所有的程序也就明白了。

1. AM信號(hào):(A+ma*cos(w0t))*cos(wct)

一步步來嘛,首先肯定要產(chǎn)生兩個(gè)頻率不同的余弦波cos(w0t),cos(wct)。立馬想到調(diào)用系統(tǒng)自帶的DDS IP核來實(shí)現(xiàn)嘛,這是最簡(jiǎn)單的方法。我在網(wǎng)上還看到一個(gè)自己通過導(dǎo)coe文件來模擬DDS然后來產(chǎn)生余弦波的,這里就不說了。

產(chǎn)生兩個(gè)余弦波后,再來兩個(gè)乘法器(現(xiàn)在沒有徹底想明白“*”這個(gè)符號(hào)和乘法器的區(qū)別,這里就不說了,我還是乖乖的調(diào)系統(tǒng)的乘法器吧)、一個(gè)加法器(后面程序直接用的“+”號(hào),沒有用加法器ip 核),運(yùn)算一把不就搞定了嗎。

2.AM信號(hào)生成中的注意點(diǎn)(這個(gè)有點(diǎn)繞)

首先看一下調(diào)制深度的問題。調(diào)制深度通常為已調(diào)波的最大振幅與最小振幅之差對(duì)載波最大振幅與最小振幅之和的比。就是生成AM波包絡(luò)的最大值與最小值之差除以最大值與最小值之和。包絡(luò)其實(shí)就是(A+ma*cos(w0t))。它的最大值是A+ma,最小值是A-ma。最后可以算出調(diào)制深度就是ma/A。A為1時(shí),調(diào)制深度就是ma,其實(shí)只要A的值和后面的余弦波的最大值是相同的,調(diào)制深度就會(huì)為ma,為0~1之間。

但是有一個(gè)重要的問題不要忘了,就是在硬件描述語(yǔ)言中表示小數(shù)并不像C語(yǔ)言那么簡(jiǎn)單直接(其實(shí)所謂的小數(shù)只是我們對(duì)每個(gè)字節(jié)中的0和1的解釋方式不同而已,在硬件描述語(yǔ)言中,我們會(huì)很自然的會(huì)把0和1兩種狀態(tài)直接轉(zhuǎn)換為十進(jìn)制,比如8'b0000_0011,我們會(huì)很自然的把它看做3,那么這樣的話,硬件描述語(yǔ)言中是沒有小數(shù)的)。我們上面生成的余弦信號(hào)cos(w0t)并不是在0~1范圍內(nèi)。假如我們讓DDS的輸出位寬為8位,那么這個(gè)余弦信號(hào)的幅度大小-128~127。我們就當(dāng)做是-127~127,那么這里先假設(shè)A為127。再來再算一下調(diào)制深度。這時(shí)包絡(luò)最大值為127+ma*127,最小值為127-ma*127。最后調(diào)制深度還會(huì)是ma,這個(gè)ma的范圍還是0~1。ma是從0~1之間變的話,還是有不能直接表示小數(shù)這個(gè)問題。有兩種解決方法:

1.讓A=1270,也就是包絡(luò)最大值為1270+ma*127,最小值1270+ma*127。算出調(diào)制深度最后應(yīng)該為ma/10的。這時(shí)便可以設(shè)定ma為1~10來改變調(diào)制深度了。

2,.下面的程序是用的是以下這種方法。比如說(127*256)>>8(要知道右移一位相等于除2,右移8位的話等于除以256),就相當(dāng)于127*1。而(127*128)>>8就相當(dāng)于127*0.5=63。也就是這樣產(chǎn)生我們的小數(shù)ma的,通過設(shè)定一個(gè)8位的變量depth_con乘以127,然后將得到的結(jié)果右移8位,那么我們就可以通過depth_con來控制調(diào)制深度depth了。他們的關(guān)系也就是depth=depth_con/256。當(dāng)然這些推理是在保持A=127的情況下進(jìn)行的,也就是AM信號(hào)包絡(luò)為127+(depth_con*COS)>>8。(COS是DDS產(chǎn)生的8位信號(hào))

前面的127+(depth_con*COS)>>8得到后,再經(jīng)過乘法器乘以8位的載波就行了,這個(gè)乘法器的輸出的就是我們要的AM信號(hào)了。這里還有一點(diǎn)就是127+(depth_con*COS)>>8的結(jié)果的范圍是0~256。這時(shí)可以將乘法器的一個(gè)輸入改為8無符號(hào)數(shù),正好可以滿足0~256的范圍。乘以8位的載波信號(hào)后,得到的AM波正好是我們要求的那樣,輸出16位的AM波。(主要就是因?yàn)檫@才選的這種方法)

3.AM信號(hào)的解調(diào)

首先來談一下解調(diào)方法:

相干解調(diào),就是在AM波的基礎(chǔ)上再乘以載波一次,然后經(jīng)過低通濾波,隔直便可以得到我們要的解調(diào)信號(hào)。在頻域分析也就是乘以載波后有了會(huì)產(chǎn)生一個(gè)w0的頻率分量和幾個(gè)高頻分量,將這幾個(gè)高頻分量濾除便可以得到原始的調(diào)制信號(hào)。這個(gè)原理簡(jiǎn)單。

然而我用的還是下面的這種方法不知道算不算包絡(luò)解調(diào)(我覺得不算吧),就是將AM波進(jìn)行全波整流(就是取絕對(duì)值)或者半波整流(就是把負(fù)半軸的信號(hào)不要),然后低通濾波便可以得到我們要的解調(diào)信號(hào)了。這個(gè)原理最開始我是百思不得其解,因?yàn)樽铋_始不知聽誰(shuí)說這種方法算包絡(luò)解調(diào),所以我一直在想為什么AM信號(hào)直接低通濾波后提取不了包絡(luò),而整流后低通濾波就可以提取包絡(luò)了呢?但是其實(shí)再回頭看,原理也挺簡(jiǎn)單。跟本不算提取包絡(luò)吧。下面是AM信號(hào)進(jìn)行全波整流后的頻譜圖(MATLAB)。調(diào)制信號(hào)頻率為1KHz,載波頻率為100KHz。

放大前

e42880c8-9089-11ed-bfe3-dac502259ad0.png

放大后

e4332ae6-9089-11ed-bfe3-dac502259ad0.png

可以看出全波整流后的AM波在調(diào)制信號(hào)頻率處有了新的頻率分量,所以再經(jīng)過低通濾波就可以得到最開始的調(diào)制信號(hào)。

理論推導(dǎo)的話,這幾天也大概搞明白了。首先(1+cosw0t)coswct全波整流后得到(1+cosw0t)|coswct|(肯定要保證(1+cosw0t)大于0的)

其實(shí)你只要得到|coswct|的傅里葉級(jí)數(shù)就可以明白了。|coswct|的傅里葉級(jí)數(shù)具體我記不清了,但是我記得展開后有一個(gè)常數(shù)項(xiàng)2/pi,然后加上后面的一大坨(上網(wǎng)上搜一下就知道了)。主要就是有了這個(gè)常數(shù)項(xiàng)2/pi,它和前面的(1+cosw0t)相乘后就會(huì)得到w0的頻率分量,也就是我們調(diào)制信號(hào)的頻率。然后濾波一下,你懂得。

至于半波整流一樣分析吧。

再來說一下濾波器在vivado里的實(shí)現(xiàn)

直接調(diào)用系統(tǒng)自帶的fir IP核,點(diǎn)開后第一個(gè)界面。選COE文件,然后導(dǎo)入。

e43f7a9e-9089-11ed-bfe3-dac502259ad0.png

這個(gè)COE文件可以通過MATLAB生成(我也只知道這一種方式)。在MATLAB窗口輸入命令:》fdatool

e44e4e48-9089-11ed-bfe3-dac502259ad0.png

有些東西并不一定按照我這么選,比如FIR濾波器的種類(Window,Hamming),選其余的應(yīng)該沒什么大問題。主要是要保證截止頻率,我設(shè)的是20K,因?yàn)橐笳{(diào)制信號(hào)的頻率是1~10K,我稍微設(shè)高了一點(diǎn)。采樣頻率的話最少比載波頻率大2倍(采樣定理)我設(shè)的100M

還要進(jìn)行量化后才能導(dǎo)出COE文件。如下

e45e174c-9089-11ed-bfe3-dac502259ad0.png

選擇Fixed-point后可能要等幾秒鐘。稍微等一會(huì)。量化完后就可以導(dǎo)出了,就是點(diǎn)Targets里的選項(xiàng),就不給圖了

fir IP核第二,第三個(gè)設(shè)置窗口基本上不用改什么。下面的Input Sampling Frequency最好不要太大。我設(shè)成100時(shí),程序運(yùn)行好久都運(yùn)行不完,太慢。

e46ac992-9089-11ed-bfe3-dac502259ad0.png

fir IP核設(shè)置完后,基本就沒什么說的了。直接給程序吧,對(duì)照著前面的原理看,看懂應(yīng)該不是問題。

五、程序

代碼的話,先直接全部貼上來吧,還是比較簡(jiǎn)單的,不像我最開始從網(wǎng)上看到的一個(gè),各種各樣的模塊疊加在一起。一些注意點(diǎn)講解在后面。

e47ab2da-9089-11ed-bfe3-dac502259ad0.png

wire [23:0] modulate_con=1679;//用vio輸入時(shí),將下面的vio代碼激活,并且要這幾個(gè)變量不能賦初值(carrier_con,modulate_con,depth)

wire [3:0] depth= 9;

// vio_0 vio_instance_name (

// .clk(sysclk), // input wire clk

// .probe_in0(AM_out), // input wire [22 : 0] AM signal

// .probe_out0(depth), // output wire [3 : 0] shen to control the depth of modulation

// .probe_out1(carrier_con), // output wire [15 : 0] carrier_con to control the frequence of carrier signal

// .probe_out2(modulate_con) // output wire [15 : 0] modulate_con to control the frequence of modulate signal

// );

e48671a6-9089-11ed-bfe3-dac502259ad0.png

e4925c28-9089-11ed-bfe3-dac502259ad0.png

e49fedc0-9089-11ed-bfe3-dac502259ad0.png

e4a9dca4-9089-11ed-bfe3-dac502259ad0.png

還有仿真模塊的頂層文件,就幾行。

e4b9a350-9089-11ed-bfe3-dac502259ad0.png

e4c595fc-9089-11ed-bfe3-dac502259ad0.png

六、注意事項(xiàng)

從最容易出現(xiàn)的錯(cuò)誤開始說吧

1、fir iP核

在從U盤里往電腦里拷程序時(shí)一定會(huì)出現(xiàn)錯(cuò)誤的,首先要把fir IP核的COE文件再導(dǎo)一遍。如果還是報(bào)錯(cuò)的話要把以前的coe文件刪掉。就是下面紅色的文件

e4e97e2c-9089-11ed-bfe3-dac502259ad0.png

2.DDS的設(shè)置

前面沒怎么說DDS的事,比較簡(jiǎn)單嘛。就是調(diào)系統(tǒng)的ip核,改一下頻率控制字的位寬和輸出位寬,其余的基本上不用改。計(jì)算輸出信號(hào)的頻率:100M/2^24是頻率分辨率,再用它乘以頻率控制字就是輸出信號(hào)的頻率了。程序前面的modulate_con,,carrier_con就是這樣算的,分別是10K,1M。

需要注意的是,當(dāng)DDS的頻率控制字的位寬太小時(shí),輸出的AM信號(hào)可能會(huì)失真的,這時(shí)只要把位寬改大點(diǎn)就好。我最開始調(diào)制信號(hào)dds的位寬設(shè)定16位,出來的就是失真AM信號(hào)。改完dds位寬后,不要忘了改前面定義的wire modulate_con的位寬。他們是對(duì)應(yīng)的。

3.截位

由于最后要求輸出的是8位的解調(diào)信號(hào),而通過fir IP 核濾波后的輸出信號(hào)遠(yuǎn)遠(yuǎn)大于8位,所以這里就有一個(gè)截位的問題。截位其實(shí)是通過看仿真圖來覺定截哪幾位的。

e4fa292a-9089-11ed-bfe3-dac502259ad0.png

可以看到39到35位都是0,所以就從第34位開始往下截取8位嘛。要注意的是,我們這樣截的話,連符號(hào)位也截去了,但符號(hào)位一直是0。所以在觀察最后解調(diào)出來的信號(hào)的波形時(shí),要設(shè)為無符號(hào)數(shù)來觀察。

最后放一張完整的圖

e5068bca-9089-11ed-bfe3-dac502259ad0.png

最后,這個(gè)程序同學(xué)也在硬件板子上試過的沒有問題的。把那個(gè)VIO,和前面的幾個(gè)變量(carrier_con,modulate_con,depth)的初始化去掉。綜合生成bit流,導(dǎo)入板子。完工~

又想了一下,在網(wǎng)上查了一下包絡(luò)解調(diào)的定義:

包絡(luò)解調(diào)又稱包絡(luò)檢波,適用于普通調(diào)幅信號(hào)的解調(diào),指產(chǎn)生的輸出信號(hào)與已調(diào)信號(hào)包絡(luò)線成正比的幅度解調(diào)。

那這樣說的話,這種方法算是包絡(luò)解調(diào)吧。(原諒我的知識(shí)有限)

另外,本人水平一般,如果各位發(fā)現(xiàn)錯(cuò)誤的地方,希望能熱心指正,不勝感激。

審核編輯 :李倩

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

    關(guān)注

    1645

    文章

    22049

    瀏覽量

    618331
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141700
  • 調(diào)制信號(hào)
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    15061

原文標(biāo)題:六、注意事項(xiàng)

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    大家誰(shuí)知道有什么現(xiàn)成的器件可以調(diào)制生成AM信號(hào)。

    如題,大家誰(shuí)知道有什么現(xiàn)成的器件可以調(diào)制生成AM信號(hào)。
    發(fā)表于 10-13 10:37

    轉(zhuǎn):CW10.6 PETSI_LDD 生成代碼的些許注意點(diǎn)

    一,問題描述為什么要講CW10.6 PETSI_LDD 生成代碼的些許注意點(diǎn)這個(gè)話題,該問題還是要追溯到一個(gè)客戶遇到的問題,他的問題是為什么使用平臺(tái)TWR-K60N512平臺(tái),CW1
    發(fā)表于 06-06 11:49

    請(qǐng)問AM335X nor flash啟動(dòng)設(shè)計(jì)應(yīng)該注意什么?

    啟動(dòng)的相關(guān)要點(diǎn)總結(jié)如下,供大家參考。1. 關(guān)于nor flash啟動(dòng)的信息可以參考TRM的26.1.7.2 XIP Memory章節(jié),在這里就不詳述了。2. 設(shè)計(jì)時(shí)注意點(diǎn)由于AM335X的管腳有限
    發(fā)表于 06-04 07:38

    基于混沌和神經(jīng)網(wǎng)絡(luò)的AM調(diào)制信號(hào)參數(shù)檢測(cè)

    數(shù)字示波器不能夠直接測(cè)量AM 調(diào)制信號(hào),更不能測(cè)量微弱的AM 調(diào)制信號(hào)。本文運(yùn)用混沌和Elman神經(jīng)網(wǎng)絡(luò)作為檢測(cè)模型,通過混沌時(shí)間序列重構(gòu)
    發(fā)表于 07-10 15:07 ?12次下載

    AM信號(hào)的PLL同步解調(diào)電路圖

    AM信號(hào)的PLL同步解調(diào)原理圖 AM信號(hào)的PLL同步解調(diào)電路圖
    發(fā)表于 04-21 11:34 ?2531次閱讀

    AM信號(hào)數(shù)字化解調(diào)算法分析與比較

    數(shù)字信號(hào)與模擬信號(hào)相比有很多優(yōu)點(diǎn),因此信號(hào)的數(shù)字化處理應(yīng)用越來越普遍。作為常用信號(hào),幅度(AM)調(diào)制信號(hào)
    發(fā)表于 09-27 11:18 ?1.1w次閱讀
    <b class='flag-5'>AM</b><b class='flag-5'>信號(hào)</b>數(shù)字化解調(diào)算法分析與比較

    功率信號(hào)源操作注意事項(xiàng)有哪些

    功率信號(hào)源是一種用來生成特定頻率、幅度、相位和波形的電信號(hào)的設(shè)備,通常用于測(cè)試電子設(shè)備的性能。在使用功率信號(hào)源的過程,需要
    的頭像 發(fā)表于 07-14 15:24 ?862次閱讀
    功率<b class='flag-5'>信號(hào)</b>源操作<b class='flag-5'>注意</b>事項(xiàng)有哪些

    如何自制一個(gè)AM信號(hào)

    我需要一個(gè)低失真AM信號(hào)源來饋送放大器的輸入,但我能找到的每個(gè)信號(hào)發(fā)生器的AM輸出失真規(guī)格都比放大器本身應(yīng)滿足的失真要求要差··· 我需要測(cè)試UHF線性放大器提供低失真
    的頭像 發(fā)表于 10-16 10:56 ?1640次閱讀
    如何自制一個(gè)<b class='flag-5'>AM</b><b class='flag-5'>信號(hào)</b>源

    關(guān)于高速串行信號(hào)隔直電容的PCB設(shè)計(jì)注意點(diǎn)

    關(guān)于高速串行信號(hào)隔直電容的PCB設(shè)計(jì)注意點(diǎn)? 在高速串行信號(hào)傳輸,隔直電容是一種常見的解決信號(hào)
    的頭像 發(fā)表于 10-24 10:26 ?1325次閱讀

    multisimam_voltage怎么用

    AM Voltage(Amplitude Modulation Voltage)是在Multisim中用于模擬調(diào)制電路的工具。AM電壓是指通過改變調(diào)制信號(hào)的振幅來改變載波信號(hào)的振幅。在
    的頭像 發(fā)表于 12-28 15:20 ?5062次閱讀

    AM574x散熱注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《AM574x散熱注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:25 ?0次下載
    <b class='flag-5'>AM</b>574x散熱<b class='flag-5'>注意</b>事項(xiàng)

    PLC應(yīng)用AM335x可靠性注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《PLC應(yīng)用AM335x可靠性注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:33 ?0次下載
    PLC應(yīng)用<b class='flag-5'>中</b>的<b class='flag-5'>AM</b>335x可靠性<b class='flag-5'>注意</b>事項(xiàng)

    信號(hào)發(fā)生器AM調(diào)制信號(hào)分析

    在現(xiàn)代通信技術(shù),調(diào)制技術(shù)起著至關(guān)重要的作用。特別是AM調(diào)制(振幅調(diào)制),它是信號(hào)傳輸中常見的一種調(diào)制方式。AM調(diào)制信號(hào)廣泛應(yīng)用于廣播、電臺(tái)
    的頭像 發(fā)表于 02-18 17:07 ?992次閱讀
    <b class='flag-5'>信號(hào)</b>發(fā)生器<b class='flag-5'>AM</b>調(diào)制<b class='flag-5'>信號(hào)</b>分析

    信號(hào)發(fā)生器AFG31052在多載波信號(hào)生成的應(yīng)用

    優(yōu)勢(shì),為現(xiàn)代通信系統(tǒng)測(cè)試、復(fù)雜電路驗(yàn)證及科研實(shí)驗(yàn)提供了可靠的技術(shù)支持。本文將從多載波調(diào)制技術(shù)原理、AFG31052的關(guān)鍵特性及其應(yīng)用場(chǎng)景三個(gè)方面,探討其在多載波信號(hào)生成的具體應(yīng)用與價(jià)值。
    的頭像 發(fā)表于 06-07 15:24 ?303次閱讀
    <b class='flag-5'>信號(hào)</b>發(fā)生器AFG31052在多載波<b class='flag-5'>信號(hào)</b><b class='flag-5'>生成</b><b class='flag-5'>中</b>的應(yīng)用