QAM調制解調MATLAB_第1頁
QAM調制解調MATLAB_第2頁
QAM調制解調MATLAB_第3頁
QAM調制解調MATLAB_第4頁
QAM調制解調MATLAB_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、題目:基于MATLAB的16QAM及32QAM系統的仿真原理:QAM是一種矢量調制,將輸入比特映射到一個復平面,形成復數調制信號,然后將I信號和Q信號(實部虛部)分量采用幅度調制,分別對應調制在相互正交的兩個載波(,)上。下圖為MQAM的調制原理圖。MQAM的信號表達式:上述表達式可以看出,QAM為兩個正交載波振幅相位調制的結合。波形矢量可以表示為:MQAM信號最佳接收:實驗仿真條件:碼元數量設定為10000個,基帶信號頻率1HZ,抽樣頻率32HZ,載波頻率4HZ。實驗結果分析:對于QAM,可以看成是由兩個相互正交且獨立的多電平ASK信號疊加而成。因此,利用多電平誤碼率的分析方法,可得到M進制

2、QAM的誤碼率為: 式中,Eb為每碼元能量,n0為噪聲單邊功率譜密度。通過調整高斯白噪聲信道的信噪比SNR(Eb/No),可以得到如圖所示的誤碼率圖:可見16QAM和32QAM信號的誤碼率隨著信噪比的增大而逐漸減小,這與理論趨勢是一致的,但是存在偏差。總結:與16QAM比較,32QAM解調的誤碼率高,但數據速率高。16QAM一般工作在大信噪比環境下,誤碼率會很小,在同等噪聲條件下,16QAM的抗噪聲性能是相當優越的。附錄代碼:main_plot.mclear;clc;echo off;close all;N=10000; %設定碼元數量fb=1; %基帶信號頻率fs=32; %抽樣頻率fc=4

3、; %載波頻率,為便于觀察已調信號,我們把載波頻率設的較低Kbase=2; % Kbase=1,不經基帶成形濾波,直接調制; % Kbase=2,基帶經成形濾波器濾波后,再進行調制info=random_binary(N); %產生二進制信號序列y,I,Q=qam(info,Kbase,fs,fb,fc); %對基帶信號進行16QAM調制y1=y; y2=y; %備份信號,供后續仿真用T=length(info)/fb; m=fs/fb;nn=length(info);dt=1/fs; t=0:dt:T-dt; n=length(y); y=fft(y)/n; y=abs(y(1:fix(n/

4、2)*2;q=find(y1e-04);y(q)=1e-04; y=20*log10(y);f1=m/n; f=0:f1:(length(y)-1)*f1;%subplot(212);plot(f,y,b);grid on; title(已調信號頻譜); xlabel(f/fb); %畫出16QAM調制方式對應的星座圖%constel(y1,fs,fb,fc); title(星座圖);SNR_in_dB=8:2:24; %AWGN信道信噪比for j=1:length(SNR_in_dB) y_add_noise=awgn(y2,SNR_in_dB(j); %加入不同強度的高斯白噪聲 y_ou

5、tput=qamdet(y_add_noise,fs,fb,fc); %對已調信號進行解調 numoferr=0; for i=1:N if (y_output(i)=info(i), numoferr=numoferr+1; end; end; Pe(j)=numoferr/N; %統計誤碼率end;figure;semilogy(SNR_in_dB,Pe,blue*-); grid on;xlabel(SNR in dB); ylabel(Pe);title(16QAM調制誤碼率);bshape.m%基帶升余弦成形濾波器function y=bshape(x,fs,fb,N,alfa,de

6、lay);%設置默認參數if nargin6; delay=8; end;if nargin5; alfa=0.5; end;if nargin4; N=16; end;b=firrcos(N,fb,2*alfa*fb,fs);y=filter(b,1,x);four2two.mfunction xn=four2two(yn);y=yn; ymin=min(y); ymax=max(y); ymax=max(ymax abs(ymin);ymin=-abs(ymax); yn=(y-ymin)*3/(ymax-ymin); %設置門限電平,判決I0=find(yn=0.5 & yn=1.5 &

7、 yn=2.5); yn(I3)=ones(size(I3)*3;%一位四進制碼元轉換為兩位二進制碼元T=0 0;0 1;1 1;1 0;n=length(yn); for i=1:n; xn(i,:)=T(yn(i)+1,:);end; xn=xn; xn=xn(:); xn=xn;two2four.m%二進制轉換成四進制function y,yn=two2four(x,m);T=0 1;3 2; n=length(x); ii=1;for i=1:2:n-1; xi=x(i:i+1)+1; yn(ii)=T(xi(1),xi(2); ii=ii+1;end;yn=yn-1.5; y=yn;

8、 for i=1:m-1; y=y;yn;end;y=y(:); %映射電平分別為-1.5;0.5;0.5;1.5random_binary.mfunction info=random_binary(N) if nargin = 0, %如果沒有輸入參數,則指定信息序列為10000個碼元 N=10000;end;for i=1:N, temp=rand; if (temp0.5), info(i)=0; % 1/2的概率輸出為0 else info(i)=1; % 1/2的概率輸出為1 endend;qamdet.m%QAM信號解調function xn,x=qamdet(y,fs,fb,fc

9、);dt=1/fs; t=0:dt:(length(y)-1)*dt;I=y.*cos(2*pi*fc*t); Q=-y.*sin(2*pi*fc*t);b,a=butter(2,2*fb/fs); %設計巴特沃斯濾波器I=filtfilt(b,a,I);Q=filtfilt(b,a,Q);m=4*fs/fb;N=length(y)/m; n=(.6:1:N)*m; n=fix(n);In=I(n); Qn=Q(n); xn=four2two(In Qn); %I分量Q分量并/串轉換,最終恢復成碼元序列xnnn=length(xn); xn=xn(1:nn/2);xn(nn/2+1:nn);

10、xn=xn(:); xn=xn;qam.mfunction y,I,Q=qam(x,Kbase,fs,fb,fc);%T=length(x)/fb; m=fs/fb;nn=length(x);dt=1/fs; t=0:dt:T-dt;%串/并變換分離出I分量、Q分量,然后再分別進行電平映射I=x(1:2:nn-1); I,In=two2four(I,4*m);Q=x(2:2:nn); Q,Qn=two2four(Q,4*m); if Kbase=2; %基帶成形濾波 I=bshape(I,fs,fb/4); Q=bshape(Q,fs,fb/4); end; y=I.*cos(2*pi*fc*

11、t)-Q.*sin(2*pi*fc*t); 32QAMM = 32; k = log2(M); x = randint(20000,1); y = modulate(modem.qammod(M,32,InputType,Bit),x); EbNo = -5:1:10; for n=1:length(EbNo) snr(n) = EbNo(n) + 10*log10(k); ynoisy = awgn(y,snr(n),measured); zms = demodulate(modem.qamdemod(M,32,OutputType,Bit),ynoisy); z = de2bi(zms,left-msb);nErrors(n), BITBER(n) = biterr(x,z); theo_err_prb(n)=(1/k)*3/2*erfc(sqrt(k*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論