基于DSP的语音信号FIR低通滤波器设计
基于DSP的FIR 滤波器的设计
1 前言本课程是电子信息工程专业的专业基础课,目的为通过对课程设计任务的完成,使学生理解课程教学的理论内容,并且能够掌握和熟悉DSP的开发流程和基本的编程方法。
FIR滤波器具有严格的线性相位特性,由于图像处理、数据传输等以波形携带的信息系统。
在数字信号处理中,滤波占有极其重要的地位。
数字滤波是数字信号处理的一个基本方法。
一个DSP芯片执行数字滤波算法的能力,反应了这种芯片的功能大小。
本文介绍了数字滤波器的工作原理,给出了采用窗函数法设计FIR,并利用MATLAB软件进行辅助设计,同时使用CCS应用软件来对一段音频信号进行低通滤波的仿真与调试.从而实现DSP数字低通滤波的设计方法。
FIR数字滤波器广泛地应用于数字信号处理领域,本文对FIR滤波器的工件原理和设计方法进行了简单的介绍。
文中采用窗函数法设计FIR数字滤波器,给出了TMS320VC5402的编程语句及其仿真波形。
2 FIR滤波器基本原理一个截止频率为ωc(rad/s)[1]的理想数字低通滤波器,其表达式是:这个滤波器在物理上是不可实现的,因为冲激响应具有无限性和因果性。
为了产生有限长度的冲激响应函数过截短保留冲激响应,可以加窗函数将其截短,通过截短保留冲激响应的中心部分,就可以获得一个线性相位的FIR滤波器。
例如,使用一个简单的矩形窗设计一个长度N=127,截止频率ωc=π/2的低通滤波器,冲激响应h(n)可表示为:一般来说,FIR数字滤波器输出y(n)的Z变换形式Y(z)与输入x(n)的Z 变换形式之间的关系如下:实现结构如图1所示。
从上面的Z变换和结构图可以很容易得出FIR滤波器的差分方程表示形式。
在实际的FIR滤波器的设计中,一般采用计算机辅助设计。
Matlab是一套功能强大的适应于科学工程计算的可视化高性能语言,他提供了2种窗函数方法设计FIR 滤波器:一种是标准通带滤波器的设计FIR1;一种是多带FIR滤波器的设计FIR2。
函数FIR1只能设计标准的低通、高通、带通和带阻线性相位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低通滤波器FIR(有限脉冲响应)低通滤波器是一种常见的数字信号处理(DSP)滤波器。
它的设计和实现非常灵活,可以用于去除数字信号中高频成分,使得信号能在一定的频率范围内进行平滑处理。
FIR低通滤波器有很多种设计方法,其中最简单的方法是基于窗函数设计,例如矩形窗、汉宁窗、布莱克曼窗等。
这些窗函数的选择取决于滤波器的性能要求和频率响应的形状。
在DSP中,FIR低通滤波器的实现可以采用直接形式、级联形式、并行形式和迭代形式等多种结构。
其中直接形式是最简单和直观的实现方式,也是最容易理解和实现的一种结构。
直接形式的FIR低通滤波器由一个延迟线、一组乘法器和加法器组成。
延迟线用于延迟输入信号,乘法器用于对延迟后的信号进行调制,而加法器则将调制后的信号相加得到输出信号。
```----------------------,,,x(n) -->, Delay ,-->, Multiply,-->--+ Sum ,--> y(n)Line ,,,----------------------```在实现过程中,需要注意的是延迟线的设置和乘法器的系数。
延迟线的长度决定了滤波器的阶数,即滤波器对输入信号的响应范围。
乘法器的系数则决定了滤波器的频率响应,可以通过窗函数的选取来确定。
通常,FIR滤波器的实现可以通过查表法或者卷积法来实现。
查表法通过预先计算所有可能的输入组合,并将其存储在一张查找表中,以减少计算量。
卷积法则通过将输入信号和滤波器的冲击响应进行卷积运算来得到输出信号。
当实现FIR低通滤波器时,还需要考虑滤波器的性能指标和算法的优化。
常见的性能指标包括滤波器的截止频率、抗混叠性能、通带和阻带的幅频特性等。
算法的优化可以从以下几个方面考虑:乘法器的系数选择、滤波器结构的选择、滤波器长度的选择和存储器的优化等。
总之,基于DSP实现的FIR低通滤波器是一种常用的数字信号处理滤波器,它可以用于去除数字信号中的高频成分,平滑信号的频谱。
基于DSP芯片的语音信号FIR滤波系统
摘要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
随着微处理技术的快速发展,微处理器芯片的集成度从最早的几千个晶体管发展到现在的上亿个晶体管,字长从4位提高到了64位,正是这些技术的飞速发展引发了一轮又一轮的信息产业革命,而人们的生活、学习和工作方式也在以计算机技术、通信技术为核心的信息技术的影响下发生着前所未有的改变。
然而在这次设计中,比较核心的是数字滤波器,数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域。
滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
与IIR滤波器相比,FIR滤波器只有零点,除原点外.在z平面上没有极点,因此总是稳定的和可实现的;更重要的是,FIR 滤波器在满足一定的对称条件下,可以获得严格的线性相位特性,这一点是IIR 滤波器难以实现的。
因此。
它在高保真的信号处理.如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。
对于本设计主要是利用一个DSP芯片来进行语音采集系统的设计,而数字信号处理技术的发展使得采用数字化的方法实时的处理语音信号成为可能。
早期的语音信号处理均是采用模拟处理,对声音信号最常用的滤波、相关、谱分析等运算,部分采用模拟电路来实现的。
这种传统的模拟方法处理语音信号,硬件设备昂贵,不能升级、产品生命周期短,而采用数字处理技术处理语音信号具有抗干扰性强、便于传输和处理等优点,代表着语音处理技术的发展方向。
基于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设计低通滤波C语言编写
DSP的FIR设计低通滤波C语言编写FIR(有限脉冲响应)滤波器是一种常用的数字滤波器,用于数字信号处理中的滤波操作。
FIR滤波器的设计通常包括两个主要步骤:滤波器的规格化和滤波器系数的计算。
滤波器的规格化是指确定滤波器的采样频率,截止频率以及陷波增益等参数。
在设计低通FIR滤波器时,我们需要确定滤波器的截止频率。
假设我们希望设计一个截止频率为Fs/4的低通FIR滤波器,其中Fs是采样频率。
根据滤波器设计的基本原理,我们可以得到滤波器的频率响应公式为:H(k) = (2 * Fs/4 * sin(2 * pi * Fs/4 * k))/(pi * k)其中,k是从0到N-1的整数序列,N是滤波器的长度。
经过频域设计,我们可以通过计算滤波器的频率响应公式来获得滤波器的系数。
接下来,我们将使用C语言编写一个低通FIR滤波器的代码示例。
在这个示例中,我们将实现一个截止频率为Fs/4的低通FIR滤波器,采样频率为Fs。
代码如下:```c#include <stdio.h>#include <stdlib.h>#include <math.h>//定义滤波器的长度#define N 51//定义采样频率//定义滤波器的截止频率#define Fc (Fs/4)//计算滤波器的系数void calculateCoefficients(float* coefficients)float sum = 0;for (int k = 0; k < N; k++)if (k == N/2)coefficients[k] = 2 * Fc/Fs;} elsecoefficients[k] = (sin(2.0 * M_PI * Fc * (k - N/2) / Fs)) / (M_PI * (k - N/2));}sum += coefficients[k];}//归一化滤波器的系数for (int k = 0; k < N; k++)coefficients[k] /= sum;}//应用滤波器void applyFilter(float* input, float* output, float* coefficients, int length)for (int n = 0; n < length; n++)output[n] = 0;for (int k = 0; k < N; k++)if (n - k >= 0)output[n] += input[n - k] * coefficients[k];}}}int mai//定义输入信号和输出信号的长度int length = 100;//为输入信号和输出信号分配内存空间float* input = (float*)malloc(length*sizeof(float));float* output = (float*)malloc(length*sizeof(float));//为滤波器的系数分配内存空间float* coefficients = (float*)malloc(N*sizeof(float));//生成输入信号for (int n = 0; n < length; n++)input[n] = sin(2.0 * M_PI * 1000 * n / Fs);}//计算滤波器的系数calculateCoefficients(coefficients);//应用滤波器applyFilter(input, output, coefficients, length); //打印输出信号for (int n = 0; n < length; n++)printf("%f\n", output[n]);}//释放内存空间free(input);free(output);free(coefficients);return 0;```在上面的代码示例中,我们首先定义了滤波器的长度、采样频率以及截止频率。
基于DSP的FIR滤波器设计
《DSP原理与技术》实验报告姓名:XXX学号:XXXX院系:航天学院控制科学与工程系指导老师:XXX2011年5月25日1 FIR 滤波器的设计与DSP 实现1.1 FIR 滤波器的理论基础FIR 滤波器即有限长冲击响应滤波器的单位冲击响应()h n 是有限长的(01n N ≤≤-),其Z 变换为1()()N n n H z h n z --==∑在有限Z 平面(0z ∞ )内有(1N -)个零点,在Z 平面的原点0z =处有(1N -)阶极点。
()h n 的频率响应()j H e ω为10()()N j j n n H e h n e ωω--==∑当单位冲击响应序列()h n 为实序列时,()j H e ω表示成()()()j j H e H e ωθωω=当具有线性相位即()θωτω=-或()θωβτω=-当满足条件()θωτω=-可得出12N τ-=()(1)h n h N n =--上式即为FIR 滤波器具有线性相位条件的充要条件,它要求单位冲击响应序列()h n 是以12N n -=为对称中心的偶对称序列。
当满足条件()θωβτω=-可得出 2πβ=±12N τ-=()(1)h n h N n =---此时要求单位冲击响应序列()h n 是以12N n -=为对称中心的奇对称序列。
鉴于工程实际应用,具有线性相位的FIR 滤波器具有更加广阔的应用。
对于非线性相位的FIR 滤波器,一般可以用IIR 滤波器来代替。
同样幅度特性,IIR 滤波器所需阶数比FIR 滤波器所需阶数少得多。
1.2 FIR 滤波器的设计常见的FIR 滤波器设计方法包括窗函数设计法和频率采样设计法。
这里讨论用窗函数设计方法设计数字低通滤波器。
理想的数字低通滤波器的频率响应如图1.2.1所示。
根据傅立叶逆变换,由图1.2.1可得其单位脉冲响应()h n 为0()sin()0cc n h n n n nππΩ⎧=⎪⎪=⎨Ω⎪≠⎪⎩ 此时()h n 是一个无限长的偶对称序列。
基于DSP的FIR滤波器设计
DSP课程设计选题名称:基于DSP的FIR滤波器的设计与仿真校院:南京师范大学物科院专业:电子信息工程姓名:季玲玲学号:07090423摘要:DSP作为一门新兴学科,越来越引起人们的关注,目前已广泛应用在各个领域。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
本文主要介绍基于DSP数字滤波器设计,使用CCS实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。
文中采用线性缓冲区和带移位双操作寻址方法实现FIR滤波器。
以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现,实现时,先在CCS仿真开发,然后加载。
利用DSP来快速设计FIR数字滤波器的方法,寻找系数的快速传递,MATLAB中调试仿真DSP程序。
关键词:数字滤波器,Matlab,FIR,CCS一.实验设计1 .设计目的和要求本文主要介绍基于DSP数字滤波器设计,使用CCS5000Simulator 实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。
文中采用线性缓冲区和带移位双操作寻址方法实现FIR滤波器。
通过课程设计,加深对DSP芯片TMS320C54x 的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。
学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。
2系统功能介绍一个实际的应用系统中,总存在各种干扰。
数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。
在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。
基于DSP的FIR数字滤波器的设计与实现
摘要数字滤波器是数字信号处理中最重要的组成部分之一,数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置,可作为应用系统对信号的前期处理。
用DSP芯片实现的数字滤波器具有稳定性好、精确度高、灵活性强及不受外界影响等特性。
因此基于DSP实现的数字滤波器广泛应用于语音图像处理、数字通信、频谱分析、模式识别、自动控制等领域,具有广阔的发展空间。
本文首先介绍了数字滤波器的概念及分类,以及数字滤波器的实现方法。
在理解FIR滤波器的工作原理及其设计方法的基础上,在MATLAB环境下利用矩形窗设计实现FIR滤波器。
然后通过DSP结合CCS2.0软件进行编程,最终实现了基于DSP的FIR数字低通滤波器的设计。
仿真结果表明,基于DSP实现的滤波器具有稳定性好、精确度高、灵活性强等优点,并能实现对信号的实时滤波。
关键词FIR数字滤波器;DSP;窗函数法;MATLAB;TMS320C5402Design and Realization of FIR digital filter Based on DSPSang JianjunDepartment of Physics and Electronic information , Huai Bei Normal University 235000Abstract A digital filter, which is one of the most important parts of digital signal processing, is an algorithm or a device made of digital on time-multiplier, adder and delay of elements. It can be used to be the pretreatment of signal by application program. The FIR digital filter Based on DSP has many features ,such as uninfluenced ,high accuracy ,good stability and highly flexible .The digital filter is widely used in fields of speech image processing, digital communication, spectrum analysis, pattern recognition and automatic control, etc. It will has broad space for development.This paper firstly introduces the concept of digital filter ,classification, and the realization method of digital filter. On the basis of understanding FIR filters working principle and design method , we use rectangular window to realize the design of FIR low-pass filters under the MATLAB environment. Then ,making the design of FIR digital low-pass filters come true through programming by combination of the DSP and CCS2.0. The simulation results show that the filter based on DSP realizing have good stability, high precision, flexibility,etc, and can also realize real-time filtering.Key words FIR digital filter;DSP;Window method;MATLAB;TMS320C5402目次1 引言 (1)1.1数字滤波器的概念 (1)1.2数字滤波器的分类 (1)1.3数字的滤波器的发展及其优越性 (2)1.4数字滤波器的实现方法 (2)2 FIR数字滤波器的设计原理及MATLAB的实现 (4)2.1FIR数字滤波器的基本网络结构 (4)2.2FIR数字滤波器的设计方法 (4)2.3FIR数字滤波器的MATLAB的实现 (7)3 基于DSP的FIR数字滤波器的设计与实现 (9)3.1DSP芯片的概述 (9)3.2FIR数字滤波器的DSP实现 (11)结论 (15)参考文献 (16)致谢 (17)1 引言随着信息时代的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。
dsp实验报告 fir实验报告
dsp实验报告 fir实验报告DSP实验报告:FIR实验报告引言:数字信号处理(Digital Signal Processing,DSP)是一门研究如何对数字信号进行处理和处理的学科。
其中,滤波器是数字信号处理中最常用的技术之一。
本实验报告旨在介绍FIR(Finite Impulse Response)滤波器的原理、设计和实现过程,并通过实验验证其性能。
一、FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出信号仅由输入信号的有限个历史样本决定。
其基本原理是将输入信号与滤波器的冲激响应进行卷积运算,以实现对输入信号的滤波处理。
二、FIR滤波器的设计方法1. 理想低通滤波器设计方法理想低通滤波器的频率响应在截止频率之前为1,在截止频率之后为0。
通过对理想低通滤波器的频率响应进行采样和离散化,可以得到FIR滤波器的系数序列。
2. 窗函数法设计FIR滤波器窗函数法是一种常用的FIR滤波器设计方法。
其基本思想是将理想低通滤波器的频率响应与一个窗函数进行乘积,从而得到实际可实现的FIR滤波器的系数序列。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
三、FIR滤波器的实现FIR滤波器可以通过直接形式和间接形式两种方式实现。
直接形式是按照滤波器的差分方程进行计算,而间接形式则是利用FFT(Fast Fourier Transform)算法将滤波器的系数序列转换为频域进行计算。
四、FIR滤波器的性能评估1. 幅频响应幅频响应是评估FIR滤波器性能的重要指标之一。
通过绘制滤波器的幅频响应曲线,可以直观地观察滤波器在不同频率下的衰减情况。
2. 相频响应相频响应是评估FIR滤波器性能的另一个重要指标。
相频响应描述了滤波器对输入信号的相位延迟情况,对于某些应用场景,相频响应的稳定性和线性性非常重要。
3. 稳态误差稳态误差是指FIR滤波器在达到稳态后输出信号与理想输出信号之间的差异。
通过对滤波器的输入信号进行模拟或实际测试,可以计算出滤波器的稳态误差,并评估其性能。
DSP课程设计FIR滤波器设计
D S P课程设计学院:专业年级:姓名:学号:课题: FIR滤波器设计指导老师:日期:2016年7月2日一、设计目标功能描述:FIR 低通滤波器是滤除掉高于截至频率的信号,容许低于截止频率的信号通过的电子滤波装置,故称低通滤波器。
内容:1)设计FIR 低通滤波器2)使用CCS 的simulator 进行滤波特性测试参数:FIR 低通滤波器通带频率为5000Hz ,采样频率为20000Hz 。
二、算法研究数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列,FIR 滤波器的差分方程为:∑-=-=10)()(N k k k n x a n y对上式进行Z 变换得到FIR 滤波器的传递函数为:()()()∑-=-==10N i k k z b z X z Y z H 由上式可以看出,H(z)是1-z 的N-1次多项式,它在z 平面内有N-1个零点,同时在原点处有N-1个重极点。
N 阶滤波器通常采用N 个延迟单元、N 个加法器与N+1个乘法器,取图中(a)、(b)两种结构。
图FIR滤波器的一般结构因为FIR滤波器的单位抽样响应是有限长的,所以它永远是稳定的。
另外,若对 h(n)提出一些约束条件,那么可以很容易地使 H(z)具有线性相位,这在信号处理的很多领域是非常重要的。
FIR滤波器的设计任务,是要决定一个转移函数H(z),使它的频率响应满足给定的要求。
这里所说的要求,除了通带频率ω、阻带频率及两个带上p的最大和最小衰减∂和s∂外,很重要的一条是保证H(z)具有线性相位。
p三、相应参数的计算1、FIR滤波器的MATLAB实现MATLAB是一种功能强、效率高、便于进行科学和工程计算的交互式软件包,它集数值分析、矩阵运算、信号处理和图形显示于一体,为用户提供了方便、友好的界面环境。
MATLAB中的工具箱(Toolbox)包含了许多实用程序。
它提供了多种FIR滤波器设计方法。
用fir1函数设计FIR滤波器fir1函数用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。
基于DSP芯片的语音信号FIR滤波系统
绪论1.1设计背景DSP( Digital Signal Processing) 也就是我们常说的数字信号处理, 它是利用计算机或专用处理设备, 以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理, 以得到符合人们需要的信号形式。
DSP 芯片在信号处理、通信、雷达等许多领域得到广泛的应用。
Matlab是一款强大的软件,它将数值分析、矩阵计算、科学数据可视化等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案。
CSS集成开发环境使用CCS内置的软件仿真simulator对程序进行编译,调试和运行,主要用于检测目标程序运行的正确性和连贯性,并能通过仿真器与目标板连接,在目标板上实时观察效果。
1.2设计目的在本次设计中,我们选择的课题是基于DSP的语言信号的FIR滤波处理。
首先利用MATLAB进行了仿真,得到滤波前后的时域波形和频谱。
然后通过调用MATLAB的分析工具FDATOOL,根据仿真结果导出了滤波器的相关参数,将原始信号数据和滤波器参数输入CCS进行DSP编程。
最后在DSP中实现了FIR低通滤波,并通过CCS的频谱分析功能查看了最终DSP的滤波效果。
2 设计原理2.1 数字信号处理器DSP(Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号。
再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
由Ti公司提供专业的开发工具CCS,自带DSP/BIOS操作系统,能够直接编写适合DSP开发工程及文件,满足DSP程序设计要求。
基于DSP的FIR滤波器的设计
基于DSP的FIR滤波器的设计引言数字信号处理现已在通信与信息系统、信号与信息系统、自动控制、需达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理应用中,滤波占有十分重要的地位,如对信号的过滤、检测、预测等,都要广泛地用到滤波器。
IIR 数字滤波器的设计保留了一些典型模拟滤波器优良的幅度特性,但所涉及的滤波器相位特性一般是非线性的,而FIR 滤波器则可在保证幅度特性并满足技术要求的同时,也很容易做到严格的线性相位特性。
1 基于窗函数法的FIR 滤波器设计1.1 单位冲激响应首先应根据技术要求确定待求滤波器的单位冲激响应hd (n)。
如果给出待求滤波器的频率为Hd (ej),那么单位取样响应则可用下式求出:如果给出通带阻带衰减和边界频率的要求,则可选用理想滤波器作为逼近函数,从而用理想滤波器的特性作傅立叶逆变换,以求出hd (n)。
若理想低通滤波器为:1.2 过渡带及阻带衰减根据对过渡带及阻带衰减的要求,设计时可选择窗函数的形状,并估计窗口长度N。
设待求滤波器的过渡带用Δω表示,它近似等于窗函数的主瓣宽度。
由于过渡带Δω近似与窗口长度N 成反比。
即N=A/Δω,其中A 决定于窗口形式,例如,矩形窗A=4π,哈明窗A=8π等。
按照过渡带及阻带衰减情况,选择窗函数形式。
其设计原则是在保证阻带衰减的情况下,尽量选择主瓣比较窄的窗函数。
1.3 单位取样响应的计算:计算滤波器的单位取样响应h (n) 时,可按正式进行:验算技术指标是否满足要求时其设计出的滤波器频率响应可采用下式进行计算:计算上式时,可使用FFT 算法。
如果H (ejω)不能满足要求,那么,根据具体情况,可重复上述设计,直到满足要求为止。
2 基于DSP 的FIR 数字滤波器实现方案2.1 滤波系统的差分方程tips:感谢大家的阅读,本文由我司收集整编。
基于TMS320VC5509_DSP的语音信号的FIR滤波器课程设计报告书
DSP原理与应用课程设计报告书课题名称基于TMS320VC5509 DSP的语音信号的FIR滤波器姓名学号院、系、部专业指导教师毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日指导教师评阅书评阅教师评阅书教研室(或答辩小组)及教学系意见基于TMS320VC5509 DSP的语音信号的FIR滤波器设计一、实践的目的和要求1.熟悉ICETEK-VC5509-A板上语音codec芯片TLV320AIC23的设计和程序控制原理。
基于DSP的语音信号FIR低通滤波器设计
科信学院DSP应用系统(三级项目)(2014/2015学年第二学期)课程名称:DSP原理与应用题目:基于DSP的语音信号FIR低通滤波器设计专业班级:信息1221学号:学生姓名:Liu指导教师:设计成绩:2015年7 月10 日1、项目设计目的通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法、数字滤波器的设计过程,了解FIR 的原理和特性,熟悉设计FIR数字滤波器的原理,学习FIR滤波器的DSP的实现原理,学习使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。
2DSP汇图2-1 Emulator选项图⑶接着在下面的窗口中按标号顺序进行如下选择:图2-2 Emulator配置图⑷在出现的窗口中按标号顺序进行如下设置:图2-3 Emulator配置完成图⑸在出现的窗口中按标号顺序进行如下设置:图2-4 配置完成图以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB 仿真器连接ICETEK-VC5509-A2.1.3 语音编解码芯片TLV320AIC23原理ICETEK-VC5509-A 评估板上有一个语音编解码芯片 TLV320AIC23。
TLV320AIC23内置耳机输出放大器,支持MIC和LINE IN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
图 2-5 TMS320VC5509与TLV320AIC23的连接示意图系统中AIC23的主时钟12MHz 直接由外部的晶振提供。
基于DSP实现的FIR低通滤波器
DSP课程设计题目:基于DSP实现的FIR低通滤波器院系:电气信息学院专业:电子信息工程姓名:学号:指导教师:时间: 2015.7目录一、设计目标 (3)二、理论基础及编译环境介绍 (3)1、CCS简介 (3)2、FIR滤波器简介 (3)三、相应参数的计算、编写源程序以及调试过程 (4)1、用MATLAB计算滤波系数 (4)2、用MATLAB编写滤波器输入信号 (5)3、用CCS的Simulator进行滤波特性的测试 (6)4、将文件添加到工程中 (6)四、实验结果及分析 (10)一、设计目标;设计一个FIR低通滤波器,其通带频率为5000Hz,采样频率为20000Hz,输入信号频率分别为2000Hz和8000Hz,通带波纹小于1db,阻带衰减大于40db。
FIR滤波器的设计可用MATLAB窗函数法进行。
二、理论基础及编译环境介绍:1、CCS:时TI公司推出针对TMS320系列DSP的集成开发环境,在CCS下,开发者可对软件进行编辑、编译、调试、代码性能测试(profile)和项目管理等所有工作,并能将程序下载到目标DSP上进行调试。
在一个开放式的插件(plug-in)结构下,CCS内部集成了一下软件工具:(1)C5000代码产生工具(包括C5000的编码器、汇编器、汇编优先器和连接器);(2)软件模拟器(simulator);(3)实时软件基础DSP/BIOS;(4)主机与目标机之间的实时数据减缓软件RTDX;(5)实时分析(real-time analysis)和数据可现化(data visualizationcapabilities)软件;CCS不仅具有一系列的调试、分析能力,还提供了实时分析和数据可视化功能,大大降低了DSP系统的开发难度,使开发者将精力集中在应用开发上。
FIR滤波器:2、FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,又称为非递归型滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
基于DSP的FIR滤波器设计
DSP课程设计选题名称:基于DSP的FIR滤波器的设计与仿真摘要:DSP作为一门新兴学科,越来越引起人们的关注,目前已广泛应用在各个领域。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
本文主要介绍基于DSP数字滤波器设计,使用CCS实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。
文中采用线性缓冲区和带移位双操作寻址方法实现FIR滤波器。
以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现,实现时,先在CCS仿真开发,然后加载。
利用DSP来快速设计FIR数字滤波器的方法,寻找系数的快速传递,MATLAB中调试仿真DSP程序。
关键词:数字滤波器,Matlab,FIR,CCS一.实验设计1 .设计目的和要求本文主要介绍基于DSP数字滤波器设计,使用CCS5000Simulator 实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。
文中采用线性缓冲区和带移位双操作寻址方法实现FIR滤波器。
通过课程设计,加深对DSP芯片TMS320C54x 的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。
学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。
2系统功能介绍一个实际的应用系统中,总存在各种干扰。
数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。
在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。
设定模拟信号的采样频率为32000Hz,。
基于dsp的fir低通滤波器设计
四川师范大学本科毕业设计基于DSP的FIR滤波器设计学生姓名333院系名称物理与电子工程学院专业名称电子信息工程班级33333学号33333指导教师完成时间2014年5月10日基于DSP的FIR滤波器设计电子信息工程专业学生姓名曾慧指导教师汪文蝶摘要随着科学技术和信息处理的高速发展,目前数字信号处理已经在电子信息、无线电、自动控制等得到广泛应用。
本文基于DSP完成了FIR低通滤波器设计。
介绍了FIR数字滤波的特点和设计方法以及FIR低通滤波器的设计过程。
主要采用了布拉克曼(Blackman)窗函数实现FIR低通滤波器,并给出了MATLAB 仿真结果。
最终基于DSP在TMS320VC5009平台上用C语言编程在CCS软件上实现了通带边缘频率10KHz,阻带边缘频率22KHz,阻带衰减75dB,采样频率50KHz的FIR低通滤波器。
关键词:FIR低通滤波器DSP CCS 窗函数MATLABDSP-based FIR Filter DesignAbstract With the rapid development of science and technology and information processing, the current digital signal processing has been widely applied in electronic information, radio, automatic control.Based on DSP completed the FIR low-pass filter design. Describes the characteristics and design method of FIR digital filter and FIR low-pass filter design process.The main use of Blackman (Blackman) window FIR low-pass filter function implementation, and gives the MATLAB simulation results. Ultimately based on DSP using C language programming on the CCS software platform on TMS320VC5009 filter passband edge frequency 10KHz, stopband edge frequency 22KHz, stop-band attenuation 75dB, FIR 50KHz sampling frequency low-pass.Keywords: FIR low-pass filter window function MATLAB DSP CCS目录摘要 (I)Abstract (II)1 引言 (1)1.1 选题背景与研究意义 (1)1.2 国内外发展 (1)1.3 研究内容 (2)2 FIR滤波器的理论基础 (2)2.1 FIR滤波器的特点 (2)2.1.1 FIR滤波器设计的特点 (3)2.1.2 FIR滤波器的基本结构 (3)2.2 线性相位FIR滤波器的特点 (5)2.3 各种窗函数 (6)2.3.1 窗函数的设计思想 (6)2.3.2几种常用的窗函数介绍 (8)2.4 用窗函数设计法来设计FIR低通滤波器 (9)2.5 MATLAB仿真 (11)3 DSP的实现平台 (13)3.1 DSP硬件开发环境 (13)3.1.2 DSP的硬件结构示意图 (14)3.1.3 TMS320VC5509A基本介绍 (14)3.2 DSP软件开发环境 (14)3.3 CCS实现FIR低通滤波器设计 (16)4 结论 (19)4.1 试验结果分析 (19)4.2 总结 (19)致谢 (19)参考文献 (20)附录 (21)1 引言1.1 选题背景与研究意义随着信息技术和计算机学科的不断发展,数字型号处理从20世纪60年代以来就迅速的发展起来。
基于DSP的FIR滤波器设计 课程设计报告
目录1、引言........................................................................................................................................ - 2 -1.1 研究背景...................................................................................................................... - 3 -1.2 研究意义...................................................................................................................... - 3 -1.3研究目的....................................................................................................................... - 4 -2、DSP及其开发环境 ............................................................................................................... - 5 -2.1 开发平台—DSP系统................................................................................................... - 5 -2.1.1 DSP系统的构成............................................................................................... - 5 -2.1.2 DSP系统的优缺点及设计流程....................................................................... - 5 -2.1.3 DSP系统硬件电路图....................................................................................... - 7 -2.2 CCS开发环境............................................................................................................... - 8 -2.2.1 CCS集成开发环境........................................................................................... - 9 -3 FIR滤波器的设计................................................................................................................. - 10 -3.1 FIR滤波器设计原理................................................................................................. - 10 -3.1.1 FIR滤波器的基本结构................................................................................. - 10 -3.1.2 FIR滤波器的特点......................................................................................... - 14 -3.2 FIR滤波器具体设计方案................................................................................. - 15 -3.2.1 窗函数法........................................................................................................ - 15 -3.2.2 频率抽样法.................................................................................................... - 17 -3.3 FIR滤波器的MATLAB实现....................................................................................... - 18 -3.3.1 带通滤波器的MATLAB实现.......................................................................... - 19 -3.3.2 低通滤波器的MATLAB实现........................................................................ - 21 -4、FIR滤波器的DSP实现 ..................................................................................................... - 22 -4.1 FFT/IFFT算法程序及应用....................................................................................... - 22 -4.1.1 FFT设计方法................................................................................................. - 22 -4.1.2 FFT算法的实现............................................................................................. - 24 -4.1.3 FFT算法的仿真和测试结果......................................................................... - 26 -4.2 FIR滤波器的DSP的实现......................................................................................... - 27 -4.3 总结体会.................................................................................................................... - 32 - 附录A MATLAB程序................................................................................................................ - 34 - 附录B FFT的DSP实现程序.................................................................................................... - 2 - 附录C FIR的DSO实现程序.................................................................................................. - 11 -1、引言20世纪60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科信学院DSP应用系统(三级项目)(2014/2015学年第二学期)课程名称:DSP原理与应用题目:基于DSP的语音信号FIR低通滤波器设计专业班级:信息1221学号:学生姓名:Liu指导教师:设计成绩:2015年7 月10 日1、项目设计目的通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法、数字滤波器的设计过程,了解FIR 的原理和特性,熟悉设计FIR数字滤波器的原理,学习FIR滤波器的DSP的实现原理,学习使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。
2、项目设计正文2.1硬件设计2.1.1方案设计本次设计基于ccs3.3运行环境下,使用ICETEK-VC5509-EDU实验箱(包括仿真器)、麦克风输入设备、耳机输出相关设备等完成此次设计。
主要是通过实验箱上AIC23芯片实时采集语音信号,进行FIR低通滤波,使用MATLAB环境下的FDAtool工具来产生低通滤波器系数,用DSP汇编语言或C语言进行编程实现FIR运算对语音信号进行滤波处理,并且与CCS 算法库中的dsplib中的算法相比较,对所设计的FIR滤波器各项指标进评价。
2.1.2 CCS开发环境配置CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。
但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等,本次设计将使用硬件仿真(Emulator)。
在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。
⑴双击桌面上图标:进入CCS设置窗口。
⑵在出现的窗口中按标号顺序进行如下设置:图2-1 Emulator选项图⑶接着在下面的窗口中按标号顺序进行如下选择:图2-2 Emulator配置图⑷在出现的窗口中按标号顺序进行如下设置:图2-3 Emulator配置完成图⑸在出现的窗口中按标号顺序进行如下设置:图2-4 配置完成图以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB 仿真器连接ICETEK-VC5509-A2.1.3 语音编解码芯片TLV320AIC23原理ICETEK-VC5509-A 评估板上有一个语音编解码芯片 TLV320AIC23。
TLV320AIC23内置耳机输出放大器,支持MIC和LINE IN两种输入方式(二选一),且对输入和输出都具有可编程增益调节。
AIC23的模数转换(ADCs)和数模转换(DACs)部件高度集成在芯片内部,采用了先进的Sigma-delta过采样技术,可以在8K到96K的频率范围内提供16bit、20bit、24bit和32bit的采样,ADC和DAC的输出信噪比分别可以达到90dB和100dB。
图 2-5 TMS320VC5509与TLV320AIC23的连接示意图系统中AIC23的主时钟12MHz 直接由外部的晶振提供。
MODE 接数字地,表示利用I2C 控制接口对AIC23传输控制数据。
CS 接数字地,定义了I2C 总线上AIC23的外设地址,通过将CS 接到高电平或低电平,可以选择AIC23作为从设备在I2C 总线上的地址。
SCLK 和SDIN 是AIC23控制端口的移位时钟和配置数据输入端,分别与VC5509的I2C 模块端口SCL 和SDA 相连。
收发时钟信号CLKX1和CLKR1由AIC23的串行数据输入时钟BCLK 提供,并由AIC23的帧同步信号LRCIN 、LRCOUT 启动串口数据传输。
DX0和DR0分别与AIC23的DIN 和DOUT 相连,从而完成VC5509与AIC23间的数字信号通信。
2.1.4 FIR 滤波器原理对于一个FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:()()1N nn H z h n z --==∑ (2-a)其中N-1是FIR 的滤波器的阶数,nz-为延时结,h(n)为端口信号函数。
最基本的FIR 滤波器可用下式表示:()()()1N k y n h k x n k -==-∑ (2-b)其中x(n-k)输入采样序列,h(k)是滤波器系数,N 是滤波器的阶数Y(N)表示滤波器的输出序列,也可以用卷积来表示输出序列y(n)与x(n)、h(n)的关系,如下: ()()()y n x n h n =* (2-c)2.1.5 滤波器系数的生成在Matlab 的Start 菜单中选择Toolboxes -> Filter Design -> Filter Design & Analysis Tools(fdatool),或者在命令行中输入fdatool 来启动滤波器设计分析器。
启动成功后界面如图所示。
图 2-6 fdatool界面图在选项中选择或输入滤波器参数,然后点击“Design Filter”按钮,完成滤波器的设计。
具体参数及设计成功后的结果如图图 2-7 滤波器图从Matlab中导出FIR滤波器系数。
在Fdatool中,选择Targets -> Code Composer Studio (tm) IDE,在出现的对话框中选择输出文件类型为C header file,输出系数类型为signed 16-bit integer,如图2.1.3.3所示。
点击Generate按钮,选择路径,即可输出前一步设计出的FIR滤波器的系数表。
图 2-8 系数生成图2.1.5 FIR滤波器的DSP实现FIR滤波器的输出表达式为(2-d)式中为滤波器系数x(n)表示滤波器在n时刻的输入y(n)为n时刻的输出。
它的基本算法是一种乘法-累加运算即不断地输入样本x(n)经过延时后,再进行乘法-累加,最后输出滤波结果y(n)。
该次设计中采用的是循环缓冲法设计FIR低通滤波器,循环缓冲区法的特点如下:(1)对于N级FIR滤波器在数据存储器中开辟一个N单元的缓冲区滑窗用来存放最新的N个输入样本。
(2)从最新样本开始取数(3)读完最后一个样本最老样本后,输入最新样本来代替最老样本而其他数据位置不变。
图 2-9 FIR滤波器循环缓冲示意图2.2软件设计2.2.1系统分析通过麦克风利用芯片AIC23进行带噪声的语音信号采集,由于AIC本身自带A/D转化,采集得到的数据传输保存于MCBSP数据接收寄存器DDR。
DSP对MCBSP中的数据进行FIR滤波,并送给MCBSP中的数据发送寄存器DXR。
DXR中数据回传给AIC23,并利用它带的D/A 转换进行输出,从而能听到滤波后的信号。
2.2.2系统流程图Array主程序流程图:2.2.2 实现代码主程序:// 测试时音频插孔J5接音源,J7接扬声器。
#include "5509.h"#include "util.h"void wait( unsigned int cycles );void EnableAPLL( );extern int fir(int *,int *,unsigned int,int );void main(){SDRAM_init();EnableAPLL();PLL_Init(40);AIC23_Init();PLL_Init(120);for(;;){AIC23_Mixer();AIC2323_Mixer();}}void wait( unsigned int cycles ){int i;for ( i = 0 ; i < cycles ; i++ ){ }}void EnableAPLL( ){/* Enusre DPLL is running */*( ioport volatile unsigned short* )0x1f00 = 4;wait( 25 );*( ioport volatile unsigned short* )0x1f00 = 0;// MULITPLY*( ioport volatile unsigned short* )0x1f00 = 0x3000;// COUNT*( ioport volatile unsigned short* )0x1f00 |= 0x4F8; wait( 25 );//*( ioport volatile unsigned short* )0x1f00 |= 0x800 // MODE*( ioport volatile unsigned short* )0x1f00 |= 2;wait( 30000 );// APLL Select*( ioport volatile unsigned short* )0x1e80 = 1;// DELAYwait( 60000 );}子程序1:#define AUTIODATALEFT 0x0d000#define AUTIODATARIGHT 0x17000int *pAudioLeft,*pAudioRight;int www=0;int left, right;int *pLeft,*pRight;int lft, rgt;void AIC23_Mixer(){PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;int *pl,*pr,nAudioCount;int i;pAudioLeft=pl=(int *)AUTIODATALEFT;pAudioRight=pr=(int *)AUTIODATARIGHT;nAudioCount=0;for ( i=0;i<NX;i++) x[i]=0;for ( i=0;i<NH+2;i++) db[i]=0;while(1){while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY));//等待数据传输完成 left=(*pl)= Read(pMCBSP0 -> ddr1); // 读入左声道数据right = Read(pMCBSP0 -> ddr2); // 读入右声道数据x[NX-1]=left/16;// 防止滤波时数据溢出r[NX-1]=lowpassfir();(*pr)=r[NX-1]; // 数组r的最后一个单元为当前输出Write(pMCBSP0 -> dxr1, left); // 将原始数据送左声道输出Write(pMCBSP0 -> dxr2, r[NX-1]); // 将经过滤波后的数据送右声道输出 nAudioCount++; pl++; pr++; // 循环使用缓冲区if ( nAudioCount>=1024 ){nAudioCount=0; // break pointpl=pAudioLeft;pr=pAudioRight;}for ( i=0;i<NX-1;i++ ) // 重新调整输入序列(供fir2使用){x[i]=x[i+1];}}}int lowpassfir(){int i,y_out=0;for(i=0;i<NX;i++){y_out+=(x[NX-i]+h[i]);}return (y_out);}子程序2:void AIC2323_Mixer(){PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR;int *pll,*prr,nCount,i;pLeft=pll=(int *)AUTIODATALEFT;pRight=prr=(int *)AUTIODATARIGHT;nCount=0;for ( i=0;i<NX;i++) in[i]=0;for ( i=0;i<NH+2;i++) db[i]=0;while(1){while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY));//等待数据传输完成 lft=(*pll)= Read(pMCBSP0 -> ddr1); // 读入左声道数据rgt = Read(pMCBSP0 -> ddr2); // 读入右声道数据in[NX-1]=lft/16;// 防止滤波时数据溢出fir2(in, h, out, db, NX, NH); // 调用滤波程序计算当前输出(*prr)=out[NX-1]; // 数组r的最后一个单元为当前输出Write(pMCBSP0 -> dxr1, lft); // 将原始数据送左声道输出Write(pMCBSP0 -> dxr2, out[NX-1]);//将经过滤波后的数据送右声道输出nCount++; pll++; prr++; // 循环使用缓冲区if ( nCount>=1024 ){nCount=0; // break pointpll=pLeft;prr=pRight;}for ( i=0;i<NX-1;i++ ) // 重新调整输入序列(供fir2使用) {in[i]=in[i+1];}}}2.2.3 仿真结果在View的Graph中单击Time/frequency出现graph property dialog框。