基于DSP芯片的语音信号FIR滤波系统

合集下载

(完整版)利用DSP的FIR滤波器设计

(完整版)利用DSP的FIR滤波器设计

题目:利用DSP的FIR滤波器设计数字处理器(DSP)有很强的数据处理能力,它在高速数字信号处理领域有广泛的使用,例如数字滤波、音频处理、图像处理等。

相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等。

使用可编程的DSP芯片实现数字滤波可以通过修改滤波器的参数十分方便地改变滤波器的特性,下面主要说明利用TMS320VC54x DSP芯片设计实现FIR数字滤波器。

设计目的意义一个实际的使用系统中,总存在各种干扰,所以在系统设计中,滤波器的好坏将直接影响系统的性能。

使用DSP进行数字处理,可以对一个具有噪声和信号的混合信号源进行采样,再经过数字滤波,滤除噪声,就可以提取有用信号了。

所以说,数字滤波器是DSP最基本的使用领域,熟悉基于DSP的数字滤波器能为DSP使用系统开发提供良好的基础。

技术指标1、数字滤波器的频率参数主要有:①通带截频:为通带和过渡带的边界点,在该点信号增益下降到规定的下限。

②阻带截频:为阻带和过渡带的边界点,在该点信号衰耗下降到规定的下限。

③转折频率:为信号功率衰减到1/2(约3dB)时的频率,在很多情况下,也常以fc作为通带或阻带截频。

④当电路没有损耗时,固有频率:就是其谐振频率,复杂电路往往有多个固有频率。

2、增益和衰耗滤波器在通带内的增益并非常数。

①对低通滤波器通带增益,一般指ω=0时的增益;高通指ω→∞时的增益;带通则指中心频率处的增益。

②对带阻滤波器,应给出阻带衰耗,衰耗定义为增益的倒数。

③通带增益变化量指通带内各点增益的最大变化量,如果通带增益变化量以dB为单位,则指增益dB值的变化量。

3、阻尼系数和品质因数阻尼系数α是表征滤波器对角频率为ω0信号的阻尼作用,是滤波器中表示能量衰耗的一项指标,它是和传递函数的极点实部大小相关的一项系数。

4、灵敏度滤波电路由许多元件构成,每个元件参数值的变化都会影响滤波器的性能。

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

基于DSP的FIR数字滤波器设计
数 字 滤 波 器 的 实现 方 法 主要 有 I I R滤 波器 和 FR I 滤波 器 两种 ,其 中I 滤 波器 需要 使用 通 用模 I R 拟 滤 波器设计 方 法来进 行设 计 .它 能得 到较 好 的 幅度特 性 ,但 是 相位 特性 是非线 性 的 。为 了得 到 线性 相位 ,它 必须外 加相 位校正 网络 ,而这 会使 滤波 器 的设 计 变得 比较 复杂 ,也会 增加 成 本 ;而 FR滤 波器 则 由有 限个 采样 值 组 成 ,它 可 在保 证 I 幅度 响应满 足指 标要求 的同时 .具有 严 格 的线性
能 。事 实上 ,一个 实 际的应 用 系统 总存在 各种 干 扰 。而使 用D P 行 数 字信 号 处理 可 以从 噪 声 中 S进 提 取信 号 ,即对 一个具 有 噪声 和信号 的混 合 源进 行 采样 ,然后 经过 数字 滤波 器来 滤 除噪声 ,从而 提取 有用 信 号 。用D P 片实 现数 字 滤波 除 了具 S芯 有稳 定 性 好 、精 确 度 高 、不 受 外 界 影 响 等 优 点 外 ,还 具有灵 活性 好 等特点 ,因而可 通过 可 编程 D P 片 来 实现 数字 滤 波 的参 数修 改 ,进 而 十分 S芯
Y()= n () ()+ () ( - )+ n y()= 0 n 1 n1

+ A ) [ ^ ) : X( k ( ( n L1 2 h( L1 一( 】 ) n ) 1 - )


其对 应 的FR滤波器 的传递 函数 为 : I


) hk : () z
K= o
() 2
方便 地 改变 滤波 器 的特 性 。 目前 .基 于D P S 的数
字滤 波 已被 广泛应 用 于语音 、图像 、软件 无 线 电 等 领域 。

基于DSP实现的FIR低通滤波器

基于DSP实现的FIR低通滤波器

基于DSP实现的FIR低通滤波器FIR(有限脉冲响应)低通滤波器是一种常见的数字信号处理(DSP)滤波器。

它的设计和实现非常灵活,可以用于去除数字信号中高频成分,使得信号能在一定的频率范围内进行平滑处理。

FIR低通滤波器有很多种设计方法,其中最简单的方法是基于窗函数设计,例如矩形窗、汉宁窗、布莱克曼窗等。

这些窗函数的选择取决于滤波器的性能要求和频率响应的形状。

在DSP中,FIR低通滤波器的实现可以采用直接形式、级联形式、并行形式和迭代形式等多种结构。

其中直接形式是最简单和直观的实现方式,也是最容易理解和实现的一种结构。

直接形式的FIR低通滤波器由一个延迟线、一组乘法器和加法器组成。

延迟线用于延迟输入信号,乘法器用于对延迟后的信号进行调制,而加法器则将调制后的信号相加得到输出信号。

```----------------------,,,x(n) -->, Delay ,-->, Multiply,-->--+ Sum ,--> y(n)Line ,,,----------------------```在实现过程中,需要注意的是延迟线的设置和乘法器的系数。

延迟线的长度决定了滤波器的阶数,即滤波器对输入信号的响应范围。

乘法器的系数则决定了滤波器的频率响应,可以通过窗函数的选取来确定。

通常,FIR滤波器的实现可以通过查表法或者卷积法来实现。

查表法通过预先计算所有可能的输入组合,并将其存储在一张查找表中,以减少计算量。

卷积法则通过将输入信号和滤波器的冲击响应进行卷积运算来得到输出信号。

当实现FIR低通滤波器时,还需要考虑滤波器的性能指标和算法的优化。

常见的性能指标包括滤波器的截止频率、抗混叠性能、通带和阻带的幅频特性等。

算法的优化可以从以下几个方面考虑:乘法器的系数选择、滤波器结构的选择、滤波器长度的选择和存储器的优化等。

总之,基于DSP实现的FIR低通滤波器是一种常用的数字信号处理滤波器,它可以用于去除数字信号中的高频成分,平滑信号的频谱。

基于DSP的FIR滤波器设计

基于DSP的FIR滤波器设计

一、课题研究的目的和意义:在信号与信息处理中,提取有用信息需要对信号进行滤波。

借助DSP数字信号处理器的高速运算能力,可以实时地对信号进行数字滤波。

本设计要求利用DSP的DMA方式进行信号采集和信号输出,同时对外部输入的信号进行数字滤波。

掌握利用DSP实现信号实时FIR滤波设计可使学生更加透彻的理解信号的采集方法和滤波方法。

学会利用Matlab对信号进行FIR滤波,掌握Matlab的信号仿真。

同时通过对DSP信号处理器及A/D、D/A 转换器以及DMA的编程,可以培养学生C语言编程能力以及使用DSP硬件平台实现数字信号处理算法的能力。

二、课题研究主要内容:1•基本部分:(1)掌握利用滤波器设计FIR滤波器的方法,并提取滤波器参数。

(2)掌握利用Matlab的信号处理工具箱的使用,以及利用Matlab对信号进行滤波。

⑶设计数字滤波算法,或调用DSPLIB中的滤波函数,实现对信号的滤波。

(4)利用C语言对A/D、D/A进行初始化。

(5)利用C语言对DMA进行初始化。

⑹编写DMA中断服务程序,实现信号的实时滤波。

(7)利用CCS信号分析工具分析信号的频谱成分,确定滤波器的参数2•发挥部分:(1)比较加不同窗和阶数时滤波器的滤波效果。

(2)测试所设计滤波器的幅频特性和相频特性,并与MATLIB下的设计结果进行比较。

(3)在实验板的Line in输入端接入正弦信号,分左右声道分别采集,并分别滤波。

三、要求完成的任务:(1)利用Matlab设计FIR滤波器,并对信号进行滤波。

(2)掌握CCS的安装、设置,工程的建立、工程设置、编译运行和调试方法。

(3)编写C语言程序实现设计要求,并在CCS集成开发环境下调试通过,实现设计所要求。

的各项功能。

(4)利用信号发生器产生输入信号,经DSP运算后正确地在示波器上显示。

(5)按要求撰写课程设计报告。

四、研究方法及技术途径:外部模拟信号先进行A/D转换,利用MCBSP勺接收寄存器接收数据。

基于dsp的语音采集及滤波器设计

基于dsp的语音采集及滤波器设计

基于DSP的语音采集与FIR滤波器的设计与实现摘要: 介绍了一种基于TMS320C5402的语音采集与FIR数字滤波器的设计与实现, 采用TLC320AD50作为语音CODEC模块的核心器件, 简述了FIR数字滤波器的特点,以及其在DSP上实现的原理。

利用TMS320C5402对采集到的语音信号进行FIR滤波, 该系统具有较强的数据处理能力和灵活的接口电路,能够满足语音信号滤波的要求, 可以扩展为语音信号处理的通用平台.关键词: 语音采集; FIR滤波器; TMS320C5402数字信号处理是把数字或符号表示的序列, 通过计算机或专用处理设备, 用数字的方式去处理, 以达到更符合人们要求的信号形式。

而语音处理是数字信号处理最活跃的研究方向之一, 在IP电话和多媒体通信中得到广泛应用. 一个完备的语音信号处理系统不但要具有语音信号的采集和回放功能, 还要能够进行复杂的语音信号分析和处理。

通常这些信号处理算法的运算量很大, 而且又要满足实时的快速高效处理要求, 随着DSP技术的发展, 以DSP为内核的设备越来越多, 为语音信号的处理提供了优质可靠的平台. 软件编程的灵活性给很多设备增加不同的功能提供了方便, 利用软件在已有的硬件平台上实现不同的功能已成为一种趋势。

本文设计了一个语音处理系统, 采用定点DSP芯片TMS320C5402作为CPU, 完成对语音信号的采集和滤波处理.1 语音采集系统的设计1. 1 系统总体设计语音采集与处理系统主要包括3个主要部分: 以TMS320C5402 为核心的数据处理模块; 以TLC320AD50为核心的语音采集与编解码( CODEC)模块; 用户根据需要扩展的存储器模块. 系统硬件结构如图1所示.1. 1. 1 CODEC模块本设计选用TLC320AD50( 以下简称AD50) 完成语音信号的A/ D转换和D/ A转换. AD50是TI公司生产的一款集成有A/ D和D/ A的音频芯片, DSP与音频AD50连接后, 可使用一个缓冲串行口来同时实现语音信号的采集和输出, 从而可以节省DSP的硬件开销. AD50使用过采样技术提供从数字信号到模拟信号和模拟信号到数字信号的高分辨率低速信号转换. 该器件包括2个串行的同步转换通道, 分别用于各自的数据传输. 语音信号直接从AD50的模拟信号输入端输入, AD50对其进行采样, 并将采样后的数据传送至DSP. DSP应用相应的算法对数据进行处理, 并将处理后的数据传送到AD50的D/ A输入端. AD50再对DSP处理后的数据进行数模转换, 变为语音信号后输出到音响设备.本系统中TLC320AD50与TMS320C5402之间采用串行通信, 通过DSP芯片的MCBSP串口实现.接口电路如图2所示.1. 1. 2 MCBSP的工作原理TMS320C5402有2个McBSP 多通道缓存串行口. McBSP提供了全双工的通信机制, 以及双缓存的发送寄存器和三缓存的接收寄存器, 允许连续的数据流传输, 数据长度可以为8、12、16、20、24、32; 同时还提供了A律和L律压扩. 数据信号经DR和DX引脚与外设通讯, 控制信号则由CLKX、CLKR、FSX、FSR等4个引脚来实现[ 4]. CPU和DMA控制器可以读取DRR[ 1, 2] 的数据实现接收, 并且可以对DXR[ 1, 2] 写入数据实现发送. 串行口控制寄存器SPCR[ 1, 2] 和引脚控制寄存器PCR用来配置串行口; 接收控制寄存器RCR[ 1, 2] 和发送控制寄存器XCR[ 1, 2]用来设置接收通道和发送通道的参数; 采样率发生器寄存器SRGR[ 1, 2] 用来设置采样率. TMS320C5402芯片串口控制寄存器功能强大, 用户通过编程不但可以设置时钟信号的极性及输入输出方向, 还可以设置同步信号的极性及输入输出方向.1. 1. 3 AD50与DSP的同步通信在应用中, 将TLC320AD50C接至DSP的同步串口, 并将TLC320AD50设置在主动工作模式下, 即由TLC320AD50 提供帧同步信号和移位时钟,TMS320C5402的管脚电压为3. 3V, 可以与AD50直接相连. 串口的移位时钟SCLK由AD发出, 串行数据在SCLK的驱动下经DIN、DOUT 移进、移出, 在SCLK的下降沿采样DIN 数据, 在SCLK下降沿送出数据到DOUT. XF控制首次或二次通信, XF为低时是AD50的首次通信, 是正常的AD、DA的数据; XF为高时是AD50的二次通信, 这时可以读写AD50的4个寄存器. 进入二次通信有软件的方法, 即把AD50设为15+1位数据模式, 最后一位标记下一个数据是否为二次通信数据, 1表示是, 0表示否.一次通信格式的16位都用来传输数据. DAC的数据长度由寄存器1的D0位决定. 启动和复位时, 默认值为15+ 1模式, 最后一位要求二次通信. 如果工作在16位传输模式下, 则必须由FC产生二次通信请求. 二次通信格式则用来初始化和修改TLC320AD50C内部寄存器的值. 在二次通信中可通过向DIN写数据来完成初始化.二次通信格式如图3所示, D13= 1表示读DIN的数据, D13= 0表示向DIN 写数据.系统复位后, 必须通过DSP 的DX接口向TLC320AD50C的DIN 写数据, 因为采用一片TLC320AD50C, 只需初始化寄存器1、寄存器2、寄存器4. 由于通信数据长度为16位, 初始化是应通过RCR1和XCR1设置McBSP的传输数据长度为16.2 语音采集语音信号的采集, 是通过话筒经模拟放大输入到AD50, AD50作相应的低频滤波并进行A/ D转化, 再通过MCBSP通道输入DSP芯片. 语音信号采集程序包括以下几个部分:( 1) DSP初始化. 对DSP的寄存器以及缓冲串口进行初始化.( 2) AD50初始化. 通过DSP的缓冲串口和XF引脚对AD50进行初始化, 再设置AD50的4个控制寄存器; 确定AD50的4个控制寄存器设置正确后,AD50才能开始采集数据. 此时, 可以用示波器检测AD50的DOUT引脚, 能发现引脚是否有连续的信号输出.( 3) 设置DSP的中断, 从缓冲串口读取数据. 如果此时在缓冲串口连续读取数据, 就可以在仿真软件CCS中查看读取的数据是否正确.( 4) DSP存放数据. 可以将缓冲串口读取的数据存放到DSP的RAM单元, 连续存放, 可通过CCS的图形显示功能判断AD50采样的数据是否正确.3 语音滤波语音去噪在语音信号上应用较多, 在实质上和普通的数字信号去噪没有什么区别, 使用滤波器和各种算法均可以实现语音信号的去噪, 使得含有噪声的信号更加清晰. 但语音信号的去噪和一般的数字信号去噪又存在着很大的差别, 因为语音信号的频谱覆盖在100Hz~3. 4kHz, 较为丰富的信号主要集中在1kHz 附近, 所以一般的滤波去噪时必须考虑语音信号的自身特征.本系统中应用的AD50内置了低通滤波器, 可以通过设置来有效滤除信号中混杂的高频干扰信号, 而对于低于100Hz的干扰信号, 则无能为力. 因此, 要用DSP进行编程设计一个软件可实现高通滤波器, 由处理器来完成信号的去噪, 采用FIR滤波.3.1 FIR滤波器的基本结构及特点有限冲激响应( FIR)滤波器的基本结构是一个分节的延时线, 把每一节的输出加权累加, 得到滤波器的输出. 数学上表示为y(n) =EN-1n=0h(n)x(n-m), (0[ n[ N- 1) (1) 对(1)式进行Z变换, 整理后可得出FIR滤波器的传递函数为H(z) = EN-1n=0h(n)z-n, (0[ n[ N- 1) (2)由( 2)式可知FIR滤波器的一般结构如图1所示.图1 FIR数字滤波器直接实现形式3.2 FIR滤波器的DSP实现原理由( 1)式可知, FIR滤波器的冲激响应为h(0), h(1), ,, h(N- 1). x(n)表示滤波器在n时刻的输入, 则n时刻的输出为y(n) = h(0)x(n) +h(1)x(n- 1) + ,+ h(N- 1)x[ n- (N- 1) ],这是一个乘、加的过程, 可以使用DSP中的MAC 指令实现该运算. 图2说明了使用循环寻址实现FIR滤波器的方法. 为了能正确使用循环寻址, 必须先初始化BK, 块长为N. 同时, 数据缓冲区和冲激响应( FIR滤波器的系数)的开始地址必须是大于N的2的最小幂的倍数. 例如, 当N= 11时, 大于N的最小2的幂为16, 则数据缓冲区的第一位地址应该是16的倍数, 因此数据缓冲区起始地址的最低4位必须是0.在图2中, 滤波系数指针初始化时指向h(N- 1), 经过一次FIR滤波计算后, 在循环寻址的作用下,仍然指向h(N- 1). 而数据缓冲区指针指向的是需要更新的数据, 如x(n). 在写入新数据并完成FIR运算后, 该指针指向x(n- (N- 1)) , 所以, 使用循环寻址可以方便地完成滤波窗口数据的自动更新.4 FIR滤波器设计实例给定FIR数字带通滤波器的技术指标为: 2个通带截止频率分别为4kHz和6kHz, 2个阻带截止频率分别为3kHz和7kHz, 采样频率均为25kHz. 输入为一个混合信号f = [ cos(2000Pt) + cos(10000Pt) + cos(20000Pt)] /6,利用Matlab设计FIR带通滤波器的系数, 将得到的滤波器系数乘以32768(即215)后舍尾取整可得DSP中滤波器系数列表. 用. word汇编命令将各滤波器系数直接输入到DSP程序中; 模拟输入数据由C语言程序实现, 然后用. copy命令将C语言程序生成的数据文件firinput拷贝到DSP程序中. DSP程序实现读入数据、滤波、显示波形等方面的任务. 完成FIR滤波器的程序框图如图3所示, 可知FIR滤波器的DSP实现主要由以下4方面的内容组成.4.1 模拟输入数据的生成用C语言程序生成输入数据, 通过. copy汇编命令将生成的数据文件拷贝到汇编程序中, 作为FIR滤波器的输入数据. C语言程序运行后所生成的数据文件名为firinpu,t 生成firinput数据文件的C语言程序如下所示:#include"stdio. h"#include"math. h"main( ){int ;idouble f[ 256];FILE*fp;if( ( fp= fopen( "e: \ \ firinput", "wt") ) = =NULL){printf( "canct openfile! \n");}for( i=0; i< =255; i++ ){f[ i] =( cos( 2* 3. 14159265* *i 1000/25000) + cos( 2* 3. 14159265* *i 5000/25000) +cos( 2* 3. 14159265* *i 10000/25000) ) /6;fprintf( fp, " . word %ld\n", ( long) ( f[ i]* 32768) );}fclose( fp);}4.2 DSP初始化程序 DSP初始化程序包括了对堆栈指针( SP)、软件等待状态寄存器( SWWSR)、中断寄存器( IFR)、中断屏蔽寄存器( IMR)以及处理器工作状态寄存器( PMST)的初始化; 另外还对各变量赋值, 具体的程序如下: . def _c_int00. mmregsswcr . set 2bht_ar2 . set 066ht_ar3 . set 067hout_wave_buf . set 0d00hdata_in . set 0f00hN . set 51fir_coef_buf . set 100hfir_data . set 200h. textrs b_c_int00_c_int00:stm#2020h, pmstssbx intmssbx sxmssbx frctstm #10h, 26hstm #10h, 36hstm #0ffh, spld #0, dpstm #0ffffh, ifrstm #20h, imrstm #02492h, swwsrstm #0, swcr可看出, FIR滤波器的系数列表将存在100h开始的单元中, 输入数据将存在200h开始的单元中, 而输出数据将存在0d00h开始的单元中.4.3 滤波系数以及输入数据的调入由于滤波器系数一开始是存在程序存储器中, 输入数据则是存在程序外的文件中, 程序对这2组数据进行处理时, 需要把两者都调到数据存储器中, 具体实现程序如下:stm #fir_data, ar6rpt #255mvpd #inpu,t*ar6+stm #fir_coef_bu,f ar6rpt #N-1mvpdfir_coe,f*ar6+stm #fir_coef_bu,f t_ar2stm #fir_data, t_ar3这段程序实现的是把输入数据调到以200h开始的单元, 而把滤波系数调到从100h开始的单元.4.4 滤波子程序一次滤波的过程实质上就是对2组数进行有规律的乘加计算, 具体程序如下:fir:mvdm #t_ar2, ar2 ; 将起始滤波系数地址100h 赋给ar2mvdm #t_ar3, ar5 ; 将起始输入数据地址200h 赋给ar5stm #data_in, ar3 ; ar3=0f00hstm #255, brc ; 定义块循环次数rptbdloop-1 ; 定义块循环结束地址stm #N, bk ; 定义循环缓冲器大小ld *ar5+, a ; 将新数据读到累加器a中 stl a,*ar3+% ; 将新数据读入栈顶rptz a, #(N-1) ; 定义循环次数, 之前先将a累加器清0mac *ar2+0%,*ar3+0%, a ; a=ar2*ar3+a, 每完成一次计算ar2、ar3 ; 指针所对应地址+1sth a, * ar6+ ; 将计算结果保存输出loop这个程序段将重复执行256次, 从而实现对于数据的读入、处理、输出等功能.5 结语本文介绍了一个实时数据采集处理系统的设计和实现, 系统以DSP芯片和TLC320AD50芯片为核心,有很强的数据处理能力和灵活的外围接口电路, 实验证明, 可较好地实现语音的滤波. 该系统可扩展为3G手机语音识别系统, 也可以作为语音信号处理算法研究和实时实现的通用平台参考文献: :[ 1] 邹彦. DSP原理及应用[ M]. 北京:电子工业出版社, 2005.[2] 乔瑞萍, 崔涛,张芳娟. TMS320C54x原理及应用[M].西安: 西安电子科技大学出版社, 2005.[3] 黄海波, 蒋伟荣. 通用语音处理系统的DSP实现[ J] . 微计算机信息, 2006,22( 5) :173- 175.[4] 张勇, 曾炽祥,周好斌. TMS320C5000系列DSP汇编语言程序设计[M]. 西安:西安电子科技大学出版社, 2004.[ 5] 卢山, 田野,郭黎利. 利用DSP技术实现FIR滤波器[ J]. 应用科技, 2002, 29( 11): 19-21.[ 6] 张伟利, 朱煜. FIR滤波器在TMS320C5402中的实现[ J].微处理机, 2005( 2): 4- 6.。

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文研究背景数字信号处理在现代通信、音视频处理、图像处理等领域中起着至关重要的作用,数字滤波器是数字信号处理中的重要内容。

其中FIR数字滤波器是一种常用的滤波器,其具有线性相位和稳定性等特点,在数字信号处理中应用广泛。

因此,本毕业设计将以FIR 数字滤波器为研究对象,结合DSP平台,进行数字滤波器的设计与仿真研究。

研究目标本文旨在设计一种基于DSP的FIR数字滤波器,并且研究其性能和仿真效果。

主要目标包括:1. 掌握DSP平台的开发流程和设计方法,包括硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,包括硬件和软件两个方面,满足设计要求。

4. 仿真FIR数字滤波器的性能和效果,验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

研究方法本研究采用如下方法:1. 研究DSP平台的开发流程和设计方法,包括使用硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,采用Verilog语言描述硬件电路,C语言编写软件程序。

4. 利用模拟工具对FIR数字滤波器进行仿真,测试性能和效果。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

预期结果本研究预期可以达到如下结果:1. 掌握DSP平台的开发流程和设计方法,能够应用于数字信号处理和嵌入式系统开发等领域。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧,能够进行数字信号处理相关工作。

3. 基于DSP平台设计实现FIR数字滤波器,满足设计要求,具有较好的性能和稳定性。

4. 仿真FIR数字滤波器的性能和效果,能够验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法,具有较好的表达和撰写能力。

基于DSP实现的FIR低通滤波器

基于DSP实现的FIR低通滤波器

基于DSP实现的FIR低通滤波器FIR(Finite Impulse Response)低通滤波器是一种数字信号处理(DSP)算法,用于滤除输入信号中高于一些截止频率的频域成分,并使输出信号只包含低于该截止频率的成分。

FIR低通滤波器通常由一组脉冲响应函数(Impulse Response)的加权和组成,其中权重决定了滤波器的频率响应。

实现FIR低通滤波器的一种常见方法是使用离散时间线性卷积运算。

滤波器的输入信号通过一个延迟线数组,然后与一组权重向量进行内积。

该内积计算的结果即为滤波器的输出。

在DSP领域,用于实现FIR低通滤波器的算法有很多种,其中最常用的是基于迭代结构(Direct Form)的算法。

此算法按照滤波器的脉冲响应函数的长度进行迭代,每次迭代处理输入信号的一个样本。

该算法的优点是实现简单、稳定可靠。

下面是一个基于DSP实现的FIR低通滤波器的伪代码示例:```python#定义滤波器的截止频率和脉冲响应函数长度def cutoff_frequency = 1000 # 截止频率为1kHzdef length = 101 # 脉冲响应函数长度为101#初始化滤波器的权重向量def weights = [0.0] * length#计算滤波器的脉冲响应函数for i in range(length):#计算当前权重对应的频率frequency = i * sampling_rate / length#如果当前频率小于截止频率,则设置权重为1,否则为0weights[i] = 1 if frequency <= cutoff_frequency else 0#初始化输入和输出信号数组def input_signal = [0.0] * signal_lengthdef output_signal = [0.0] * signal_length#循环处理输入信号的每个样本for i in range(signal_length):#延迟线数组移位,并将当前输入样本放入延迟线的第一个位置delay_line[1:] = delay_line[:-1]delay_line[0] = input_signal[i]#计算滤波器的输出output_signal[i] = sum(delay_line * weights)```这段示例代码实现了一个FIR低通滤波器,截止频率为1kHz,脉冲响应函数长度为101、首先,根据截止频率计算出权重向量。

基于DSP的语音信号FIR滤波系统的实现

基于DSP的语音信号FIR滤波系统的实现
产 生很 大 的误差 。 为了避 免 产生 很 大 的误差 ,本
的新 一代 数 字 信 号 处 理 产 品 。 对 C 4 5 X有很 好 的 继承 性 ,并 与C 4 源 代码 兼 容 ,从 而能 有 效地 保 5x
护 用 户 在 软 件 上 的投 资 。此 外 ,它 还 具 有 低 功
收稿 日期 : 0 7 1 - 5 2 0 — 1 1
维普资讯
第2卷年5 10 第 5 0 08 月期
蘧错
Vl o o1 N. _ 0 5
M a .20 v l 08
基 于D P S 的语音信号 F 滤波系统 的实现 I R
徐 向 美 . 黄 乡生 木
( 东华理 工 大学 电子与机 械 工程 学院 ,江 西 抚 州 3 4 0 ) 4 0 0
波 .从 而改善 了声音 质量 。
关 键 词 :D P 术 ;语 音 信 号 采 集 ;nR滤 波 S技
0 引 言
在 现代 通信 系统 中 ,各 种 数 字 滤波 器 已经得 到 了广 泛 的应 用 。然 而 ,设计 实 际 滤波 器 时 ,既 要 考 虑 滤波 器 的 幅度 特 性 ,又 要 考 虑 相位 特性 , 所 以 .本 文提 出 了用 D P 片T 3 0 C 5 9 对 S芯 MS 2 V 5 0 A 语 音信 号 进 行 FR滤 波 的 系统 实 现方 法 。该 方 法 I
望 设计 的滤 波 器 传输 函数 为Hd( ,h 1 e a()是 与 7 ,
其 对应 的单 位脉 冲 响应 ,那 么有 :
是 l 位 、2 位 、2 位 和3 位 ,采 样 频率 范 围可从 6 0 4 2
8 H 到9 H ,并 可通 过 控制 接 口来 编辑 该 器件 z 6k z k 的 控 制 寄 存 器 。T V 2 A C 3 持S I 2 两 种 L 3 0 I2 支 P ,I C 控 制模 式 ,其控 制 模 式 由MOD M管 脚 决 定 。本 E
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。

随着微处理技术的快速发展,微处理器芯片的集成度从最早的几千个晶体管发展到现在的上亿个晶体管,字长从4位提高到了64位,正是这些技术的飞速发展引发了一轮又一轮的信息产业革命,而人们的生活、学习和工作方式也在以计算机技术、通信技术为核心的信息技术的影响下发生着前所未有的改变。

然而在这次设计中,比较核心的是数字滤波器,数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。

滤波的目的。

根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。

与IIR滤波器相比,FIR滤波器只有零点,除原点外.在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,FIR 滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是IIR 滤波器难以实现的。

因此。

它在高保真的信号处理.如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。

对于本设计主要是利用一个DSP芯片来进行语音采集系统的设计,而数字信号处理技术的发展使得采用数字化的方法实时的处理语音信号成为可能。

早期的语音信号处理均是采用模拟处理,对声音信号最常用的滤波、相关、谱分析等运算,部分采用模拟电路来实现的。

这种传统的模拟方法处理语音信号,硬件设备昂贵,不能升级、产品生命周期短,而采用数字处理技术处理语音信号具有抗干扰性强、便于传输和处理等优点,代表着语音处理技术的发展方向。

DSP芯片高速、可编程的特点使其非常适合于语音信号处理领域。

一、设计所用软件介绍1.1 FIR滤波器及它的工作原理FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。

因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,把模拟信号转化为数字信号;为了使信号处理能够不发生失真,信号的采样速度必须满足奈奎斯特定理,一般取信号频率上限的4-5倍做为采样频率;一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。

FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

1.2 CCS软件CCS(Code Composer Studio数据设计工作室)代码调试器是一种合成开发环境。

它是一种针对标准TMS320调试器接口的交互式方法。

CCS目前有CCS1.1,CCS1.2 和CCS2.0等三个不同时期的版本,又有CC2000 ( 针对C2XX ),CCS5000 ( 针对C54XX )和CCS6000 (针对C6X )三个不同的型号。

我们所使用的是CCS50002.0的版本。

CCS5000具有以下特性:TI编译器的完全集成的环境:CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows 环境中。

对C和DSP汇编文件的目标管理:目标编辑器保持对所有文件及相关内容的跟踪。

它只对最近一次编译中改变过的文件重新编译,以节省编译时间。

高集成的编辑器调整C和DSP汇编代码:CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。

使用户能很容易地阅读代码和当场发现语法错误。

编辑和调试时的后台编辑:用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。

在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。

在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在Windows95和Windows-me中支持多处理。

PDM(调试管理器)允许将命令传播给所有的或所选择的处理器。

在任何算法点观察信号的图形窗口探针:图形显示窗口使用户能够观察时域或频域内的信号。

对于频域图,FFT(快速傅立叶变换)在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。

图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。

文件探针在算法处通过文件提取或加入信号或数据:CCS5000允许用户从PC机读或写信号流。

而不是实时的读信号,这就可以用已知的例子来仿真算法。

图形分析:CCS5000的图形分析能力在其环境中是集成的。

在后台(系统命令)执行用户的DOS程序:用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。

且允许用户将应用程序集成到CCS5000。

技术状态观察窗口:CCS5000的可视窗口允许用户进入C表达式及相关变量。

结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。

代数分解窗口:允许用户选择查看写成代数表达式的C格式,提高可读性。

目标DSP上的帮助:DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。

用户扩展:扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。

操作流程图1.3MATLAB软件介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。

是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

二、设计原理及步骤2.1滤波器原理数字滤波器有两类:IIR数字滤波器和FIR数字滤波器。

FIR滤波器是有限长单位冲激响应滤波器,在结构上是非递归型的。

它可以在幅度特性随意设计的同时,保证精确严格的线性相位。

线性相位特性在实际应用中非常重要,如在数据通信、图像处理、语音信号处理等领域,往往都要求具有线性相位特性。

并且由于FIR 滤波器的单位脉冲响应有限长,系统不存在非稳定现象,我们总能用因果稳定系统来实现FIR 滤波器。

FIR 主要的不足在于其较好的性能是以较高的阶数为代价换来的,对于相同的设计指标,FIR 滤波器所要求的阶数比IIR 滤波器高2~5 倍,信号的延迟偏大。

因此,在保证相同性能的前提下,尽量降低其阶数是FIR 数字滤波器设计的目标之一。

FIR滤波器是有限长单位冲激响应滤波器,它具有以下独特的优点:(1)可以在幅度特性随意设计的同时,保证精确、严格的线性相位;避免被处理的信号产生相位失真,这一特点在宽频带信号处理、阵列信号处理、数据传输等系统中非常重要; (2)由于FIR滤波器的单位脉冲响应h(n)是有限长序列,因此FIR滤波器没有不稳定的问题; (3)由于FIR滤波器一般为非递归的结构,因此在有限精度运算下,不会出现递归结构中极性震荡等不稳定现象,误差较小。

FIR滤波器的数学表达式为:(2-1)式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波器第i级抽头系数。

其相应的z变换为:(2-2)式中:z-i为N-1阶多项式。

图2.1 FIR滤波器的直接型结构2.2MATLAB设计数字滤波器的设计可以使用MATLAB(线性代数计算)软件,它是一种功能强、效率高、便于进行科学和工程计算的交互式软件包。

MATLAB中的工具箱(Toolbox)包含许多实用的程序。

滤波器设计就包含在Toolbox下的signal中。

下面简单介绍一下用MATLAB设计FIR滤波器的方法。

(1)设计低通FIR滤波器(采用Hamming窗):B=FIR1(N,Wn)其中,N为滤波器的阶数,Wn为归一化截至频率,0.0<Wn<1.0,1.0对应于半抽样速率。

返回值B为一个N+1维矢量,即滤波器系数。

(2)设计高通FIR滤波器(采用Hamming窗):B=FIR1(N,Wn,’high’)其中,N和Wn的含义与低通滤波器相同。

(3)设计带通FIR滤波器(采用Hamming窗):B=FIR1(N,Wn)其中,Wn是一个二维矢量,Wn=[W1,W2],W1和W2分别对应于阻带的低端频率和高端频率。

还可以设计其他类型的滤波器,具体查阅MATLAB参考书籍。

还有另一个比较直观的设计滤波器的方法,利用MATLAB里的Filter Design & Analysis Tools设计滤波器比较直观。

Fliter Type选择低通,高通,带通或者带阻滤波器。

Design Method选择IIR还是FIR滤波器,后面下拉菜单选择类型,程序里采用的是加窗类型。

Fliter Order选择滤波器的阶数,程序中采用63阶,即系数为64点。

相关文档
最新文档