fir低通滤波器设计报告

合集下载

fir滤波器设计实验报告

fir滤波器设计实验报告

fir滤波器设计实验报告fir滤波器设计实验报告引言:滤波器是数字信号处理中常用的工具,它能够对信号进行去噪、频率分析和频率选择等处理。

其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,具有线性相位和稳定性等优点。

本实验旨在设计一个FIR滤波器,并通过实际测试验证其性能。

一、实验目的本实验的目的是通过设计一个FIR滤波器,掌握FIR滤波器的设计方法和性能评估。

具体包括以下几个方面:1. 了解FIR滤波器的基本原理和特点;2. 学习FIR滤波器的设计方法,如窗函数法、最小二乘法等;3. 掌握MATLAB等工具的使用,实现FIR滤波器的设计和性能评估;4. 通过实际测试,验证所设计FIR滤波器的性能。

二、实验原理FIR滤波器是一种非递归滤波器,其输出仅依赖于当前和过去的输入样本。

其基本原理是将输入信号与一组滤波器系数进行卷积运算,得到输出信号。

FIR滤波器的频率响应由滤波器系数决定,通过调整滤波器系数的值,可以实现不同的滤波效果。

在本实验中,我们采用窗函数法设计FIR滤波器。

窗函数法是一种常见的FIR滤波器设计方法,其基本思想是通过对滤波器的频率响应进行窗函数加权,从而实现对信号频率的选择。

常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等。

三、实验过程1. 确定滤波器的要求:根据实际需求,确定滤波器的截止频率、通带衰减和阻带衰减等参数。

2. 选择窗函数:根据滤波器的要求,选择合适的窗函数。

常用的窗函数有矩形窗、汉宁窗、布莱克曼窗等,不同窗函数有不同的性能特点。

3. 计算滤波器系数:根据所选窗函数的特性,计算滤波器的系数。

这一步可以使用MATLAB等工具进行计算,也可以手动计算。

4. 实现滤波器:使用MATLAB等工具,将计算得到的滤波器系数应用于滤波器的实现。

可以使用差分方程、卷积等方法实现滤波器。

5. 评估滤波器性能:通过输入不同的信号,观察滤波器的输出,并评估其性能。

FIR滤波器设计实验报告

FIR滤波器设计实验报告

FIR滤波器设计实验报告实验报告:FIR滤波器设计一、实验目的:本实验旨在通过设计FIR滤波器,加深对数字信号处理中滤波器原理的理解,掌握FIR滤波器的设计方法和调试技巧。

二、实验原理:在窗函数法中,常用的窗函数有矩形窗、三角窗、汉明窗和黑曼窗等。

根据实际需求选择适当的窗口函数,并通过将窗口函数应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

三、实验步骤:1.确定滤波器的阶数和截止频率。

2.选择适当的窗口函数,如汉明窗。

3.计算出理想低通滤波器的冲激响应。

4.将选定的窗口函数应用到理想低通滤波器的冲激响应中。

5.得到FIR滤波器的冲激响应。

四、实验结果:假设要设计一个阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz。

1.选择汉明窗作为窗口函数。

2.根据采样频率和截止频率计算出理想低通滤波器的冲激响应。

假设截止频率为f_c,则理想低通滤波器的冲激响应为:h(n) = 2f_c * sinc(2f_c * (n - (N-1)/2))其中,sinc(x)为正弦函数sin(x)/x。

3.将汉明窗应用到理想低通滤波器的冲激响应中,得到FIR滤波器的冲激响应。

具体计算过程如下:h(n) = w(n) * h_ideal(n)其中,w(n)为汉明窗:w(n) = 0.54 - 0.46 * cos(2πn/(N-1))h_ideal(n)为理想低通滤波器的冲激响应。

4.计算得到FIR滤波器的冲激响应序列。

五、实验总结:本次实验通过设计FIR滤波器,加深了对数字信号处理中滤波器原理的理解。

掌握了FIR滤波器的设计方法和调试技巧。

通过设计阶数为10的FIR滤波器,截止频率为800Hz,采样频率为1600Hz的实例,了解了窗函数法设计FIR滤波器的具体步骤,并得到了滤波器的冲激响应。

【备注】以上内容仅为参考,具体实验报告内容可能根据实际情况有所调整。

