山东大学通信原理软件实验——数字基带传输系统设计与性能研究

本文为山东大学通信原理实验软件实验部分实验一的实验报告(2023年),因本人能力有限,仅供参考。
实验一、二完整版代码文件以及实验报告已上传至CSDN,感兴趣可以下载->山东大学通信原理实验软件部分-实验报告+代码-MATLAB-数字基带传输系统设计与性能研究-MPSK 通信系统的设计与性能研究


一、实验原理

1.1数字基带传输系统框图

图1-1 基带传输系统的基本结构
•发送滤波器或信道信号形成器:产生适合信道传输的基带信号。
•带限信道:传输信号的通道。
•噪声:一种不必要的信号,会干扰原始信号,我们主要考虑功率谱在整个频域内是常数的白噪声。
•接收滤波器:限制信号频带外噪声进入到接收系统中,对信道特性均衡,使得输出的波形利于进行抽样判决。
•抽样判决器:在传输特性不理想及噪声背景下,在规定时刻(同步提取)对接收滤波器的输出信号进行抽样判决,以恢复基带信号。

1.2数字基带传输系统传输过程分析

1)输入二进制符号序列: { a l } \{a_l\} {al}
2)输入信号:
d ( n t ) = ∑ l = − ∞ + ∞ a l   δ ( n T − l A T ) d(nt)=\sum_{l=-\infty}^{+\infty}a_l\:\delta(nT-lAT) d(nt)=l=+alδ(nTlAT)

对连续域进行抽样,抽样周期为 T,抽样点数为 A。其中, T b = A T T_b=AT Tb=AT,为比特周期,一个比特周期发送一个脉冲信号。
3)发送滤波器或信道信号形成器:
由时域的周期性和离散性对应频率的离散型和周期性,设发送滤波器的单位冲激响应为 g T ( n T ) g_T(nT) gT(nT),频率响应抽样值为 G T ( k Δ f ) G_T(k\Delta f) GT(kΔf),则有:
g T ( n t ) = 1 N ∑ k = 0 N − 1 G T ( k Δ f ) e j 2 Π N K n g_T(nt)=\frac1N\sum_{k=0}^{N-1}G_T(k\Delta f)e^{j\frac{2\Pi}NKn} gT(nt)=N1k=0N1GT(kΔf)ejNKn

4)发送滤波器输出信号:
v ( n T ) = d ( n T ) ∗ g T ( n T ) = ∑ l = − ∞ + ∞ a l   δ ( n T − l A T ) ∗ g T ( n T ) v(nT)=d(nT)*g_T(nT)=\sum_{l=-\infty}^{+\infty}a_l\:\delta(nT-lAT)*g_T(nT) v(nT)=d(nT)gT(nT)=l=+alδ(nTlAT)gT(nT) = ∑ l = − ∞ + ∞ a l g T ( n T − l A T ) =\sum_{l=-\infty}^{+\infty}a_lg_T(nT-lAT) =l=+algT(nTlAT)

5)带限信道:
传输信号的通道。时域表示为 c ( t ) c(t) c(t),频域表示为 C ( f ) C(f) C(f),理想情况下 C ( f ) = 1 C(f)=1 C(f)=1
信道输出信号:
y ( n T ) = v ( n T ) + n ( n T ) y(nT)=v(nT)+n(nT) y(nT)=v(nT)+n(nT)

其中, n ( t ) n(t) n(t) 为高斯白噪声信号(AWGN),其双边功率谱密度为 N 0 / 2 N_0/2 N0/2(W/Hz)。

6)接收滤波器:
滤波器的单位冲激响应为 g R ( n T ) g_R(nT) gR(nT),频率响应抽样值为 G R ( Δ f ) G_R(\Delta f) GR(Δf),有:
g R ( n t ) = 1 N ∑ k = 0 N − 1 G R ( k Δ f ) e j 2 Π N K n g_R(nt)=\frac1N\sum_{k=0}^{N-1}G_R(k\Delta f)e^{j\frac{2\Pi}NKn} gR(nt)=N1k=0N1GR(kΔf)ejNKn

7)接收滤波器的输出信号:
r ( n T ) = y ( n T ) ∗ g R ( n T ) = v ( n T ) ∗ g R ( n T ) + n ( n T ) ∗ g R ( n T ) r(nT)=y(nT)*g_R(nT)=v(nT)*g_R(nT)+n(nT)*g_R(nT) r(nT)=y(nT)gR(nT)=v(nT)gR(nT)+n(nT)gR(nT)
= ∑ l = − ∞ + ∞ a l   h ( n T − l A T ) + n R ( n T ) =\sum_{l=-\infty}^{+\infty}a_l\:h(nT-lAT)+n_R(nT) =l=+alh(nTlAT)+nR(nT)

