数字基带传输实验.docx
《数字基带传输实验.docx》由会员分享,可在线阅读,更多相关《数字基带传输实验.docx(33页珍藏版)》请在冰点文库上搜索。
![数字基带传输实验.docx](https://file1.bingdoc.com/fileroot1/2023-7/12/97155595-cab9-422f-9243-cd697350847b/97155595-cab9-422f-9243-cd697350847b1.gif)
数字基带传输实验
基带传输实验实验目的
1、实验原理
1.匹配滤波器和非匹配滤波器:
升余弦滚降滤波器频域特性:
将频域转化为时域
2.最佳基带系统
将发送滤波器和接收滤波器联合设计为无码间干扰的基带系统,而且具有最佳的抗加性高斯白噪声的性能。
要求接收滤波器的频率特性与发送信号频谱共轭匹配。
由于最佳基带系统的总特性是确定的,故最佳基带系统的设计归结为发送滤波器和接收滤波器特性的选择。
设信道特性理想,则有
(延时为0)
有
可选择滤波器长度使其具有线性相位。
如果基带系统为升余弦特性,则发送和接收滤波器为平方根升余弦特性。
2.基带传输系统(离散域分析)
✧输入符号序列――
✧发送信号――
――比特周期,二进制码元周期
✧发送滤波器――
或
✧发送滤波器输出――
✧信道输出信号或接收滤波器输入信号
(信道特性为1)
✧接收滤波器――
或
✧接收滤波器的输出信号
(画出眼图)
✧如果位同步理想,则抽样时刻为
✧抽样点数值为
(画出星座图)
✧判决为
其中若为最佳基带传输系统,则发送滤波器和接收滤波器都为根升余弦滤波器,当采用非匹配滤波器时,发送滤波器由升余弦滤波器基带特性实现,接收滤波器为直通。
2、实验内容
1.通过匹配滤波和非匹配滤波方式,得到不同的滚降系数下发送滤波器的时域波形和频率特性。
实验程序:
(1)非匹配情况下:
升余弦滚降滤波器的模块函数(频域到时域的转换)
频率抽样法:
function[Hf,ht]=f_unmatch(alpha,Ts,N,F0)
k=[-(N-1)/2:
(N-1)/2];
f=F0/N*k;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
Hf(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
Hf(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHf(i)=0;
end;
end;
主函数
alpha=input('alpha=');%输入不同的滚降系数值
N=31;%序列长度
Ts=4;
F0=1;%抽样频率
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
f=F0/N*k;
Hf=zeros(1,N);
Hf=f_unmatch(alpha,Ts,N,F0);
ht=1/N*Hf*exp(j*2*pi/N*k'*n);%非匹配滤波器的时域特性
subplot(2,1,1)
stem(f,Hf,'.');
axis([-F0/2,F0/2,min(Hf)-0.2,max(Hf)+0.2]);
title('非匹配发送滤波器频率特性');
subplot(2,1,2);
stem(n,ht,'.');
axis([-(N-1)/2,(N-1)/2,min(ht)-0.2,max(ht)+0.2]);
title('非匹配发送滤波器的时域波形');
实验结果
alpha=1时
Alpha=0.5时
Alpha=0.1时
窗函数法:
N=31;%发送滤波器长度是31a=0.5;%滚降系数,可变Ts=4;F0=1;n=-(N-1)/2:
(N-1)/2;%对函数进行离散的同时,通过采用矩形窗才设计出所需的点数T0=1/F0;t=-(N-1)/2:
(N-1)/2;ht=(eps+sin(pi*t/Ts))./(eps+(pi*t/Ts)).*cos(a*pi*t/Ts)./(eps+(1-4*a^2*t.*t/Ts^2));%时域表达式figure
(1)stem(t,ht);title('滤波器的时域波形')xlabel('t')ylabel('ht')Hw=fft(ht,512);%进行频域的变换figure
(2)plot(abs(Hw));title('滤波器的幅频响应')Hw1=20*log10(abs(Hw));%进行db的转换figure(3)plot(Hw1)%画图,并从图中读出所问问题的答案title('滤波器的幅频特性')
实验结果
(2)匹配情况下
根升余弦滚降滤波器的模块函数(频域到时域的转换)
function[Hf,ht]=f_match(alpha,Ts,N,F0)
k=[-(N-1)/2:
(N-1)/2];
f=F0*k/N;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
HF(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
HF(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHF(i)=0;
end;
end;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=sqrt(HF);%发送滤波器频率特性(根升余弦滚降滤波器)
ht=1/N*Hf*exp(j*2*pi/N*k'*n);%匹配滤波器的时域特性
主函数
alpha=input('alpha=');
N=31;
Ts=4;
F0=1;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=zeros(1,N);
HF=Hf;
Hf=f_match(alpha,Ts,N,F0);
subplot(2,1,1)
stem(f,Hf,'.');
axis([-F0/2,F0/2,min(Hf)-0.2,max(Hf)+0.2]);
title('匹配发送滤波器频率特性');
subplot(2,1,2);
stem(n,ht,'.');
axis([-(N-1)/2,(N-1)/2,min(ht)-0.2,max(ht)+0.2]);
title('匹配发送滤波器的时域波形');
实验结果
Alpha=1
Alpha=0.5
Alpha=0.1
(2)由时域到频域的变化
alpha=1;
N=31;
Ts=4;
F0=1;
T0=1;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
forn=-(N-1)/2:
(N-1)/2;
t=n*T0/Ts;
y=(1-4*alpha*alpha*t*t)*(pi*t);
if(y==0)
h(n+((N-1)/2+1))=(cos(pi*t)*cos(alpha*pi*t)-alpha*pi*sin(alpha*pi*t)*sin(pi*t))/(1-12*alpha*alpha*t*t);
else
h(n+((N-1)/2+1))=sin(pi*t)/(pi*t)*cos(alpha*pi*t)/(1-4*alpha*alpha*t*t);
end;
end;
n=-(N-1)/2:
(N-1)/2;
k=1:
N;
f=F0*k/N;
HF=h(n+((N-1)/2+1))*exp(-j*2*pi/N*k'*n);
ht=1/N*HF*exp(j*2*pi/N*k'*n);%发送滤波器时域特性
subplot(2,2,4)
stem(f,HF,'.');
axis([0,F0,min(HF)-0.2,max(HF)+0.2]);
xlabel('f'),ylabel('HF');
title('alpha=1的非匹配发送滤波器频率特性');
subplot(2,2,3);
stem(n,ht,'.');
axis([-(N-1)/2,(N-1)/2,min(ht)-0.2,max(ht)+0.2]);
xlabel('n'),ylabel('ht'),title('alpha=1的非匹配发送滤波器的时域波形');
Hf=sqrt(HF);%发送滤波器频率特性(根升余弦滚降滤波器)
ht=1/N*Hf*exp(j*2*pi/N*k'*n);%发送滤波器时域特性
subplot(2,2,2)
stem(f,Hf,'.');
axis([0,F0,min(Hf)-0.2,max(Hf)+0.2]);
xlabel('f'),ylabel('Hf');
title('alpha=1的匹配发送滤波器频率特性');
subplot(2,2,1);
stem(n,ht,'.');
axis([-(N-1)/2,(N-1)/2,min(ht)-0.2,max(ht)+0.2]);
xlabel('n'),ylabel('ht'),title('alpha=1的匹配发送滤波器的时域波形');
实验结果
2.输入信号叠加噪声,通过匹配和非匹配滤波两种方式,再经过抽样判决得到输出序列。
(1)匹配滤波形式
M=8;%符号数
N=32;%抽样点数
L=4;
T0=1;Ts=L*T0;
Rs=1/Ts;
fs=1/T0;%抽样频率
Bs=fs/2;%折叠频率
T=N/fs;
t=-T/2+[0:
N-1]/fs;
f=-Bs+[0:
N-1]/T;
%产生随机的序列输入
y=rand(1,M);
x0=zeros(1,M);
fori=1:
M
ify(i)>0.5
x0(i)=1;
else
x0(i)=-1;
end
end
subplot(5,2,1),stem(x0,'b.');
title('输入符号序列');
%在两个序列间插入三个零得到发送信号
n=0:
L*M-1;
x1=zeros(1,L*M);
fori=1:
M
x1(L*(i-1)+1)=x0(i);
end
subplot(5,2,2);stem(n,x1,'.');
title('发送信号');
%根升余弦的发送滤波器
alpha=1;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=zeros(1,N);
HF=Hf;
k=[-(N-1)/2:
(N-1)/2];
f=k/N;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
HF(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
HF(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHF(i)=0;
end;
end;
Hf=sqrt(HF);%发送滤波器频率特性(根升余弦滚降滤波器)
h=1/N*Hf*exp(j*2*pi/N*k'*n);%匹配滤波器的时域特性
subplot(523);stem(t,h,'.');
axis([-T/2,T/2,1.1*min(h),1.1*max(h)]);
title('平方根升余弦发送滤波器的时域冲激响应');
%发送滤波器输出
y=conv(x1,h);%输入信号与发送滤波器卷积输出
n=-T/2:
L*M-1-T/2+N-1;
subplot(524);plot(n,y)
axis([-T/2,L*M-1-T/2+N-1,1.1*min(y),1.1*max(y)]);
title('发送滤波器输出波形');
%计算平均每比特功率
Eb=0;
fori=1:
length(y)
Eb=Eb+abs(y(i))*abs(y(i));
end
Eb=Eb/32;
%信噪比
SNR=20;
%产生噪声
sgma=sqrt(Eb/(10^(SNR/10))/2);
n0=sgma*randn(1,length(y));
p=length(y);
t0=0:
p-1;
subplot(525);plot(t0,n0);
title('噪声');
%发送滤波器输出加噪声得接收滤波器输入
y1=y+n0;
subplot(526);plot(n,y1);
title('接收滤波器输入信号');
%根升余弦的接收滤波器
subplot(527);stem(t,h,'.');
axis([-T/2,T/2,1.1*min(h),1.1*max(h)]);
title('平方根升余弦接收滤波器的时域冲激响应');
%接收滤波器输出波形
r=conv(y1,h);
n=-T:
L*M-1-T+2*(N-1);
subplot(528);stem(n,r,'.')
title('接收滤波器输出波形');
%抽样判决
sam=zeros(1,M);
fori=0:
M-1
c=find(n==i*fs/Rs);
sam(i+1)=r(c);
end
n1=0:
M-1;
subplot(5,2,9),stem(n1,sam,'.');
title('抽样值');
b=zeros(1,M);
fori=1:
M
ifsam(i)>0
b(i)=1;
else
b(i)=-1
end
end
subplot(5,2,10),stem(b,'b.');
title('判决结果');
实验结果
(2)非匹配滤波形式
将发送滤波器改为升余弦滚降滤波器,而接收滤波器为直通滤波器。
%升余弦的发送滤波器
alpha=1;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=zeros(1,N);
k=[-(N-1)/2:
(N-1)/2];
f=k/N;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
Hf(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
Hf(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHf(i)=0;
end;
end;
%发送滤波器频率特性(升余弦滚降滤波器)
h=1/N*Hf*exp(j*2*pi/N*k'*n);%非匹配滤波器的时域特性
subplot(523);stem(t,h,'.');
axis([-T/2,T/2,1.1*min(h),1.1*max(h)]);
title('升余弦发送滤波器的时域冲激响应');
%发送滤波器输出
y=conv(x1,h);
n=-T/2:
L*M-1-T/2+N-1;
subplot(524);plot(n,y)
axis([-T/2,L*M-1-T/2+N-1,1.1*min(y),1.1*max(y)]);
title('发送滤波器输出波形');
%接收滤波器是直通滤波器,输出波形就是输入波形
r=y1;
subplot(528);stem(n,r,'.')
title('接收滤波器输出波形');
%接收滤波器是直通滤波器,输出波形就是输入波形
r=y1;
subplot(528);stem(n,r,'.')
title('接收滤波器输出波形');
实验结果
3.比特速率不同时,基带系统采用非匹配滤波器,画出接收滤波器输出信号波形和眼图,并判断有无码间干扰
实验程序:
比特速率Rs=1/Ts时:
M=8;%符号数
N=32;%抽样点数
L=4;
T0=1;Ts=L*T0;
Rs=1/Ts;
fs=1/T0;%抽样频率
Bs=fs/2;%折叠频率
T=N/fs;
t=-T/2+[0:
N-1]/fs;
f=-Bs+[0:
N-1]/T;
y=rand(1,M);
x0=zeros(1,M);
fori=1:
M
ify(i)>0.5
x0(i)=1;
else
x0(i)=-1;
end
end
subplot(3,2,1),stem(x0,'b.');
title('输入符号序列');
n=0:
L*M-1;
x1=zeros(1,L*M);
fori=1:
M
x1(L*(i-1)+1)=x0(i);
end
subplot(3,2,2);stem(n,x1,'.');
title('发送信号');
%升余弦的发送滤波器
alpha=1;
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=zeros(1,N);
k=[-(N-1)/2:
(N-1)/2];
f=k/N;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
HF(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
HF(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHF(i)=0;
end;
end;
Hf=HF;%发送滤波器频率特性(升余弦滚降滤波器)
h=1/N*Hf*exp(j*2*pi/N*k'*n);%匹配滤波器的时域特性
subplot(323);stem(t,h,'.');
title('升余弦发送滤波器的时域冲激响应');
%接收滤波器输出
y=conv(x1,h);
n=-T/2:
L*M-1-T/2+N-1;
subplot(324);plot(n,y)
title('接收滤波器输出波形');
%抽样判决
sam=zeros(1,M);
fori=0:
M-1
c=find(n==i*fs/Rs);
sam(i+1)=y(c);
end
n1=0:
M-1;
subplot(3,2,5),stem(n1,sam,'.');
title('抽样值');
b=zeros(1,M);
fori=1:
M
ifsam(i)>0
b(i)=1;
else
b(i)=-1
end
end
subplot(3,2,6),stem(b,'b.');
title('判决结果');
%眼图
eyediagram(y,L,1,0);
title('接收滤波器输出信号眼图');
实验结果:
比特速率Rs=1/Ts时
实验结果分析:
此时判决序列无失真的恢复出了原始序列
实验分析:
此时眼图张的较开,比较端正,码间串扰比较小
比特速率Rs=4/3/Ts时:
实验结果分析:
此时判决序列相对于原始序列在n=4,7,8有明显的误判,眼图睁得不大有明显的码间干扰
比特速率Rs=4/5/Ts时:
实验结果分析:
此时判决序列相对于原始序列在n=3,4有明显的误判,眼图睁得不大有明显的码间干扰
4.信噪比和滚降系数不同时,基带系统分别为匹配滤波器和非匹配滤波器形式,画出发送数字序列和接收数字序列的星座图
实验程序:
采用匹配滤波器:
M=250;%符号数
N=1000;%抽样点数
L=4;
T0=1;Ts=L*T0;
Rs=1/Ts;
fs=1/T0;%抽样频率
Bs=fs/2;%折叠频率
T=N/fs;
t=-T/2+[0:
N-1]/fs;
f=-Bs+[0:
N-1]/T;
alpha=input('alpha=');%输入不同alpha值
SNR=input('SNR=');%更改SNR值
y=rand(1,M);
x0=zeros(1,M);
fori=1:
M
ify(i)>0.5
x0(i)=1;
else
x0(i)=-1;
end
end
subplot(5,2,1),stem(x0,'b.');
title('输入符号序列');
n=0:
L*M-1;
x1=zeros(1,L*M);
fori=1:
M
x1(L*(i-1)+1)=x0(i);
end
subplot(5,2,2);stem(n,x1,'.');
title('发送信号');
%根升余弦的发送滤波器
n=[-(N-1)/2:
(N-1)/2];
k=[-(N-1)/2:
(N-1)/2];
Hf=zeros(1,N);
HF=Hf;
k=[-(N-1)/2:
(N-1)/2];
f=k/N;
fori=1:
N;
if(abs(f(i))<=(1-alpha)/(2*Ts))
HF(i)=Ts;
elseif(abs(f(i))<=(1+alpha)/(2*Ts))
HF(i)=Ts/2*(1+cos(pi*Ts/alpha*(abs(f(i))-(1-alpha)/(2*Ts))));
elseHF(i)=0;
end;
end;
Hf=sqrt(HF);%发送滤波器频率特性(根升余弦滚降滤波器)
h=1/N*Hf*exp(j*2*pi/N*k'*n);%匹配滤波器的时域特性
subplot(523);stem(t,h,'.');
axis([-T/2,T/2,1.1*min(h),1.1*max(h)]);
title('平方根升余弦发送滤波器的时域冲激响应');
%发送滤波器输出
y=conv(x1,h);
n=-T/2:
L*M-1-T/2+N-1;
subplot(524);plot(n,y)
title('发送滤波器输出波形');
%计算平均每比特功率
Eb=0;
fori=1:
length(y)
Eb=Eb+abs(y(i))*abs(y(i));
end
Eb=Eb/32;
%产生噪声
sgma=sqrt(Eb/(10^(SNR/10))/2);
n0=sgma*randn(1,length(y));
p=length(y);
t0=0:
p-1;
subplot(525);plot(t0,n0);
title('噪声');
y1=y+n0;
subplot(526);plot(n,y1);
title('接收滤波器输入信号');
%根升余弦的接收滤波器
subplot(527);stem(t,h,'.');
axis([-T/2,T/2,1.1*min(h),1.1*max(h)]);
title('平方根升余弦接收滤波器的时域冲激响应');
%接收滤波器输出波形
r=conv(y1,h);
n=-T:
L*M-1-T+2*(N-1);
subplot(528);stem(n,r,'.')
title('接收滤波器输出波形');
%抽样判决
sam=zeros(1,M);
fori=0:
M-1
c=find(n==i*fs/Rs);
sam(i+1)=r(c);
end
n1=0:
M-1;
subplot(5,2,9),stem(n1,sam,'.');
title('抽样值');
b=zeros(1,M);
fori=1:
M
ifsam(i)>0
b(i)=1;
else
b(i)=-1
end
end
subplot(5