美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業電子產品 > 其他電子產品 > 開發板,套件,編程器 > 開發板

類型分類:
科普知識
數據分類:
開發板

AD9361軟件無線電實驗(3)DPSK調制

發布日期:2022-10-14 點擊率:115

前面兩篇文章分享了我對數字基帶信號與成型濾波的理解、測試、驗證,本文將分享DPSK在AD9361上的實現。思路是這樣的,首先在Matlab上驗證DPSK調制后的頻譜,然后在FPGA中采用偽隨機序列作為原始數據,經上采樣、成型濾波后送入AD9361,由AD9361完成IQ調制并最終發射出去。在本文中,最終的已調DPSK信號,其物理層速率是2Mbps,占用帶寬為2.5MHz,物理層與占用帶寬是聯動的關系。

DPSK在Matlab中的實現

讀入上一篇文章中生成的隨機序列,進行4倍上采樣,然后使用filter函數對上采樣后的序列進行成型濾波(濾波器系數也是在上一篇文章中生產的),成型濾波后輸出的數據與載波相乘得到 DPSK調制信號,最后繪制DPSK已調信號的頻譜。Matlab代碼如下:

clear;clc;
ps=1*10^6; %碼速率為1MHz
Fs=4*10^6; %采樣速率為4MHz
fc=1*10^6; %載波頻率為1MHz
N=20000; %仿真數據的長度

coe_int=importdata('D:Tempmatlabcoe_int.txt');

s=importdata('D:Tempmatlab and_data.txt');

t=0:1/Fs:(N*Fs/ps-1)/Fs; %產生長度為N,頻率為fs的時間序列

