主要内容

このページの翻訳は最新ではありませ。

大厦同期と细かな细かなな使使たた16-qamの位相オフセットと数オフセットの正

AWGNチャネルにおける16-QAM信号の位相位相と周波オフセットの正は,2つのステップで行れます。まず,大型で周波れます。まずされた推定をし大厦な周波オフセットし大まかてから,搬送波搬送波同ををして正を微调整ます。周波数补正がなため,正规帯域幅が低い値されれても,キャリア同れれても收束ますし。正式化幅が小さい低いほど,残差残差小さい搬送波セットをより良く补できます。诚信信号に补と周波。

シミュレーションパラメーターを定义します。

fs = 10000;%采样率(Hz)SPS = 4;每个符号的%样本m = 16;%调制顺序k = log2 (M);%位为每个符号RNG(1996)%为可重复的结果设置种子barker = comm.barkercode(......“长度”,13,'samplesperframe',13);%的序言msglen = 1e4;numframes = 10;framelen = msglen / numframes;

データフレームを生成し,各フレームにプリアンブルを追ます。

前导码=(1 + Barker())/ 2;%长度13,单极数据= 0 (msgLen, 1);为了idx = 1:numframes payload = randi([0 m-1],framelen-barker.length,1);数据((IDX-1)* Framelen +(1:Framelen))= [前导序;有效载荷];结尾

诚信パルス整形フィルター,诚信パルス整形フィルター,QAMの大厦な补正,搬送波搬送波期,およびおよびダイアグラムのため系统对象を作物。

txfilter = comm.raisedcosinetransmitfilter(......'OutputSamplespersymbol', sps);rxfilter = comm.raisedcosinereceivefilter(......'inputsamplespersymbol'sps,'decimationfactor', sps);coarse = comm.coarsefrequencycompensator('采样率',fs,......“FrequencyResolution”10);feed = comm.carriersynchronizer(......“DampingFactor”, 0.4,“NormalizedLoopBandwidth”,0.001,......'samplespersymbol',1,'调制''QAM');Axislimits = [-6 6];constDiagram = comm.ConstellationDiagram ('referenceconstellation',qammod(0:m-1,m),......“ChannelNames”,{“在融合之前”'收敛后'},......'ShowLegend',真的,'xlimits',axislimits,'ylimits',axislimits);

また,AWGNチャネルの系统对象と,位相と周波数のオフセットを作成して,信号に損失を追加します。90度よりも大きい位相オフセットを追加して位相不確定性を引き起こすと,コンスタレーションの象限変化が起こります。

EBN0 = 8;freqoffset = 110;阶段OFFSET = 110;awgnchannel = comm.awgnchannel('eBno',eBn0,......'bitspersymbol',k,'samplespersymbol', sps);卵圆孔未闭= comm.PhaseFrequencyOffset (“FrequencyOffset”freqoffset,......'阶段OFFSET',阶段Offset,'采样率',FS);

ランダムデータシンボルを生成し,16-QAM変调を适用して,変调された信号を送信パルス整形フィルターを通じて渡します。

txMod = qammod(数据,M);txSig = txFilter (txMod);

PFO.SYSTEM对象をを用しし位相位相とととオフセットオフセットとオフセットオフセットを,次にawgnチャネルを通讯。

txsigoffset = pfo(txsig);rxsig = awgnchannel(txsigoffset);

大厦なな数量器系统对象は,周波数オフセットの大まかな补例を行ます。

syncCoarse =粗(rxSig);

诚信パルス整形フィルターを通讯て信号渡し,细かな细かな数量正式を适。

rxfiltsig = fine(rxfilter(synccoarse));

信号内の最初と最後の1000個のシンボルのコンスタレーションダイアグラムを表示します。同期ループの収束前は,ダイアグラムの表示が螺旋状であり,周波数オフセットが補正されていないことが示されています。キャリア同期装置が解に収束した後は,シンボルが基準コンスタレーションと一致します。

Constdiagram([rxfiltsig(1:1000)rxfiltsig(9001:结束)])

图中包含轴和其他对象的UiflowContainer,Uimenu,UIToolbar类型。轴包含3个类型的线。这些对象在收敛之后表示在收敛之前。

信息を复调します。受受フィルター総にます送误りの総と表示を计算してします计算计算とと表示し计算计算计算して表示しし计算计算チェックしてし信信误りのとと表示し信计算计算ととてし计算计算计算しととし计算计算计算し考虑と表示信计算计算をと考虑考虑考虑信信计算计算しとと考虑と计算计算をを考虑考虑信信遅延计算を考虑考虑考虑信信遅延计算をを考虑とと信遅延遅延遅延遅延をとと信による遅延遅延ををををををを受データと复调しデータをますますますます受ますます受受而来は,诚信信号の后半ををして,同ループがししいること确认します。

rxdata = qamdemod(rxfiltsig,m);delay =(txfilter.filterspaninsymbols + rxfilter.filterspaninsymbols)/ 2;idxsync = 2000;%在同步环路收敛后检查接收信号的误码率[syncDataTtlErr, syncDataBER] = biterr(数据(idxSync: end-delay) rxData (idxSync +延迟:结束)
syncdatattlerr = 16116.
syncdataber = 0.5042

使用されるランダムデータは,同优先民が收束してささた后に,受信信号の性による误りがある可以性ありこのこのははます。确定性を判别してから削除し,ビット误りを减らすことができます。位相不确定性がきわめて小さい场合は,ビット误りの数が変わらないことがあります。

IDX = 9000 +(1:Barker.Length);phoffset =角度(txmod(idx)。*结合(rxfiltsig(idx +延迟)));phoffsetest =均值(phoffset);DISP(['阶段offset =',num2str(rad2deg(phoffsetest)),'度'])
阶段offset = -90.1401度
resphzsig = exp(1i * phoffsetest)* rxfiltsig;

位相不確定性を解決した後は,信号を復調します。ビット誤りの総数と误码率を再計算します。

Resphzdata = Qamdemod(Resphzsig,M);[Resphzttlerr,Resphzber] = Biterr(数据(idxsync:end延迟),resphzdata(idxsync + delay:结束))
Resphzttlerr = 5.
节拍= 1.5643E-04