`
xiaomogu
  • 浏览: 51440 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

硬件系统设计分析:FIR滤波器的设计

阅读更多
1、 设计任务
FIR低通滤波器的设计,要求通带频率15KHz,阻带频率16KHz,且阻带衰减大于80dB,通带波纹小于0.1dB,字长:16bits,适用于48KHz采样频率的音频信号。通过Matlab设计滤波器,需要对滤波器进行仿真;并自选硬件平台实现该滤波器,选取时需要对运算量进行分析。
2、 仿真
在仿真中需要计算滤波器系数,并自行生成信号源对滤波器效果进行仿真。
(1)FDATool设计法准备
FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱专用的滤波器设计分析工具,操作简单、灵活,可以采用多种方法设计FIR和IIR滤波器。在MATLAB命令窗口输入FDATool后回车就会弹出FDATool界面。

图1 Filter Design&Analysis Tool窗口
(2)Matlab设计滤波器,在MATLAB中的FDATool工具里设计好所需的滤波器。利用Matlab自带的Filter Design Toolbox模块设计目标滤波器,由于要求的衰减速率较大,过渡带较陡峭,采用Kaiser窗函数滤波器设计方法,查表得到beta系数在7.8以上可以较好地满足阻带衰减(最小衰减低于-80dB)、通带波纹(小于0.000868dB)的要求,以减少滤波器的阶数,但过大的beta参数令过渡带增宽,因此beta选取为8,在选取了一系列阶数进行测试后,本着最小阶数的原则,选取了123阶的kaiser窗fir滤波器。
滤波器的冲激系数要求采用16bits的定长,由于在DSP汇编语言中不能直接输入十进制小数,所以将该系数转化成16位定点形式。实验中的输入信号是三个频率分别为4000HZ、13000HZ和19000HZ的正弦波信号的叠加,图2和图3分别为输入信号经过滤波器前后的幅频特性。

                          图2 输入信号及其频率特性

图3 输入信号经过滤波器后的频率特性
从滤波器输入前后的幅频特性可以看出,原始输入信号的三个频率分别为4000HZ、13000HZ和19000HZ,经过FIR低通滤波器滤波后,19KHZ被滤掉,只剩下4000HZ和13000HZ频率的信号。
3、 滤波器实现平台选取
有限长冲击响应(FIR)滤波器因其具有线性相位、计算结果对有限字长效应不敏感等优点,在数字信号处理领域有着广泛的应用。本次设计的FIR滤波器是基于FPGA的串行乘法累加结构滤波器。用户通过单周期使能信号控制数据输入,N个周期后,一个样点的滤波完成,FIR电路输出数据,用输出使能信号同步。本次设计中滤波器的具体参数及频响曲线见表1。
                               表1 滤波器参数
滤波器类型 低通滤波器
输入字长 16bit
系数字长 16bit
输出字长 16bit
通带截止频率 15k
阻带截止频率 16k
阻带衰减 80dB
通带波纹 0.1dB
实验采用的是TI公司的TMS320C5402芯片。FIR的滤波实现就是进行一系列的乘加运算。在如下采用的DSP汇编程序实现过程中,完成一次滤波大约所需要的370个DSP时钟。TMS320C5402的主频为100M,那么完成一次滤波所需时间为370*10ns=3.7us。语音信号的采样率为48kHz,采样间隔为1/48kHz=21us,得出,因此可以进行实时滤波。
4、 滤波器硬件实现仿真与Matlab仿真对比分析
Code Composer Studio 简称CCS,是TI公司推出的为开发TMS320系列DSP软件的集成开发环境(IDE)。CCS工作在Windows操作系统下,类似与VC++的集成开发环境,采用图形接口界面,提供有编辑工具和工程管理工具。它将前面介绍的各种代码产生工具,诸如汇编器,连接器,C/CC++编辑器,建库工具等集成在了一个统一的开发平台中。CCS所集成的代码调试工具具有各种调试功能,包括了原TI公司提供的C源代码调试器和模拟器所具有的所有功能。能对TMS320系列DSP进行指令级的仿真和进行可视化的实时数据分析。此外,还提供了丰富的输入/输出库函数和行好处理的库函数,极大的方便了TMS320系列DSP软件的开发过程。
为了模拟滤波过程,在FIR汇编程序中,需要模拟滤波器的输入数据x(n)。其方法是首先采用MATLAB程序模拟出的输入数据,然后在汇编程序中通过.copy汇编命令将生成的文件拷贝到汇编程序中,作FIR滤波器的输入数据,使得在硬件仿真中,选用的信号源应该与Matlab中生成信号源一致。MATLAB语言程序运行后所生成的数据文件名为input.inc。根据h(n),带入相应的参数,或者应用在MATLAB中获得的N=241,系数分可见输入文件。由于TMS32054X是16位定点处理器,在进行汇编程序设计时,FIR滤波器系数需要采用Q15格式,即必须将上述系数转化位Q15定点式。
FIR滤波器汇编程序的连接器命令文件(文件名fir.cmd)。链接器(linker)是开发TMS320C54x软件必不可少的开发工具之一,它对段的功能有2个。其一是将由汇编器产生的COFF格式的0BJ文件作为输入块,当有多个文件进行链接时,将相应的段结合在一起产生可执行的输出模块;其二是重新定位,将输出的段分配到存储器中的指定地址。有2个链接器伪指令支持此功能。
     ①存储器(MEMORY)伪指令,用来定义目标系统的存储器空间。可将存储器的区域命名并指定起始地址和长度。
     ②段(SECTIONS)伪指令告诉链接器如何将输入段结合成输出段,并告诉链接器将输出段放在存储器的何处。子段可用来更精细地编排段。可用链接器的SECTIONS伪指令指定子段。若没有明显地指定子段,则子段将和具有相同基段名称的其他段结合在一起。
   根据TMS32054x DSP的硬件介绍及用户可用的程序存储器的地址范围,所写的连接器命令文件fir.cmd在附录文件夹中。
仿真,设置图形参数窗口分别设置不同的参数后,所得到的输入、输出在时域及频域时的波形和频谱如下图所示。

图4 图形属性对话框
(1)输入信号的时域和频域分别如下图所示:

图5 输入信号的时频特性

图6 输入信号的幅频特性
(2)经过FIR滤波器后的输出信号:

图7 经过FIR滤波器后的输出信号的时频特性

图8 经过FIR滤波器后的输出信号的幅频特性
然后将经过滤波后的数据从CCS中导出,储存在output.dat中。下图为输出信号yn在软硬件输出的仿真结果的比较。
图3 输入信号经过MATLAB滤波器后的频率特性

图9 输入信号经过CCS滤波器后的频率特性
5、 结论
本文通过一个设计实例,介绍了利用MATLAB实现FIR滤波器设计与滤波的方法,从仿真结果可以看出在一定程度上可以达到技术指标要求,而且方法简单、快捷,从实验室的角度减轻了工作量。由于MATLAB具有强大的接口功能,仿真后的结果可以很方便的移植到DSP的CCS器件中进行仿真。而这两种仿真方法从实验的角度上看基本是一致的,虽然控制精度的方法不尽相同,效果也不尽相同。
通过在CCS下所显示的滤波前与滤波后信号的时域和频域波形图可以看出:频率分别为4000HZ、14000HZ和19000HZ的三个频率信号,经过截止频率为16000HZ的FIR低通滤波器后,频率为19000HZ的被滤除,频率为5000HZ的被保留,基本上达到滤波效果。若将滤波器的阶数和数据精度都再提高一些,滤波效果将会更好。
DSP系统的应用程序开发属于软件设计范畴,但DSP系统的软件设计和软件调试却不能脱离硬件系统的支持。尽管CCS下安装有脱离硬件系统的软件模拟器(simulator),但软件模拟器具有速度慢、非实时性以及无法评价与硬件有关的程序优劣等缺点,无法在应用系统的软件设计和软件调试中完全取代硬件系统。它只能在无DSP硬件系统条件下,是用于调试一些简单的、无实时性要求或者不能涉及到I/O硬件程序的情况。因此,DSP应用程序开发不能脱离DSP硬件系统。所以,在设计程序之前必须对所涉及的硬件进行熟悉。
在编写程序过程中犯了不少低级错误,这很不应该。还有一些重大错误在同学的帮助下,查错与改正是最重要的一个过程。这次课程设计让我获益颇多。
分享到:
评论

相关推荐

    DSP实验四 FIR滤波器设计

    FIR滤波器是一种线性时不变系统,其输出仅取决于输入信号的有限历史记录。与IIR(无限脉冲响应)滤波器相比,FIR滤波器具有无自激振荡、稳定性高和设计灵活等特点。它们广泛应用于音频处理、通信、图像处理和各种...

    基于labview的FIR数字滤波器设计

    通过连接硬件,FIR滤波器可以直接对采集到的模拟信号进行处理,实现硬件在环的系统。 **7. 实际应用** FIR滤波器在通信、音频处理、图像处理、医疗设备等多个领域都有广泛应用。例如,在通信系统中,FIR滤波器可...

    基于dsp的fir滤波器设计

    7. **系统设计**:除了滤波器本身的设计,系统层面的考量也很重要,包括输入输出接口设计、数据格式转换、同步机制等。例如,输入数据可能需要预处理,输出数据可能需要后处理,这些都需要在程序中予以考虑。 综上...

    窗函数设计的FIR滤波器

    8. **滤波器设计**:设计FIR滤波器时,需要考虑关键参数,如通带边缘、阻带边缘、通带纹波、阻带衰减等,并根据需求选择合适的窗函数。 9. **滤波器性能评估**:通过指标如阶数、截止频率、过渡带宽度、群延迟等来...

    基于FPGA的FIR滤波器设计.rar

    2. **硬件映射**:将设计好的FIR滤波器结构映射到FPGA上,这通常涉及到流水线设计、资源优化和时序分析等步骤。流水线技术可以提高处理速度,减少延迟;资源优化旨在最大限度地利用FPGA的逻辑资源,降低成本;时序...

    基于FPGA乘法器的FIR滤波器系统设计.pdf

    设计FIR滤波器时,首先需要确定滤波器的规格和系数,然后进行硬件设计和软件编程。硬件电路的搭建是基础,而FPGA内部程序的编写则是核心。程序模块之间需要协同工作,按照一定的时序和逻辑关系完成信号的采集、滤波...

    MATLAB_GUI设计FIR滤波器(窗函数).doc

    ### MATLAB GUI设计FIR滤波器(窗函数)——详细解析 #### 数字滤波器概览 在数字信号处理领域,滤波器是至关重要的工具,用于从信号中提取有用的信息,消除噪声或干扰。根据其冲激响应的性质,数字滤波器主要分为两...

    降采样FIR滤波器的设计与硬件实现

    总的来说,这种降采样FIR滤波器的设计与硬件实现方法结合了MATLAB工具箱的优势,利用了FIR滤波器系数的对称性和移位相加的硬件结构,有效降低了硬件复杂度,提高了系统的实时处理能力和效率,特别适用于资源有限的...

    FIR滤波器设计资料(这些都是我做DSP的时候收集的)

    9. **学习资源与实践**:这个压缩包可能包含滤波器设计的理论讲解、MATLAB代码示例、滤波器性能分析等内容,是深入理解和掌握FIR滤波器设计的宝贵资料。 10. **进一步研究**:除了基本的FIR滤波器,还可以扩展到多...

    MATLAB设计FIR滤波器方法程序分享-FIR滤波器设计.doc

    《MATLAB设计FIR滤波器详解》 在数字信号处理领域,FIR(Finite Impulse Response,有限长单位脉冲响应)滤波器是一种重要的工具,尤其在MATLAB环境中,设计FIR滤波器的方法既直观又高效。本文将详细讲解FIR滤波器...

    FPGA 实现串行FIR滤波器

    总之,通过理解和实践这个FPGA串行FIR滤波器设计,我们可以掌握数字信号处理在硬件层面的实现,这对于嵌入式系统和高速数据处理应用来说至关重要。同时,这也是一个学习Verilog HDL和FPGA设计流程的绝佳案例。

    CCS FIR滤波器实现

    FIR滤波器是一种线性相位、稳定的数字滤波器,广泛应用于音频处理、通信系统、图像处理等领域,因为它们可以提供精确的频率选择性和良好的瞬态响应。 FIR滤波器的主要特点包括: 1. **线性相位特性**:FIR滤波器的...

    FIR滤波器的Verilog实现

    总的来说,FIR滤波器的Verilog实现是数字信号处理领域的一个重要课题,它结合了数字滤波理论和硬件描述语言的实践应用,对于理解和掌握FPGA设计有着深远的意义。通过深入理解FIR滤波器的工作原理和Verilog编程,我们...

    FIR滤波器 FPGA,QuartusII工程

    总的来说,这个项目展示了从理论设计到硬件实现的完整流程,涵盖了数字信号处理、FPGA编程、以及AD/DA接口设计等多个方面的知识点,对于学习和实践数字信号处理和嵌入式系统设计有着重要的参考价值。

    FIR滤波器、加法器、减法器设计verilog程序~

    在Verilog中设计FIR滤波器,通常需要以下几个步骤: 1. **定义系数**:FIR滤波器的性能主要由其系数决定,这些系数定义了输入信号与过去若干个采样点的线性组合。通常,这些系数存储在一个寄存器数组或分布式RAM中...

    VHDL设计14阶FIR滤波器

    在设计FIR滤波器时,我们需要根据滤波器的需求计算出合适的系数。这些系数可以通过窗口法、频率抽样法或者使用IIR到FIR转换方法得到。描述给定的滤波器已经提供了系数,这表明设计阶段已完成,接下来是实现阶段。 ...

    FPGA技术设计的FIR数字滤波器论文

    1. **并行处理能力**:FPGA的硬件并行性使得它可以同时处理多个数据样本,这在实现高速FIR滤波器时非常关键。相比于软件实现,FPGA可以提供更高的实时处理性能。 2. **灵活性**:FPGA的可编程特性允许设计者根据FIR...

    一种在STM32应用FIR滤波器的设计与实现.pdf

    在嵌入式系统中,微控制器的作用远远超出了协调和控制外围电路的工作,它还可以执行各种算法,包括数字滤波器。...在设计FIR滤波器时,可以根据实际需要选择合适的微控制器和滤波器阶数,以保证系统的实时性和准确性。

    Vivado HLS之Fir滤波器实现

    FIR滤波器是数字信号处理领域中的一个重要组成部分,它广泛应用于音频、图像和通信系统中,用于消除噪声、平滑信号或进行频率选择。 首先,FIR滤波器是一种线性相位、时不变的数字滤波器,其输出是输入信号与一组...

Global site tag (gtag.js) - Google Analytics