📄 zuijiajidai.m
字号:
close all
clear
k=13;%取样点数=2^k
z=3;%每个信号取样点数=2^z
aa=0.5;%滚降系数=0.5
N=2^k;
L=2^z;M=N/L;
Rb=2; %码速率是2Mb/s
Ts=1/Rb; %码元间隔
dt=Ts/L; %时域采样间隔
df=1/(N*dt); %频域采样间隔
T=N*dt; %截短时间
Bs=N*df/2; %系统带宽
f=[-Bs+df/2:df:Bs]; %频域横坐标
t=[-T/2+dt/2:dt:T/2]; %时域横坐标
g=sin(pi.*t./Ts).*cos(pi.*t.*aa./Ts)./[pi.*t./Ts.*(1-4*t.^2.*aa.^2/Ts^2)]; %升余弦脉冲波形
GG=fftshift(fft(g))*dt;GG=abs(GG); %升余弦脉冲的傅式变换
GT=sqrt(GG);GR=GT; %最佳系统的发送接收滤波器的傅式变换
for l1=1:20;
Eb_N0(l1)=(l1-1); %Eb/N0 in dB
eb_n0(l1)=10^(Eb_N0(l1)/10);
Eb=1;
n0=Eb/eb_n0(l1); %信道的噪声谱密度
sita=n0*Bs; %信道中噪声功率
n_err=0; %误码计数
for l2=1:20;
b=sign(randn(1,M));
s=zeros(1,N); %产生冲激序列
s(L/2:L:N)=b/dt;
SS=fftshift(fft(s))*dt;
S=SS.*GG; %信道的傅式变化
a=ifftshift(ifft(S))/dt;a=real(a); %不加噪声的输出
n_ch=sqrt(sita)*randn(size(t)); %信道噪声
N_CH=fftshift(fft(n_ch))*dt;
nr=real(ifftshift(ifft(N_CH.*GR))/dt); %输出噪声
sr=a+nr; %接收信号
y=sr(L/2-L/4:L:N-L/4);%取样
eyediagram(y,3);
bb=sign(y); %判决
n_err=n_err+length(find(bb~=b));%错误累计
end
Pe(l1)=n_err/(M*l2);
semilogy(Eb_N0,Pe,'g'); %Pe~Eb/N0曲线画图
xlabel('Eb/N0');ylabel('Pe');title('Pe~Eb/N0曲线');
eb_n0=10.^(Eb_N0/10);
hold on
semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)));
axis([0,15,1e-4,1])
xlabel('信噪比(Eb/N0)')
ylabel('误码率Pe')
legend('实际的','理论的')
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -