实验一 数字基带传输实验
一、实验目的
1、提高学习的能力;
2、培养发现问题、解决问题和分析问题的能力; 3、学习Matlab 的使用;
4、掌握基带数字传输系统的仿真方法; 5、熟悉基带传输系统的基本结构; 6、掌握带限信道的仿真以及性能分析;
7、通过观测眼图和星座图判断信号的传输质量。
二、实验原理
1. 带限信道的基带系统模型(连续域分析)
输入符号序列 ————{al}
发送信号 ————d(t)al(tlTb) Tb是比特周期,二进制码元周期
l0L1发送滤波器 ————GT(w)或GT(t)
发送滤波器输出 ————
x(t)d(t)*g(t)al(tlTb)*gT(t)algT(tlTb)
Tl0l0L1L1信道输出信号或接收滤波器输入信号y(t)x(t)n(t) 接收滤波器 GR()或GR(f) 接收滤波器输出信号
r(t)y(t)*gR(t)d(t)*gT(t)*gR(t)n(t)*gR(t)alg(tlTb)nR(t)
l0L1其中g(t)GT(f)GR(f)ej2ftdf
如果位同步理想,则抽样时刻为lTb l0'判决为 {al}
L1
2. 升余弦滚降滤波器
H(f)Ts|f|1; 2TsH(f)TsT111[1coss(|f|)]|f| 22Ts2Ts2Ts1 2Ts H(f) 0|f|式中α 称为滚降系数,取值为0 <α ≤1, Ts是常数。α = 0时,带宽为1/ 2Ts Hz;α =1时, 带宽为1/Ts Hz。此频率特性在(−1/(2Ts ),1/(2Ts ))内可以叠加成一条直线,故系统无码间干 扰传输的最小符号间隔为Ts s,或无码间干扰传输的最大符号速率为1/Ts Baud。相应的时 域波形h(t)为 h(t)此信号满足
h(nTs)sint/Tscost/Ts
t/Ts142t2/Ts21n00n0
在理想信道中,C(w)=1,上述信号波形在抽样时刻上没有码间干扰,如果传输码元速率满足
Rsmax1,则通过此基带系统后无码间干扰。 nnTs3. 最佳基带系统
将发送滤波器和接收滤波器联合设计为无码间干扰的基带系统,而且具有最佳的抗加 性高斯白噪声的性能。
要求接收滤波器的频率特性与发送信号频谱共轭匹配。由于最佳基带系统的总特性是 确定的,故最佳基带系统的设计归结为发送滤波器和接收滤波器特性的选择。 设信道特性理想,则有 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为周期的,折叠频率为F0 2 = 2 Ts 。故在一个周期 内以间隔Δf = F0 / N 抽样, N 为抽样个数。频率抽样为H(kΔf ) ,
k = 0,±1,…,±(N −1) / 2。
相应的离散系统的冲激响应为
h(nT0)h(t)|tnT0(IFT[H(f)])|tnT0(H(f)ej2ftdf)|tnT0(N1)/2K(N1)/2H(kf)ej2kfnT0fj2kF0nT0NF0N(N1)/2K(N1)/2H(kf)eN1 21N(N1)/2K(N1)/2H(kf)ej2knN
n0,1,....,将上述信号移位,可得具有线性相位的因果系统的冲激响应。
5. 基带传输系统(离散域分析)
输入符号序列 ————{al}
发送信号 ————TbAT0比特周期,二进制码元周期 d(nT0)发送滤波器 GT(kf)或发送滤波器输出
a(nTll0L10lAT0)
gT(nT0)
x(nT0)d(nT0)*g(nT0)al(nT0lAT0)*gT(nT0)algT(nT0lAT0)
Tl0l0L1L1信道输出信号或接收滤波器输入信号
y(nT0)x(nT0)n(nT0)
接收滤波器 GR(kf)或gR(nT0) 接收滤波器的输出信号
r(nT0)y(nT0)*gR(nT0)d(nT0)*gT(nT0)*gR(nT0)n(nT0)*gR(nT0)
alg(nT0lAT0)nR(nT0)
l0L1如果位同步理想,则抽样时刻为lAT l0抽样点数值 r(lAT0) l0'判决为 {al}
L1 L1
6. 编程思想
编程尽量采用模块化结构或子函数形式,合理设计各子函数的输入和输出参数。系统 模块或子函数可参考如下: 信源模块
发送滤波器模块(频域特性和时域特性) 加性白噪声信道模块
接收滤波器模块(频域特性和时域特性) 判决模块
采用匹配滤波器的基带系统模块 不采用匹配滤波器的基带系统模块 画眼图模块 画星座图模块
三、实验内容
1、如发送滤波器长度为N=31,时域抽样频率F0为s 4 /T ,滚降系数分别取为0.1、0.5、1, 计算并画出此发送滤波器的时域波形和频率特性,计算第一零点带宽和第一旁瓣衰减。以 此发送滤波器构成最佳基带系统,计算并画出接收滤波器的输出信号波形和整个基带系统 的频率特性,计算第一零点带宽和第一旁瓣衰减。 按题目要求编写程序如下: (1)子程序如下:
余弦滚降子函数定义:
function y=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子函数定义:
function xn=idft(Xk,N) k=0:(N-1); n=0:(N-1);
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); for alpha=[0.1,0.5,1] for i=1:N
H(i)=upcos(f(i),alpha,Ts); end
H_k(a,:)=H;
for i=1:N
upcosHk(i)=upcos(f(i),alpha,Ts); end
for i=1:(N+1)/2
temp(i)=H_k(a,i); end
for i=1:(N-1)/2
H_k(a,i)=H_k(a,i+(N+1)/2); end
for i=1:(N+1)/2
H_k(a,i+(N-1)/2)=temp(i); end
subplot(3,1,a);
stem(H_k(a,:),'.');title('频域波形'); a=a+1; end;
figure for a=1:3
h_n(a,:)=idft(H_k(a,:),N);
for i=1:(N+1)/2 %时域搬移 非因果=>因果 temp(i)=h_n(a,i); end
for i=1:(N-1)/2
h_n(a,i)=h_n(a,i+(N+1)/2); end
for i=1:(N+1)/2
h_n(a,i+(N-1)/2)=temp(i); end
subplot(3,1,a);
stem(real(h_n(a,:)),'.');title('时域波形'); end figure for a=1:3
subplot(3,1,a);
[H_w1,w]=freqz((h_n(a,:)),1);
stem(w,abs(H_w1),'.');title('升余弦滤波器') H_w(a,:)=H_w1'; end;
figure; for a=1:3
sqrH_k(a,:)=sqrt(abs(H_k(a,:)));%升余弦平方根特性 sqrh_n(a,:)=idft(sqrH_k(a,:),N);
for i=1:(N+1)/2 %时域搬移 temp(i)=sqrh_n(a,i); end
for i=1:(N-1)/2
sqrh_n(a,i)=sqrh_n(a,i+(N+1)/2); end
for i=1:(N+1)/2
sqrh_n(a,i+(N-1)/2)=temp(i); end
sumsqrh(a,:)=conv((sqrh_n(a,:)),(sqrh_n(a,:))) end for a=1:3
subplot(3,2,2*a-1);
stem(real(sqrh_n(a,:)),'.'); subplot(3,2,2*a);
stem(real(sumsqrh(a,:)),'.') end figure for a=1:3
[sumH_w1,w]=freqz((sumsqrh(a,:)),1); sumH_w(a,:)=sumH_w1'; subplot(3,1,a);
stem(w,abs(sumH_w1),'.');title('匹配滤波器频率特性'); end
实验所出波形如下:
图一为余弦滚降滤波器在不同α值时的系统频域特性,其中从上到下α值依次为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)根据接收滤波器的输出信号,设定判决电平,在位同步理想情况下,抽样判决后 得到接收到的数字信息序列波形。 所编程序如下: (1)子程序如下:
产生双极性信号子序列:
function [source,Eb]=subserial(N) source=zeros(1,N); Eb=0;
for i=1:N;
temp=rand; if (temp<0.5) source(i)=-1; else
source(i)=1; end
Eb=Eb+source(i)*source(i); end
Eb=Eb/N; i=1:N;
figure;stem(i,source,'.'); title('信源序列'); 序列拓展子函数:
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); 余弦滚降函数定义子函数: function y=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子函数:
function xn=idft(Xk,N) k=0:(N-1); n=0:(N-1);
wn=exp(-j*2*pi/N); nk=n'*k;
wnnk=wn.^(-nk); xn=(Xk*wnnk)/N;
stem(n,real(xn),'*'); 高斯白噪声产生子函数:
function [gsrv1,gsrv2]=gnguass(m,sgma) if nargin==0 m=0; sgma=1;
elseif nargin==1 sgma=m;
m=0; end u=rand;
z=sgma*sqrt(2*log10(1/(1-u))); u=rand;
gsrv1=m+z*cos(2*pi*u); gsrv2=m+z*sin(2*pi*u); 判决模块子函数:
function [resul]=panjue(subresul,Ts,N) %抽样判决
%N为源序列有效符号数 for i=1:Ts:(N-1)*Ts+1;
if (real(subresul(i))>=0) resul(i)=1; else resul(i)=-1; end end
统计错误子函数:
function [num,prop]=erro(sourc,resul,Ts,N); %统计码元中错误数num与误码率prop num=0;
for i=1:Ts:(N-1)*Ts+1
if(sourc(i)==resul(i)) num=num; else
num=num+1; end end
prop=num/N; 画眼图子函数:
function []=yantu(b,Ts) N=length(b);
for n=1:ceil(N/Ts-1) for i=1:Ts+1
c(i)=b((n-1)*Ts+i); end
i=1:Ts+1;
tt=1:0.1:Ts+1; yy=spline(i,c,tt); plot(tt,yy); hold on; end
(2)主函数程序:
Ts=4;T0=1;%input('码元速率=') alpha=0.1;%input('滚降系数=') M=100;%input('源序列长度=') SNR=10;%input('信噪比=') N=31;%滤波器阶数
[subsourc,Eb]=subserial(M);
sourc=sigexpand(subsourc,Ts);%序列扩展 N0=Eb/(10^(SNR/10));
sigma=sqrt(N0/2);%计算sigma f=(-2/Ts):(4/Ts)/(N-1):(2/Ts); for i=1:N
upcosHk(i)=upcos(f(i),alpha,Ts); end
for i=1:(N+1)/2
temp(i)=upcosHk(i); end
for i=1:(N-1)/2
upcosHk(i)=upcosHk(i+(N+1)/2); end
for i=1:(N+1)/2
upcosHk(i+(N-1)/2)=temp(i); end figure;
subplot(2,2,1); stem(upcosHk,'.'); subplot(2,2,2);
h_n=idft(upcosHk,N); for i=1:(N+1)/2 temp(i)=h_n(i); end
for i=1:(N-1)/2
h_n(i)=h_n(i+(N+1)/2); end
for i=1:(N+1)/2
h_n(i+(N-1)/2)=temp(i); end
sqrcosHk=sqrt(abs(upcosHk)); subplot(2,2,3); stem(sqrcosHk,'.') subplot(2,2,4);
sqrh_n=idft(sqrcosHk,N); for i=1:(N+1)/2
temp(i)=sqrh_n(i); end
for i=1:(N-1)/2
sqrh_n(i)=sqrh_n(i+(N+1)/2); end
for i=1:(N+1)/2
sqrh_n(i+(N-1)/2)=temp(i); end
filter11=h_n;
filter12=[1,zeros(1,N-1)]; filter21=sqrh_n; filter22=sqrh_n; figure;
subresult11=conv(sourc,filter11);subplot(3,2,1);stem(real(subresult11),'.');axis([0 100 -0.5 1.5]);title('经过发送滤波器');
subresult12=conv(sourc,filter21);subplot(3,2,2);stem(real(subresult12),'.');axis([0 100 -0.5 1.5]);%经过发送滤波器 for i=1:length(subresult11)
[noise(i),]=gnguass(0,sigma);%生成噪声序列 end
subresult21=subresult11+noise;subplot(3,2,3);stem(real(subresult21),'.');axis([0 100 -0.5 1.5]);title('叠加噪声后波形');
subresult22=subresult12+noise;subplot(3,2,4);stem(real(subresult22),'.');axis([0 100 -0.5 1.5])%叠加噪声
subresult31=conv(subresult21,filter12);subplot(3,2,5);stem(real(subresult31),'.');axis([0 100 -0.5 1.5]);title('经过接收滤波器')
subresult32=conv(subresult22,filter22);subplot(3,2,6);stem(real(subresult32),'.');axis([0 100 -0.5 1.5]);%输出序列 for i=1:length(subresult32)-15 subresult31s(i)=subresult31(i+15); end
for i=1:length(subresult31)-30
subresult32s(i)=subresult32(i+30); end
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); figure;
subplot(3,1,1);stem(sourc,'.');axis([0 a -1 1]);title('源序列');
subplot(3,1,2);stem(subresult41,'.');axis([0 a -1 1]);title('升余弦+直通输出判决结果');
subplot(3,1,3);stem(subresult42,'.');axis([0 a -1 1]);title('匹配滤波器输出判决结果');
aa=real(subresult31);
bb=real(subresult32); figure;
yantu(aa,4*Ts);title('升余弦+直通') figure;
yantu(bb,4*Ts);title('匹配滤波器') 实验结果:
图一为随机产生的双极性码,在此我们M=100,即产生100点序列。
图二为升余弦滤波器频域波形及其时域波形(左)与升余弦平方根特性频域波形及其时域波形(右)。
图三为图形信号在两种方案中经过发送滤波器、叠加噪声、经过接受滤波器后的波形。
图四从上到下依次为源序列,方案一(升余弦加直通)输出判决结果,方案二(匹配滤波器)输出判决结果
图五、六为两种方案的眼图,经过对比方案一升余弦加直通(左图)与匹配滤波器(右图),右图明显清晰规则,可见匹配滤波器抗造性能明显好于升余弦加直通方案。
上图为点数M=3000时的眼图,相较之下右侧图清晰而规则,效果也比较明显。
3、假设加性噪声不存在,传输个特定的二进制比特,如果比特速率Rb =1/Ts,基带系 统不采用匹配滤波器,画出接收滤波器的输出信号波形和眼图,判断有无码间干扰,求出 抽样判决后的数字序列。如果将比特速率改为4/3Ts,4/5Ts,画出接收滤波器的输出信号波形和眼图,判断有无码间干扰,求出抽样判决后的数字序列。 所编程序如下:
(1) 子程序如下: 子函数同实验2 主函数如下: Ts=4;T0=1; M=;
alpha=0.5;%input('滚降系数=') N=31;
[subsourc,Eb]=subserial(M);%生成序列
f=(-2/Ts):(4/Ts)/(N-1):(2/Ts);%产生余弦滚降 for i=1:N
upcosHk(i)=upcos(f(i),alpha,Ts); end
for i=1:(N+1)/2%频域序列移位 temp(i)=upcosHk(i); end
for i=1:(N-1)/2
upcosHk(i)=upcosHk(i+(N+1)/2); end
for i=1:(N+1)/2
upcosHk(i+(N-1)/2)=temp(i); end figure;
subplot(1,2,1);
stem(abs(upcosHk),'*'); subplot(1,2,2);
h_n=idft(upcosHk,N);%产生时域序列 for i=1:(N+1)/2%时域序列移位 temp(i)=h_n(i); end
for i=1:(N-1)/2
h_n(i)=h_n(i+(N+1)/2); end
for i=1:(N+1)/2
h_n(i+(N-1)/2)=temp(i); end
filter11=h_n;
filter12=[1,zeros(1,N-1)]; a=1
for TB=[4,3,5];%TB赋值
sourc=sigexpand(subsourc,TB)%序列扩展 figure;
filter11out=conv(sourc,filter11);subplot(1,2,1);stem(filter11out,'.');
filter12out=conv(filter11out,filter12);subplot(1,2,2);stem(filter12out,'.'); for i=1:length(filter12out)-15 filter12outs(i)=filter12out(i+15); end figure;
shuchuxulie=panjue(filter12outs,TB,M); subplot(2,1,1); stem(sourc,'.'); subplot(2,1,2);
stem(shuchuxulie,'.');
[error4(a,:),prop]=erro(sourc,shuchuxulie,TB,M); yantu(shuchuxulie,2*TB); a=a+1; end;
产生结果:
图一为随机产生的双极性信源序列。
图二为升余弦滤波器时域及频域特性。
以上三图为相同随机序列(左)以及序列经过不同码元延拓后经过相同滤波器后产生的波形(右)。
以上三图分别为码元宽度分别为4、3、5时的最终判决序列和眼图。图中三种情况都看
不出码间串扰,我们分析是由于生成波形时宽度的设置较小,在较远的旁瓣就不再显示,但调整滤波器时域宽度为61时,效果也不是很明显。
4、传输1000个随机的二进制比特,比特速率Rb =1/Ts,信噪比分别取1dB、3dB、5dB
时,得到相应的恢复数字信息序列,基带系统分别为匹配滤波器形式和非匹配滤波器形式、 滚降系数分别为0.3、0.8,画出发送数字信息序列和接收数字信息序列的星座图,根据星 座图判断信息传输质量。讨论信噪比、匹配滤波器和滚降系数对系统信息传输质量的影响。 严格说,系统的传输质量(可靠性)应用误比特率来衡量,可以采用Monte Carlo 仿真实 现,在下面实验中进行。 所编程序如下: (1)子函数:
较其他题多余的子函数为星座图的子函数: function []=xingzuo(a) N=length(a) for i=1:N
b(i)=real(a(i)); c(i)=imag(a(i)); end
stem(b,c,'*'); title('星座图'); (2) 主函数: M=1000; Ts=4; T0=1; N=31;
[suijixulie,Eb]=subserial(M);
tuozhanxulie=sigexpand(suijixulie,Ts);%信源模块 b=1
for alpha=[0.3,0.8] %分图 figure;
f=(-2/Ts):(4/Ts)/(N-1):(2/Ts);%得到两种滤波器时域、频域波形 for i=1:N
upcosHk(i)=upcos(f(i),alpha,Ts); end
for i=1:(N+1)/2
temp(i)=upcosHk(i); end
for i=1:(N-1)/2
upcosHk(i)=upcosHk(i+(N+1)/2); end
for i=1:(N+1)/2
upcosHk(i+(N-1)/2)=temp(i); end
sqrtupcosHk=sqrt(abs(upcosHk)); h_n=idft(upcosHk,N); for i=1:(N+1)/2 temp(i)=h_n(i); end
for i=1:(N-1)/2
h_n(i)=h_n(i+(N+1)/2); end
for i=1:(N+1)/2
h_n(i+(N-1)/2)=temp(i); end
h_nsqr=idft(sqrtupcosHk,N); for i=1:(N+1)/2
temp(i)=h_nsqr(i); end
for i=1:(N-1)/2
h_nsqr(i)=h_nsqr(i+(N+1)/2); end
for i=1:(N+1)/2
h_nsqr(i+(N-1)/2)=temp(i); end
filter11=h_n;%两种滤波器时域波形 filter12=[1,zeros(1,N-1)]; filter21=h_nsqr; filter22=h_nsqr; a=1;
for SNRdb=[1,3,5] %分行
N0=Eb/(10^(SNRdb/10));
sigma=sqrt(N0/2);%计算sigma
subresult11=conv(tuozhanxulie,filter11);
subresult12=conv(tuozhanxulie,filter21);%经过发送滤波器 for i=1:length(subresult11)
[noise(i),]=gnguass(0,sigma);%生成噪声序列 end
subresult21=subresult11+noise;
subresult22=subresult12+noise;%叠加噪声 subresult31ss=conv(subresult21,filter12); subresult32ss=conv(subresult22,filter22);
for i=1:length(subresult32ss)-15
subresult31s(i)=subresult31ss(i+15); end
for i=1:length(subresult31ss)-30
subresult32s(i)=subresult32ss(i+30); end
[subresult31,xiaocongcong,sub1]=panjue(subresult31s,Ts,M); [subresult32,lz,sub2]=panjue(subresult32s,Ts,M);
[num_feipipei(b,a),prop_feipipei(b,a)]=erro(suijixulie,sub1,1,M); [num_pipei(b,a),prop_pipei(b,a)]=erro(suijixulie,sub2,1,M);
subplot(3,2,2*a-2+1);
xingzuo(real(subresult31));axis([-2 2 -1 1 ]);title('升余弦+直通') subplot(3,2,2*a-2+2);
xingzuo(real(subresult32));axis([-2 2 -1 1 ]);title('匹配滤波器') a=a+1 end b=b+1 end 结果:
图一为信源产生的双极性随机序列,点数1000点,此处为显示效果,显示前100点。
图二、三为经过接收滤波器后的星座图,其中图二α值为0.3,图三为0.8。在每副图中,左栏为升余弦加直通(方案一),右栏为匹配滤波器(方案二),从上到下信噪比分别为1、3、5db。 由图可见,
(1)信噪比不同其他条件相同情况下,信噪比越大,星座图越聚集,如下图:
1db
5db
(2)同等条件下,匹配滤波器产生信号的星座图比非匹配星座图集中
匹配
非匹配
(3)不同α值时,α越大星座图越集中。
α=0.3
α=0.8
星座图越集中,相应的,说明信号振幅波动小,信号稳定,便于判决,从而误码率低。 所以,图四的误码率证明了此推论。
如图,图四中显示图二、三中12种方案的误码率,可见匹配滤波器误码率低于同条件非匹配滤波器;每矩阵中第一行α=0.3,第二行α=0.8,第一、二、三列信噪比分别为1db、3db、5db,可证上述推论。
四、经验与收获
1、遇到的问题及解决的方法
(1)在实验一中,我们分别采用两种方案——时域描述升余弦特性在dft到频域和频域描述idft到时域。α分别取值0.1、0.5、1,但在方案一,当取值为1时,如图
第三行波形无法显示,查看workspace,如下图:
全为‘not a number’,将1换为0.999999时,问题解决,波形正常产生。
在方案一产生时域波形时,31点中第14、16、18点无法显示,于是我们在产生序列之后又对上述三点进行了单独赋值。程序如下: function [h]=upcoshn(Ts,alpha,N)
t=(-((N-1)/2)*Ts/2):(Ts/2):(((N-1)/2)*Ts/2) for i=1:N
h(i)=sin(pi*t(i)/Ts)/(pi*t(i)/Ts)*cos(alpha*pi*t(i)/Ts)/(1-4*alpha*alpha*t(i)*t(i)/(Ts*Ts)) end
for i=1:N;
if (t(i)==0) h(i)=1;
h(i-2)=0;h(i+2)=0; end end
(2)我们发现,在MATLAB中,序列下标默认为从一开始,这样,有下图中频域特性的滤波器
实际上,它成为一个带通滤波器,在时域波形上可以看出,震荡十分剧烈,高频分量并未被充分滤除,相应的,在此滤波器作用下,抽样判决及眼图效果极差。
因此,我们加上,一段程序,将带通滤波器转化成低通: for i=1:(N+1)/2
temp(i)=upcosHk(i); end
for i=1:(N-1)/2
upcosHk(i)=upcosHk(i+(N+1)/2); end
for i=1:(N+1)/2
upcosHk(i+(N-1)/2)=temp(i); end
频域特性与相应时域波形如上图
再经过接收滤波器时,可以比较两种情况的波形如下:
带通
低通
可见,低通的波形平缓,带通震荡剧烈,滤波器频移对产生波形的影响非常大。 同样,在时域波形上,我们也以类似方法进行了时移,使非因果序列变成因果序列。
(3)在序列求和运算中,灵活地运用矩阵相乘可以极大简化描述语句,减少使用单一变量的迭代,降低编程出错的风险,但运算时应注意矩阵的大小。
(4)在程序一、三、四中,我们大量用到“for [ , ,]…end”形式的循环,在其中可以将各种情况全部遍历,但是,程序中的原结果常常在循环中被新的结果覆盖,因此我们想到了二维数组,再循环中使用一个计数变量,数组的行数由其来控制,这样每循环一次增一,新结果被存到了下一行,这样所有结果都能保存下来,示例如下: for alpha=[0.1,0.5,1] for i=1:N
H(i)=upcos(f(i),alpha,Ts); end
H_k(a,:)=H; for i=1:N
upcosHk(i)=upcos(f(i),alpha,Ts); end
2、尚未解决的问题
(1)在验收时我们明白了平均码元能量计算不应对原序列而应针对经过发送滤波器的输出进行计算,但是,这样计算的噪声功率所对应的噪声在通过接受滤波器时功率会改变,因而信噪比不再符合要求,不知应该如何解决。
(2)在计算最佳抽样点时,由于卷积的时移作用,我们计算得: 升余弦时移16,升余弦平方根时移16,直通时移1。 所以第一个信号对应的抽样点应为:
非匹配:16+1-1=16 匹配:16+16-1=31
但实验中,我们发现最佳抽样点分别为15和30,在16和31处误码率大大上升 以3000点,信噪比为1为例 抽样点分别为30和15时:
抽样点分别为16和31处时:
误码率升高为原来的6倍。
(3)在编写程序过程中,我们计划调用inputdlg函数产生输入对话框,用来输入各种参数,但编程时发现,输入信息只能为字符串类型,0.5在存储不再以double类型而是以char类型存储成有三个元素的字符串,无法在程序中直接使用,还需进行格式转换,但我们发现,字符串转double型数据在实际操作中,尤其是对含小数点的数据进行操作时,是非常难实现的。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务