其中, h ( n T ) = g T ( n T ) ∗ c ( n T ) ∗ g R ( n T ) h(nT)=g_T(nT)*c(nT)*g_R(nT) h(nT)=gT(nT)c(nT)gR(nT) n R ( n T ) = n ( n T ) ∗ g R ( n T ) n_R(nT)=n(nT)*g_R(nT) nR(nT)=n(nT)gR(nT)。为获得信息 { a r } \{a_r\} {ar},需对 y(nT) 进行抽样,发送滤波器和接收滤波器带来的延时为 n 0 T n_0T n0T ,则理想抽样时刻为: r A T + n 0 T rAT+n_0T rAT+n0T,有:
y ( r A T + n 0 T ) = ∑ l = − ∞ + ∞ a l   h ( r A T + n 0 T   − l A T ) + n R ( r A T + n 0 T ) y(rAT+n_0T)=\sum_{l=-\infty}^{+\infty}a_l\:h(rAT+n_0T\:-lAT)+n_R(rAT+n_0T) y(rAT+n0T)=l=+alh(rAT+n0TlAT)+nR(rAT+n0T)
= h ( n 0 T ) a r   + ∑ l = − ∞ l ≠ r + ∞ a l   h ( r A T + n 0 T   − l A T ) + n R ( r A T + n 0 T ) =h(n_0T)a_r\:+\sum_{l=-\infty\atop l\neq r}^{+\infty}a_l\:h(rAT+n_0T\:-lAT)+n_R(rAT+n_0T) =h(n0T)ar+l=rl=+alh(rAT+n0TlAT)+nR(rAT+n0T)

上式中 h ( n 0 T ) a r h(n_0T)a_r h(n0T)ar 为有用信号; ∑ l = − ∞ l = + ∞ a l h ( r A T + n 0 T \sum_{l=-\infty}^{l=+\infty}a_lh(rAT+n_0T l=l=+alh(rAT+n0T- l A T ) lAT) lAT) l A T + lAT+ lAT+ n 0 T n_0T n0T 时刻抽样影响,即码间串扰(ISI),此项为 0 时系统为为无码间干扰系统, 此系统可以通过选择合适的发射和接收滤波器实现。 n R ( r A T + n 0 T ) n_R(rAT+n_0T) nR(rAT+n0T) 为 AWGN 中加性噪声影响。
8)判决信号:{a l ′ } _{\mathrm{l}}^{\prime}\} l}
9)结果检验或系统评估:
误比特率:
P e = 接收信号的错误码元数 传送总的码元数 P_e=\frac{\text{接收信号的错误码元数}}{\text{传送总的码元数}} Pe=传送总的码元数接收信号的错误码元数

眼图:由于萤光暂留效应,每一个码元的波形重叠在一起,从而形成眼图。眼图包含了丰富的信息,从眼图上可以观察出码间串扰和噪声的影响,体现了数字信号整体的特征,从而估计系统优劣程度。
眼图的“眼睛”张开的大小反映着码间串扰的强弱。“眼睛”张的越大,
且眼图越端正,表示码间串扰越小;反之表示码间串扰越大。
图1-2 眼图含义说明
星座图:描述信号矢量端点的分布图。星座图对于判断调制方式的误码率等有很直观的效用。
因为已经调制的带通数字信号 s(t) 包含 sin 与 cos 两个相互正交的部分,因此 s(t) 也可分为两个相互正交的部分,分别称为同相分量(In-phase component)和正交分量(Quadrature component)。星座图上的点道横纵坐标的投影即为 I 和 Q 分量。

1.3升余弦滚降型滤波器

1)升余弦滚降型滤波器的单位冲激响应:
h ( t ) = s i n π ∗ t / T c π t / T c ⋅ c o s a π t / T c 1 − 4 a 2 ∗ t 2 / T c 2 h(t)=\frac{sin\pi*t/T_c}{\pi t/T_c}\cdot\frac{cosa\pi t/T_c}{1-4a^2*t^2/T_c^2} h(t)=πt/Tcsinπt/Tc14a2t2/Tc2cost/Tc
2)升余弦滚降型滤波器频率响应:
H(f) { T c , ∣ f ∣ ≤ 1 − α 2 T c = T c 2 ∗ [ 1 + cos ⁡ π T c α ( ∣ f ∣ − 1 − α 2 T c )   ] , 1 − α 2 T c ≤ ∣ f ∣ ≤ 1 + α 2 T c 0 , ∣ f ∣ ≥ 1 + α 2 T c \text{H(f)}\begin{cases}T_c\quad,\quad|\text{f}|\leq\dfrac{1-\alpha}{2T_c}\\=\dfrac{T_c}{2}*\left[1+\cos\dfrac{\pi T_c}{\alpha}\Big(|f|-\dfrac{1-\alpha}{2T_c}\Big)\:\right]\quad,\quad\dfrac{1-\alpha}{2T_c}\leq|\text{f}|\leq\dfrac{1+\alpha}{2T_c}\\0\quad,\quad|\text{f}|\geq\dfrac{1+\alpha}{2T_c}\end{cases}\text{} H(f) Tc,f2Tc1α=2Tc[1+cosαπTc(f2Tc1α)],2Tc1αf2Tc1+α0,f2Tc1+α
其中 α 是滚降因子,0<α<1 , T c T_c Tc 为表征升余弦滤波器的频率响应的常数。

3)升余弦滚降型滤波器的本质:
升余弦滚降型滤波器本质上是低通滤波器,改变滚降因子会对滤波器的幅度产生影响。

4)升余弦滚降型滤波器的作用:
升余弦信号可以用来消除码间串扰。系统无码间干扰传输的最小符号间隔为 T c T_c Tc ,也即最大符号速率为 R m a x = 1 T c R_{max}=\frac1{T_c} Rmax=Tc1 。另外,其他满足无码间干扰的条件是符号间隔为 n T c , n = 1 , 2 , 3...... nT_c,n=1,2,3...... nTc,n=1,2,3......,也即系统传输符号速率为 R m a x = R_{max}= Rmax= 1 n T c \frac 1{nT_c} nTc1, n = 1 , 2 , 3...... n= 1, 2, 3. . . . . . n=1,2,3......

1.4最佳基带系统

1)最佳基带系统的定义:
基带系统能够在有噪声的信道中以最小的差错概率传送信息的系统,即消除码间干扰而抗噪声性能最理想的系统。
2)实现方式:
因为最佳基带系统的总特性是确定的,故最佳基带系统的设计归结为发送滤波器和接收滤波器特性的选择。在实现时有两种形式:
1.采用匹配滤波器来实现,发送和接收滤波器都是升余弦滚降型平方根滤波器。即发送滤波器与接收滤波器满足下式来实现。
∣ G T ( f ) ∣ = ∣ G R ( f ) ∣ = H ( f ) 2 |G_T(f)|=|G_R(f)|=\sqrt[2]{H(f)} GT(f)=GR(f)=2H(f)

2.采用非匹配滤波器来实现,发送滤波器是升余弦滚降型滤波器,接收滤波器是直通滤波器。在本次实验中,我们采取非匹配滤波器的方法。

1.5窗函数设计法得到 FIR 数字滤波器

上面我们已经得到了所需的滤波器的单位冲激响应和频率响应,要得到实验所需的对应的数字滤波器,我们选用窗函数法。
1)基本原理
由模拟滤波器的单位冲激响应进行抽样一>截短一>向右移位一>加窗,得
到实际的因果的数字滤波器的单位冲激响应,表示为:
h ( n T ) = h d ( t ) ∣ t = n T ⋅ w ( n )   ( 0 ≤ n ≤ N − 1 ) \mathrm h(\mathrm n\mathrm T)=\mathrm h_\mathrm d(\mathrm t)|_{\mathrm t=\mathrm n\mathrm T}\cdot\mathrm w(\mathrm n)\:(0\leq\mathrm n\leq\mathrm N-1) h(nT)=hd(t)t=nTw(n)(0nN1)

窗函数的长度与 FIR 滤波器的长度 N 相等。其中 w(n) 为 Blackman 窗:
w ( n ) = 0.42 − 0.5 cos ⁡ 2 π ( n − 1 ) N − 1 + 0.08 cos ⁡ 4 π ( n − 1 ) N − 1 \begin{array}{rl}\mathrm{w(n)}&=0.42-0.5\cos\frac{2\pi(n-1)}{N-1}+ 0.08\cos\frac{4\pi(n-1)}{N-1}\end{array} w(n)=0.420.5cosN12π(n1)+0.08cosN14π(n1)

2)抽样间隔确定
为实现过程中调整参数方便,设信号一个比特周期内的抽样点数为 A,A ≥ \geq 2 。将时间抽样间隔 T 归一化为 1,即抽样频率 f s = 1 f_s=1 fs=1。而 T c = 4 T_c=4 Tc=4。如 A=4 ,则比特周期 T b = A T = 4 T T_{b}=AT=4T Tb=AT=4T。改变 A 的取值可以改变系统传输时的信息传输速率。

3)系统因果性
为了得到因果的滤波器,将有限长的非因果的单位冲激响应波形向右移位
τ = N − 1 2 。 \tau=\frac{\mathrm{N-1}}{2}。 τ=2N1

4)特殊情况
由于滤波器的单位冲激响应会出现分母为 0 的特殊情况,而这一情况在
MATLAB 编程中是不被允许的。因此我们需要对这些特殊情况进行处理。
1.第一种分母为 0 的情况为 n=0 时。此时对应滤波器的冲激响应取最大值,
我们直接给其幅值 1。
2.第一种分母为0 的情况为 1 − 4 α 2 n 2 T c 2 = 0 1-\frac{4\alpha^{2}\mathrm{n}^{2}}{\mathrm{T}_{\mathrm{c}}^{2}}=0 1Tc24α2n2=0 时。此时冲激响应可近似为: h ( n ) = s i n π n / T c π n / T c h(n)= \frac {sin\pi n/ T_c}{\pi n/ T_c} h(n)=πn/Tcsinπn/Tc .


