1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法;
2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度;
3、熟悉MATLAB语言编程。
计算机,MATLAB软件
基带系统的分析模型如图1所示,要获得良好的基带传输系统,就应该
图1 基带系统的分析模型
抑制码间干扰。设输入的基带信号为,为基带信号的码元周期,则经过基带传输系统后的输出码元为。其中
(1)
理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足:(2)
频域应满足:(3)
此时频带利用率为,这是在抽样值无失真条件下,所能达到的最高频率利用率。
由于理想的低通滤波器不容易实现,而且时域波形的拖尾衰减太慢,因此在得不到严格定时时,码间干扰就可能较大。在一般情况下,只要满足:
(4)
基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。
从实际的滤波器的实现来考虑,采用具有升余弦频谱特性时是适宜的。
(5)
这里称为滚降系数,。
所对应的其冲激响应为:
(6)
此时频带利用率降为,这同样是在抽样值无失真条件下,所能达到的最高频率利用率。换言之,若输入码元速率,则该基带传输系统输出码元会产生码间干扰。
所谓眼图就是将接收滤波器输出的,未经再生的信号,用位定时以及倍数作为同步信号在示波器上重复扫描所显示的波形(因传输二进制信号时,类似人的眼睛)。干扰和失真所产生的畸变可以很清楚的从眼图中看出。眼图反映了系统的最佳抽样时间,定时的灵敏度,噪音容限,信号幅度的畸变范围以及判决门限电平,因此通常用眼图来观察基带传输系统的好坏。
图3 眼图示意图
可以用MATLAB自带眼图函数eyediagram来观察眼图
1、当滚降系数分别为0、0.5、1时升余弦滚降系统的频谱及其各自对应的时域波形。
(1)程序
clear all
Ts=1;
N=17;
dt=Ts/N;
df=1.0/(20.0*Ts);
t=-10*Ts:dt:10*Ts;
f=-2/Ts:df:2*Ts;
a=[0,0.5,1];
for n=1:length(a)
for k=1:length(f)
if abs(f(k))>0.5*(1+a(n))/Ts
Xf(n,k)=0;
elseif abs(f(k))<0.5*(1-a(n))/Ts
Xf(n,k)=Ts;
else
Xf(n,k)=0.5*Ts*(1+cos(pi*Ts/(a(n)+eps)*(abs(f(k))-0.5*(1-a(n))/Ts)));
end
end
xt(n,:)=sinc(t/Ts).*(cos(a(n)*pi*t/Ts))./(1-4*a(n)^2*t.^2/Ts^2+eps);
end
subplot(2,1,1)
plot(f,Xf);
axis([-1 1 0 1.2]);
xlabel('f/Ts');
ylabel('升余弦滚降频谱');
subplot(2,1,2)
plot(t,xt);
axis([-10 10 -0.5 1.1])
xlabel('t');
ylabel('升余弦滚降波形');
图4 升余弦滚降系统的频谱和时域波形
2.利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。其参数要求NRZ码元为2进制、码元速率为50B,采样频率1000Hz、升余弦滚降滤波器参考码元周期为10ms、滚降系数为0.2。
clear all;
alpha=0.2; %设置滚降系数,取值范围在[0,1]
Ts=1e-2; %升余弦滚降滤波器的参考码元周期, Ts=10ms,无ISI。
Fs=1e3; %采样频率,单位Hz。注意:该数值过大将严重增加程序运行时间
Rs=50; %输入码元速率,单位BaudM=2;
M=2; %输入码元进制
Num=100; %输入码元序列长度。注意:该数值过大将严重增加程序运行时间。
Samp_rate=Fs/Rs; %采样率,应为大于1的正整数,即要求Fs,Rs之间呈整数倍关系
Eye_num=2; %在一个窗口内可观测到的眼图个数。
%产生双极性NRZ码元序列
%NRZ=sign(randn(1, Num));
NRZ=2*randint(1,Num,M)-M+1;
figure(1);
stem(NRZ);
axis([0 50 -1.1 1.1])
xlabel('时间');
ylabel('幅度');
hold on;
grid on;
title('双极性NRZ码元序列');
%对双极性NRZ码元序列进行抽样
k=1;
for ii=1:Num
for jj=1:Samp_rate
Samp_data(k)=NRZ(ii);
k=k+1;
end
end
%基带升余弦滚降系统冲激响应
[ht,a] = rcosine(1/Ts,Fs,'fir',alpha);
%将信号送入基带升余弦滚降系统,即做卷积操作
st=conv(Samp_data,ht)/(Fs*Ts);
figure(2)
plot(st);
axis([0 2000 -4 4])
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('经过升弦滚降系统后的码元')
%画眼图,在同一个图形窗口重复画出一个或若干个码元
figure(3);
for k = 10:floor(length(st)/Samp_rate)-10
%不考虑过渡阶段信号,只观测稳定阶段
ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate);
plot(ss);
hold on;
end
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('基带信号眼图')
图4 基带
1、其参数要求NRZ码元为2进制、码元速率为50B,升余弦滚降滤波器参考码元周期为20ms、滚降系数为0.2。利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。
程序:
%.利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。
%其参数要求NRZ码元为2进制、码元速率为50B,
%采样频率1000Hz、升余弦滚降滤波器参考码元周期为10ms、滚降系数为0.2
clear all;
alpha=0.2; %设置滚降系数,取值范围在[0,1]
Ts=2*1e-2; %升余弦滚降滤波器的参考码元周期, Ts=10ms,无ISI。
Fs=1e3; %采样频率,单位Hz。注意:该数值过大将严重增加程序运行时间
Rs=50; %输入码元速率,单位BaudM=2;
M=2; %输入码元进制
Num=100; %输入码元序列长度。注意:该数值过大将严重增加程序运行时间。
Samp_rate=Fs/Rs; %采样率,应为大于1的正整数,即要求Fs,Rs之间呈整数倍关系
Eye_num=2; %在一个窗口内可观测到的眼图个数。
%产生双极性NRZ码元序列
NRZ=sign(randn(1, Num));
%NRZ=2*randi(1,Num,M)-M+1;
figure(1);
stem(NRZ);
axis([0 50 -1.1 1.1])
xlabel('时间');
ylabel('幅度');
hold on;
grid on;
title('双极性NRZ码元序列');
%对双极性NRZ码元序列进行抽样
k=1;
for ii=1:Num
for jj=1:Samp_rate
Samp_data(k)=NRZ(ii);
k=k+1;
end
end
%基带升余弦滚降系统冲激响应
[ht,a] = rcosine(1/Ts,Fs,'fir',alpha);
%将信号送入基带升余弦滚降系统,即做卷积操作
st=conv(Samp_data,ht)/(Fs*Ts);
figure(2)
plot(st);
axis([0 2000 -4 4])
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('经过升弦滚降系统后的码元')
%画眼图,在同一个图形窗口重复画出一个或若干个码元
figure(3);
for k = 10:floor(length(st)/Samp_rate)-10
%不考虑过渡阶段信号,只观测稳定阶段
ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate);
plot(ss);
hold on;
end
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('基带信号眼图')
2、如果实验内容1中升余弦滚降滤波器参考码元周期为50ms若1中的其他参数不变,请利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。并与1中的结果对比,分析你的实验结果,得出结论。若想消除存在的现象,该采取什么措施?
程序:
%.利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。
%其参数要求NRZ码元为2进制、码元速率为50B,
%采样频率1000Hz、升余弦滚降滤波器参考码元周期为10ms、滚降系数为0.2
clear all;
alpha=0.2; %设置滚降系数,取值范围在[0,1]
Ts=5*1e-2; %升余弦滚降滤波器的参考码元周期, Ts=10ms,无ISI。
Fs=1e3; %采样频率,单位Hz。注意:该数值过大将严重增加程序运行时间
Rs=50; %输入码元速率,单位BaudM=2;
M=2; %输入码元进制
Num=100; %输入码元序列长度。注意:该数值过大将严重增加程序运行时间。
Samp_rate=Fs/Rs; %采样率,应为大于1的正整数,即要求Fs,Rs之间呈整数倍关系
Eye_num=2; %在一个窗口内可观测到的眼图个数。
%产生双极性NRZ码元序列
NRZ=sign(randn(1, Num));
%NRZ=2*randi(1,Num,M)-M+1;
figure(1);
stem(NRZ);
axis([0 50 -1.1 1.1])
xlabel('时间');
ylabel('幅度');
hold on;
grid on;
title('双极性NRZ码元序列');
%对双极性NRZ码元序列进行抽样
k=1;
for ii=1:Num
for jj=1:Samp_rate
Samp_data(k)=NRZ(ii);
k=k+1;
end
end
%基带升余弦滚降系统冲激响应
[ht,a] = rcosine(1/Ts,Fs,'fir',alpha);
%将信号送入基带升余弦滚降系统,即做卷积操作
st=conv(Samp_data,ht)/(Fs*Ts);
figure(2)
plot(st);
axis([0 2000 -4 4])
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('经过升弦滚降系统后的码元')
%画眼图,在同一个图形窗口重复画出一个或若干个码元
figure(3);
for k = 10:floor(length(st)/Samp_rate)-10
%不考虑过渡阶段信号,只观测稳定阶段
ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate);
plot(ss);
hold on;
end
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('基带信号眼图')
3、改变码元进制数,分析你的实验结果。
4进制:
%.利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。
%其参数要求NRZ码元为2进制、码元速率为50B,
%采样频率1000Hz、升余弦滚降滤波器参考码元周期为10ms、滚降系数为0.2
clear all;
alpha=0.2; %设置滚降系数,取值范围在[0,1]
Ts=5*1e-2; %升余弦滚降滤波器的参考码元周期, Ts=10ms,无ISI。
Fs=1e3; %采样频率,单位Hz。注意:该数值过大将严重增加程序运行时间
Rs=50; %输入码元速率,单位BaudM=2;
M=4; %输入码元进制
Num=100; %输入码元序列长度。注意:该数值过大将严重增加程序运行时间。
Samp_rate=Fs/Rs; %采样率,应为大于1的正整数,即要求Fs,Rs之间呈整数倍关系
Eye_num=2; %在一个窗口内可观测到的眼图个数。
%产生双极性NRZ码元序列
NRZ=sign(randn(1, Num));
%NRZ=2*randi(1,Num,M)-M+1;
figure(1);
stem(NRZ);
axis([0 50 -1.1 1.1])
xlabel('时间');
ylabel('幅度');
hold on;
grid on;
title('双极性NRZ码元序列');
%对双极性NRZ码元序列进行抽样
k=1;
for ii=1:Num
for jj=1:Samp_rate
Samp_data(k)=NRZ(ii);
k=k+1;
end
end
%基带升余弦滚降系统冲激响应
[ht,a] = rcosine(1/Ts,Fs,'fir',alpha);
%将信号送入基带升余弦滚降系统,即做卷积操作
st=conv(Samp_data,ht)/(Fs*Ts);
figure(2)
plot(st);
axis([0 2000 -4 4])
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('经过升弦滚降系统后的码元')
%画眼图,在同一个图形窗口重复画出一个或若干个码元
figure(3);
for k = 10:floor(length(st)/Samp_rate)-10
%不考虑过渡阶段信号,只观测稳定阶段
ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate);
plot(ss);
hold on;
end
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('基带信号眼图')
%.利用MATLAB画出输入为双极性不归零码的基带信号波形及眼图。
%其参数要求NRZ码元为2进制、码元速率为50B,
%采样频率1000Hz、升余弦滚降滤波器参考码元周期为10ms、滚降系数为0.2
clear all;
alpha=0.2; %设置滚降系数,取值范围在[0,1]
Ts=5*1e-2; %升余弦滚降滤波器的参考码元周期, Ts=10ms,无ISI。
Fs=1e3; %采样频率,单位Hz。注意:该数值过大将严重增加程序运行时间
Rs=50; %输入码元速率,单位BaudM=2;
M=8; %输入码元进制
Num=100; %输入码元序列长度。注意:该数值过大将严重增加程序运行时间。
Samp_rate=Fs/Rs; %采样率,应为大于1的正整数,即要求Fs,Rs之间呈整数倍关系
Eye_num=2; %在一个窗口内可观测到的眼图个数。
%产生双极性NRZ码元序列
NRZ=sign(randn(1, Num));
%NRZ=2*randi(1,Num,M)-M+1;
figure(1);
stem(NRZ);
axis([0 50 -1.1 1.1])
xlabel('时间');
ylabel('幅度');
hold on;
grid on;
title('双极性NRZ码元序列');
%对双极性NRZ码元序列进行抽样
k=1;
for ii=1:Num
for jj=1:Samp_rate
Samp_data(k)=NRZ(ii);
k=k+1;
end
end
%基带升余弦滚降系统冲激响应
[ht,a] = rcosine(1/Ts,Fs,'fir',alpha);
%将信号送入基带升余弦滚降系统,即做卷积操作
st=conv(Samp_data,ht)/(Fs*Ts);
figure(2)
plot(st);
axis([0 2000 -4 4])
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('经过升弦滚降系统后的码元')
%画眼图,在同一个图形窗口重复画出一个或若干个码元
figure(3);
for k = 10:floor(length(st)/Samp_rate)-10
%不考虑过渡阶段信号,只观测稳定阶段
ss = st(k*Samp_rate+1:(k+Eye_num)*Samp_rate);
plot(ss);
hold on;
end
xlabel('时间');
ylabel('信号幅度');
hold on;
grid on;
title('基带信号眼图')
4、若输入码元在传输过程中存在加性噪声,请利用实验内容1中参数,画出输入眼图,并分析你的结果。
【全套完结】通信原理----全套Matlab仿真实验报告
https://blog.csdn.net/qq_45696377/article/details/121384301
【通信工程】信息类,电子类,电气工程,自动化,计算机,软件工程,机电,等相关专业 全套学习指导 【建议收藏】
上一篇:
实验三、数字基带码型产生实验
https://blog.csdn.net/qq_45696377/article/details/121251704
下一篇:
实验五 基于Matlab的2ASK和2FSK调制解调
https://blog.csdn.net/qq_45696377/article/details/121527803