天天看點

matlab 2psk仿真設計,通信系統仿真基于matlab的設計2psk調制.doc

matlab 2psk仿真設計,通信系統仿真基于matlab的設計2psk調制.doc

通信系統仿真基于matlab的設計2psk調制.doc

1 課程設計目的 1.1 對數字通信系統主要原理和技術進行研究,包括二進制相移鍵控(2psk)及解調 技術、高斯噪聲信道原理、以及信源編碼中香農編碼、信道編碼中hamming碼的基本原理等。 1.2 建立完整的基于2psk和(7,4)循環碼的數字通信系統仿真模型,包括2psk調制解 調及香農、hamming碼的編譯碼; 1.3 在信道中加入高斯噪聲,觀察系統的糾錯能力,統計誤碼率,并進行分析。 1.4 鍛煉我們查閱資料、方案比較、團結合作的能力。學會簡單電路的實驗調試和整 機名額測試方法,增強我們的動手能力。 2 課程設計正文 這次課程設計的主要任務是運用MATLAB程式設計實作2PSK調制解調過程,并且輸出其調 制及解調過程中的波形,讨論其調制和解調效果。了解高斯噪聲信道原理、以及香農編譯 碼、hamming編譯碼的原理。 2.1 性能名額 2.1.1 用數字基帶信号控制載波,把數字基帶信号變換為數字帶通信号的過程稱為數 字調制。本實驗詳細介紹了PSK波形的産生和仿真過程。我們可以系統的了解基本原理, 以及得到數字調制波形的方法。利用MATLAB仿真可更好的認識2PSK信号波形的調制過程。 圖1 相應的信号波形的示例 1 0 1 2.1.2 将文字、數字或其他對象編成數位,或将資訊、資料轉換成規定的電脈沖信号。 通過本次設計,了解香農—費諾編碼的具體過程 ,通過程式設計實作編碼 ,利用 matlab 實 現費諾編碼。 2.1.3 當計算機存儲或移動資料時,可能會産生資料位錯誤,這時可以利用漢明碼來檢測 并糾錯,簡單的說,漢明碼是一個錯誤校驗碼碼集,由Bell實驗室的R.W.Hamming發明, 是以定名為漢明碼。 2.2 matlab代碼 2.2.1 香農編碼 %*******************************%香農編碼*********************************** A=[0.4,0.3,0.1,0.09,0.04,0.07]; A=fliplr(sort(A));%降序排列 [m,n]=size(A); for i=1:nB(i,1)=A(i);%生成B的第1列end %生成B第2列的元素 a=sum(B(:,1))/2; for k=1:n-1if abs(sum(B(1:k,1))-a)<=abs(sum(B(1:k+1,1))-a)break;end end for i=1:n%生成B第2列的元素if i<=kB(i,2)=0;elseB(i,2)=1;end end %生成第一次編碼的結果 END=B(:,2) ; END=sym(END); %生成第3列及以後幾列的各元素 j=3; while (j~=0)p=1;while(p<=n)x=B(p,j-1);for q=p:nif x==-1break;elseif B(q,j-1)==xy=1;continue;elsey=0;break;endendendif y==1q=q+1;endif q==p|q-p==1B(p,j)=-1;elseif q-p==2 B(p,j)=0;END(p)=[char(END(p)), 0 ];B(q-1,j)=1;END(q-1)=[char(END(q-1)), 1 ];elsea=sum(B(p:q-1,1))/2;for k=p:q-2if abs(sum(B(p:k,1))-a)<=abs(sum(B(p:k+1,1))-a);break;endendfor i=p:q-1if i<=kB(i,j)=0;END(i)=[char(END(i)), 0 ];elseB(i,j)=1;END(i)=[char(END(i)), 1 ];endendendendp=q;end C=B(:,j);D=find(C==-1);[e,f]=size(D);if e==nj=0;elsej=j+1;end end B A END 2.2.2 香農譯碼 %********************************%香農解碼******************************** jg=[]; for x=1:100if ccc(x,1)==0elseif ccc(x,1)==0elseif ccc(x,1)==1 elseif ccc(x,1)==1elseif ccc(x,1)==1elseif ccc(x,1)==1end; end; jg 2.2.3 Hamming編碼 %******************************漢明編碼*********************************** hh=encode(e,7,4, hamming/fmt ); hh 2.2.4 Hamming譯碼 %********************************漢明解碼********************************* ddd=reshape(bc,7,100); abc=ddd ; ccc= decode(abc,7,4, hamming/fmt ) 2.2.5 信源 %*****************************信源***************************************** aa = randsrc(1,100,[symbols;p]); aa e=zeros(100,4) for i = 1 : 1:100switch aa(i)case 1e(i,:)=[0,0,0,0]case 2e(i,:)=[0,0,1,0]case 3e(i,:)=[1,1,0,0]case 4e(i,:)=[1,1,0,1]case 6e(i,:)=[1,1,1,0]case 5e(i,:)=[1,1,1,1]end; end; 2.2.6 2psk調制解調 %*******************************2PSK調制解調*******************************