深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

06-01 1614阅读

目录

一、rcosdesign函数设计升余弦脉冲或平方根升余弦脉冲

a)平方根升余弦脉冲

b)升余弦脉冲

c)根据函数表达式编写MATLAB:

二、脉冲调制的无符号间干扰(ISI)。

a)脉冲波形成

b)单极到双极(幅度调制)

c)脉冲调制

d)脉冲整形(传递滤波)

三、经过升余弦滚降滤波器后的眼图

a)滚降因子为1时的眼图:

b)滚降因子为0.75时的眼图:

c)滚降因子为0.25时的眼图:

d)四元幅度调制

四、匹配滤波


一对rcosdesign函数进行介绍并绘制波形,根据升余弦脉冲函数表达式编写MATLAB代码;

二介绍了脉冲调制,即一串脉冲序列与升余弦脉冲进行卷积,并通过波形图展示符号间无ISI;

三对不同滚降因子的升余弦脉冲眼图进行了描述;

四对匹配滤波进行简要说明,介绍了平方根升余弦脉冲(rrc)在通信系统中的应用。

一、rcosdesign函数设计升余弦脉冲或平方根升余弦脉冲

        可以使用MATLAB函数rcosdesign来生成升余弦脉冲或平方根升余弦脉冲。

       b = rcosdesign(beta,span,sps) 返回系数 b,该系数对应于具有由 beta 指定的衰减因子的平方根升余弦 FIR 滤波器。滤波器被截断在 span 个符号范围内,并且每个符号周期都包含 sps 个样本。 滤波器的阶次,即 sps * span 必须是偶数。滤波器的能量为 1。

        b = rcosdesign(beta,span,sps,shape) 当将 shape 设置为"sqrt"时,将返回根升余弦滤波器,见(a);当将 shape 设置为 "normal" 时,将返回升余弦FIR 滤波器,见(b)。

