资源描述
实验一 数字基带传输实验
一、实验目的
1、提高独立学习的能力;
2、培养发现问题、解决问题和分析问题的能力;
3、学习Matlab 的使用;
4、掌握基带数字传输系统的仿真方法;
5、熟悉基带传输系统的基本结构;
6、掌握带限信道的仿真以及性能分析;
7、 通过观测眼图和星座图判断信号的传输质量。
二、实验原理
1.数字通信系统模型
数字通信系统模型
信源
信 源
编码器
信道
编码器
数字
调制器
数字
解调器
信道
译码器
信 源
译码器
信宿
信道
噪声
数字信源
数字信宿
编码信道
2.数字基带系统模型
图中各方框功能简述如下:
信道:是允许基带信号通过的媒质,通常会引起传输波形的失真并且引入噪声,实验中假设为均值为零的高斯白噪声。
发送滤波器:用于产生适合信道传输的基带信号波形,若采用匹配滤波器,则它与接收滤波器共同决定传输系统的特性。
接收滤波器:用来接收信号,尽可能滤除信道噪声和其他干扰,使输出波形有利于抽样判决。若采用非匹配滤波器,则接收滤波器为直通,不影响系统特性。
抽样判决器:在传输特性不理想及噪声背景下,在规定时刻对接收滤波器的输出波形进行抽样判决以恢复或再生基带信号。
位定时提取:用来位定时脉冲依靠同步提取电路从接收信号中提取,其准确与否直接影响判决结果。
传输物理过程简述如下:
假设输入符号序列为,在二进制的情况下,符号的取值为0,1或-1,+1。为方便分析,我们把这个序列对应的基带信号表示成
这个信号是由时间间隔为Tb的单位冲激响应构成的序列,其每一个强度则由决定。
离散域发送信号——A,比特周期,二进制码元周期
设发送滤波器的传输特性 或 则
当激励发送滤波器时,发送滤波器产生的输出信号为
==
离散域发送滤波器输出:==
信道输出信号 (信道特性为1)
离散域信道输出信号或接收滤波器输入信号——
或 或
则接收滤波器的输出信号
=
=
其中
离散域接收滤波器的输出信号
=
=
其中g()=
如果位同步理想,则抽样时刻为
抽样点数值为
判决为 比较即可得到误码率,分析传输质量。
3. 升余弦滚降滤波器
]
(2)
4.最佳基带系统
要求接受滤波器的频率特性与发送信号频谱共轭匹配。由于最佳基带系统的总特性是确定的,故最佳基带系统的设计归结为发送滤波器和接受滤波器特性的选择。
设信道特性理想,则有
(延时为0)
有
可选择滤波器长度使其具有线性相位。
如果基带系统为升余弦特性,则发送和接收滤波器为平方根升余弦特性。
三、实验内容
1. 信源模块
function [ x,y ]=source( L,A)%产生源序列,生成0、1等概率分布的二进制信源序列
A=4;%每个间隔抽取4个点
a=rand(1,L);%产生0-1之间均匀分布的随机序列
for i=1:L
if (a(i)>0.5) %若产生的随机数在(0.5,1)区间内,则为1
a(i)=1;
else
a(i)=-1;%若产生的随机数在(0,0.5)区间内,则为-1
end
end
d=zeros(1,length(a)*A);%产生零序列
for i=1:length(a)
d(1+A*(i-1))=a(i);%每两点之间插入三个零点,即模拟每周期取四个取样点
x=a;
y=d;
end
2. 匹配滤波器模块
function [ht,Hrf,n,f]=matched_filter(Ts,F0,N,alpha)
%匹配滤波器模块,由频域到时域
n=[-(N-1)/2:(N-1)/2];%时域取值范围为-15--15
f1=(1-alpha)/(2*Ts);
f2=(1+alpha)/(2*Ts);
k=n;
f=n*F0/N;%频域
Hf=zeros(1,N); %升余弦滚降滤波器
for i=1:31 %升余弦滚降滤波器频域特性
if (abs(f(i))<=f1)
Hf(i)=Ts;
elseif(abs(f(i))<=f2)
Hf(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
else Hf(i)=0;
end
end
Hrf=sqrt(Hf);%根升余弦滚降滤波器
ht=1/N*Hrf*exp(j*2*pi/N*k'*n); %根升余弦滚降滤波器时域特性
end
3. 非匹配滤波器模块
function [ht1,Hf,n,f]=unmatched_filter(Ts,T0,N,alpha)
%非匹配滤波器模块,由频域到时域。
F0=1/T0;
n=[-(N-1)/2:(N-1)/2]; f1=(1-alpha)/(2*Ts);
f2=(1+alpha)/(2*Ts);
n=[-(N-1)/2:(N-1)/2];
k=n;
f=n*F0/N;
Hf=zeros(1,N); %升余弦滚降滤波器
for i=1:31 %升余弦滚降滤波器频域特性
if (abs(f(i))<=f1)
Hf(i)=Ts;
elseif(abs(f(i))<=f2)
Hf(i)= Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
else Hf(i)=0;
end
end
ht1=1/N*Hf*exp(j*2*pi/N*k'*n); %升余弦滚降滤波器时域特性
end
4. 加性白噪声信道模块
function n0=guass(SNR,y,L,A)%生成高斯白噪声
Eb=0; %初始能量赋值
for i=1:length(y) %计算能量总和
Eb=Eb+abs(y(i))*abs(y(i));
end
Eb=Eb/L; %计算平均比特能量
N0=Eb/(10^(SNR/10)); %计算单边功率谱密度
sgma=sqrt(N0/2);%标准差
n0=0+sgma*randn(1,L*A); %得到均值为0,方差为N0的高斯噪声
end
5. 误码率模块
function j=BER(a,b,L)
j=0;
for i=1:L
if a(i)~=b(i)%与发送序列进行比较
j=j+1;
end
end
6. 抽样判决模块
function[sample,sample1]=samples(L,A,r)
sample=zeros(1,L);%判决后输出序列
sample1=zeros(1,L);%直接抽样序列
m=1:L;
for i=1:L
sample1(i)=real(r(1+(i-1)*A)); %取出n*Tb+1位置上的L个值
end
for i=1:L
if sample1(i)>0%若抽样值为正,判为1
sample(i)=1;
else sample(i)=-1; %若抽样值为负,判为-1
end
end
end
7.主函数 匹配滤波器
clear;
clc;
L=input('传送比特个数L=');%使输入值可变
Rb=input('比特速率=');
A=4;
Ts=1/Rb;
T0=Ts/A;
F0=1/T0;
N=31;
SNR=input('信噪比SNR=');
alpha=input('滚降系数alpha=');
%信源模块
[ a,d ]=source( L,A)
m1=1:L;
figure(1);
subplot(2,1,1);
stem(m1,a);%输入序列
m2=1:L*A;
subplot(2,1,2);
stem(m2,d);%输出序列
%发送滤波器
[ht,Hrf,n,f]=matched_filter(Ts,F0,N,alpha)
figure(2);
subplot(2,1,1),stem(f,Hrf);%频域画图
title('匹配滤波器频域');
subplot(2,1,2),stem(n,ht);%时域画图
title('匹配滤波器时域');
y=conv(d,ht); %发送滤波器输出
y=y(1+floor(N/2):L*F0/Rb+floor(N/2));
figure(3) %观察发送滤波器输出波形
t=1:L*A;
subplot(3,2,1),plot(t,real(y));
title('匹配发送滤波器输出')
%高斯噪声
n0=guass(SNR,y,L,A);
subplot(3,2,2),plot(t,n0);
title('噪声图像')
y1=y+n0; %加入噪声后信号
subplot(3,2,3),plot(t,real(y1));
title('加入噪声后信号')
%接收滤波器
r=conv(y1,ht); %观察接收滤波器输出
r=r(1+ (N-1)/2:L*F0/Rb+(N-1)/2);
subplot(3,2,4),plot(t,real(r));
title('接收滤波器输出')
%抽样判决
[sample,sample1]=samples(L,A,r)
m=1:L;
subplot(3,2,5);stem(m,sample1);
title('抽样序列')
subplot(3,2,6);stem(m,sample);
title('判决结果')
%眼图
eyediagram(r,A,1);
title('眼图');grid on;
%星座图
scatterplot(r,A,0,'r*');
title('星座图');grid on;
%计算误码率模块
j=BER(a,sample,L)
sprintf('误码率:%2.2f%%',j/L*100)
8. 主函数 非匹配滤波器
clear;
clc;
L=input('传送比特个数='); %使输入值可变
Rb=input('比特速率Rb=');% Rb为码元速率
A=4;
Ts=1/Rb;
T0=Ts/A;
F0=1/T0;
N=31;
SNR=input('信噪比SNR=');
alpha=input('滚降系数alpha=');
%%%%信源
[ a,d ]=NRZ( L,A)%产生源序列,每一个T内插入3个0。
m1=1:L;
figure(1);
subplot(2,1,1);
stem(m1,a);% 输入序列
m2=1:L*A;
subplot(2,1,2);
stem(m2,d);% 输出序列
%%%%发送滤波器
[ht1,Hf,n,f]=unmatched_filter(Ts,F0,N,alpha)
figure(2);
subplot(2,1,1),stem(f,Hf); %频域画图
title('非匹配滤波器频域');
subplot(2,1,2),stem(n,ht1); %时域画图
title('非匹配滤波器时域');
y=conv(d,ht1); %发送滤波器输出波形
y=y(1+floor(N/2):L*F0/Rb+floor(N/2));
figure(3) %观察发送滤波器输出波形
t=1:L*A;
subplot(3,2,1),plot(t,real(y));
title('非匹配下发送滤波器输出')
%%%%高斯噪声
n0=gauss(SNR,y,L,A);
subplot(3,2,2),plot(t,n0);
title('噪声图像')
y1=y+n0; %加入噪声后信号
subplot(3,2,3),plot(t,real(y1));
title('加入噪声后信号')
%%%%接收滤波器
M=32;
ht2=zeros(1,M);
ht2(M/2+1)=1;%直通
r=conv(y,ht2);%观察接收滤波器输出
r=r(1+((N-1)/2):L*F0/Rb+ (N-1)/2);
subplot(3,2,4),plot(t,real(r));
title('接收滤波器输出')
%%%%抽样判决
[sample,sample1]=samples(L,A,r)
m=1:L;
subplot(3,2,5);stem(m,sample1);
title('抽样序列')
subplot(3,2,6);stem(m,sample);
title('判决结果')
%%%%眼图
eyediagram(r,A,1);title('眼图');grid on;
%%%%星座图
scatterplot(r,A,0,'r*');title('星座图');grid on;
%%%%计算误码率
j=BER(a,sample,L);
sprintf('误码率:%2.2f%%',j/L*100)
9.窗函数设计滤波器模块
%用窗函数法设计的采用非匹配滤波器形式的升余弦滚降基带系统
N=31;
a=input('a=');
Ts=4;
F0=1;
n=-(N-1)/2:(N-1)/2;
T0=1/F0;
hn=(eps+sin(pi*n/Ts))./(eps+(pi*n/Ts)).*cos(a*pi*n/Ts)./(eps+(1-4*a^2*n.*n/Ts^2)); %升余弦滚降滤波器的单位冲击响应表达式
stem(n,hn,'.');
xlabel('n');ylabel('hn');
title('非匹配发送滤波器的单位冲击响应')
figure
Hw=fft(hn,512);%进行fft变换,得到其频域特性
plot(abs(Hw));
xlabel('w(单位rad)');ylabel('Hw');
title('非匹配发送滤波器的幅频特性')
figure
Hwdb=20*log10(abs(Hw));
plot(Hwdb)
xlabel('w(单位rad)');ylabel('HWdb(单位db)');
title('非匹配发送滤波器的幅频特性(db表示)')
四、实验数据及结果
1.如发送滤波器长度为 N=31,时域抽样频率 为 4 /,滚降系数分别取为 0.1、0.5、1,计算并画出此发送滤波器的时域波形和频率特性,计算第一零点带宽和第一旁瓣衰减。以此发送滤波器构成最佳基带系统,计算并画出接收滤波器的输出信号波形和整个基带系统的频率特性,计算第一零点带宽和第一旁瓣衰减。
(1)滚降系数0.1
匹配滤波器时域频域
非匹配滤波器时域频域
(2)滚降系数0.5
匹配滤波器时域频域
非匹配滤波器时域频域
(3)滚降系数1
匹配滤波器时域频域
非匹配滤波器时域频域
2根据基带系统模型,编写程序,设计无码间干扰的二进制数字基带传输系统。要求要传输的二进制比特个数、比特速率 (可用与 的关系表示)、信噪比 SNR、滚降系数 α是可变的。
1) 生成一个 0、1 等概率分布的二进制信源序列(伪随机序列)。可用 MATLAB 中的rand 函数生成一组 0~1 之间均匀分布的随机序列,如产生的随机数在(0,0.5)区间内,则为 1。
2) 基带系统传输特性设计。可以采用两种方式,一种是将系统设计成最佳的无码间干扰的系统,即采用匹配滤波器,发送滤波器和接收滤波器对称的系统,发送滤波器和接收滤波器都是升余弦平方根特性;另一种是不采用匹配滤波器方式,升余弦滚降基带特性完全由发送滤波器实现,接收滤波器为直通。
3)产生一定方差的高斯分布的随机数,作为噪声序列,叠加到发送滤波器的输出信号上引入噪声。注意噪声功率(方差)与信噪比的关系。信道高斯噪声的方差为 ,单边功率谱密度= 2σ, 如 计 算 出 的 平 均 比 特 能 量 为 , 则 信 噪 比 为SNR = 10 log (10/) 。
4)根据接收滤波器的输出信号,设定判决电平,在位同步理想情况下,抽样判决后得到接收到的数字信息序列波形。
匹配N=128,=0.25,SNR=50dB,=0.7
非匹配N=128,=0.25,SNR=50dB,=0.7
3假设加性噪声不存在,传输 64 个特定的二进制比特,如果比特速率= 1/,基带系统不采用匹配滤波器,画出接收滤波器的输出信号波形和眼图,判断有无码间干扰,求出抽样判决后的数字序列。如果将比特速率改为4/3,1/2,画出接收滤波器的输出信号, 波形和眼图,判断有无码间干扰,求出抽样判决后的数字序列。
N=64,=0.25,SNR=100dB,=0.5
N=64,= 4/,SNR=100dB,=0.5
N=64,=1/,SNR=100dB,=0.5
4传输 1000 个随机的二进制比特,比特速率= 1/,信噪比分别取 1dB、3dB、5dB时,得到相应的恢复数字信息序列,基带系统分别为匹配滤波器形式和非匹配滤波器形式、滚降系数分别为 0.3、0.8,画出发送数字信息序列和接收数字信息序列的星座图,根据星座图判断信息传输质量。讨论信噪比、匹配滤波器和滚降系数对系统信息传输质量的影响。严格说,系统的传输质量(可靠性)应用误比特率来衡量,可以采用Monte Carlo仿真实现,在下面实验中进行。
匹配情况
N=1000,=4,SNR=1dB,=0.3
误码率:0.80%
N=1000=4,SNR=5dB,=0.3
误码率:0.00%
N=1000=4,SNR=10dB,=0.3
误码率:6.70%
N=1000=4,SNR=1dB,=0.8
误码率:1.00%
N=1000=4,SNR=10dB,=0.8
误码率:0.00%
非匹配情况
N=1000,=4,SNR=1dB,=0.3
误码率:49.20%
N=1000=4,SNR=5dB,=0.3
误码率:50.10%
N=1000=4,SNR=10dB,=0.3
误码率:48.90%
N=1000=4,SNR=1dB,=0.8
误码率:51.60%
N=1000=4,SNR=5dB,=0.8
误码率:49.70%
N=1000=4,SNR=10dB,=0.8
误码率:50.90%
五、实验结论
1. (1)当 时,为 无 “滚降”的理想基带传输系统, 的“尾巴” 按 的规律衰减。当 ,即采用余弦滚降时,对应的 仍旧保持从 开始,向左、右每隔 出现一个零点的特点,满足抽样瞬间无码间串扰的条件,一方面, 的存在,会产生新的零点,加速 的 “尾巴”衰减;另 一方面, 波形的 “尾巴”按 的规律衰减,比理想低通时小得多。 衰减的快慢还与 有关, 越大,衰减越快,码间串扰越小,错误判决的可能性越小。
(2)输出信号频谱所占据的带宽 。当 时, ,频带利用率为 2Baud/Hz ; 时, ,频带利用率为 1Baud/Hz ;一般情况下, =0 ~ 1 时, ,频带利用率为 2 ~ 1Baud/Hz 。由实验一图可以看出 越大, “尾部” 衰减越快,但带宽越宽,频带利用率越低。因此,用滚降特性来改善理想低通,实质上是以牺牲频带利用率为代价换取的。
2. 二进制双极性信号的抗干扰能力要优于单极性信号,且其判决电平不受信号幅度 影 响,实验效果更好。
3. 采用匹配滤波器可以构成最佳基带传输系统,此时升余弦滚降基带特性由共轭匹配的发送信号和接收滤波器共同决定,造成的误码率最低。
4. 实验四中由于设定的信噪比值都比较小,因此星座图中显示出的星点很多,说明噪声对传输质量的影响非常大。由信噪比和滚降系数的不同取值比较得到,信噪比越大,误码率越低,传输质量越好;滚降系数越大,误码率越低,传输质量越好。同时,采用匹配滤波器的误码率要远远低于采用非匹配滤波器的传输系统。
六 实验心得
1. 刚开始对系统的整体构成不是很熟悉,思维比较模糊,后来和其他小组之间进行了交流,明白了整个系统的构成。知道了程序设计的步骤和流程。
2. 我们对整个实验的结果在仿真前没有大体的概念,导致我们面对仿真结果也难以判断正误。由于知识掌握的不牢固,使我们在编程过程中存在了理解的偏差。今后我们要扎实基础,对于系统的过程了如指掌。遇到不会的,先查书自己解决,实在不行,再互相讨论
3. 对于眼图的编程在要求不使用系统函数的情况下,开始尝试了根据定义编写,将每个周期的图形移到同一个周期内,但出现了错误,修改后得到了满意的结果
展开阅读全文