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

📄 exp3.m

📁 一些比较基本的程序
💻 M
字号:
%实验2 PE-Eb/No曲线,升余弦滚降0.5,取样时间的偏差是Ts/4.
%本程序中时间单位是微秒
%频率单位为MHz
%码速率单位是Mb/s
clear all
global dt t f df N T  %全局变量
close all
N=2^10; 		%采样点数
L=64; 			%每码元的采样点数
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	
b=0.25;         %取样时间的偏差是Ts/4
t=linspace(-T/2,T/2,N);     %时域横坐标
f=linspace(-Bs,Bs,N)+eps;	%频域横坐标  
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:11
    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:1000  
        a=sign(randn(1,M));%发送码元
        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=sign(sr(L*(.5+b):L:N));     %考虑时延       
        n_err=n_err+length(find(y~=a)) ;  
        %以L/2为起点,步长L,取样点N,并作出判决
    end
    Pe(loop1)=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-5,1])
    title(['Pe-Eb/No曲线,升余弦滚降系数0.5,取样时间偏差为Ts/4']);
    xlabel('Eb/N0')
    ylabel('Pe')
    pause(.01);
end

⌨️ 快捷键说明

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