精华内容
下载资源
问答
  • 详细讲述了多速率滤波器组的设计,分为5个章节,从初级的信号与信号处理到复杂多速率滤波器系统的设计。
  • 多速率信号:等波纹低通滤波器频谱特性,有脉冲图,频率响应图以及低通高通等波纹差值图
  • 多速率FIR滤波器

    2020-01-14 20:01:18
    该篇是FPGA数字信号处理的第15篇,选题为多速率信号处理系统中用到的多速率FIR滤波器。本文将简单介绍多速率信号处理系统的基本概念,以及使用Quartus和Vivado的IP核设计多速率FIR滤波器的方法。 多速率信号处理 这...

    该篇是FPGA数字信号处理的第15篇,选题为多速率信号处理系统中用到的多速率FIR滤波器。本文将简单介绍多速率信号处理系统的基本概念,以及使用Quartus和Vivado的IP核设计多速率FIR滤波器的方法。


    多速率信号处理

    这个概念是相对于单速率(Single Rate)信号处理而言的。单速率是指整个信号处理流程中只有一种数据速率;多速率是指系统中存在多个数据速率。使用多速率信号处理可以节省存储空间、减少通信数据量、减少运算量、减轻设计难度。

    比如在DDC(数字下变频)系统中,前级需要很高的采样率fs确保ADC采集到信号的信噪比;而在去载波并提取出低频的基带信号后,信号有效带宽已经很小,此时可以满足要求的采样率也远远低于fs,如果不进行数据速率转换的处理,会造成许多资源的浪费和设计上的困难(详情参考“FPGA综合系统设计(七):基于DDC的两路信号相位差检测: https://blog.csdn.net/FPGADesigner/article/details/80785174”)。

    一个简单的多速率信号处理系统框图如下所示:
    这里写图片描述
    多速率信号处理主要包括数据速率的转换LPF的设计两个过程。数据速率的转换包括抽取(Decimation,降低采样率)和内插(interpolation,提高采样率)。抽取/内插时应保证信号的有效频带内没有频谱混叠,因此需要完成LPF的设计,常用的有多速率FIR滤波器、CIC滤波器、HB滤波器

    多速率FIR滤波器其实已经在上面链接中的设计用到过,本文再结合概念单独总结一下。后面的文章将介绍CIC滤波器和HB滤波器的设计。


    抽取与内插

    当需要降低采样率时,输入信号数据每隔D-1个取一个,取出的数据依次排序,这个过程称作D倍抽取,采样率变为原来的1/D。但是我们需要确保抽取之后的采样率仍然可以满足Nyquist采样定理,否则会造成频谱的混叠。当然由于ADC的转换也会在整个频段内引入白噪声,因此在抽取前还是需要加入抗混叠滤波器。如下图所示:
    这里写图片描述
    当需要提高采样率时,在两个相邻的数据之间插入I-1个零值,再进行低通滤波,这个过程称作I倍内插,采样率变为原来的I倍。只要LPF的通带为信号的有效带宽,即使插值时只插入零值点(没有插入采样值的点),也可以达到I倍内插的效果。经过插值后的信号由DAC输出会引入更小的高频噪声。如下图所示:
    这里写图片描述
    上面抽取和内插实现的都是整数倍数据速率的转换。而实际设计中遇到的更多不会是整数倍关系。可以使用先内插、再抽取的方式完成采样率为有理数比值的数据速率转换,且可以共用一个LPF,截止频率选取二者的最小带宽即可。如下图所示:
    这里写图片描述


    MATLAB设计

    MATLAB中的语法可以很简单的实现抽取和插值操作。抽取过程如下:

    t = 0 : 1 / Fs : 0.5;
    c = 2 * pi * f * t;
    si=sin(c);    %产生正弦波
    D=8;       %抽取倍数
    d2 = si(1 : D : length(t));  %抽取
     
    • 1
    • 2
    • 3
    • 4
    • 5

    插值过程如下:

    t = 0 : 1/Fs : 0.5;
    c = 2 * pi * f * t;
    si = sin(c);     %产生正弦波
    I=8%内插倍数
    Isi = zeros(1, length(si)*I); %先构造全0序列
    Isi(1 : I : length(Isi)) = si;  %将源信号插入
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    滤波器的设计不再赘述。


    FPGA设计

    Quartus和Vivado的FIR IP核都可以设置为多速率FIR模式,完成数据速率的转换工作。比如在上文链接内的设计中,ADC需要以100MHz的速率采集20MHz的信号,通过DDC解调后基带信号频率仅有500kHz。将FIR设置为10倍抽取模式,采样率降为10MHz,足以完成接下来的处理。

    Quartus中以FIR Compiler IP核为例:
    这里写图片描述
    右上角的Rate Specification即为设置内插或抽取,Factor表示抽取和内插 的倍数。设置好后,在右下角的Throughput中可以看到输入数据速率和输出数据速率。此处设置为了10倍抽取,则每10个时钟才会输出一个有效数据,相当于采样率降低了10倍。

    Vivado中以FIR Compiler IP核的7.2版本为例:
    这里写图片描述
    在Filter Options标签下,“Filter Type”可以设置为抽取或内插模式,并设置对应的倍数Decimation Rate Value和Interpolation Rate Value。在Channel Specification标签下设置好输入采样速率和时钟频率后,可以看到输入数据速率和输出数据速率(这里设置了10倍抽取)。
    这里写图片描述
    此外Vivado的FIR IP核还提供了非整数倍抽取/内插的功能,将“Rate Change Type”修改为“Fixed Fractional”,即可分别设置插值倍数和抽取倍数,组合为一个值为有理数的倍数,如下图所示:
    这里写图片描述
    可以看出多速率FIR滤波器必须工作在很高的频率上(即数据转换速率前后的两个采样率中更大的那个速率),才能完成数据速率转换的工作。而FIR通常会使用大量的乘法器,因此具有占用资源多的缺点。与之相比,CIC滤波器和HB滤波器在结构和性能上更优良,将在后面的文章中介绍。

    展开全文
  • FPGA在多速率SINC滤波器中的应用.pdf
  • 该篇是FPGA数字信号处理的第15篇,选题为多速率信号处理系统中用到的多速率FIR滤波器。本文将简单介绍多速率信号处理系统的基本概念,以及使用Quartus和Vivado的IP核设计多速率FIR滤波器的方法。 多速率信号...

    该篇是FPGA数字信号处理的第15篇,选题为多速率信号处理系统中用到的多速率FIR滤波器。本文将简单介绍多速率信号处理系统的基本概念,以及使用Quartus和Vivado的IP核设计多速率FIR滤波器的方法。


    多速率信号处理

    这个概念是相对于单速率(Single Rate)信号处理而言的。单速率是指整个信号处理流程中只有一种数据速率;多速率是指系统中存在多个数据速率。使用多速率信号处理可以节省存储空间、减少通信数据量、减少运算量、减轻设计难度。

    比如在DDC(数字下变频)系统中,前级需要很高的采样率fs确保ADC采集到信号的信噪比;而在去载波并提取出低频的基带信号后,信号有效带宽已经很小,此时可以满足要求的采样率也远远低于fs,如果不进行数据速率转换的处理,会造成许多资源的浪费和设计上的困难(详情参考“FPGA综合系统设计(七):基于DDC的两路信号相位差检测: https://blog.csdn.net/FPGADesigner/article/details/80785174”)。

    一个简单的多速率信号处理系统框图如下所示:
    这里写图片描述
    多速率信号处理主要包括数据速率的转换LPF的设计两个过程。数据速率的转换包括抽取(Decimation,降低采样率)和内插(interpolation,提高采样率)。抽取/内插时应保证信号的有效频带内没有频谱混叠,因此需要完成LPF的设计,常用的有多速率FIR滤波器、CIC滤波器、HB滤波器

    多速率FIR滤波器其实已经在上面链接中的设计用到过,本文再结合概念单独总结一下。后面的文章将介绍CIC滤波器和HB滤波器的设计。


    抽取与内插

    当需要降低采样率时,输入信号数据每隔D-1个取一个,取出的数据依次排序,这个过程称作D倍抽取,采样率变为原来的1/D。但是我们需要确保抽取之后的采样率仍然可以满足Nyquist采样定理,否则会造成频谱的混叠。当然由于ADC的转换也会在整个频段内引入白噪声,因此在抽取前还是需要加入抗混叠滤波器。如下图所示:
    这里写图片描述
    当需要提高采样率时,在两个相邻的数据之间插入I-1个零值,再进行低通滤波,这个过程称作I倍内插,采样率变为原来的I倍。只要LPF的通带为信号的有效带宽,即使插值时只插入零值点(没有插入采样值的点),也可以达到I倍内插的效果。经过插值后的信号由DAC输出会引入更小的高频噪声。如下图所示:
    这里写图片描述
    上面抽取和内插实现的都是整数倍数据速率的转换。而实际设计中遇到的更多不会是整数倍关系。可以使用先内插、再抽取的方式完成采样率为有理数比值的数据速率转换,且可以共用一个LPF,截止频率选取二者的最小带宽即可。如下图所示:
    这里写图片描述


    MATLAB设计

    MATLAB中的语法可以很简单的实现抽取和插值操作。抽取过程如下:

    t = 0 : 1 / Fs : 0.5;
    c = 2 * pi * f * t;
    si=sin(c);    %产生正弦波
    D=8;       %抽取倍数
    d2 = si(1 : D : length(t));  %抽取

    插值过程如下:

    t = 0 : 1/Fs : 0.5;
    c = 2 * pi * f * t;
    si = sin(c);     %产生正弦波
    I=8%内插倍数
    Isi = zeros(1, length(si)*I); %先构造全0序列
    Isi(1 : I : length(Isi)) = si;  %将源信号插入

    滤波器的设计不再赘述。


    FPGA设计

    Quartus和Vivado的FIR IP核都可以设置为多速率FIR模式,完成数据速率的转换工作。比如在上文链接内的设计中,ADC需要以100MHz的速率采集20MHz的信号,通过DDC解调后基带信号频率仅有500kHz。将FIR设置为10倍抽取模式,采样率降为10MHz,足以完成接下来的处理。

    Quartus中以FIR Compiler IP核为例:
    这里写图片描述
    右上角的Rate Specification即为设置内插或抽取,Factor表示抽取和内插 的倍数。设置好后,在右下角的Throughput中可以看到输入数据速率和输出数据速率。此处设置为了10倍抽取,则每10个时钟才会输出一个有效数据,相当于采样率降低了10倍。

    Vivado中以FIR Compiler IP核的7.2版本为例:
    这里写图片描述
    在Filter Options标签下,“Filter Type”可以设置为抽取或内插模式,并设置对应的倍数Decimation Rate Value和Interpolation Rate Value。在Channel Specification标签下设置好输入采样速率和时钟频率后,可以看到输入数据速率和输出数据速率(这里设置了10倍抽取)。
    这里写图片描述
    此外Vivado的FIR IP核还提供了非整数倍抽取/内插的功能,将“Rate Change Type”修改为“Fixed Fractional”,即可分别设置插值倍数和抽取倍数,组合为一个值为有理数的倍数,如下图所示:
    这里写图片描述
    可以看出多速率FIR滤波器必须工作在很高的频率上(即数据转换速率前后的两个采样率中更大的那个速率),才能完成数据速率转换的工作。而FIR通常会使用大量的乘法器,因此具有占用资源多的缺点。与之相比,CIC滤波器和HB滤波器在结构和性能上更优良,将在后面的文章中介绍。

    展开全文
  • 王光宇编著的《多速率数字信号处理和滤波器组理论》全面系统地论述了多速率数字信号处理和滤波器组的基本原理,包括时变和非时变滤波器组。《多速率数字信号处理和滤波器组理论》可供研究和工程部门从事数字信号处理...
  • 然后,针对传统的数字分路未能获得充分的阻带衰减及电路规模过大问题,本文给出了一种基于半带滤波器组的载波多速率(MCMRM)解决方法,并阐述了基本原理。最后,利用所提方法对路信号进行了数字分路仿真。仿真...
  • 全书共十章,包括离散时间系统和滤波器多速率系统的组成单元、通道滤波器组、通道滤波器组的相关理论、M通道DFT滤波器组、余弦调制滤波器组、时变滤波器组的基本理论、最一般的时变滤波器组、M通道时变滤波器...
  • 要求 证明用Harr基本函数ho[k]和h1[k]定义的平凡偶数阶QMF滤波器是线性相位的。  解 基本函数ho=[1,1]和h1=[1,-1]代表了满足镜像... 为说明滤波器组的完全重建能力,其中多速率系统被分为分析部分和综合部分。注意
  • 数字滤波器接受时间序列输人,然后产生时间序列输出,并于其间修改信号的时域和/或频域属性。一般假定数字滤波器从头到尾都以恒定的采样率工作,其中采样率以Shannon采样定理确定的固定的采样率为限。有些系统的采样...
  • 具有乘法噪声的多速率多传感器系统的分布式融合滤波器
  • 电信设备-在信道滤波器中实现非整数采样速率改变的装置.zip
  • !... 相关描述如下: At each level of the binary branches, the audio signal is down-sampled by a decimator that consists of an anti-aliasing filter (an FIR lowpass filter (LPF)) and a 1/2 down-sampler....
  • 本文涉及分布式融合一类异步多速率多传感器的滤波问题非均匀采样离散随机系统,其中状态以最高的采样率更新,并且不同传感器可能具有不同的较低测量采样率。 此外,状态会统一更新,并且测量不均匀地采样。 非增强型...
  •  根升余弦成形滤波器是数字信号处理中的重要部件,它能对数字信号进行成形滤波,压缩旁瓣,减少干扰的影响,从而降低误码率。根据文献[1],它的传统FP-GA实现方式基于乘累加器(Multiplier Add Cell,MAC)结构,设计...
  • 滤波器

    万次阅读 多人点赞 2017-08-01 07:52:00
    滤波器解决的是:多速率问题。 通过降采样、插值来改变信号的输出速率(主要利用Nyquist采样定理,保证不混叠),从而降低数据率,滤波器为这类操作提供了实现框架。在满足采样定理的前提下,内插/抽取并...

    前言

    多相滤波器解决的是:多速率问题。

    通过降采样、插值来改变信号的输出速率(主要利用Nyquist采样定理,保证不混叠),从而降低数据率,多相滤波器为这类操作提供了实现框架。在满足采样定理的前提下,内插/抽取并配合滤波器使用(防止混叠),可以改变数据的速率。

    多相滤波的结构也多用在信道化中(即构建滤波器组),固化系数借助硬件实现快速运算。

    一、信道化实现思路

    信道化的基本思路为:

    clc;clear all;close all
    N = 256;
    h = firls(N, [0 .2 .25 1], [1  1 0  0],[.001 .0001]);
    D = 8;
    % PolyPhase Componets
    i = 1:length(h);
    h_channel = zeros(D,length(h));
    im = sqrt(-1);
    for j = 1:D
        h_channel(j,:) = h.*exp((-im*2*pi*((j-1)*(i-1)))/D);
    end
    figure(1)
    for i = 1:D+1
        switch i
            case 1
                subplot (2,1,1);
                plot(abs(fft(h)));
                title('Orignal LPF ')
            otherwise
                subplot (2,1,2)
                plot(abs(fft(h_channel(i-1,:))));
                hold on;
                title('channelize')
        end
    end
    

      对应频谱图:

    即将频带切分成若个个区域。基于该特性,有信道化的基本思路:

    如果是实信号,D信道化之后进行D倍抽取仍然不会有频谱混叠,而经过本振以及低通滤波器之后的信号为复信号,故可以进行2D倍抽取。

     可以看出,信道化接收机的抽取器位于滤波器之后,当抽取率D很大或者滤波器阶数较高,计算效率将难以提升,这时候借助多相滤波器便可以优化。

    假设LPF:

    并取Q=N/D,N为滤波器阶数,D为抽取率。则滤波器可重写为:

    定义:

    滤波器可重写为:

    其中为多相分量,这也是多相滤波器说法的缘由。

    第k个信道可写为:

    进一步取

    从而有

    根据这一系列推导,即可得出实信号多相滤波器信道化的实现思路:

    两处相位相乘分别为:,p = 0,1,...,D-1

     

    二、多相滤波器设计步骤

    • 根据指标,确定滤波器类型以及阶数N
    • 求解h(n)
    • 根据信道个数,并用下式确定多相滤波器:

    三、复杂度简要分析

    以滤波器阶数N=256,抽取率(信道个数)D=16,每个信道输出1个数据,则:

    • 基于低通滤波器组的信道化需要乘法:M1 = D x (1+N) = 4112次;
    • 基于多相滤波器的信道化需要乘法:M2 = N+2*D+D*log2D = 352次;

    多相滤波器的实现思路节约了资源,且便于硬件实现。

     

    四、应用实例

    考虑带宽1GHz的情况,如果信道个数为16,则每一个的宽度为1e9/16=62.5e6,考虑到滤波器为实数的共轭对称性,故LPF构造依据:

    对其进行仿真验证:

    输入信号为70MHz的1)余弦信号;2)复指数信号,对于1)理论上应落在2、16两个信道,2)只落在2信道。

    clc;clear all;close all
    load coef_lpf.mat;
    fs = 1e9;
    t = 0:1/fs:1e-6;
    f0 = 70e6;
    sig = sin(2*pi*t*f0);
    len = length(sig);
    h = coef_lpf;
    N = length(h);
    D = 16;
    y = zeros(D,len);
    % PolyPhase Componets
    i = 1:length(h);
    h_channel = zeros(D,length(h));
    im = sqrt(-1);
    x_fre = linspace(0,fs,N);
    for j = 1:D
        h_channel(j,:) = h.*exp((-im*2*pi*((j-1)*(i-1)))/D);
        y(j,:) = filter(h_channel(j,:),1,sig);
    end
    figure()
    for i = 1:D+1
        switch i
            case 1
                subplot (2,1,1);
                plot(x_fre,abs(fft(h)));
                title('Orignal LPF ')
            otherwise
                subplot (2,1,2)
                plot(x_fre,abs(fft(h_channel(i-1,:))));
                hold on;
                title('channelize')
        end
    end
    x_fre1 = linspace(0,fs,len);
    figure()
    plot(x_fre1,abs(fft(sig)));
    for iter = 1:D
        if mod(iter,4) ==1
            figure()
            j = 1;
        end
        subplot(4,1,j)
        j = j+1;
        plot(x_fre1,abs(fft(y(iter,:))));
        title(['信道',num2str(iter)]);
    end
    

      仿真结果:

    信道化结果:

    情形一:

    与理论分析相符。

    情形二:

    sig = exp(-1j*2*pi*t*f0);
    

      信号只在信道2出现:

     

    多相滤波的实现思路也非常多,这里仅列举一种:

    clc;clear all;close all;
    load coef_lpf.mat;
    h = coef_lpf;
    %%产生信号
    fc = 70e6;
    c = 3.0e8;
    fs = 1e9;
    theta = 30/180*pi;
    lambda = c/fc;
    d = lambda/4;
    len = 2048;
    t = 0:1/fs:1/fs*(len-1);
    st = exp(-1j*2*pi*t*fc);
    Phase = 2*pi*d*sin(theta)/lambda;
    st = st/trace(st*st');
    Interformer01 = st;
    %%信道化
    D = 16;
    si = 1:length(h);
    h_channel = zeros(D,length(h));
    im = sqrt(-1);
    for j = 1:D
        h_channel(j,:) = downsample(h.*exp((im*2*pi*((si-1)*(j-1)))/D),1);
    end
    figure()
    for i = 1:D
        plot(abs(fft(h_channel(i,:))));
        hold on;
    end
    Interformer_channel = zeros(D,len/D);
    for i = 1:D
        Interformer_channel(i,:) = downsample(filter(h_channel(i,:),1,Interformer01),D);
    end
    figure()
    for i = 1:D
        subplot(4,4,i)
        plot(real((Interformer_channel(i,:))));
    end
    %%信道化实现思路
    si_new = 1:length(h)/D;
    Interformer01_py = (reshape(Interformer01,D,len/D));
    % Interformer01_py = Interformer01_py.*repmat((exp(1j/2*pi*si_new)),length(h)/D,1);
    % h_py = reshape(h,D,length(h)/D);
    h_py = fliplr(reshape(h,D,length(h)/D));%.*repmat((exp(1j/2*pi*si_new)),D,1);
    Interformer02_channel = zeros(D,len/D);
     
    for i = 1:D
       Interformer02_channel(i,:) = downsample(filter(h_py(i,:),1,Interformer01_py(i,:)),1);
    %    Interformer02_channel(i,:) = Interformer02_channel(i,:)*(-1)^(i-1)*exp(-1j*pi/2/D*(i-1));
    end
    Interformer02_channel = fft(Interformer02_channel);
    figure()
    for i = 1:D
        subplot(4,4,i)
        plot(real((Interformer02_channel(i,:))));
    end

      信道化结果:

    直接信道化:

    多相实现:

    该方式比直接实现,兔耳效应更明显。

    展开全文
  • 用于纯数据的简单控制速率卡尔曼滤波器 完整的卡尔曼算法是一种复杂,强大且灵活的估计器,适用于多种用途。 但是,简化版本可满足大多数目的,并降低了计算强度。 使用[analyze 1(和[analyze 0(可以对输入数据...
  • 北京化工大学软物质科学与工程高精尖创新中心) 摘 要:为提高 Sigma-Delta 模数转换器中数字降采样滤波器的适用范围,提出一种多速率信号转换器的设计和 实现方法。 在特定某款基于 Sigma-Delta 调制原理的 MEMS 加...

    作者:汪 昕,徐 驰,俞度立

    (1. 北京化工大学 信息与技术学院,

    2. 北京化工大学软物质科学与工程高精尖创新中心)

    摘 要:为提高 Sigma-Delta 模数转换器中数字降采样滤波器的适用范围,提出一种多速率信号转换器的设计和 实现方法。 在特定某款基于 Sigma-Delta 调制原理的 MEMS 加速度计系统中,其所用到的数字降采样滤波器仅能处 理 128 kHz 固定速率的 Sigma-Delta 调制信号。 因此,本文旨在设计一款多速率信号转换器,对多种速率输入信号进 行抽取与插值转换,输出满足降采样滤波器所能处理的固定速率信号,从而满足降采样滤波器的不同应用场景。 分 析MATLAB 仿真数据和 FPGA 验证结果可得,本文所设计的多速率信号转换器能够保证输出信号的通带噪声水平足 够低,通带内有效信号没有发生频率偏移和幅度衰减,系统具有较高的信噪比。

    关键词:多速率转换器;Sigma-Delta 调制;降采样滤波器;信噪比

    文献引用

    [1]汪昕,徐驰,俞度立.多速率信号转换器的设计与实现[J].自动化与仪器仪表,2020(05):63-66+78.

    7eda5a0cb2ba418aac162f7b0cee9a87.png
    363657b25be3fdcf09eb6282f9b1aebe.png
    7495bcc5148a129b5327bfc652a69fbe.png
    fb2a7f4b5b1f76bf03ea1ec8a75c011b.png
    展开全文
  • 要求 给定FIR滤波器传函H(z)=2+3z-1+3z-2+2z-3。... 滤波过程的逐样分析如图1 所示,并列于表1 ,表中给出的是出现在各二阶滤波器输出端的时间序列,即两个滤波器产钍相同的输出,输出速率均为抽
  • 探究并给出了理想低通滤波器的码元速率的条件
  • 对应-数字和多速率信号处理-时滞模糊系统的H(无穷)滤波器设计的模糊加权相关方法
  • 主要包括FIR滤波器、IIR滤波器、多速率滤波器、自适应滤波器、变换域滤波器、解调系统滤波器设计等内容。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,主要追求对工程实践的指导性,力求使读者在...
  • 《数字滤波器的MATLAB与FPGA实现》详细阐述了数字滤波器的实现原理、结构、方法及仿真测试过程,并通过大量...其主要内容包括FIR滤波器、IIR滤波器、多速率滤波器、自适应滤波器、变换域滤波器、DPSK解调系统设计等。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,082
精华内容 4,432
关键字:

多速率滤波器