二、系统主函数

2.1系统实现框图

图2-1 代码流程图

2.2主程序代码

function main()
    L=input('请输入输入的传输的二进制比特数:');
    Tb=input('请输入比特周期:');
    N=31;%滤波器长度
    T=1;%抽样周期
    A=Tb/T;%一个比特周期抽样点数
    a=0.33;%滚降系数
    al=GenerateSourseSequence(L);
    x=0:1:L-1;
    figure
        stem(x,al,MarkerSize=4);    
axis([-1 L -1.2 1.2])  
        title('信源双极性二进制');
        xlabel('n')  
        ylabel('幅度')
    send=GenerateSendSequence(al,L,A);
    x=0:1:size(send,2)-1;
    figure
        stem(x,send,MarkerSize=4);    
axis([-1 size(send,2) -1.2 1.2])
        title('发送信号');
xlabel('n')  
        ylabel('幅度')
 raised_cosine_filter(a,N);
 fid=fopen('sendfilter.txt','r');           
%将滤波器的单位冲激响应的有关参数存入文件
    hn=fread(fid,'double');               
%写入数据
    fclose(fid);
  sendout=SendFilter_out(hn,send,L,A,N);
    receive=ReciveFilter_in(sendout);
    EyeDiagram(receive,A);
    out=SampleJudge(receive,A,L);
    x=0:1:L-1;
    figure
        stem(x,out,MarkerSize=4);    axis([-1 L -1.2 1.2])
        title('判决后的二进制序列');
        xlabel('n')  
        ylabel('幅度')
end

【思路】
从键盘输入要传输的二进制比特数 L,比特周期 Tb。然后将子函数按顺序调用,自动完成从生成二进制信源序列抽样和判决接受序列并绘制眼图的功能。
主函数中绘制了三幅stem图,分别是随机生成的信源二进制序列的图象、发送的二进制序列的图像以及经过判决后恢复的二进制图像。
【功能验证】
点击运行后,可以在命令行窗口按提示输入实验所需的数值,如图所示。此处以要传输的二进制比特数 L=100,比特周期 Tb=4为例。
图2-2 主函数功能验证
输入后经运行,主函数直接绘制得到的图像如下图所示。经验证,主函数完成了设计功能。
图2-3 信源双极性二进制
图2-4 发送信号
图2-5 判决后的二进制序列


三、子函数实现

3.1信源序列产生子函数(GenerateSourseSequence)

% 产生双极性二进制序列
function[al]=GenerateSourseSequence(L)
    %L=50;
    b=rand(1,L);%产生一行L列的随机序列,其值都在0-1内
    al=zeros(1,L);%产生一行L列的零序列
    for i=1:L   
        if b(i)<0.5 
            al(i)=-1;   
        else  
            al(i)=1;
        end
    end
end

1)编程思路:调用rand函数生成一行L列的随机序列,其值都在0-1内。
对产生的随机序列进行判断,大于0.5判为1,小于0.5判为-1,生成随机的长为L的双极性二进制信源序列。
2)输入:要产生的序列的长度 L
3)输出:双极性二进制信源序列 al
4)功能验证:在函数内赋值L为50,并画出al的stem图像,如下图所示。经验证,函数完成了设计功能。
图3-1 L=50的双极性二进制序列

3.2发送序列产生子函数(GenerateSendSequence)

% 产生发送序列
function[d]=GenerateSendSequence(al,L,A)
    d=zeros(1,A*L);
    for i=1:L
        d((i-1)*A+1)=al(i);
    end
end

1)编程思路:为了形成脉冲周期,需要在各个信源序列之间插入A个零点,A为一个比特周期的抽样点数。
2)输入:信源序列长度L、信源序列al、抽样点数A。
3)输出:发送序列d
4)功能验证:输入上个函数生成的al,画出d的stem图像,如下图所示。经验证,函数完成了设计功能。
图3-2 发送序列

3.3升余弦滚降滤波器子函数(raised_cosine_filter)

function [hn,hw]=raised_cosine_filter(a,N)
    T=1;Tc=4;n=-(N-1)/2:1:(N-1)/2;
    t=T*n;%滤波器实际的时间间隔
 hn=zeros(1,N);hn1=zeros(1,N);wn=zeros(1,N);
