【通信原理】实验四 数字基带信号的眼图实验

一、实验目的

1、掌握无码间干扰传输的基本条件和原理,掌握基带升余弦滚降系统的实现方法;
2、通过观察眼图来分析码间干扰对系统性能的影响,并观察在输入相同码率的NRZ基带信号下,不同滤波器带宽对输出信号码间干扰大小的影响程度;
3、熟悉MATLAB语言编程。

二、实验器材

计算机,MATLAB软件

三、实验原理

1、基带传输特性

基带系统的分析模型如图1所示,要获得良好的基带传输系统,就应该
在这里插入图片描述
图1 基带系统的分析模型

抑制码间干扰。设输入的基带信号为在这里插入图片描述在这里插入图片描述为基带信号的码元周期,则经过基带传输系统后的输出码元为在这里插入图片描述。其中
在这里插入图片描述 (1)

理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足:在这里插入图片描述(2)
频域应满足:在这里插入图片描述(3)

在这里插入图片描述
图2 理想基带传输特性

此时频带利用率为,这是在抽样值无失真条件下,所能达到的最高频率利用率。
由于理想的低通滤波器不容易实现,而且时域波形的拖尾衰减太慢,因此在得不到严格定时时,码间干扰就可能较大。在一般情况下,只要满足:
在这里插入图片描述(4)
基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。
从实际的滤波器的实现来考虑,采用具有升余弦频谱特性时是适宜的。
在这里插入图片描述(5)
这里称为滚降系数,在这里插入图片描述
所对应的其冲激响应为:
在这里插入图片描述(6)
此时频带利用率降为在这里插入图片描述,这同样是在抽样值无失真条件下,所能达到的最高频率利用率。换言之,若输入码元速率在这里插入图片描述,则该基带传输系统输出码元会产生码间干扰。

2、眼图

所谓眼图就是将接收滤波器输出的,未经再生的信号,用位定时以及倍数作为同步信号在示波器上重复扫描所显示的波形(因传输二进制信号时,类似人的眼睛)。干扰和失真所产生的畸变可以很清楚的从眼图中看出。眼图反映了系统的最佳抽样时间,定时的灵敏度,噪音容限,信号幅度的畸变范围以及判决门限电平,因此通常用眼图来观察基带传输系统的好坏。
在这里插入图片描述

			图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('升余弦滚降波形');

(2)仿真结果
在这里插入图片描述

                        图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('基带信号眼图')

在这里插入图片描述
8进制:

%.利用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

猜你喜欢

转载自blog.csdn.net/qq_45696377/article/details/121383195