美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成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在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        成人精品高清在线| 一区二区三区色| 欧美日韩三区四区| 欧美bbbbb| 调教+趴+乳夹+国产+精品| 国产欧美一区二区精品仙草咪| 18成人在线视频| 91精品国产综合久久久蜜臀粉嫩| 欧美午夜视频网站| 91精品1区2区| 国产精品18久久久| 老司机午夜精品99久久| 视频一区二区三区在线| 欧美四级电影网| 夜夜爽99久久国产综合精品女不卡| 午夜视频在线观看一区| 亚洲一区二区三区自拍| 亚洲综合无码一区二区| 亚洲在线中文字幕| 亚洲成av人影院| 午夜精品免费在线观看| 日韩欧美精品在线| 免费国产在线精品一区二区三区| 久久久91精品国产一区二区精品| 精品国产乱码久久久久久牛牛| 欧美不卡一区二区三区四区| 亚洲精品9999| 成人看片视频| 91福利视频导航| 国产视频一区二区三区四区| 另类视频在线观看+1080p| 成人女人免费毛片| 久久婷婷人人澡人人喊人人爽| 欧美日本国产精品| 亚洲精品一区二区三| 欧美理论一区二区| 色菇凉天天综合网| 欧美精品日韩一区| 2022国产精品视频| 亚洲人成人一区二区在线观看 | 激情五月综合色婷婷一区二区| 亚洲一二三四在线| 日韩—二三区免费观看av| 精品一区二区免费视频| 99久久er热在这里只有精品66| 国产精品一区二区免费| 国产精品亚洲第一区在线暖暖韩国| 国产一区二区福利| 日本va欧美va瓶| 国产69精品一区二区亚洲孕妇| 亚洲18色成人| 国产最新精品精品你懂的| 无码av免费一区二区三区试看| 国产一区美女在线| 国产精品视频免费一区| 韩日午夜在线资源一区二区 | 精品在线观看一区二区| 一本到不卡精品视频在线观看| 欧美肥大bbwbbw高潮| 国产精品美女久久久久av爽李琼| 中文字幕第一区二区| 亚洲免费看黄网站| 精品一区二区三区欧美| 国产成人免费电影| 欧美日韩第一区日日骚| 亚洲国产精品成人综合色在线婷婷 | 日韩和的一区二区| 国产精品1024| 好吊色欧美一区二区三区| 欧美酷刑日本凌虐凌虐| 国产精品午夜久久| 国产一区欧美日韩| 日韩av高清| 成人欧美视频在线| 欧美日精品一区视频| 国产拍揄自揄精品视频麻豆| 天天综合色天天综合色h| 5g国产欧美日韩视频| 免费看污久久久| 在线观看亚洲一区| 中文字幕在线观看一区| 国产成人一级电影| 亚洲在线色站| 国产欧美一二三区| 国产麻豆精品95视频| 日韩高清国产一区在线观看| 亚洲精品在线免费播放| 久久精品99国产精品日本| 国产伦精品一区二区三区视频免费 | 国产精品区一区二区三区| 久久97超碰国产精品超碰| 国产福利久久| 91国偷自产一区二区三区成为亚洲经典| 欧美激情在线观看视频免费| 视频一区在线视频| 北条麻妃国产九九精品视频| 91搞黄在线观看| 亚洲精品国产视频| 91在线播放网址| 中文字幕一区二区三区四区五区六区| 精品高清视频| 精品粉嫩aⅴ一区二区三区四区 | 性感美女久久精品| 精品国产乱码久久久久久久软件 | 欧美日韩免费观看一区| 国产性做久久久久久| 成人午夜免费视频| 欧美日韩国产综合草草| 午夜一区二区三区视频| 久久精品国产综合精品| 国产久一道中文一区| 精品理论电影在线| 欧美96一区二区免费视频| 亚洲精品一区二区三区樱花| 亚洲精品国久久99热| 99精品国产99久久久久久白柏| 中文字幕一区二区三区有限公司 | 午夜国产精品影院在线观看| 久久久精品有限公司| 中文字幕中文乱码欧美一区二区| 国产精品一区二区久激情瑜伽| 日本a级片久久久| 亚洲欧美日韩人成在线播放| 国产精品一区二区三区观看| 国产区在线观看成人精品| 97久久久精品综合88久久| 精品国产a毛片| av网站免费线看精品| 久久久国产精品午夜一区ai换脸| 国产盗摄一区二区三区| 日本电影亚洲天堂一区| 免费av网站大全久久| 欧美无乱码久久久免费午夜一区 | 北条麻妃一区二区三区| 精品福利二区三区| 91欧美激情一区二区三区成人| 久久香蕉国产线看观看99| 91视频免费看| 国产精品家庭影院| 免费日韩电影在线观看| 亚洲一区二区欧美| 伊人久久大香线蕉av一区| 男男gaygay亚洲| 91麻豆精品久久久久蜜臀| 日韩国产精品91| 欧美理论在线播放| 国产富婆一区二区三区| 男男成人高潮片免费网站| ww亚洲ww在线观看国产| 亚洲美女搞黄| 99久久精品国产麻豆演员表| 午夜一区二区三区视频| 久久久久久久久蜜桃| 中文字幕日韩精品一区二区| 91网上在线视频| 天堂一区二区在线免费观看| 欧美成人乱码一区二区三区| 任我爽在线视频精品一| av激情综合网| 免费高清在线一区| 中文字幕免费不卡在线| 欧美性极品少妇| 久久久久资源| 国产精品12区| 视频一区二区国产| 国产色产综合产在线视频| 欧美亚洲一区二区在线| 精品不卡在线| 99在线精品观看| 久久精品99国产精品| 一区二区三区在线视频免费观看| 欧美一区二区三区日韩视频| 性欧美.com| 国产亚洲一区在线播放 | 久久久久久九九| 大陆成人av片| 日本 国产 欧美色综合| 自拍偷拍国产精品| 2020国产成人综合网| 欧美日韩综合在线免费观看| 日本一区二区视频| 豆国产97在线| 国产成人8x视频一区二区| 亚洲高清视频一区二区| 国产精品久久三区| 日本一区二区精品| 18成人在线视频| 日韩在线电影一区| 国产精品久久久久久久久快鸭 | 国产一区在线观看麻豆| 亚洲国产裸拍裸体视频在线观看乱了| 国产日韩欧美精品一区| 日韩一区和二区| 欧美日韩一区国产| 日韩三级在线播放| 欧美精品v日韩精品v国产精品| 51成人做爰www免费看网站| 国产精品自拍三区| 久久66热偷产精品| 蜜桃视频第一区免费观看|