【通訊】基於matlab數字基帶傳輸系統【含Matlab原始碼 885期】
阿新 • • 發佈:2021-06-21
一、簡介
二進位制位元序列時間離散,取值離散,而實際的物理通道只能承載時間上連續的訊號,為使二進位制位元序列能在實際的物理通道傳輸,要用連續的波形表示位元0和位元1。
那麼如何用連續的波形表示位元0和位元1?
要經過符號對映和波形成形這兩個步驟:
1 符號對映
符號對映:符號對映是將抽象的位元0,位元1對映為實際的物理量,比如電壓等。
1.1 符號對映的分類
1.1.1 一個位元對映為一個符號:
1)單極性碼序列:位元0->0電平 位元1->+A電平, 如TTL電平
2)雙極性碼序列:位元0->-A電平 位元1->+A電平 如RS232
3) 三電平對映:0,1->0,-A,+A電平 如AMI碼
1.1.2 多個位元對映為一個符號
4)多個位元對映為一個符號:k個位元為對映成一個符號:
1.2 波形成形
1.3 s(t)的功率譜(數字基帶訊號的由來)
2 數字傳輸系統的分類
2.1 基於傳輸訊號的頻率高低分為基帶和頻帶傳輸系統。
矩形脈衝成形的數字訊號只適合於在非帶限通道中傳輸,帶限脈衝成形的訊號適合於在帶限通道上傳輸。
二、原始碼
fs=1; Tc=4; N=35; a=1; n=(-(N-1)/2):((N-1)/2); [h]=umsf(N,Tc,a); %傳送訊號波形 L=240; A=4; T=1; [an]=Binary_sources(L); [dnT]=Send_signal(A,T,L,an); %傳送濾波器輸出波形 [xnT]=msf_signal(dnT,h); %噪聲為0 接收濾波器為直通型 所以 figure; rnT=xnT; stem(rnT(1:100),'.'); xlabel('n'); ylabel('r(nT)'); title('A=3接收濾波器(非匹配)的輸出訊號波形(a=0.3)'); %抽樣判決點訊號生成 [bn]=samples_signal(rnT,A,L,N); %判決子函式 [cn]=judgement(bn); %畫眼圖子函式 figure [k]=eye_pattern(rnT,A); title('二進位制非匹配模式接收濾波器輸出訊號波形的眼圖(a=0.3)') figure; scatterplot(bn); %誤位元率計運算元函式 [Pe,p]=Pe_calculate(an,cn,L); function [an]=Binary_sources(L) an=rand(1,L)%產生L個1以內的隨機數 for i=1:L if an(i)>0.5 an(i)=1; else if an(i)<0.5 an(i)=0; end end end end function [x]=idft(Xk,k,N) n=(-(N-1)/2):((N-1)/2); L=length(k); for a=1:N sum=0; for b=1:L sum=sum+(1/N)*Xk(b)*exp(j*2*pi*n(b)*k(a)/N); x(a)=sum;% 當a=1時即X的第一個點=w1*n的所有點 end end function [cn]=judgement(bn) for i=1:length(bn) if bn(i)>1/2 cn(i)=1; else if bn(i)<1/2 cn(i)=0; end end end end function [h]=msf(N,Tc,a) t=(-(N-1)/2):((N-1)/2); n=-(N-1)/2:(N-1)/2; k=n; h=zeros(1,N); for i=1:N; if(abs(t(i))==0) h(i)=1; elseif((1-4*a*a*t(i)*t(i)/Tc/Tc)==0) h(i)=Tc*sin(pi*t(i)/Tc)/t(i)/4; else h(i)=sin(pi*t(i)/Tc)*cos(a*pi*t(i)/Tc)/... (1-4*a*a*t(i)*t(i)/Tc/Tc)/(pi*t(i)/Tc); end end wd=(blackman(N))'; %h=h.*wd; % [H]=dft(h,n,N); H = h*exp(-1j*pi/N*k'*n); H=sqrt(abs(H)); h = 1/N*H*exp(-1j*pi/N*k'*n); % [h]=idft(H,k,N); h=h.*wd; h=real(h); end
三、執行結果
四、備註
版本:2014a
完整程式碼或代寫加1564658423