for i=1:N
    if i==(N+1)/2 %分母为零的情况之n=0
            hn1(i)=1;
        elseif 1-4*a*a*t(i)*t(i)/(Tc*Tc)<eps
        hn1(i)=sin(pi*t(i)/Tc)/(pi*t(i))/Tc;
        else    hn1(i)=(sin(pi*t(i)/Tc)/(pi*t(i)/Tc))*(cos(a*pi*t(i)/Tc)/(1-(4*a*a*t(i)*t(i)/(Tc*Tc))));
        end  wn(i)=0.42-0.5*cos(2*pi*(i-1)/(N-1))+0.08*cos(4*pi*(i-1)/(N-1));
        hn(i)=hn1(i)*wn(i);
    end
    x=0:1:N-1;
    figure
        stem(x,hn,MarkerSize=4);    axis([-1 N -0.2 1])
        xlabel('n') 
        str1='$$ h(nT)=h_{d} (t)| _{t=nT}\cdot  w(n) $$';
        ylabel(str1,'Interpreter','latex') 
        title('滤波器单位冲激响应'); 
 [ymax, indexmax] = max(hn);   % 寻找对称点
    xmax = x(indexmax);
    strmax = ['对称点:',num2str(ymax),'\rightarrow'];
    text(xmax, ymax, strmax,'HorizontalAlignment','right');
    disp('对称点:')
disp(xmax)
    indexzero1 = find(hn<3e-17);  % 对称点最近的2个过零点
indexzero2 = find(hn>1e-17);
all=intersect(indexzero1,indexzero2);
	xzero = x(all);
    yzero = hn(all);
    all=all-1;
    disp('最近的过零点处:')
    disp(all)
    text(xzero, yzero, '\leftarrow 最近过零点');
    hw=zeros(1,101);
    w=0:0.01*pi:pi;
    for m=1:1:101%滤波器频域响应
        for n=1:1:N
      xw=hn(n)*exp(-1i*w(m)*(n-1));
            hw(m)=xw+hw(m);
        end
        fw=abs(hw)./max(abs(hw));    end
    figure
        plot(fw);    
        title('滤波器频域归一化幅值'); 
        xlabel('m')
        str2='$$ A(m)=\frac{\left | H(m) \right | }{\left | max(H(m)) \right | } $$';
        ylabel(str2,'Interpreter','latex') 
        axis([0 102 0 1])
    hn = real(hn);
  fid=fopen('sendfilter.txt','w');%将滤波器的单位冲激响应的有关参数存入文件
  fwrite(fid,hn,'double');        %写入数据
    fclose(fid);
end

1)编程思路:根据升余弦滚降滤波器的冲激响应进行设计。程序首先根据模拟升余弦滚降滤波器的冲激响应,使用时域抽样法将模拟滤波器转变为数字滤波器,接着讨论两种滤波器分母为零的特殊情况,并作出相应处理,再对数字滤波器进行加窗处理,最后用for循环来实现时域到频域的映射。函数将输出的 hn写入sendfilter.txt 文件中,以便于后续的调用。
函数还会画出生成的数字滤波器的单位冲激响应以及滤波器频域响应的归一化幅值。在画出单位冲激响应同时,程序还会自动找到冲激响应的对称点以及距对称点最近的两个过零点,并同时在图像中指示和命令行窗口中输出。为了得到滤波器的频域响应,会先对输出的滤波器的冲激响应做 DTFT变换。
2)输入:升余弦滚降滤波器的滚降系数 a;滤波器的长度 N。
3)输出:数字升余弦滚降滤波器 hn。
4)功能验证:给定滤波器的长度 N = 31,滚降系数为 0.33,运行函数,得到如下图所示的 sendfilter.txt 文件以及滤波器的单位冲激响应以及滤波器频域响应的归一化幅值图像。
经验证,函数完成了设计功能。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4发送滤波器输出信号生成子函数(SendFilter_out)

% 信号通过发送滤波器
function[x]=SendFilter_out(hn,send,L,A,N)
    x=conv(send,hn);%卷积计算 
    x=x((N+1)/2:A*L+(N+1)/2-1);%减去卷积新增的N-1点,在头和尾
    figure
        n=(N-1)/2:1:size(send,2)-1+(N-1)/2;
        stem(n,x,MarkerSize=4);    
        title('发送信号'); 
	        xlabel('nT')
        str='$$ x(nT)=h_{d} (nT)\ast d(nT) $$';
        ylabel(str,'Interpreter','latex') 
        axis([14 size(send,2)+(N-1)/2 -1.4 1.4])
end

1)编程思路:输入信号与生成的发送滤波器用conv实现卷积,接着减去卷积后在序列头部和尾部多产生的N-1点延时,生成发送滤波器输出的信号。
函数还会画出发送滤波器输出的信号的图像。
2)输入:发送滤波器 hn;发送信号 send;发送信号长度 L;滤波器的长度 N; 抽样点数 A。
3)输出:发送滤波器输出信号 x。
4)功能验证:给定发送信号长度 L 为50,抽样点数 A 为4。发送信号以及发送滤波器由前面介绍的函数生成。运行函数,得到对应图3-2所示的发送信号的发送滤波器输出的信号如下图。
经验证,函数完成了设计功能。
在这里插入图片描述