(完整版)fir低通滤波器设计(完整版)

(完整版)fir低通滤波器设计(完整版)

电子科技大学信息与软件工程学院学院标准实验报告(实验)课程名称数字信号处理电子科技大学教务处制表电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师: 实验地点: 实验时间:14-18一、实验室名称:计算机学院机房 二、实验项目名称:fir 低通滤波器的设计 三、实验学时: 四、实验原理:1. FIR 滤波器FIR 滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。

M 阶FIR 滤波器的系统函数H(z)为()[]Mkk H z h k z-==∑其中H(z)是kz-的M 阶多项式,在有限的z 平面内H(z)有M 个零点,在z平面原点z=0有M 个极点.FIR 滤波器的频率响应()j H e Ω为 0()[]Mj jk k H e h k e Ω-Ω==∑它的另外一种表示方法为()()()j j j H e H e e φΩΩΩ=其中()j H e Ω和()φΩ分别为系统的幅度响应和相位响应。

若系统的相位响应()φΩ满足下面的条件()φαΩ=-Ω即系统的群延迟是一个与Ω没有关系的常数α,称为系统H(z)具有严格线性相位。

由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR 滤波器设计中一般使用广义线性相位。

如果一个离散系统的频率响应()j H e Ω可以表示为()()()j j H e A e αβΩ-Ω+=Ω其中α和β是与Ω无关联的常数,()A Ω是可正可负的实函数,则称系统是广义线性相位的。

如果M 阶FIR 滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为[][]h k h M k =±-当h[k]满足h[k]=h[M-k],称h[k]偶对称。

当h[k]满足h[k]=-h[M-k],称h[k]奇对称。

按阶数h[k]又可分为M 奇数和M 偶数,所以线性相位的FIR 滤波器可以有四种类型。

2. 窗函数法设计FIR 滤波器窗函数设计法又称为傅里叶级数法。

FIR滤波器设计报告

FIR滤波器设计报告

摘要本文介绍了数字滤波器的设计基础及用窗函数法设计FIR 滤波器的方法,运用MATLAB 语言实现了低通滤波器的设计以及用CCS软件进行滤波效果的观察。

读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。

关键词:FIR滤波、Matlab、窗函数法、CCS目录1.引言 (2)2.FIR滤波器的窗函数法的设计 (2)2.1 fir1函数 (2)3.FIR滤波器的设计(Matlab) (4)4.滤波器的DSP实现(CCS) (7)4.1 编写源程序 (7)5.本课程的心得体会和对本课程的建议 (11)6.结束语 (12)参考文献 (13)1.引言根据数字滤波器冲激响应函数的时域特性。

可将数字滤波器分为两种,即无限长冲激响应( IIR) 滤波器和有限长冲激响应(FIR) 滤波器。

IIR 滤波器的特征是具有无限持续时间的冲激响应;FIR 滤波器冲激响应只能延续一定时间。

其中FIR 滤波器很容易实现严格的线性相位,使信号经过处理后不产生相位失真,舍入误差小,稳定等优点。

能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器,所以在数字系统、多媒体系统中获得极其广泛的应用。

FIR数字滤波器的设计方法有多种,如窗函数设计法、最优化设计和频率取样法等等。

而随着MATLAB软件尤其是MATLAB 的信号处理工具箱和Simulink 仿真工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能而且还可以使设计达到最优化。

2.FIR滤波器的窗函数法的设计2.1 fir1函数用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。

语法:b=fir1(n,Wn);b=fir1(n,Wn,’ftype’);b=fir1(n,Wn,Window);b=fir1(n,Wn,’ftype’,Window);其中,n为滤波器的阶数;Wn为滤波器的截止频率;ftype参数用来决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。

FIR滤波器设计实验报告

FIR滤波器设计实验报告

FIR滤波器设计实验报告实验目的:学习和掌握有限脉冲响应(FIR)滤波器的设计方法,了解数字滤波器的原理和实现。

实验器材:计算机、Matlab软件、FIR滤波器设计工具。

实验原理:1.确定滤波器的规格:包括通带频率、阻带频率、通带纹波、阻带衰减等参数。

2. 根据滤波器规格选择合适的FIR滤波器设计方法:常见的设计方法有窗函数法、频域近似法、Remez算法等。

3.根据设计方法计算FIR滤波器的系数:根据设计方法的不同,计算滤波器的系数也有所区别。

4.对FIR滤波器进行验证和优化:可以通过频率响应、幅频特性等指标对滤波器进行调整,并进行验证。

实验步骤:1.确定滤波器规格:设置通带频率为3kHz,阻带频率为5kHz,通带纹波为0.01dB,阻带衰减为40dB。

2.选择窗函数法进行FIR滤波器设计。

3.根据滤波器规格计算滤波器的阶数。

4.根据阶数选择合适的窗函数。

5.计算FIR滤波器的系数。

6.通过绘制滤波器的频率响应曲线进行验证。

7.分析滤波器的性能,并对滤波器进行优化。

实验结果:根据以上步骤进行设计和计算,得到了FIR滤波器的系数,利用Matlab绘制了滤波器的频率响应曲线。

分析和讨论:根据频率响应曲线,可以看出滤波器在通带频率范围内有较好的衰减效果,滤波器的阻带频率范围内衰减也满足要求。

但是在通带和阻带之间存在一定的过渡带,可能会对信号造成一部分的失真。

因此,可以考虑进一步优化滤波器的设计,使其在通带和阻带之间的过渡带更加平滑,减小失真的影响。

结论:通过本次实验,我们学习并掌握了FIR滤波器的设计方法,了解了数字滤波器的原理和实现。

在实际应用中,可以根据需要选择合适的FIR滤波器设计方法,并根据滤波器的规格进行计算和调整。

通过不断优化和验证,可以得到满足要求的FIR滤波器,实现对数字信号的滤波处理。

fir滤波器实验报告

fir滤波器实验报告

fir滤波器实验报告fir滤波器实验报告引言:滤波器是信号处理中常用的工具,它可以对信号进行频率选择性处理。

在数字信号处理中,FIR(Finite Impulse Response)滤波器是一种常见的滤波器类型。

本实验旨在通过设计和实现FIR滤波器,探索其在信号处理中的应用。

一、实验目的本实验的主要目的有以下几点:1. 了解FIR滤波器的基本原理和特性;2. 掌握FIR滤波器的设计方法;3. 实现FIR滤波器并对信号进行处理,观察滤波效果。

二、实验原理1. FIR滤波器的原理FIR滤波器是一种非递归滤波器,其输出仅依赖于输入和滤波器的系数。

它的基本原理是将输入信号与滤波器的冲激响应进行卷积运算,得到输出信号。

FIR滤波器的冲激响应是有限长度的,因此称为有限脉冲响应滤波器。

2. FIR滤波器的设计方法FIR滤波器的设计方法有很多种,常用的包括窗函数法、频率采样法和最小二乘法。

在本实验中,我们将使用窗函数法进行FIR滤波器的设计。

具体步骤如下:(1)选择滤波器的阶数和截止频率;(2)选择适当的窗函数,如矩形窗、汉宁窗等;(3)根据选择的窗函数和截止频率,计算滤波器的系数;(4)利用计算得到的系数实现FIR滤波器。

三、实验步骤1. 确定滤波器的阶数和截止频率,以及采样频率;2. 选择合适的窗函数,并计算滤波器的系数;3. 利用计算得到的系数实现FIR滤波器;4. 准备待处理的信号,如音频信号或图像信号;5. 将待处理的信号输入FIR滤波器,观察滤波效果;6. 调整滤波器的参数,如阶数和截止频率,观察滤波效果的变化。

四、实验结果与分析在实验中,我们选择了一个音频信号作为待处理信号,设计了一个10阶的FIR滤波器,截止频率为1kHz,采样频率为8kHz,并使用汉宁窗进行滤波器系数的计算。

经过滤波处理后,观察到音频信号的高频部分被有效地滤除,保留了低频部分,使得音频信号听起来更加柔和。

通过调整滤波器的阶数和截止频率,我们可以进一步调节滤波效果,使得音频信号的音色发生变化。

基于汉明窗函数的FIR低通滤波器设计及性能分析

基于汉明窗函数的FIR低通滤波器设计及性能分析FIR低通滤波器是一种常用的数字滤波器,用于处理数字信号中频率较低的成分,将高频成分滤除。

