通信原理实验报告含MATLAB程序文件Word文档下载推荐.docx
《通信原理实验报告含MATLAB程序文件Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《通信原理实验报告含MATLAB程序文件Word文档下载推荐.docx(41页珍藏版)》请在冰点文库上搜索。
要求接收滤波器的频率特性与发送信号频谱共轭匹配。
由于最佳基带系统的总特性是
确定的,故最佳基带系统的设计归结为发送滤波器和接收滤波器特性的选择。
设信道特性理想,则有
H(f)=GT(f)⋅GR(f)
GR(f)=G*T(f)(延时为0)
有GT(f)=GR(f)=H(f)1/2
可选择滤波器长度使其具有线性相位。
如果基带系统为升余弦特性,则发送和接收滤波器为平方根升余弦特性。
4.由模拟滤波器设计数字滤波器的时域冲激响应
升余弦滤波器(或平方根升余弦滤波器)的最大带宽为1/Ts,故其时域抽样速率至少
为2/Ts,取F0=1/T0=4/Ts,其中T0为时域抽样间隔,归一化为1。
抽样后,系统的频率特性是以F0为周期的,折叠频率为F02=2Ts。
故在一个周期
内以间隔Δf=F0/N抽样,N为抽样个数。
频率抽样为H(kΔf),
k=0,±
1,…,±
(N−1)/2。
相应的离散系统的冲激响应为
将上述信号移位,可得具有线性相位的因果系统的冲激响应。
5.基带传输系统(离散域分析)
输入符号序列————
比特周期,二进制码元周期
发送滤波器
发送滤波器输出
接收滤波器的输出信号
抽样点数值
6.编程思想
编程尽量采用模块化结构或子函数形式,合理设计各子函数的输入和输出参数。
系统
模块或子函数可参考如下:
信源模块
发送滤波器模块(频域特性和时域特性)
加性白噪声信道模块
接收滤波器模块(频域特性和时域特性)
判决模块
采用匹配滤波器的基带系统模块
不采用匹配滤波器的基带系统模块
画眼图模块
画星座图模块
三、实验内容
1、如发送滤波器长度为N=31,时域抽样频率F0为s4/T,滚降系数分别取为0.1、0.5、1,
计算并画出此发送滤波器的时域波形和频率特性,计算第一零点带宽和第一旁瓣衰减。
以
此发送滤波器构成最佳基带系统,计算并画出接收滤波器的输出信号波形和整个基带系统
的频率特性,计算第一零点带宽和第一旁瓣衰减。
按题目要求编写程序如下:
(1)子程序如下:
余弦滚降子函数定义:
functiony=upcos(f,alpha,Ts)
if(abs(f)<
=(1-alpha)/(2*Ts))
y=Ts;
elseif(abs(f)>
=(1+alpha)/(2*Ts))
y=0;
else
y=Ts/2*(1+cos(pi*Ts/alpha*(abs(f)-(1-alpha)/(2*Ts))));
end
idft子函数定义:
functionxn=idft(Xk,N)
k=0:
(N-1);
n=0:
wn=exp(-j*2*pi/N);
nk=n'
*k;
wnnk=wn.^(-nk);
xn=(Xk*wnnk)/N;
(2)主函数如下:
Ts=4;
T0=1;
N=31;
a=1;
f=(-2/Ts):
(4/Ts)/(N-1):
(2/Ts);
foralpha=[0.1,0.5,1]
fori=1:
N
H(i)=upcos(f(i),alpha,Ts);
end
H_k(a,:
)=H;
upcosHk(i)=upcos(f(i),alpha,Ts);
(N+1)/2
temp(i)=H_k(a,i);
(N-1)/2
H_k(a,i)=H_k(a,i+(N+1)/2);
H_k(a,i+(N-1)/2)=temp(i);
subplot(3,1,a);
stem(H_k(a,:
),'
.'
);
title('
频域波形'
a=a+1;
end;
figure
fora=1:
3
h_n(a,:
)=idft(H_k(a,:
),N);
(N+1)/2%时域搬移非因果=>
因果
temp(i)=h_n(a,i);
h_n(a,i)=h_n(a,i+(N+1)/2);
h_n(a,i+(N-1)/2)=temp(i);
stem(real(h_n(a,:
)),'
时域波形'
[H_w1,w]=freqz((h_n(a,:
)),1);
stem(w,abs(H_w1),'
升余弦滤波器'
)
H_w(a,:
)=H_w1'
;
figure;
sqrH_k(a,:
)=sqrt(abs(H_k(a,:
)));
%升余弦平方根特性
sqrh_n(a,:
)=idft(sqrH_k(a,:
(N+1)/2%时域搬移
temp(i)=sqrh_n(a,i);
sqrh_n(a,i)=sqrh_n(a,i+(N+1)/2);
sqrh_n(a,i+(N-1)/2)=temp(i);
sumsqrh(a,:
)=conv((sqrh_n(a,:
)),(sqrh_n(a,:
)))
end
subplot(3,2,2*a-1);
stem(real(sqrh_n(a,:
subplot(3,2,2*a);
stem(real(sumsqrh(a,:
[sumH_w1,w]=freqz((sumsqrh(a,:
sumH_w(a,:
)=sumH_w1'
stem(w,abs(sumH_w1),'
匹配滤波器频率特性'
实验所出波形如下:
图一为余弦滚降滤波器在不同α值时的系统频域特性,其中从上到下α值依次为0.1,0.5,0.999(0.999而非1的原因在最后一部分经验与收获中解释)
图二为相应升余弦特性经过idft后的时域波形,可见α值越大,时域主瓣宽度越窄,旁瓣衰减越剧烈,相应的,在时域抽样判决时,在定时不够精确时,大α值就能减小码间串扰。
但在本实验中,由于抽样点精确定在最佳抽样点处,所以α值对误码率影响不大。
图三为调用freqz由时域波形得到的频域波形,由此图可计算频域主瓣宽度和旁瓣衰减。
图四为右侧两图为升余弦平方根特性的时域波形,由于匹配滤波器接收与发送滤波器皆为升余弦平方根特性,串接后总特性为两时域波形卷积,总特性时域波形如右图。
信号经过发送滤波器后的波形即为以上信号时移叠加。
图五为匹配滤波器总特性的时域波形使用freqz函数后导出的频域特性。
将图三与图五进行比较,以第一行为例:
非匹配:
匹配:
可见匹配滤波器在旁瓣抑制方面明显强于非匹配滤波器。
2、根据基带系统模型,编写程序,设计无码间干扰的二进制数字基带传输系统。
要求要
传输的二进制比特个数、比特速率Rb(可用与Ts的关系表示)、信噪比SNR、滚降系数α
是可变的。
1)生成一个0、1等概率分布的二进制信源序列(伪随机序列)。
可用MATLAB中的
rand函数生成一组0~1之间均匀分布的随机序列,如产生的随机数在(0,0.5)区间内,
则为0;
如果在(0.5,1)区间内,则为1。
2)基带系统传输特性设计。
可以采用两种方式,一种是将系统设计成最佳的无码间干
扰的系统,即采用匹配滤波器,发送滤波器和接收滤波器对称的系统,发送滤波器和接收
滤波器都是升余弦平方根特性;
另一种是不采用匹配滤波器方式,升余弦滚降基带特性完
全由发送滤波器实现,接收滤波器为直通。
3)产生一定方差的高斯分布的随机数,作为噪声序列,叠加到发送滤波器的输出信
号上引入噪声。
注意噪声功率(方差)与信噪比的关系。
信道高斯噪声的方差为σ2,单
边功率谱密度2
N0=2σ,如计算出的平均比特能量为Eb,则信噪比为
SNR=10⋅log10(Eb/N0)。
4)根据接收滤波器的输出信号,设定判决电平,在位同步理想情况下,抽样判决后
得到接收到的数字信息序列波形。
所编程序如下:
产生双极性信号子序列:
function[source,Eb]=subserial(N)
source=zeros(1,N);
Eb=0;
fori=1:
N;
temp=rand;
if(temp<
0.5)
source(i)=-1;
else
source(i)=1;
Eb=Eb+source(i)*source(i);
Eb=Eb/N;
i=1:
stem(i,source,'
信源序列'
序列拓展子函数:
function[out]=sigexpand(d,M)
%求输入序列扩展为间隔为M-1个0的序列
N=length(d);
out=zeros(M,N);
out(1,:
)=d;
%d赋值给第一行
out=reshape(out,1,M*N);
余弦滚降函数定义子函数:
functiony=upcos(f,alpha,Ts)
idft子函数:
functionxn=idft(Xk,N)
stem(n,real(xn),'
*'
高斯白噪声产生子函数:
function[gsrv1,gsrv2]=gnguass(m,sgma)
ifnargin==0
m=0;
sgma=1;
elseifnargin==1
sgma=m;
u=rand;
z=sgma*sqrt(2*log10(1/(1-u)));
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);
判决模块子函数:
function[resul]=panjue(subresul,Ts,N)
%抽样判决
%N为源序列有效符号数
Ts:
(N-1)*Ts+1;
if(real(subresul(i))>
=0)
resul(i)=1;
elseresul(i)=-1;
统计错误子函数:
function[num,prop]=erro(sourc,resul,Ts,N);
%统计码元中错误数num与误码率prop
num=0;
(N-1)*Ts+1
if(sourc(i)==resul(i))
num=num;
num=num+1;
prop=num/N;
画眼图子函数:
function[]=yantu(b,Ts)
N=length(b);
forn=1:
ceil(N/Ts-1)
Ts+1
c(i)=b((n-1)*Ts+i);
i=1:
Ts+1;
tt=1:
0.1:
yy=spline(i,c,tt);
plot(tt,yy);
holdon;
(2)主函数程序:
%input('
码元速率='
alpha=0.1;
滚降系数='
M=100;
源序列长度='
SNR=10;
信噪比='
%滤波器阶数
[subsourc,Eb]=subserial(M);
sourc=sigexpand(subsourc,Ts);
%序列扩展
N0=Eb/(10^(SNR/10));
sigma=sqrt(N0/2);
%计算sigma
temp(i)=upcosHk(i);
upcosHk(i)=upcosHk(i+(N+1)/2);
upcosHk(i+(N-1)/2)=temp(i);
subplot(2,2,1);
stem(upcosHk,'
subplot(2,2,2);
h_n=idft(upcosHk,N);
temp(i)=h_n(i);
h_n(i)=h_n(i+(N+1)/2);
h_n(i+(N-1)/2)=temp(i);
sqrcosHk=sqrt(abs(upcosHk));
subplot(2,2,3);
stem(sqrcosHk,'
subplot(2,2,4);
sqrh_n=idft(sqrcosHk,N);
temp(i)=sqrh_n(i);
sqrh_n(i)=sqrh_n(i+(N+1)/2);
sqrh_n(i+(N-1)/2)=temp(i);
filter11=h_n;
filter12=[1,zeros(1,N-1)];
filter21=sqrh_n;
filter22=sqrh_n;
subresult11=conv(sourc,filter11);
subplot(3,2,1);
stem(real(subresult11),'
axis([0100-0.51.5]);
经过发送滤波器'
subresult12=conv(sourc,filter21);
subplot(3,2,2);
stem(real(subresult12),'
%经过发送滤波器
length(subresult11)
[noise(i),]=gnguass(0,sigma);
%生成噪声序列
subresult21=subresult11+noise;
subplot(3,2,3);
stem(real(subresult21),'
叠加噪声后波形'
subresult22=subresult12+noise;
subplot(3,2,4);
stem(real(subresult22),'
axis([0100-0.51.5])%叠加噪声
subresult31=conv(subresult21,filter12);
subplot(3,2,5);
stem(real(subresult31),'
经过接收滤波器'
subresult32=conv(subresult22,filter22);
subplot(3,2,6);
stem(real(subresult32),'
%输出序列
length(subresult32)-15
subresult31s(i)=subresult31(i+15);
length(subresult31)-30
subresult32s(i)=subresult32(i+30);
subresult41=panjue(subresult31s,Ts,M);
subresult42=panjue(subresult32s,Ts,M);
[error1,prop1]=erro(sourc,subresult41,Ts,M);
[error2,prop2]=erro(sourc,subresult42,Ts,M);
a=length(sourc);
subplot(3,1,1);
stem(sourc,'
axis([0a-11]);
源序列'
subplot(3,1,2);
stem(subresult41,'
升余弦+直通输出判决结果'
subplot(3,1,3);
stem(subresult42,'
匹配滤波器输出判决结果'
aa=real(subresult31);
bb=real(subresult32);
yantu(aa,4*Ts);
升余弦+直通'
yantu(bb,4*Ts);
匹配滤波器'
实验结果:
图一为随机产生的双极性码,在此我们M=100,即产生100点序列。
图二为升余弦滤波器频域波形及其时域波形(左)与升余弦平方根特性频域波形及其时域波形(右)。
图三为图形信号在两种方案中经过发送滤波器、叠加噪声、经过接受滤波器后的波形。
图四从上到下依次为源序列,方案一(升余弦加直通)输出判决结果,方案二(匹配滤波器)输出判决结果
图五、六为两种方案的眼图,经过对比方案一升余弦加直通(左图)与匹配滤波器(右图),右图明显清晰规则,可见匹配滤波器抗造性能明显好于升余弦加直通方案。
上图为点数M=3000时的眼图,相较之下右侧图清晰而规则,效果也比较明显。
3、假设加性噪声不存在,传输64个特定的二进制比特,如果比特速率Rb=1/Ts,基带系
统不采用匹配滤波器,画出接收滤波器的输出信号波形和眼图,判断有无码间干扰,求出
抽样判决后的数字序列。
如果将比特速率改为4/3Ts,4/5Ts,画出接收滤波器的输出信号波形和眼图,判断有无码间干扰,求出抽样判决后的数字序列。
(1)子程序如下:
子函数同实验2
主函数如下:
M=64;
alpha=0.5;
%生成序列
%产生余弦滚降
(N+1)/2%频域序列移位
subplot(1,2,1);
stem(abs(upcosHk),'
subplot(1,2,2);
h_n=idft(upcosHk,N);
%产生时域序列
(N+1)/2%时域序列移位
filter11=h_n;
filter12=[1,zeros(1,N-1)];
a=1
forTB=[4,3,5];
%TB赋值
sourc=sigexpand(subsourc,TB)%序列扩展
filter11out=conv(sourc,filter11);
subplot(1,2,1);
stem(filter11out,'
filter12out=conv(filter11out,filter12);
subplot(1,2,2);
stem(filter12out,'
length(filter12out)-15
filter12outs(i)=filter12out(i+15);
sh