3.5接收滤波器输出信号生成子函数(ReciveFilter_in)

% 接收滤波器 
function[y]=ReciveFilter_in(x)
    y=x;%直通滤波器
end

1)编程思路:根据实验要求,接收滤波器为理想的直通滤波器。此处直接让接收滤波器输出信号与输入信号相等。
2)输入:发送滤波器输出信号 x。3)输出:接收滤波器输出信号 y。

3.6抽样和判决子函数(SampleJudge)

function[out]=SampleJudge(r,A,L)
    p=zeros(1,L);
    for i=1:L
        p(i)=r(A*(i-1)+1); % 以等间隔A对输出信号进行抽样
    end
    out=zeros(1,L);
    for i=1:L % 判决
        if p(i)<0
            out(i)=-1;
        else
            out(i)=1;
        end

1)编程思路:首先对接收滤波器输出信号进行抽样。同插零的思路,反过来根据比特周期 A 等间隔的对输出信号进行抽样得到抽样信号,接着对得到的抽样信号进行判决,大于 0 的判为 1,小于 0 的判为 -1。得到恢复的二进制信号。
2)输入:接收滤波器输出信号 r;抽样点数 A;发送信号长度 L。
3)输出:恢复的二进制序列 out。
4)功能验证:将前面函数运行得到的数据送入函数。得到对应图3-1所示的信源二进制信号的判决后的输出信号如下图。
经验证,函数完成了设计功能。
在这里插入图片描述

3.7眼图绘制子函数(EyeDiagram)

% 绘制眼图 并平滑
function[]=EyeDiagram(r,A)
e=0;
Xq=0:0.001:(4*A+1);
x=0:(A*4);
if A==3
    s=1.8;
else
    s=1.4;
end
for i = 1 : A : (size(r,2)-A*4)/A
e= r((i - 1) * A + 1 : ((i + 3) * A)+1);   
% 截断
   	       Vq = interp1(x,e,Xq,'v5cubic');  % 插值平滑
    plot(x,e,Xq,Vq);
    axis([0 (A*4) -s s])  
    title('眼图');
    xlabel('n')  
    ylabel('幅度')
    hold on
end
hold off
end

1)编程思路:通过 for 循环实现将信号序列截断,使用 plot 绘制图像,同时再循环中加入 hold on实现图像叠加的效果,就可以输出眼图。另外经过对比linspace、smooth、polyfit、polyval、interp1 等可以平滑曲线的函数,最终选择了效果最好的、使用 interp1 函数对图像进行插值平滑的方案,其中函数的插值方式使用 v5cubic。
2)输入:接收滤波器输出信号 r;抽样点数 A。
3)输出:绘制平滑后的眼图。
4)功能验证:使用前面函数运行得到的数据,将信源二进制序列长度提升至1000点,设定比特周期为4。送入函数。得到对应的眼图如下。
经验证,函数完成了设计功能。
在这里插入图片描述


四、性能分析

4.1升余弦滤波器性能研究:

1)时域特性研究
当滤波器长度(N)一定时:研究滚降系数(α)对升余弦滤波器时域特性的影响:
在这里插入图片描述

当滚降系数一定时:研究滤波器长度对升余弦滤波器时域特性的影响(α=0.33):
在这里插入图片描述
实验结论:
滚降系数(α)对于升余弦滤波器时域的影响:由表5.1.1中图像可以得出,当滤波器长度一定时,随着滚降系数的增大,滤波器的幅度、对称性没有相关变化,滤波器的形状变得方正,通带带宽减小。
滤波器长度(N)对于升余弦滤波器时域的影响:由表5.1.2中图像可以看出,当滤波器的滚降系数一定时,随着滤波器长度N的增加,滤波器的幅度,过零点,形状没有变化,对称点随着滤波器长度变化而变化。

2)频域特性研究
当滤波器的长度一定时:研究滚降系数对于升余弦滤波器频域特性的影响:
在这里插入图片描述

当滚降系数一定时:研究滤波器长度对升余弦滤波器频域特性的影响:
在这里插入图片描述

实验结论:
滚降系数(a)对于升余弦滤波器频域的影响:从表2.1.3中数据可以看出,当滤波器长度一定时,随着滚降系数的不断增加,第一零点带宽不断增大,阻带最小衰减不断减小。
滤波器长度(N)对于升余弦滤波器频域的影响:从表2.1.4中数据可以看出,当滤波器的滚降系数一定时,在允许的变化范围内,随着滤波器长度的不断增加,第一零点带宽不变,阻带最小衰减也不变,说明滤波器的长度的变化对于滤波器的零点带宽和阻带衰减没有影响。