%以Fs頻率采樣
Ads=upsample(s',Fs/ps);

rcos_Ads=filter(coe_int,1,Ads);

%產生載頻信號
f0=sin(2*pi*fc*t);
%產生DPSK已調信號
dpsk=rcos_Ads.*f0;

%繪制成形濾波后信號頻譜、DPSK信號頻譜、DPSK信號時域波形
m_dpsk=20*log10(abs(fft(dpsk,1024)));
m_dpsk=m_dpsk-max(m_dpsk);
%m_dpsk=mean(m_dpsk,1);

%設置幅頻響應的橫坐標單位為MHz
x_f=[0:(Fs/length(m_dpsk)):Fs/2];x_f=x_f/10^6;

%只顯示正頻率部分的幅頻響應
mdpsk=m_dpsk(1:length(x_f));

plot(x_f,mdpsk);
legend('DPSK已調信號頻譜');
xlabel('頻率(MHz)');ylabel('幅度(dB)');grid on;

最終繪制的DPSK已調信號頻譜如下圖,可見,信號頻譜被限制在1.25MHz左右,與預期是相符的。

DPSK使用Matlab仿真

FPGA生成偽隨機數

這段代碼用于在FPGA中生成偽隨機數作為源,事實上FPGA中不可能真的生成隨機數,只是這些數的周期很長而已。有一點需要注意的是,用于DPSK調制的數字序列必須具有隨機性,否則頻譜會出現單獨的峰。偽隨機數模塊的時鐘速率是2MHz。代碼如下:

module pn2(clk,rst,data_out);
input      clk; 
input      rst;
output     data_out;
reg    [7:1] c;
//reg[15:0] cnt;
 
always @(posedge clk)
begin
if (rst==0)
begin
c<=8'b1010111;
end
else
begin
c[2]<=c[1];
c[3]<=c[2];
c[4]<=c[3];
c[5]<=c[4];
c[6]<=c[5];
c[7]<=c[6];
c[1]<=c[2]^c[3]^c[4]^c[7];
end
end
assign data_out = c[7];
endmodule

星座映射

在我看來,星座映射就是個簡單的組合邏輯,但是聽著很高大上,所以教科書里面都這樣寫,在這個系列的第一篇文章中,已經說明了要采用-1 1這樣的序列來替代0 1序列,所以需要把FPGA生成的隨機的0 1序列變為隨機的-1 1序列,在這里,我采用通常的二進制補碼來表示-1,以便與其他模塊對接。星座映射的代碼如下:

module code_convert(
input code_convert_clk,
input code_convert_din,
input code_convert_rst,
output [7:0] dout
);

reg pre_code;
reg pre_code_temp;
reg [7:0] code_convert_dout;

always @(posedge code_convert_clk)
begin
if(code_convert_rst==0)
pre_code_temp <= code_convert_din;
else
begin
if (code_convert_din == pre_code_temp)
begin
code_convert_dout=8'b11111111; //Change to bi-polar code -1.
pre_code_temp <= 1'b0;
end
else
begin
code_convert_dout=8'b00000001; //Change to bi-polar code +1.
pre_code_temp <= 1'b1;
end
end
end

assign dout=code_convert_dout;

endmodule

上采樣與成型濾波

這部分我直接用了Vivado的FIR IP核,將其配置為4倍內插方式,并使用上一篇文章中生成的濾波器系數,如下圖

加載COE文件,設置為插值模式,4倍內插
Sample Period設置為4
系數為16位有符號格式,輸入為8位有符號數,輸出為全精度
使用默認配置
接口配置
配置總結

這里我們再來看看數據速率的變化。原始數字序列的速率是2Mbps,經過星座映射后仍是2Mbps,但是經過FIR的4倍內插之后,速率變為了8Mbps,由于FIR內插的都是0,在這期間不能讓FIR的輸入端獲得有效數據,于是這里有個很重要的操作,就是保證FIR的輸入端在8MHz時鐘的驅動下,每4個時鐘周期使能一次FIR的m_tvalid信號,這樣才能保證結果的正確性。代碼如下:

reg [1:0] axis_cnt=0;
always @(posedge clk_8m)
begin
if(!Hard_rstn)
axis_cnt <= 'd0;
else if(s_data_tvalid)
axis_cnt <= axis_cnt + 1'b1;
end

wire m_tvalid;
assign m_tvalid = (s_data_tvalid==1'b1) && (axis_cnt==3'd3);

AD9361的配置

早在2016年的時候一個朋友就跟我說AD9361內部有2000多個寄存器,看著頭疼,在我這次的軟件無線電工程實踐過程中,也同樣感覺到很頭疼,好在ADI官方有個小軟件,可以圖形化操作,用起來很方便。本項目配置過程重點要考慮AD9361內部的濾波器,如下圖。

AD9361內部集成了4個數字濾波器包括1個可編程FIR濾波器和3個半帶濾波器,AD9361內部還集成了2個可編程的模擬濾波器。我本想把前面生成的系數寫入AD9361的寄存器,這樣可以減少占用的FPGA資源,可是AD9361的FIR濾波器只能寫入128個系數,而我用Matlab生成的系數確是129個,實在沒想明白怎么辦。所以在我的配置中,bypass掉了AD9361的FIR濾波器,后面的3個半帶濾波器則正常使用,2個模擬濾波器也正常配置。配置過程如下:

在我的板子上,參考時鐘是40MHz
AD9361帶寬,采樣率及濾波器配置
AD9361接口配置
根據板子的實際情況進行配置
AD9361模式配置,為了方便,直接配置為FDD模式
AD9361 AGC配置
生成初始化腳本

生成初始化腳本后,使用一個convert.exe的小軟件,將腳本轉換為verilog代碼,如下圖

本項目中使用FPGA模擬SPI接口直接對進行AD9361配置,用了別人編寫好的代碼^_^,我只是把其中的寄存器參數替換成了剛剛生成的。ADI公司還提供了no-OS代碼,可以移植到單片機上或者FPGA的軟核,這里就不展開敘述了。

還有二點值得注意的是:FIR的輸出直接給到AD9361,位寬是不匹配的,我做了個簡單粗暴的操作,直接把FIR的高12位輸出給到AD9361,畢竟低位數據影響不大;DPSK方式,IQ支路只用一路就好,我的代碼中I路對應FIR輸出的高12位,Q路始終為0。代碼如下:

assign tx_i_ch1=srrc_out[16:5];
assign tx_q_ch1=12'b0;
assign tx_i_ch2=srrc_out[16:5];
assign tx_q_ch2=12'b0;

至此,已經完成了DPSK調制的所有功能模塊,如下圖:

使用Vivado編譯完整工程,將最終得到的bitstream文件寫入FPGA,就在頻譜儀上看到了預期的波形,這是最讓人激動的時刻,如下圖。

至此,關于DPSK調制的完整實驗都已經完成,我又嘗試了幾種不同的采樣率和信道帶寬,都能與預期的波形相符。回想這些年的研發經歷,這次試驗是我唯一能夠了解到底層機制的一次,甚至可以知道每一個bit是怎么來的,也是我第一次把數學與工程實踐相結合,領略到數學之美的同時也感受到了數字基帶開發的樂趣:可計算、可仿真、可實際驗證。其實這3篇文章提煉出來的都是我在學習實踐過程中總結出來的要點,我自己深入學習差不多有半年的時間才搞出來DPSK的波形,而且這僅僅是發射部分,有個高手說接收比發射復雜10倍,未來還有很長的路要走。

下一篇: PLC、DCS、FCS三大控

上一篇: 5.8GHz大功率無線網橋

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        91精品国产综合久久久久久漫画| 欧美久久在线| 国产在线国偷精品产拍免费yy| 亚洲成人动漫精品| 亚洲福利一二三区| 午夜婷婷国产麻豆精品| 亚洲综合在线观看视频| 亚洲18色成人| 激情六月婷婷久久| 成人亚洲精品久久久久软件| 成人国产精品免费观看动漫| 91丨porny丨户外露出| 国产精品久久久久久久免费大片 | 狠狠色狠狠色综合| 激情综合网av| 91亚洲精品一区二区乱码| 国产精品免费视频一区二区| 欧美精品一区二区三区在线看午夜| 日本一区二区三区四区在线观看| 在线视频精品一区| 日韩一区二区影院| 国产精品久久福利| 丝袜脚交一区二区| 国产成人精品一区二区三区网站观看| 91一区二区在线| 日韩欧美在线一区二区| 欧美日韩在线三级| 久久久精品免费免费| 亚洲综合精品自拍| 国产精品91xxx| 精品国产一区二区三区四区vr| 日本一区二区三区免费观看 | 国产欧美1区2区3区| 一区二区三区中文在线| 久久99国产精品免费| 91免费国产在线| 亚洲人成网站在线播放2019| 91精品国产综合久久精品| 国产精品护士白丝一区av| 日韩av一区二区在线影视| www.久久久久久久久| 久久综合伊人77777麻豆| 欧美丰满一区二区免费视频| 国产欧美精品国产国产专区| 日韩高清不卡在线| 不卡视频一区| 欧美亚州韩日在线看免费版国语版| 精品国产一区二区三区久久久蜜月| 亚洲男人的天堂在线观看| 国产精品亚洲第一| 亚洲国产精品久久久久婷婷老年| 91麻豆精品国产自产在线观看一区| 国产免费久久精品| 国产永久精品大片wwwapp| 久久久久久久久一区| 91精品欧美久久久久久动漫| 亚洲少妇屁股交4| 国产精品一区二区视频| 色姑娘综合网| 中文字幕国产一区| 国产成人精品免费网站| 一本久久a久久精品vr综合| 欧美极品少妇xxxxⅹ高跟鞋| 国产一区二区三区精品视频| 青青成人在线| 久久天堂av综合合色蜜桃网| 久久99精品国产麻豆婷婷| 日本一区精品| 欧美国产视频在线| 成人激情黄色小说| 欧美日韩激情一区| 亚洲一二三四久久| 国产日韩三区| 久久这里只有精品视频网| 激情综合网最新| 色999日韩国产欧美一区二区| 日韩美女视频一区| 97精品国产97久久久久久久久久久久| 欧美综合欧美视频| 五月婷婷综合网| 日韩电影大全在线观看| 国产精品久久久久久久久免费相片| 国产一区二区三区| 欧美亚洲丝袜传媒另类| 亚洲成av人片| 亚洲精品一区二区三区樱花| 亚洲天堂免费看| 国内精品久久国产| 国产日韩精品一区二区浪潮av| 成人免费观看av| 日韩区在线观看| 国产成人精品免费看| 欧美日韩免费不卡视频一区二区三区| 亚洲成av人影院| 五月天婷亚洲天综合网鲁鲁鲁| 亚洲日本青草视频在线怡红院| 国产精品免费观看高清| 中文一区二区在线观看| av成人观看| 日本一区二区三级电影在线观看 | 欧美一区二区精品| 国产精品99久久久久| 欧美日韩电影在线播放| 蜜桃在线一区二区三区| 在线观看亚洲精品视频| 久久国产欧美日韩精品| 欧美三级电影网站| 国产一区二区美女诱惑| 91精品国产一区二区三区香蕉| 国产曰批免费观看久久久| 8x8x8国产精品| 国产99久久久精品| 精品国产凹凸成av人导航| 99精品黄色片免费大全| 久久久久久久网| 国产亚洲欧美一区二区三区| 最好看的中文字幕久久| 涩涩涩999| 久草精品在线观看| 狠狠网亚洲精品| 国产欧美精品国产国产专区| 91精品综合久久| 国产精品我不卡| 亚洲三级免费电影| 日韩视频精品| 日韩国产欧美一区二区三区| 色婷婷综合久久久中文一区二区| 久久精品国产精品亚洲精品 | 97久久人人超碰caoprom欧美| 久久久国产午夜精品 | 欧美日本一道本在线视频| 国产成人精品aa毛片| 久久日一线二线三线suv| 久久精品日产第一区二区三区精品版 | caoporn国产精品| 国产精品理伦片| 亚洲精品日韩成人| 国产乱人伦偷精品视频不卡| 久久久久久电影| 亚洲电影网站| 懂色中文一区二区在线播放| 亚洲国产精品二十页| 亚洲国产一区在线| 国产成人一区在线| 亚洲欧美激情视频在线观看一区二区三区| 亚洲图片欧洲图片日韩av| 国产激情一区二区三区桃花岛亚洲| 欧美激情一区不卡| 在线欧美日韩精品| yellow视频在线观看一区二区| 亚洲成人在线观看视频| 欧美成人国产一区二区| 日本一区二区精品| 国产成人亚洲精品狼色在线 | 久草中文综合在线| 欧美国产精品一区| 在线亚洲一区二区| 国产高清精品一区| 九九久久精品视频| 日韩毛片在线免费观看| 欧美久久久一区| 日本一区二区免费看| 成a人片国产精品| 亚洲电影一级黄| 久久久久久久久一| 欧美最猛黑人xxxxx猛交| 波多野结衣一区二区三区在线观看| 图片区日韩欧美亚洲| 国产三级精品视频| 欧美日韩在线播放三区| 精品乱码一区| 成人免费毛片a| 日本美女视频一区二区| 中文在线一区二区| 91精品视频网| 一区二区欧美日韩| 国产精品日韩高清| 国产不卡高清在线观看视频| 亚洲一区二区三区四区在线观看 | 免费成人在线影院| 亚洲视频综合在线| 日韩欧美一二三区| 色久优优欧美色久优优| 加勒比在线一区二区三区观看| 国产精品一线二线三线| 五月婷婷久久丁香| 亚洲欧美二区三区| 久久久国产精品麻豆| 91麻豆精品国产自产在线观看一区| 亚洲国产一区二区在线| 久久久久网址| 波多野结衣久草一区| 成人中文字幕合集| 国内一区二区视频| 美女任你摸久久| 日韩一区精品字幕| 午夜精品久久久久久久久| 亚洲老妇xxxxxx| 亚洲色图视频免费播放| 中文字幕av在线一区二区三区|