a)平方根升余弦脉冲

        用一个例子说明:假设符号周期为1秒(Ts=1)。beta=0.25,span=6,sps=9,shape="sqrt":

  • beta=0.25即滚变因子为0.25;
  • span=6即跨越6个符号;
  • sps=9即每个符号周期包含9个样本;
  • shape="sqrt"即为平方根升余弦脉冲。

    MATLAB代码如下:

    Ts = 1; % 码元周期
    % 单个符号范围的采样个数。
    L = 9; %每个符号周期包含9个样本
    r = 0.25; %滚降系数
    t = -3:Ts/L:3; % 时间向量
    pt = rcosdesign(r,6,L,'sqrt');%返回一个平方根升余弦滤波器。跨越6个符号

    效果图和对图的解释如下:

    深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

    解释:rcosdesign的第二个参数span为6,绿色①-⑥为横跨6个符号,rcosdesign的第三个参数sps为9,每个符号有9个点,例如①中有9个点。

    可以看到成型脉冲在0*Ts的位置上有值,同时在其他整数*Ts上成型脉冲的值不为0,即有ISI。(即横坐标时间为-3、-2、-1、0、1、2、3的位置上,函数值都不为0)

    b)升余弦脉冲

    将rcosdesign(r,6,L,'sqrt')中的sqrt改为rcosdesign(r,6,L,'normal'),绘制如下图:

    • beta=0.25即滚变因子为0.25;
    • span=6即跨越6个符号;
    • sps=9即每个符号周期包含9个样本;
    • shape="normal"即为升余弦脉冲。

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      解释:可以看到成型脉冲在0*Ts的位置上有值,同时在其他整数*Ts上成型脉冲的值为0,即无ISI。(即横坐标时间为-3、-2、-1、0、1、2、3的位置上,除了0位置上函数值不为0,其他位置上的值为0)

      c)根据函数表达式编写MATLAB:

      升余弦滚降滤波器的函数为:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      用MATLAB进行编写平方根升余弦滚降函数,代码中HR为升余弦滚降函数的频域,GR和GT即为平方根升余弦滚降的频域:

      %平方根升余弦滚降函数
      hr1=sin(pi*t/Ts)./(pi*t/Ts);
      hr2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2);
      hr=hr1.*hr2;
      HR=abs(t2f(hr));
      GT=sqrt(HR);
      GR=GT;
      function X=t2f(x)
      global dt N
      H=fft(x);
      X=[H(N/2+1:N),H(1:N/2)]*dt;
      end

      二、脉冲调制的无符号间干扰(ISI)。

              脉冲调制时(即符号传输),需脉冲整形(插入0进行上采样)后与升余弦滚降滤波器卷积能实现无符号间干扰(ISI)。(注:以下是升余弦滚降滤波器(RC),不是根升余弦滚降滤波器(RRC))

      a)脉冲波形成

              生成一个升余弦脉冲。

      Ts = 1; % symbol duration
      L = 9;
      span = 6;
      r = 0.25; % Roll-off factor
      t_step = Ts/L;
      pt = rcosdesign(r,span,L,'normal');

      b)单极到双极(幅度调制)

              当𝑛th信息为1时,设置𝛼𝑛=1,当𝑛th信息为0时,我们设置𝛼𝑛=−1。即实现单极性变为双极性。即0 => -1, 1 => 1。

      Ns = 2;%2个bit需要传输
      data_bit =[0 1];
      amp_modulated = 2*data_bit-1; % 0 => -1, 1 => 1

      c)脉冲调制

              将信息每两个bit之间插入8个(L-1)个0。因为之后需要与升余弦滚降滤波器(脉冲成型滤波器)卷积,而升余弦滚降滤波器(脉冲成型滤波器)每个符号周期包含9个样本。

      impulse_modulated = [];
      for n = 1:Ns
          num_zeros =L-1;%延迟8bit,因为单个符号范围的采样个数为9
          delta_signal = [amp_modulated(n) zeros(1, num_zeros)];
          impulse_modulated = [impulse_modulated delta_signal];
      end

      d)脉冲整形(传递滤波)

              将脉冲调制(插入0)的信号与成型滤波器卷积。

      tx_signal = conv(impulse_modulated, pt);

      绘制图形如下:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      解释:可以看到脉冲调制的波形,双极性、插入0;脉冲成型的波形,无码间串扰ISI。

      因一个升余弦滤波器跨越6个符号,所以在抽样判决时​​​​​​需要去掉3个码元和后3个码元。即从0-2,5-8都不要了。

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      三、经过升余弦滚降滤波器后的眼图

              使用升余弦滤波器绘制眼图的部分关键代码如下。

      t_step = Ts/L;%相邻采样点之间的间隔
      Ns = 1000;%Ns为总信息bit数量
      pt = rcosdesign(r,span,L,'normal');
      figure
      for k = 1:floor(Ns/3) % k是三个连续符号部分的索引。Ns为总信息bit数量
          tmp = tx_signal(  ((k-1)*3*L + 1) : k*3*L  ); %第k个连续的符号部分(波形)。
          plot(t_step*(0:(3*L-1)), tmp);
          axis([0 3 min(tx_signal) max(tx_signal)]);
          grid on; 
          hold on
          % pause  % 需要按下一个键继续绘图,或者您可以选择common out“暂停”,以一键查看最终结果。
      end

              使用for循环进行绘制眼图,眼睛图是由持续3个连续符号周期的传输信号的样本绘制的。

      下面比较不同滚降系数的眼图。

      a)滚降因子为1时的眼图:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      b)滚降因子为0.75时的眼图:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      c)滚降因子为0.25时的眼图:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      可以看到无论滚降因子是多少,在整数位置上,取值只有约为±0.37两种,对应的符号0和1。

      结论:滚降系数α越大,升余弦滚降波形h(t)的拖尾衰减越快,对位定时精度要求越低。但是,滚降使带宽增大为,所以频带利用率降低。

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      d)四元幅度调制

              四元幅度调制:每个升余弦脉冲可以由四个不同的幅度调制。即每个符号的振幅为±1和±3。代码如下:

      Ns = 1000;
      data_bit = round(rand(1,Ns*2));%2000个
      amp_modulated= 2*(2*data_bit(1:2:end)+data_bit(2:2:end)-1.5);    

      滚降因子为0.5时,得到的眼图:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      滚降因子为1时,得到的眼图:

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      可以看到无论滚降因子是多少,在整数位置上,取值只有约为四种,对应的符号为±1和±3。

      四、匹配滤波

      匹配滤波器:​​​​​​​使滤波器输出的信噪比在某一特定时刻达到最大,即接收端的信号强度与噪音强度的比值最大。对匹配滤波的理解可见:通信原理第3章 3.14匹配滤波器 - 知乎升余弦和根升余弦滤波器(SRRC,RRC)的单位脉冲响应-CSDN博客

      在信号处理中,根升余弦滤波器(Raised-cosine filter, RRC ),也称平方根升余弦滤波器( square-root-raised-cosine filter,SRRC ),在数字通信系统中用作发送和接收滤波器,来进行匹配滤波。是升余弦滤波器频率响应的平方根。

      符号为[-3,1,-1,-3,3],每个符号采样16个点,每个符号的脉冲成型波形跨越前后各4个符号。发射滤波器和匹配滤波器均为根升余弦滤波器。

      clear;
      close all;clc;
      R=0.3; % roll-off factor
      delay=4; % the group delay of the filter
      sps=16; % oversampling factor
      sym=[-3,1,-1,-3,3]; % symbol
      len_x=length(sym);
      xx=zeros(1,(len_x+2*delay)*sps);
      for ii=delay+1:len_x+delay
          xx((ii-1)*sps+1)=sym(ii-delay); % oversampling 
      end
      h_rrc=rcosdesign(R,2*delay,sps,'sqrt'); % RRC filter
      % h_rrc=h_rrc./sqrt(mean(h_rrc.^2));
      % hs=h_rrc./max(h_rrc); % Amplitude Normalized
      figure;plot(-delay:1/sps:delay,h_rrc);grid on;
      send=conv(xx,h_rrc); % filter with RRC at the transmitter
      send=send(delay*sps+1:end-delay*sps); % remove the delay
      recv=conv(send,h_rrc); % filter with RRC at the receiver
      recv=recv(delay*sps+1:end-delay*sps); % remove the delay
      

      下图为经过发射滤波器后(即经过一次平方根升余弦滚降滤波器)

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      下图为经过匹配滤波器后(即经过两次平方根升余弦滚降滤波器)

      深入探究升余弦滚降滤波器,及其用作匹配滤波(MATLAB的rcosdesign函数使用)

      解释:从图 1可以看出,滤波后波形在最佳采样点处的值并不等于采样点的值(即平方根升余弦滚降滤波器(RRC Filter)在处取值并不为零)。而经过接收端匹配滤波后,波形在最佳采样点处的值正好是发送符号的幅度值,这说明经过匹配滤波后ISI得到缓解。

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码