4.2无噪声下的二进制数字基带传输系统性能研究

假设加性噪声个存在,基带系统采用非匹配滤波器,给定发送源波器的长度为 N=31,滚降系数为 0.33,传输一定数目的二进制比特,改变系统的比特速率(基带系统参数 T = 1 s T= 1s T=1s f s = 1 H z , T c = 4 f_s= 1Hz, T_c= 4 fs=1HzTc=4),从理论和实现两个方面来判断是否存在码间干扰。
1)当 R b = 1 T c R_b=\frac1{T_c} Rb=Tc1 ,比特间隔为 T b = 4 T T_b=4T Tb=4T 时,从理论方面推导是否存在码间干扰,给出分析过程。利用搭建的二进制数字基带传输系统,设计测试方案,给出充分的证据和可靠的数据,验证理论的结论。
2)当比特间隔分别为时 T b = 3 T T_{b}= 3T Tb=3T T b = 5 T T_{b}= 5T Tb=5T T b = 8 T T_{b}= 8T Tb=8T 时,从理论方面推导是否存在码间干扰,给出分析过程。利用搭建的二进制数字基带传输系统,设计测试方案,给出充分的证据和可靠的数据,验证理论的结论。
理论分析:由实验原理部分可知,要实现无码间干扰,应满足奈奎斯特第一定律。我们采用升余弦滤波器,频域满足:
∑ i H [ ω + 2 π i T c ] = T c , ∣ ω ∣ ≤ π T c \sum_i\text{H}\left[\omega+\frac{2\pi i}{T_c}\right]=T_c,|\omega|\leq\frac\pi{T_c} iH[ω+Tc2πi]=Tc,ωTcπ

系统的冲激响应为:
h ( nT ) = { 1 ,n = 0 0 ,n ≠ 0 h(\text{nT})=\begin{cases}1&\quad\text{,n}=0\\\\0&\quad\text{,n}\neq0\end{cases} h(nT)= 10,n=0,n=0

频域特性在 ( − 1 2 T c , 1 2 T c ) \left(-\frac1{2T_c},\frac1{2T_c}\right) (2Tc1,2Tc1) 范围内可以叠加为一条直线。即系统无码间干扰的最大码元速率为 R b m a x = 1 T c R_{bmax}=\frac1{T_c} Rbmax=Tc1,当传输码元速率为最大码元速率的整数倍时可实现无码间干扰。因此, T b = 4 T T_b=4T Tb=4T、8 T T T 时无码间干扰,而 T b = 3 T T_b=3T Tb=3T、5 T T T 时系统存在码间干扰。

实验验证:首先验证系统的正确性。
在系统无码间干扰和系统无噪声条件下,给定一个确定长度的信源二进制序列,使接收端恢复的二进制序列与发送信源一致。设置 T b = 4 T T_{b}=4T Tb=4T,信源二进制序列长度为 50。系统运行结果如表 5.2.1 所示,可知系统恢复得到的二进制序列与信源二进制序列一致,系统运行正确。
分别在 T b = 4 T T_{b}=4T Tb=4T、3 T T T、5 T T T、8 T T T 时使用 MATLAB 搭建的无噪声数字基带传输系统传输 1000 点数据,设置发送滤波器的长度为 N=31,滚降系数为0.33, 画出眼图。通过实验结果来验证是否存在码间干扰。系统运行结果如表 5.2.2 所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由不同比特间隔对应的眼图可以看出, T b = 4 T T_b=4T Tb=4T、8 T T T 时眼图的“眼睛”非常端正,无闭合现象,也即无码间干扰;而 T b = 3 T T_b=3T Tb=3T、5 T T T 时眼图的“眼睛”存在着“干扰”,有闭合现象,“眼睛”变小,也即系统存在码间干扰。


五、实验思考题

1) 画出基带传输系统的框图,说明各个模块的功能作用。
在这里插入图片描述
•发送滤波器或信道信号形成器:产生适合信道传输的基带信号。
•带限信道:传输信号的通道。
•噪声:一种不必要的信号,会干扰原始信号,我们主要考虑功率谱在整个频域内是常数的白噪声。
•接收滤波器:限制信号频带外噪声进入到接受系统中,对信道特性均衡,使得输出的波形利于进行抽样判决。
•抽样判决器:在传输特性不理想及噪声背景下,在规定时刻(同步提取得)对接收滤波器的输出信号进行抽样判决,以恢复基带信号。

