%自选实验一 部分响应系统的仿真
global dt df t f N%全局变量
close all
clear Eb_N0 Pe
N=2^14; %采样点数
L=16; %每码元的采样点数
M=N/L; %码元数
Rb=2; %码速率是2Mb/s
Ts=1/Rb; %码元间隔
dt=Ts/L; %时域采样间隔
df=1/(N*dt); %频域采样间隔
T=N*dt; %截短时间
Bs=N*df/2; %系统带宽
t=[-T/2+dt/2:dt:T/2]; %时域横坐标
f=[-Bs+df/2:df:Bs]; %频域横坐标
h=sin(pi*t/Ts)./(pi*t/Ts)+sin(pi*(t-Ts)/Ts)./(pi*(t-Ts)/Ts);
H=abs(t2f(h));
GT=sqrt(H)
GR=GT;
EPI=zeros(size(f));%输入功率谱
EPO=EPI; %输出功率谱
eb_n0=10^(20/10); %Eb/N0真值
n0=1/eb_n0; %信道的噪声谱密度
sita=n0*Bs; %信道中噪声功率
n_ch=sqrt(sita)*randn(size(t)); %信道噪声
for jj=1:100
b=round(rand(1,M)); %码元矢量
bp=zeros(1,N);
for ii=1:L
bp(ii+[0:M-1]*L)=b; %产生NRZ码
end
d=zeros(1,M);
d0=0;
d(1)=mod(b(1)+d0,2);
for ii=2:M
d(ii)=mod(b(ii)+d(ii-1),2);
end
a=zeros(1,M);
a=d.*2-1;
s=zeros(1,N);
s(L/2:L:N)=a/dt; %产生冲击信号
S=t2f(s);
sm1=f2t(GT.*S) ; %经过发送滤波器的信号
sm2=sm1+n_ch; %加噪声
SM=t2f(sm2);
SR=SM.*GR; %经过接收滤波器的信号
sr=real(f2t(SR));
y=sr(L/2:L:N); %取样
c=round(y./2).*2; %判决
cp=zeros(1,N);
for ii=1:L
cp(ii+[0:M-1]*L)=c; %产生NRZ码
end
bb=mod(c./2+1,2);
bbp=zeros(1,N);
for ii=1:L
bbp(ii+[0:M-1]*L)=bb; %产生NRZ码
end
PI=S.*conj(S)/T; %输入功率谱
EPI=(EPI*(jj-1)+PI)/jj;%累计平均输入功率谱
Fi=30+10*log10(EPI+eps);%累计平均输入功率谱in dB 加eps以避免除以零
PO=SR.*conj(SR)/T; %输出功率谱
EPO=(EPO*(jj-1)+PO)/jj; %累计平均输出功率谱
Fo=30+10*log10(EPO+eps); %累计平均输入功率谱in dB 加eps以避免除以零
end
figure(1)
set(1,'position',[10,350,300,200]);%设定窗口位置及大小
figure(2)
set(2,'position',[350,350,300,200]);%设定窗口位置及大小
figure(3)
set(3,'position',[700,350,300,200]);%设定窗口位置及大小
figure(4)
set(4,'position',[10,50,300,200]);%设定窗口位置及大小
figure(5)
set(5,'position',[350,50,300,200]);%设定窗口位置及大小
figure(1) %输入波形输出波形的比较
hold on
plot(t,bp,'r')
plot(t,s,'y')
plot(t,sr)
plot(t,cp,'g')
grid
axis([-10,+10,-2.5,+2.5])
xlabel('t(us)')
ylabel('s(t)(V)')
title('r:b y:a b:sr g:c')
figure (2) %输入信号和输出信号
hold on
plot(t,bp)
plot(t,-bbp,'g')
grid
axis([-10,+10,-2.5,+2.5])
xlabel('t(us)')
ylabel('b(t)(V)')
figure (3) %发送和接收信号的功率谱
hold on
plot(f,Fi);
plot(f,Fo,'g')
grid
axis([-5,+5,-50,+50])
xlabel('f(MHZ)');
ylabel('Ps(f)(MHZ)')
figure(4) %输入信号的眼图
hold on
tt=[0:dt:4*L*dt];
for jj=1:4*L:N-4*L
plot(tt,sm1(jj:jj+4*L));
end
figure(5) %输出信号的眼图
hold on
tt=[0:dt:4*L*dt];
for jj=1:4*L:N-4*L
plot(tt,sr(jj:jj+4*L));
end
for loop1=1:25
Eb_N0(loop1)=(loop1-1); %Eb/N0 in dB
eb_n0(loop1)=10^(Eb_N0(loop1)/10);
n0=1/eb_n0(loop1);%信道的噪声谱密度
sita=n0*Bs; %信道中噪声功率
n_err=0; %误码计数
for loop2=1:8
b=round(rand(1,M)); %码元矢量
d=zeros(1,M);
d0=0;
d(1)=mod(b(1)+d0,2);
for ii=2:M
d(ii)=mod(b(ii)+d(ii-1),2);
end
a=zeros(1,M);
a=d.*2-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.*H))+nr; %接收信号
y=sr(L/2:L:N); %取样
c=round(y./2).*2; %判决
bb=mod(c./2+1,2);
n_err=n_err+length(find(bb~=b));
end
Pe(loop1)=n_err/(M*loop2);%相当于对M×loop2个码元进行统计
figure(6) %画误码率曲线
set (6,'position',[700,50,500,300]);%设定窗口位置及大小
plot(Eb_N0,Pe,'g');
xlabel('Eb/N0')
ylabel('Pe')
end
wouderw
- 粉丝: 340
- 资源: 2960
最新资源
- 毕设和企业适用springboot智能制造平台类及数字货币管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线教育管理系统源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线药品管理平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及在线音乐平台源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及资产管理平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及电影票务系统源码+论文+视频.zip
- 毕设和企业适用springboot智能制造平台类及自动化控制系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及客户服务智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及客户管理系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及企业管理智能化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及数据可视化平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及团队协作平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及网络安全防护平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及物流追踪系统源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及医疗信息管理平台源码+论文+视频.zip
- 毕设和企业适用springboot众筹平台类及线上文件管理系统源码+论文+视频.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