當(dāng)前位置: 首頁(yè) > 工業(yè)電子產(chǎn)品 > 其他電子產(chǎn)品 > 開(kāi)發(fā)板,套件,編程器 > 開(kāi)發(fā)板
發(fā)布日期:2022-10-14 點(diǎn)擊率:99
今年已經(jīng)是我創(chuàng)業(yè)第7年了,本來(lái)挺有技術(shù)含量的工作變成了體力活,我還很年輕,很想在技術(shù)領(lǐng)域有所突破。軟件無(wú)線電是我一直想要進(jìn)入的領(lǐng)域,苦于自己被公司已有業(yè)務(wù)占用了太多時(shí)間,自己也不是通信專業(yè)出身,遲遲沒(méi)能開(kāi)始軟件無(wú)線電類產(chǎn)品的開(kāi)發(fā)。近期公司業(yè)務(wù)受到了疫情影響,出現(xiàn)了一段時(shí)間空檔,剛好可以把之前的學(xué)習(xí)資料整理一下,分享給各位讀者。可以肯定的是,文中會(huì)有很多錯(cuò)誤,也會(huì)有很多不嚴(yán)謹(jǐn)?shù)牡胤剑x者可以通過(guò)郵件反饋給我,我也很期待自己能在數(shù)字通信方向更加深入地學(xué)習(xí)。本文記錄了我學(xué)習(xí)使用ADI AD9361的過(guò)程,最終在開(kāi)發(fā)板上使AD9361輸出了預(yù)期的波形,如下,可以看到,AD9361的輸出信號(hào)可以通過(guò)儀器進(jìn)行解調(diào)。
我們知道,AD9361是一款具有里程碑意義的產(chǎn)品,其內(nèi)部集成了ADC DAC及多個(gè)射頻組件,大大降低了軟件無(wú)線電產(chǎn)品設(shè)計(jì)的復(fù)雜度。想要讓AD9361輸出想要的波形,則需要按照一定的格式將數(shù)據(jù)送至AD9361的DA,并通過(guò)IQ調(diào)制到射頻頻段。看起來(lái)簡(jiǎn)單的過(guò)程,實(shí)際上卻是一個(gè)超級(jí)復(fù)雜的過(guò)程,涉及到太多的數(shù)學(xué)知識(shí)。為此,我首先復(fù)習(xí)了《工科數(shù)學(xué)分析》、《線性代數(shù)與空間解析幾何》、《信號(hào)與系統(tǒng)》這幾門(mén)課程,這些課程都是我在大學(xué)階段學(xué)過(guò)的,同時(shí)我自學(xué)了通信專業(yè)的一些課程包括《數(shù)字信號(hào)處理》和《通信原理》,學(xué)習(xí)越是深入,越是領(lǐng)略到數(shù)字通信的博大精深,我平時(shí)工作中用到的知識(shí)連皮毛都算不上。回想起第一份工作時(shí)研發(fā)老大說(shuō)過(guò)的工程師成長(zhǎng)路線:skill level,marketing level,standard level,能搞標(biāo)準(zhǔn)的這些人真是厲害!
相信閱讀本文的讀者都能知道幾種基本的調(diào)制方式:幅度調(diào)制,頻率調(diào)制,相位調(diào)制,其中,相位調(diào)制具備很強(qiáng)的抗干擾能力,考慮到后期會(huì)開(kāi)發(fā)的第一款軟件無(wú)線電產(chǎn)品要具備高可靠性,我就把相位調(diào)制也就是PSK作為首個(gè)研究對(duì)象。本文的目標(biāo)是用AD9361產(chǎn)生BPSK調(diào)制波形,其信道帶寬可以根據(jù)需要任意設(shè)定。
目標(biāo)已經(jīng)設(shè)定好了,我們知道BPSK是載波相位隨著0,1序列做改變,那么這個(gè)過(guò)程如何實(shí)現(xiàn)呢?有一個(gè)非常簡(jiǎn)單的數(shù)學(xué)運(yùn)算,我們假定1對(duì)應(yīng)的相位為0,0對(duì)應(yīng)的相位是180度,載波信號(hào)是cos(wt)(這里不必關(guān)心載波的幅度與初始相位),則有以下的對(duì)應(yīng)關(guān)系
基帶信號(hào) | 載波相位 | 載波信號(hào) |
1 | 0 | cos(wt) |
0 | pi | cos(wt+pi)=-cos(wt) |
假定數(shù)字序列中出現(xiàn)0 1是等概率的,則這些0 1序列加起來(lái)的平均值是0.5,這就意味著這個(gè)數(shù)字序列是有直流偏移的,想象一下,其頻譜必定在0頻處有一根線(傅里葉變換),這顯然不是我們想要的,因?yàn)檫@種方式既浪費(fèi)能量又不能傳遞任何信息。因此,在實(shí)際的通信系統(tǒng)中,用-1 1(即NRZ,不歸零)代表0 1,仍假定-1 1是等概率出現(xiàn)的,則這些-1 1序列加起來(lái)的平均值就是0,這樣就可以消去直流分量了,還可以提升抗干擾能力。兩種數(shù)字序列的頻譜如下圖所示。
對(duì)應(yīng)的Matlab代碼如下
clear;clc;
N=200;
Tb=4;
rb=randi([0 1],N,1);
gt = ones(1, Tb);
Sinput=[] ;
for n=1:length(rb)
if rb(n)==0
Sinput=[Sinput gt];
else
Sinput=[Sinput -1*gt]; %-1 1序列
%Sinput=[Sinput zeros(1, Tb)]; %0 1 序列
end
end
plot(20*log10(abs(fft(Sinput))));
ylim([0 inf]);
于是,大家普遍采用如下的對(duì)應(yīng)關(guān)系
基帶信號(hào) | 載波相位 | 載波信號(hào) |
1 | 0 | cos(wt) |
-1 | pi | cos(wt+pi)=-cos(wt) |
顯而易見(jiàn),用數(shù)字序列-1 1與載波cos(wt)相乘,直接就可以得到調(diào)制后的信號(hào)。這樣一來(lái),把AD9361當(dāng)作簡(jiǎn)單的DAC,讓它輸出-1 1,再與載波相乘,不就得到調(diào)制后的信號(hào)了嗎?的確如此。
進(jìn)一步,教科書(shū)上都會(huì)寫(xiě)B(tài)PSK方式解調(diào)時(shí)存在相位翻轉(zhuǎn),造成誤判,在實(shí)際通信系統(tǒng)中采用的都是差分PSK即DPSK,也就是當(dāng)前比特與前一個(gè)比特做異或運(yùn)算(相同為0,不同為1)。因此,基帶信號(hào)在與載波相乘前,需要做一個(gè)差分變換,對(duì)應(yīng)的matlab代碼如下。
%并將絕對(duì)碼變換為相對(duì)碼
ds=ones(1,N);
for i=2:N
if s(i)==1
ds(i)=-ds(i-1);
else
ds(i)=ds(i-1);
end
end
差分編碼后的頻譜與原始信號(hào)頻譜沒(méi)有差別。至于頻譜為什么是長(zhǎng)成這個(gè)樣子的,《通信原理》(樊昌信,曹麗娜,國(guó)防工業(yè)出版社)給出了很好的闡述。
下一篇: PLC、DCS、FCS三大控