2) 基带传输系统中的“匹配滤滤波器”方式和“非匹配滤波器”方式有什么区别?两种方式下,发送滤波器输出信号、接收滤波器输出信号有何相同和不同之处?
匹配滤波器的特点是与接收端的滤波器相互匹配,如果信号 s(t) 受到加性高斯白噪声的破坏,则脉冲响应与 s(t) 相匹配的滤波器可以使输出信噪比最大。因此匹配滤波器在发送端和接收端都具有相似的频率响应,以便最大化信号传输的效率。对于本实验的基带传输系统来说就是发送和接收滤波器均采用根升余弦滚降型滤波器。当然,本实验没有考虑信道中噪声的影响,所以也可以采用非匹配滤波器。
非匹配滤波器的特点是与接收端的滤波器不匹配,对于本实验的基带传输系统来说可以是发送滤波器为升余弦滚降滤波器,接收滤波器为全通滤波器,本实验就是采用了这种方法。
两种方式下发送滤波器与接收滤波器输出信号的相同点:发送滤波器输出信号和接收滤波器输出信号都是经过滤波器处理后的信号,在通信系统中实现了信号的发送与信号的接收。
两种方式下发送滤波器与接收滤波器输出信号的不同点:匹配滤波器中的发送滤波器可以塑造发送信号的频谱特性,以使其适应信道传输,并尽量减小信号与噪声之间的干扰。同时,接收滤波器的频率响应与发送滤波器的频率响应匹配,使得其与发送信号的相关性最大化,使接收信号的信噪比最大。非匹配滤波器无频率响应匹配的效果。

3) 什么是伪随机序列?伪随机序列的特点是什么?在通信系统中的作用是什么?
伪随机序列是指具有类似随机序列基本特征的确定序列。是一种看似随机,实际根据算法生成的确定性序列。
伪随机序列的特点:
1.序列中“0”和“1”出现的概率都是 1/2;
2.游程特性,即长度为n的游程数占游程总数的 1/ 2 n 2^n 2n;
3.长周期性:伪随机序列的周期很长,这使得了伪随机序列可被长时间使用,在长时间的通信过程中能够提供稳定的性能。
4.重复性:伪随机序列在相同的初始条件和算法下可以被重复生成。因此在通信系统中能够实现发送端和接收端对序列的同步,确保正确地解调和恢复信息。
伪随机序列在通信系统中的作用:
1.数据加扰:在数字通信系统中,为了避免传输数据中的长连续零或零频段,可以通过将原始数据与伪随机序列进行异或操作,改变数据的统计特性,使其更均匀分布,提高信号的可靠性和抗干扰性。
2. 扩频通信:伪随机序列被用作扩频码(Spreading Code),通过与原始信号进行乘法运算,实现信号的扩频。
3. 序列识别与同步:在接收端,使用同样的伪随机序列与接收到的信号进行相关运算,可以在时间域上找到与发送端匹配的序列,从而实现接收信号的精确同步和定时。
4. 密码生成与加密:通过在发送端和接收端使用相同的伪随机序列,并将其作为密钥或种子,可以生成相同的伪随机序列,用于加密和解密通信数据。
5.信道估计:通过将伪随机序列插入到发送信号中,在接收端观察到的信号中提取出插入的序列来完成信道估计。

4) 当长度为 L 的序列经过长度为 N 的滤波器后,滤波器的长度 N 为奇数,序列的长度变为 N+L-1,那么如何使序列回复成原来的序列?
减去卷积后在序列头部和尾部多产生的N-1点延时,生成发送滤波器输出的信号。

5) 什么是无码间干扰的基带系统?其传输函数和单位冲激响应有何特点?
无码间干扰的基带系统是指基带信号经过传输之后在抽样点上无码间干扰,即传输函数满足理想低通特性,单位冲激响应的瞬时抽样值为常数且尾部衰减很快。
要实现大码间干扰,传输函数应满足奈奎斯特第一定律。

6) 什么是码间干扰?如何从理论上分析本实验中是否存在码间干扰?
码间干扰是由于带限信道对通过的的脉冲波形进行拓展,而当信道带宽接近于信号的带宽时,拓展将会超过一个码元周期,造成信号脉冲的重叠。从理论上对码间干扰是否存在的分析已在报告性能分析5.2部分完成,此处不再赘述。

7) 如何理解眼图的产生并设计生成眼图的子函数?
眼图是由于荧光暂留效应,一系列的数字信号在示波器上积累并显示的过程。
通过 for 循环实现将信号序列截断,使用 plot 绘制图像,同时再循环中加入 hold on实现图像叠加的效果,就可以输出眼图。

8) 如何从眼图中观察码间干扰的情况?
眼图的 “眼睛” 张开的大小反映着码间串扰的强弱。 “眼睛”张的越大,且眼图越端正,表示码间串扰越小;反之表示码间串扰越大。其次可以观察眼图抖动情况,眼图边界的不稳定性或波动能在一定程度上反映码间干扰的情况。


正文完,实验总结部分在文件:山东大学通信原理实验软件部分-实验报告+代码-MATLAB-数字基带传输系统设计与性能研究-MPSK 通信系统的设计与性能研究`,包含问题与解决,实验心得等部分。
如有错误欢迎指正。
祝好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值