在设计FIR低通滤波器时,常使用汉明窗函数来实现。

本文将介绍基于汉明窗函数的FIR低通滤波器的设计方法和性能分析。

首先,要设计一个FIR低通滤波器,需要确定以下几个参数:滤波器阶数N、采样频率fs、截止频率fc和窗函数类型。

本文将以汉明窗函数为例,演示如何设计FIR低通滤波器。

1. 滤波器阶数N的确定:滤波器阶数N决定了滤波器的复杂度和性能。

一般来说,阶数越高,滤波器的性能越好,但计算复杂度也相应增加。

因此,需要在滤波器性能和计算复杂度之间做出平衡。

常用的方法是根据滤波器的截止频率和采样频率来确定阶数N。

一般可以使用公式N=4fs/fc来初步估计阶数N,然后根据实际需求进行调整。

2. 窗函数的选择:本文选择汉明窗函数作为设计FIR低通滤波器的窗函数。

汉明窗函数在频域上具有较好的副瓣抑制性能,适合用于低通滤波器设计。

3. 窗函数的定义:汉明窗函数的表达式为:w(n) = 0.54 - 0.46*c os(2πn/(N-1)), 0 ≤ n ≤ N-1其中,N为窗函数的长度,n为窗函数的离散时间索引。

4. FIR低通滤波器的设计:设计FIR低通滤波器的步骤如下:1)确定滤波器阶数N;2)选择截止频率fc;3)计算滤波器系数h(n);4)对滤波器系数h(n)进行归一化处理。

5. 滤波器系数的计算:滤波器系数h(n)的计算公式为:h(n) = wc/pi * sinc(wc*(n-(N-1)/2)/pi)其中,wc为归一化的截止频率,wc=2πfc/fs。

sinc(x)为正弦函数sin(x)/x。

6. 归一化处理:对滤波器系数h(n)进行归一化处理,即将系数乘以汉明窗函数的值。

即:hn(n) = h(n) * w(n),0 ≤ n ≤ N-17. 性能分析:设计完毕后,需要进行性能分析来评估滤波器的性能。

基于汉明窗函数的FIR低通滤波器设计方法及性能分析

基于汉明窗函数的FIR低通滤波器设计方法及性能分析FIR(有限脉冲响应)滤波器是一种常用的数字滤波器,其特点是稳定性好、易于实现和灵活性高。

汉明窗函数是一种常用于FIR滤波器设计的窗函数之一,本文将介绍基于汉明窗函数的FIR低通滤波器的设计方法,并对其性能进行分析。

1. 汉明窗函数汉明窗函数是一种常用的平滑窗函数,其公式为:w(n) = 0.54 - 0.46 * cos(2πn/(M-1))其中,n为窗函数序列的索引,M为窗函数序列的长度。

汉明窗函数的特点是在频域上具有良好的副瓣抑制能力。

2. FIR滤波器设计步骤(1)确定滤波器的通带截止频率和阻带截止频率。

根据具体应用需求,确定滤波器的频率特性。

(2)计算滤波器的阶数。

阶数决定了滤波器的抗混淆能力,一般越高越好,但也会增加计算复杂性。

(3)选择合适的窗函数。

根据滤波器的要求,选择适合的窗函数,本文以汉明窗函数为例。

(4)计算滤波器的截止频率。

利用窗函数的主瓣宽度和滤波器的通带截止频率,可以计算出滤波器的截止频率。

(5)计算窗函数序列。

根据窗函数的公式,计算窗函数序列。

(6)计算滤波器的频率响应。

利用窗函数序列和滤波器的阶数,可以计算出滤波器的频率响应。

(7)滤波器的性能分析。

通过分析滤波器的频率响应曲线、幅频响应和相频响应等,评价滤波器的性能。

3. 性能分析(1)频率响应:通过绘制滤波器的频率响应曲线,可以观察滤波器在通带和阻带中的幅值响应。

频率响应曲线应表现出低通滤波器的特性,即在通带中幅度应接近1,而在阻带中应接近0。

(2)幅频响应:幅频响应是指滤波器输出与输入信号的振幅之比,通过分析幅频响应曲线可以了解滤波器的增益特性。

