⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pehcos.m

📁 升余弦信号通过理想信道的误码率计算和绘制误码率曲线
💻 M
字号:
function PeHcos
global dt t f df N T %全局变量
close all
clear Eb_N0 Pe
N=2^15; 					%采样点数
L=4; 						%每码元的采样点数  
M=N/L						%码元数   
Rb=2;						%码速率是2Mb/s		
Ts=1/Rb; 				    %码元间隔      
dt=Ts/L;					%时域采样间隔					        
df=1/(N*dt)				    %频域采样间隔     
T=N*dt 					    %截短时间        
Bs=N*df/2 				    %系统带宽     
alpha=0.5				    %滚降系数=0.5	

t=linspace(-T/2,T/2,N);     %时域横坐标
f=linspace(-Bs,Bs,N)+eps;   %频域横坐标  

figure(1)
 set(1,'Position',[10,30,500,200])
                 %设定窗口位置及大小
hr1=sin(pi*t/Ts)./(pi*t/Ts);
hr2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2);
hr=hr1.*hr2;     %产生升余弦信号
HR=abs(t2f(hr)); %升余弦信号的幅频特性
GT=sqrt(HR);     %产生根生余弦滤波器
GR=GT;

for loop1=1:10
 Eb_N0(loop1)=(loop1-1)  %分贝值变为真值
 eb_n0(loop1)=10^(Eb_N0(loop1)/10);
 Eb=1;	
 n0=Eb/eb_n0(loop1);   	%信道噪声谱密度 
 sita=n0*Bs; 				%噪声功率

 n_err=0;     				%误码计数

 for loop2=1:3  
  a=sign(randn(1,M));	%发送码元+1,-1
  imp=zeros(1,N);    
  imp(L/2:L:N)=a/dt;
  IMP=t2f(imp);
  
  n_ch=sqrt(sita)*randn(size(t)); %信道噪声
  nr=real(f2t(t2f(n_ch).*GR));    %接收到的噪声   

  sr=real(f2t(IMP.*HR))+nr;       %接收到的总的信号
  y=sr(L/2:L:N);                  %以L/2为起点(取样时间偏差为0),步长L,取样点N
  %y=sr(L*3/4:L:N);				  %以L*3/4为起点(与发送信号相差L/4,取样时间偏差为Ts/4),步长L,取样点N  
  aa=sign(y);                     %接收码元,判决门限为0    
  n_err=n_err+length(find(aa~=a)) ; 
 end
 Pe(loop1)=n_err/(M*loop2);		 %统计误码率Pe'=n_err/(M*loop2)
 figure(1) 
  semilogy(Eb_N0,Pe,'b-');
  eb_n0=10.^(Eb_N0/10);				%还原为真值 
  hold on
  semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)),'r--');%理论误码率曲线
  axis([0,9,1e-4,1])
  xlabel('Eb/N0')
  ylabel('Pe')
 end

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -