zoukankan      html  css  js  c++  java
  • 05单级CIC滤波器8倍抽取

    01实战原理

    在数字信号处理中,CIC滤波器是FIR滤波器中最优的一种,其使用了积分,梳状滤波器级联的方式。CIC滤波器由一堆或多对积分-梳状滤波器组成,在抽取CIC中,输入信号依次经过积分,降采样,以及与积分环节数目相同的梳状滤波器。在内插CIC中,输入信号依次经过梳状滤波器,升采样,以及与梳状数目相同的积分环节。

    CIC滤波器的两个特点:

    1、线性相位响应

    2、仅需延迟,加减法便可实现,不需要乘法,在FPGA等平台上易于实现

    CIC滤波器的冲击响应为:

    02matlab实现

    此次实战是设计一个单级CIC滤波器将采样率为352.8kHZ的1kHZ sin波向下降采样率到44.1kHz的1kHZ sin波(8倍抽取)。

    %Single CIC 
    %352.8khz sample rate down to 44.1khz sample rate
    close all
    clc
    clear all
    
    %参数定义
    FS =352800; %Sample rate Frequncy
    fc = 1000; %1khz
    N = 1024;
    Q = 16;
    M= 8;
    D = 8;
    t =0:2*pi/FS:2*pi*(N-1)/FS;%时间序列
    
    %波形产生
    sin_osc =sin(t*fc);
    
    %y = decimate(sin_osc,D);
    %y = downsample(sin_osc,D);
    
    %滤波器系数
    b=ones(1,M);
    a = 1;
    
    %8倍抽值处理
    sf=filter(b,a,sin_osc);     
    sm =sf./M;
    sd=sm(1:D:length(t));
    si0=zeros(1,length(sd)*D);
    si0(1:D:length(si0))=sd;
    
    [h,f]=freqz(b,a,N,FS);       %freqz函数求频率响应
    mag=20*log(abs(h))/log(10);  %幅度转换成dB单位    
    ph=angle(h)*180/pi;          %相位值单位转换
    
    figure(1),
    subplot(221),stem(sin_osc);
    title('采样频率352.8khz 1khz sin','fontsize',8);
    subplot(222),stem(si0);
    title('采样频率44.1khz 1khz sin','fontsize',8);
    subplot(223);plot(f,mag);
    xlabel('频率(Hz)','fontsize',8);
    ylabel('幅度(dB)','fontsize',8);
    title('freqz()幅频响应','fontsize',8);
    subplot(224);plot(f,ph);
    xlabel('频率(Hz)','fontsize',8);
    ylabel('相位(度)','fontsize',8);
    
    figure(2),
    subplot(211),stem(sin_osc);
    title('采样频率352.8khz 1khz sin','fontsize',8);
    subplot(212),stem(si0);
    title('采样频率44.1khz 1khz sin','fontsize',8);
    View Code

     8倍抽取前后的1kHZ sin时域波形

     滤波器系数的幅频和相频响应

    由图分析可知,单级CIC滤波器的降采样率设计成功。

    03FPGA实现

    fpga的单级cic滤波器的设计其实就是一个滑动平均滤波器,由一个累加器和一个移位操作完成。

    04modelsim仿真

    波形的间距是1khz,采样率352.8khz与采样率44.1khz的采样率从图中可以看出两者的不同。

     问题:仿真用到的这三个不知道是如何生成的?

  • 相关阅读:
    java中awt和swing是的关系以及区别
    java 5.0和java6.0的区别
    bpel 经典实例入门教程
    java中指针的问题
    linux下软件的基本安装和卸载
    stomp与veil用法
    in perspective用法
    不錯的句子
    fit into用法
    ceremony用法
  • 原文地址:https://www.cnblogs.com/FPGAer/p/14300786.html
Copyright © 2011-2022 走看看