低通滤波器应该在截止频率处降低输入信号的振幅。

(3)相频响应:相频响应是指滤波器输出与输入信号的相位差,它影响滤波器对信号的时域特性。

理想的低通滤波器应该对信号的相位没有明显改变。

4. 结论基于汉明窗函数的FIR低通滤波器是一种常用的数字滤波器。

实验6FIR滤波器设计

实验6FIR滤波器设计FIR(Finite Impulse Response)滤波器是一种数字滤波器,它的输出只取决于输入序列和固定的系数,没有反馈回路。

FIR滤波器在很多领域中都有广泛的应用,比如音频信号处理、图像处理等。

本实验中我们将设计一个FIR滤波器,主要包括滤波器的设计、滤波器的实现以及滤波器的性能评估。

首先,我们需要选择一个滤波器的类型和规格。

常用的滤波器类型包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。

在本实验中,我们选择设计一个低通FIR滤波器。

接下来,我们需要确定滤波器的规格,包括截止频率、滤波器阶数和滤波器的类型等。

根据实际需求,我们选择截止频率为2kHz、滤波器阶数为64阶,滤波器类型为汉宁窗设计。

然后,我们需要确定滤波器的系数。

在本实验中,我们使用频率采样法设计滤波器。

首先,确定归一化截止频率:将实际截止频率除以采样频率,即2kHz/1MHz=0.002、然后,根据阶数和归一化截止频率计算出滤波器的系数。

在设计完成后,我们需要将滤波器转化为差分方程。

差分方程的形式为:y[n]=b0*x[n]+b1*x[n-1]+b2*x[n-2]+...+bN*x[n-N]其中y[n]是输出序列,x[n]是输入序列,b0,b1,b2,...,bN是滤波器的系数。

接下来,我们需要实现设计好的滤波器。

可以使用现有的FIR滤波器实现库,比如MATLAB中的“fir1”函数。

将输入序列输入滤波器,即可得到滤波后的输出序列。

最后,我们需要评估滤波器的性能。

常用的评估指标有幅频响应、相频响应和滤波器的群延迟等。

可以利用这些指标来评估滤波器的性能是否达到设计要求。

比如,可以绘制滤波器的幅频响应曲线来观察滤波器在不同频率下的增益情况。

综上所述,本实验主要介绍了FIR滤波器的设计、实现以及性能评估。

通过掌握FIR滤波器的设计方法和实现步骤,可以更好地应用FIR滤波器进行信号处理和滤波。

fir数字滤波器设计实验报告

fir数字滤波器设计实验报告FIR数字滤波器设计实验报告概述数字滤波器是数字信号处理中的重要组成部分,广泛应用于音频、图像、视频等领域。

其中,FIR数字滤波器是一种常见的数字滤波器,具有线性相位、稳定性好、易于实现等优点。

本实验旨在设计一种基于FIR数字滤波器的信号处理系统,实现对信号的滤波和降噪。

实验步骤1. 信号采集需要采集待处理的信号。

本实验采用的是模拟信号,通过采集卡将其转换为数字信号,存储在计算机中。

2. 滤波器设计接下来,需要设计FIR数字滤波器。

为了实现对信号的降噪,我们选择了低通滤波器。

在设计滤波器时,需要确定滤波器的阶数、截止频率等参数。

本实验中,我们选择了8阶低通滤波器,截止频率为500Hz。

3. 滤波器实现设计好滤波器后,需要将其实现。

在本实验中,我们采用MATLAB 软件实现FIR数字滤波器。

具体实现过程如下:定义滤波器的系数。

根据滤波器设计的公式,计算出系数值。

利用MATLAB中的filter函数对信号进行滤波。

将采集到的信号作为输入,滤波器系数作为参数,调用filter函数进行滤波处理。

处理后的信号即为滤波后的信号。

4. 结果分析需要对处理后的信号进行分析。

我们可以通过MATLAB绘制出处理前后的信号波形图、频谱图,比较它们的差异,以评估滤波器的效果。

结果显示,经过FIR数字滤波器处理后,信号的噪声得到了有效的降低,滤波效果较好。

同时,频谱图也显示出了滤波器的低通特性,截止频率处信号衰减明显。

结论本实验成功设计并实现了基于FIR数字滤波器的信号处理系统。

通过采集、滤波、分析等步骤,我们实现了对模拟信号的降噪处理。

同时,本实验还验证了FIR数字滤波器的优点,包括线性相位、稳定性好等特点。

在实际应用中,FIR数字滤波器具有广泛的应用前景。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

滤波器设计原理本文将介绍数字滤波器的设计基础及用窗函数法设计FIR 滤波器的方法,运用MATLAB 语言实现了低通滤波器的设计以及用CCS软件进行滤波效果的观察。

读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。

根据数字滤波器冲激响应函数的时域特性。

可将数字滤波器分为两种,即无限长冲激响应( IIR) 滤波器和有限长冲激响应(FIR) 滤波器。

IIR 滤波器的特征是具有无限持续时间的冲激响应;FIR 滤波器冲激响应只能延续一定时间。

其中FIR 滤波器很容易实现严格的线性相位,使信号经过处理后不产生相位失真,舍入误差小,稳定等优点。

能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器,所以在数字系统、多媒体系统中获得极其广泛的应用。

FIR数字滤波器的设计方法有多种,如窗函数设计法、最优化设计和频率取样法等等。

而随着MATLAB软件尤其是MATLAB 的信号处理工具箱和Simulink 仿真工具的不断完善,不仅数字滤波器的计算机辅助设计有了可能而且还可以使设计达到最优化。

FIR滤波器的窗函数法的设计采用汉明窗设计低通FIR滤波器使用b=fir1(n,Wn)可得到低通滤波器。

其中,0Wn1,Wn=1相当于0.5。

其语法格式为b=fir1(n,Wn);采用:b=fir1(25, 0.25);得到归一化系数:或者在命令行输入fdatool进入滤波器的图形设置界面,如下图所示得到系数(并没有归一化)const int BL = 26;const int16_T B[26] = {-26, 33, 126, 207, 138, -212, -757, -1096, -652,950, 3513, 6212, 7948, 7948, 6212, 3513, 950, -652,-1096, -757, -212, 138, 207, 126, 33, -26};FIR滤波器的设计(Matlab)技术指标为:采用25阶低通滤波器,汉明窗(Hamming Window)函数,截止频率为1000Hz,采样频率为8000Hz,增益40db。

下面的程序功能是:读取语音文件,并加入一定的随机噪声,最后使用窗函数滤波法进行语音滤波,将加噪后的语音文件转换为.dat文件使其能和ccs软件链接,输出个阶段的时域和频域波形。

原程序如下:[x,fs,bits]=wavread('how.wav'); %读取语音文件m=max(x);normal1=x/max(x); %归一化sound(normal1,fs,bits); %播放归一化后的语音信号indata=round(32767*normal1); %数据最大取16位的数即32768 tem1=fopen('indata.dat','w'); %打开文件保存数据fprintf(tem1,'1651 1 0 0 0\n'); %输出文件头fprintf(tem1,'%d\n',indata); %输出fclose(tem1); %关闭n = length (x); %求出语音信号的长度X=fft(x,n); %傅里叶变换%x2=randn(1,length(x)); %产生一与x长度一致的随机信号%sound(x2,fs,bits);m=randn(size(x)); %产生随机噪声x2=0.1*m+x;X2=fft(x2,n); %傅里叶变换normal=x2/max(x2); %归一化chang=round(32767*normal);sound(normal,fs,bits); %播放加噪声后的音乐ch=fopen('chang.dat','w');fprintf(ch,'1651 1 0 0 0\n');fprintf(ch,'%d\n',chang);fclose(ch);subplot(2,2,1);plot(x);title('原始信号波形');subplot(2,2,2);plot(abs(X));title('原始信号频谱');subplot(2,2,3);plot(x2);title('加噪声后的语音信号波形');subplot(2,2,4);plot(abs(X2));title('加噪声后的语音信号频谱');%figure(2)N=24;Wn=0.25; %海明窗滤波器b=fir1(N,Wn);hd = dfilt.dffir(b); %画出滤波器的频率响应图freqz(hd);figure(3)z=filter(b,1,x2); %对信号进行滤波m=length(z);Z=fft(z,m);subplot(211);plot(z);title('FIR滤波后信号的波形');subplot(212);plot(abs(Z));title('FIR滤波后信号的频谱');%pause(1); %延时1秒sound(z,fs,bits); %播放滤波后的语音信号xout=z/max(z);xto_ccs=round(32767*xout)fid=fopen('output2.dat','w');fprintf(fid,'1651 1 0 0 0\n');fprintf(fid,'%d\n',xto_ccs);fclose(fid);运行上面的m文件,得到下图1、图2、图3:图 1原始信号和加噪声后的语音信号的时域和频域波形图 2 滤波器的频率响应图 3 FIR滤波后的时域频域波形滤波器的DSP实现(CCS)编写源程序.title "FIR.ASM".mmregs.def start.bss yn,1xn .usect "xn",25hn .usect "hn",25indata .usect "indata",300outdata .usect "outdata",256.datafir_coff:.word 8*32768/10000,10*32768/10000.word 38*32768/10000,63*32768/10000.word 42*32768/10000,-65*32768/10000.word -231*32768/10000,-335*32768/10000.word -199*32768/10000,290*32768/10000.word 1072*32768/10000,1896*32768/10000.word 2426*32768/10000.word 1896*32768/10000,1072*32768/10000.word 290*32768/10000,-199*32768/10000.word -335*32768/10000,-231*32768/10000.word -65*32768/10000,42*32768/10000.word 63*32768/10000,38*32768/10000.word 10*32768/10000,8*32768/10000.textstart:ssbx frct ;使用小数运算stm #hn,ar1 ;系数首地址rpt #24 ;将系数移入循mvpd fir_coff,*ar1+ ;环缓冲区stm #-1,ar0stm #outdata,ar5stm #indata,ar4stm #xn+24,ar2rpt #24 ;将输入数据移入mvdd *ar4+,*ar2+0% ;循环缓冲区stm #xn+24,ar2 ;指向第一个输入 stm #hn+24,ar3stm #25,bk ;缓冲区大小37 stm #255,brc ;块重复256次stm #-1,ar0rptb loop-1 ;块程序重复大小 rptz a,#24 ;计算一个输出mac *ar2+0%,*ar3+0%,asth a,*(yn) ;保存输出mvkd *(yn),*ar5+mvdd *ar4+,*ar2+0% ;读进一个输入loop: nopb loop.end注:.data系数可改为.datafir_coff:.word -26,33.word 126,207.word 138,-212.word -757,-1096.word -652,950.word 3523,6212.word 7948.word 6212,3512.word 950,-652.word -1096,-757.word -212,138.word 207,126.word 33,-26经观察效果差不多。

4.2 观察滤波效果4.2.1 编译生成*.out文件,选择File->Load Program装入*.out文件,然后选择File->Data->Load装入*.dat文件并打开,在弹出的对话框中输入起始地址indata和长度300,数据类型为data。

4.2.2 查看输入和输出点击View->Graph->Time/Frenquency进入图形属性对话框进行设置图 4 输入输出波形属性设置对话框图 5 输入的时域波形图 6 输出的时域波形图7 输入的频域波形图 8 输出的频域波形5.本课程的心得体会和对本课程的建议首先课程的安排比较好,先让我们了解硬件方面的知识,然后在硬件的基础上开始编写简单的程序。

这很对我们的胃口,如果一开始就搞抽象的CPU内核结构之类的东西,肯定让很多人头疼。

DSP系统的硬件结构比较复杂,一定要分模块学习,在实际用用到哪一块硬件,就重点了解这一块的内容。

紧接着学习TMS320C54x的指令系统。

寄存器和存储空间在指令执行前后到底是怎么变化的,这个指令的过程到底是怎么样进行的,到现在也还有一些细节问题没搞清楚,学习过程中要结合C54系列的内核进一步细化,看了C54的内部结构框图、寄存器定义、汇编指令格式、片上外设等等,特别是中断系统和位反转操作。

接着第五章学习汇编语言的程序设计,要通过不断地做作业练习和上机实验,逐步看懂一个比较复杂的DSP程序的结构框架,熟悉CCS软件的应用,为大作业做准备。

通过学习和积累,我们能够进行一些简单的应用程序的设计,如:FIR滤波器、IIR滤波器、FFT变换、正弦信号发生器等。

相关文档
最新文档