题目十一: 数字音频回声系统的处理实验报告
- 格式:docx
- 大小:139.76 KB
- 文档页数:17
一、实验目的1. 理解音频信号的基本特性及其在数字音频处理中的应用。
2. 掌握音频信号的采集、处理和播放的基本方法。
3. 学习使用音频信号处理软件进行音频信号的编辑和效果处理。
4. 分析音频信号在传输和存储过程中的失真和干扰。
二、实验原理音频技术是指利用电子设备对声音信号进行采集、处理、存储和播放的技术。
音频信号是指由声波产生的电信号,其频率范围一般在20Hz到20kHz之间。
数字音频处理技术是将模拟音频信号转换为数字信号,进行编辑、处理和播放的技术。
三、实验仪器与设备1. 音频信号发生器2. 音频信号采集卡3. 音频播放器4. 音频信号处理软件(如Audacity、Adobe Audition等)5. 示波器6. 数据采集器四、实验内容1. 音频信号的采集(1)使用音频信号发生器产生一个纯音信号,频率为1kHz。
(2)使用音频信号采集卡将纯音信号采集到计算机中。
(3)使用示波器观察采集到的音频信号波形。
2. 音频信号的编辑(1)使用音频信号处理软件打开采集到的音频信号。
(2)对音频信号进行剪辑、复制、粘贴等编辑操作。
(3)调整音频信号的音量、音调、立体声平衡等参数。
3. 音频信号的处理(1)使用音频信号处理软件对音频信号进行降噪、均衡、混响等效果处理。
(2)分析处理后的音频信号,观察效果处理对音频信号的影响。
4. 音频信号的播放(1)使用音频播放器播放处理后的音频信号。
(2)比较处理前后的音频信号,评估效果处理对音频信号的影响。
5. 音频信号在传输和存储过程中的失真和干扰(1)使用数据采集器对音频信号进行采样,观察采样过程中的失真和干扰。
(2)分析失真和干扰的原因,提出相应的解决方法。
五、实验结果与分析1. 音频信号的采集实验结果表明,使用音频信号采集卡可以成功采集到音频信号,并使用示波器观察到音频信号的波形。
2. 音频信号的编辑实验结果表明,使用音频信号处理软件可以对音频信号进行剪辑、复制、粘贴等编辑操作,调整音频信号的音量、音调、立体声平衡等参数。
实验一 语音信号的时域分析一、 实验目的、要求(1)掌握语音信号采集的方法(2)掌握一种语音信号基音周期提取方法(3)掌握语音信号短时能量和短时过零率计算方法(4)了解Matlab 的编程方法二、 实验原理语音是一时变的、非平稳的随机过程,但由于一段时间内(10-30ms)人的声带和声道形状的相对稳定性,可认为其特征是不变的,因而语音的短时谱具有相对稳定性。
在语音分析中可以利用短时谱的这种平稳性,将语音信号分帧。
10~30ms 相对平稳,分析帧长一般为20ms 。
语音信号的分帧是通过可移动的有限长度窗口进行加权的方法来实现的。
几种典型的窗函数有:矩形窗、汉明窗、哈宁窗、布莱克曼窗。
语音信号的能量分析是基于语音信号能量随时间有相当大的变化,特别是清音段的能量一般比浊音段的小得多。
定义短时平均能量[][]∑∑+-=∞-∞=-=-=nN n m m n m n w m x m n w m x E 122)()()()( 下图说明了短时能量序列的计算方法,其中窗口采用的是直角窗。
过零就是信号通过零值。
对于连续语音信号,可以考察其时域波形通过时间轴的情况。
而对于离散时间信号,如果相邻的取样值改变符号则称为过零。
由此可以计算过零数,过零数就是样本改变符号的次数。
单位时间内的过零数称为平均过零数。
语音信号x (n )的短时平均过零数定义为()[]()[]()()[]()[]()n w n x n x m n w m x m x Z m n *--=---=∑∞-∞=1sgn sgn 1sgn sgn 式中,[]•sgn 是符号函数,即()[]()()()()⎩⎨⎧<-≥=0101sgn n x n x n x短时平均过零数可应用于语音信号分析中。
发浊音时,尽管声道有若干个共振峰,但由于声门波引起了谱的高频跌落,所以其语音能量约集中干3kHz 以下。
而发清音时.多数能量出现在较高频率上。
既然高频率意味着高的平均过零数,低频率意味着低的平均过零数,那么可以认为浊音时具有较低的平均过零数,而清音时具有较高的平均过零数。
第1篇一、实验背景声音处理技术是现代通信、媒体、教育等领域的重要技术之一。
通过声音处理,可以对声音信号进行增强、降噪、压缩、合成等操作,以达到提高声音质量、方便传输、满足特定需求的目的。
本实验旨在让学生了解声音处理的基本原理和方法,掌握常见的声音处理技术,并能够运用这些技术解决实际问题。
二、实验目的1. 了解声音处理的基本原理和方法。
2. 掌握常用的声音处理技术,如增强、降噪、压缩等。
3. 能够运用声音处理技术解决实际问题。
三、实验内容1. 声音增强实验步骤:(1)选择一段噪声干扰严重的音频信号。
(2)使用声音处理软件(如Adobe Audition)对音频信号进行增强处理。
(3)观察处理前后音频信号的变化,分析增强效果。
2. 声音降噪实验步骤:(1)选择一段包含噪声的音频信号。
(2)使用声音处理软件(如Adobe Audition)对音频信号进行降噪处理。
(3)观察处理前后音频信号的变化,分析降噪效果。
3. 声音压缩实验步骤:(1)选择一段音频信号。
(2)使用声音处理软件(如Adobe Audition)对音频信号进行压缩处理。
(3)观察处理前后音频信号的变化,分析压缩效果。
四、实验结果与分析1. 声音增强实验结果:通过声音增强处理,音频信号中的噪声得到了有效抑制,声音质量得到了提高。
分析:声音增强技术主要是通过调整音频信号的幅度,使原本淹没在噪声中的声音信号得到突出。
在本实验中,使用声音处理软件的增强功能,可以有效提高音频信号的质量。
2. 声音降噪实验结果:通过声音降噪处理,音频信号中的噪声得到了有效抑制,语音清晰度得到了提高。
分析:声音降噪技术主要是通过识别并去除音频信号中的噪声成分,从而提高语音的清晰度。
在本实验中,使用声音处理软件的降噪功能,可以有效去除音频信号中的噪声。
3. 声音压缩实验结果:通过声音压缩处理,音频信号的存储空间得到了减小,传输效率得到了提高。
分析:声音压缩技术主要是通过降低音频信号的采样率、量化精度等参数,从而减小音频信号的存储空间和传输带宽。
一、实验目的1. 了解音频信号的基本特性,包括时域和频域特性。
2. 掌握音频信号的数字化过程,包括采样、量化、编码等。
3. 学习音频信号处理的基本方法,如滤波、压缩、回声消除等。
4. 通过实验验证理论,提高实际操作能力。
二、实验原理音频信号是一种模拟信号,其频率范围一般在20Hz~20kHz之间。
为了将音频信号数字化,需要按照一定的采样频率对音频信号进行采样,并将采样值进行量化编码。
在数字音频处理过程中,常用的滤波器有低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
三、实验仪器与设备1. 电脑一台2. 音频采集卡一台3. 音频播放软件(如Audacity)4. 实验指导书四、实验内容1. 音频信号采集与播放(1)使用音频采集卡将音频信号输入电脑,并使用音频播放软件播放采集到的音频信号。
(2)观察音频信号的波形,分析其频率成分和幅度变化。
2. 音频信号数字化(1)设置采样频率为44.1kHz,采样精度为16位。
(2)将采集到的音频信号进行数字化处理,生成数字音频文件。
3. 音频信号滤波(1)设计一个低通滤波器,截止频率为3kHz。
(2)对数字音频信号进行低通滤波处理,观察滤波后的效果。
4. 音频信号压缩(1)设计一个压缩器,阈值为-20dB,压缩比为2:1。
(2)对数字音频信号进行压缩处理,观察压缩后的效果。
5. 音频信号回声消除(1)设计一个回声消除器,延迟时间为50ms,增益为-20dB。
(2)对含有回声的数字音频信号进行回声消除处理,观察消除后的效果。
五、实验结果与分析1. 音频信号采集与播放实验结果显示,采集到的音频信号波形清晰,频率成分丰富,幅度变化明显。
2. 音频信号数字化实验结果显示,数字音频文件的大小与采样频率、采样精度和音频信号持续时间有关。
3. 音频信号滤波实验结果显示,低通滤波器有效地滤除了高于3kHz的频率成分,使得音频信号更加清晰。
4. 音频信号压缩实验结果显示,压缩器将音频信号的动态范围压缩,提高了信噪比,使得音频信号更加悦耳。
学院闽江学院系:化学与工程系专业:师范教育年级:09 实践日期:201 2年4 月10 日交报告日期:201 2年4月11日指导教师签字:成绩:实践二音频数字化采集与加工一、实践目的1、掌握音频数字化处理的基本方法2、掌握利用Adobeaudio进行音频数字化采集与加工。
二、实践内容1、对给定的实验视频(氢气的实验室制备.flv)录制解说,并输出成mp3文件2、对录制下来的声音进行降噪和优化处理,给这段声音片段添加合适的背景音乐并进行调整、混缩输出成mp3格式。
三、实践器材1、计算机2、adobe audio3.0软件、话筒/耳麦四、实践步骤(一)、音频的数字化录制1、打开Audition数字音频软件,单轨模式主界面如下:在视图模式切换栏中选择多轨模式,,多轨模式界面如下:2、点击轨道1中R按钮,弹出对话框如下:选择保存,红色变亮,点击走带控制按钮中的录制按钮,即开始录音。
录音完,再次点击红色录制按钮,即完成录制。
通过走带控制按钮,也可以对波形文件播放试听。
完成录制如下图:3、双击该波形图,即回到单轨编辑状态:(二)、对录音波形文件的降噪、优化处理1、静音处理:由于录音之前有较长一段时间都是空白,可以对此段波形进行静音处理。
首先选中要静音的声音波形,选择菜单栏中的(效果)/(静音)。
静音前:静音后:2、降噪处理:使用时间选择工具选中正式录音前的噪音部分,如图所示:执行菜单栏的(效果)/(修补)命令,采集当前的噪音样本并作为采样降噪的样本依据。
即双击左边(效果)浏览栏中的(修复)/(降噪预置噪声文件)。
如图:弹出对话框:点击确定,完成捕捉噪音降低素材。
下一步,按住Ctrl+A选中所有需要降噪的声音波形,双击(修复)/(降噪器),打开噪音降低效果器,如下:可以选中对数刻度,低频部分就会看得更清楚,点击获取特性,曲线就变成图的样子可以在4096~12000之间对FFT数值进行反复调整和试听,找到降噪效果最好的数值,按确定按钮,即完成对波形文件的降噪处理。
实验一数字音频处理实验一、实验目的:1、探讨采样频率对数据量的影响,对音质的影响以及带来的其他问题。
2、学习并掌握基本的音频处理手段。
3、熟悉和掌握W A V标准音频文件和M P3压缩音频文件的编辑方法。
二、实验要求:独立进行实验,完成实验报告。
三、实验内容:1、理论内容:在多媒体产品中,声音是必不可少的对象,其主要表现形式是语音、自然声和音乐。
要处理声音,首先要把声音数字化,这个过程叫做音频采样。
有了数字化声音后,接着对其进行处理。
处理方式主要有:剪辑、合成、制作特殊效果、增加混响、调整时间长度、改善频响特性等。
音质的好坏与采样频率成正比,当然,也与数据量成正比。
换言之,采样频率越高,音质越好,数据量也越大。
2、实验内容:(1)获取声音:准备好以WA V和MP3两种格式保存的文件,W AV格式无压缩,音质好,能够忠实地还原自然声;M P3格式是压缩格式,在压缩比不大的情况下,音质也非常好。
(2)录制声音:在录制之前,把麦克风连接到声卡上,如果使用的是带麦克风的头带耳机,检查连接线是否接好。
A、使用“录音机”录制练习:如果录制小于1min的声音,可使用Win dows自带的“录音机”软件录制。
操作步骤:a、启动录音机软件。
b、单击录音按钮,开始录音。
此时,进程滑块向右移动,到右端终点位置停止,时间正好1m in。
c、单击播放按钮,聆听效果。
如果不满意,选择“文件/新建”菜单,清除录音,重新进行步骤b。
d、转换采样频率。
选择“文件/属性”菜单,显示“声音的属性”画面。
“声音的属性”画面自上而下显示了声音文件的版权、长度、数据大小、音频格式。
其中的音频格式就是当前文件的采样频率。
画面显示“PCM 44100 Hz,16位,立体声”,对于语音来说,采样频率过高了,数据量过大,造成存储空间的浪费。
数字信号处理综合报告--数字音频信号的分析与处理数字信号处理实验题目数字音频信号的分析与处理班级姓名学号日期 2013.06.10-2013.06.24一、实验目的1.复习巩固数字信号处理的基本理论;2.利用所学知识研究并设计工程应用方案。
二、实验原理数字信号处理技术在音频信号处理中的应用日益增多,其灵活方便的优点得到体现。
分频器即为其中一种音频工程中常用的设备。
人耳能听到的声音频率范围为20Hz~20000Hz,但由于技术所限,扬声器难以做到在此频率范围内都有很好的特性,因此一般采用两个以上的扬声器来组成一个系统,不同的扬声器播放不同频带的声音,将声音分成不同频带的设备就是分频器。
下图是一个二分频的示例。
图8.1 二分频示意图高通滤波器和低通滤波器可以是FIR或IIR 类型,其中FIR易做到线性相位,但阶数太高, 不仅需要耗费较多资源,且会带来较长的延时;IIR阶数低,但易出现相位失真及稳定性问题。
对分频器的特性,考虑最多的还是两个滤波器合成的幅度特性,希望其是平坦的,如图8.2所示:图8.2 分频器幅度特性由于IIR的延时短,因此目前工程中大量应用的还是Butterworth、Bessel、Linkwitz-Riley 三种IIR滤波器。
其幅频特性如图8.3所示:图8.3 三种常用IIR 分频器的幅度特性巴特沃斯、切比雪夫、椭圆等类型的数字滤波器系数可通过调用MATLAB 函数很方便的计算得到,但Bessel 、Linkwitz-Riley 数字滤波器均无现成的Matlab 函数。
并联系统的系统函数为l h h l l h()()()()()()()()()()()()()()()B=conv(B ,A )+conv(B ,A )A=conv(A ,A )l h l h l h l h h l l h B z B z H z H z H z A z A z B z A z B z A z B z A z A z A z =+=++==⎧⇒⎨⎩级联系统的系统函数为宁可瑞滤波器(Linkwitz-Riley ),由两个巴特沃斯滤波器级联而成。
数字音频技术实验姓名:余红莲班级:信A0831 学号:01专业:教育技术学老师:丁继红老师实验一实验名称配乐朗诵诗实验课时 2实验目的和要求1.实验目的:◆了解和掌握传送控制器的使用方法◆熟悉混音器的使用方法◆掌握会话属性面板的使用方法2.实验要求:能依据所学的知识,进行声音录制,调速,对噪声进行采样和降噪,修复破音,淡入淡出,配音处理等,并且能够导出成为合适的音频格式。
实验步骤、心得一.实验步骤:1.打开书本附带素材文件,录制朗诵声音;2.删除与增加间隔时间,调整语速。
3.对文件中的噪声波形进行采样,对录制声音降噪处理。
4.修复破音的波形。
5.导入背景音乐,将录音与背景音乐插入到多轨进行编辑。
6.对背景音乐淡入淡出处理,朗诵部分的背景音乐淡化。
7.将编辑好的音频文件导出为常用的音频格式。
二.实验结果:原始音频波形:处理之后的波形:显然,原始波形振幅比较小,说明录音的音量不够,同时原来的声音没有配音,而后来加入了配音,并做了淡入淡出处理,波形在开始和结尾的时候比较平滑,同时去除了中间的噪声。
实验二实验名称广播节目录制实验课时 2实验目的和要求1.实验目的:◆通过实验,要求掌握在系统中播放电影,歌曲等。
◆掌握录制有使用价值的声音素材的技术。
◆能够定时录制节目或广播声音。
2.实验要求:能通过实验,要求掌握在系统中播放电影,歌曲等,并录制有使用价值的声音素材。
并且能够定时录制节目或广播声音。
实验步骤、心得一.实验步骤:1.使用麦克风采集获取一段讲解词,作回声及其它相关处理;2.编辑一段背景音乐,作淡入、淡出、声音响度等编辑处理;3.音频合成讲解词与背景音乐,设计生成两种格式的数字音频文件。
通过本实验,要求掌握在系统中播放电影,歌曲等,并录制有使用价值的声音素材。
并且能够定时录制节目或广播声音。
二.实验结果:在录制音乐之前,必须先对硬件进行配置,在“硬件”-“音频硬件配置”后设置好首选input和output。
深圳大学实验报告实验课程名称:多媒体技术与应用实验项目名称: 音频处理______ 学院:________ 专业:__________________________________ 报告人:___ 学号:_____________班级:___________ __ 同组人:指导教师:____________________实验时间:__________________实验报告提交时间:________________________教务处制一、实验目的与要求1.通过实验加深对声音数字化的理解.2.熟悉一种音频处理软件的使用方法.二、实验步骤:(1)导入音频在编辑视图下,选择“导入文件”命令,这时会出现“打开"对话框,在“查找范围”中选择所需的文件夹,单击相应的音频文件。
这时导入事先搜索下载或录好的音频文件,其波形显示在波形显示区中。
如图所示。
(2)降低噪声因为本人用手持移动设备录音的缘故,因而受到环境影响较大,导致录制的声音夹杂一些噪声(虽然在Audition中播放时并不明显),因此要用降噪效果器将噪声减弱,提高录音音频的质量.操作是:先选择一段有嘶嘶声的波形(这里我选取了全部的录音音频段),执行“效果/修复/消除嘶声”菜单命令,这时会出现“嘶声消除”对话框。
如图所示。
单击“获取低噪”按钮,显示区域会显示分析结果,然后单击“试听”按钮,如果发现有过度降噪的现象,可以手动调整部分曲线。
最后单击“确定”按钮即可。
降噪器是常用的噪声降低器,它能够将录音中的本底噪声最大程度地消除.因录音音频经过嘶声消除后噪音已被绝大部分地消除,故本人没有再使用降噪器处理录音音频。
(3)淡入/淡出制作淡入效果的方法是:先选择开头的一小段合适的声音波形(经本人的反复试听,截取了0。
00.000~0。
18。
529这一段朗诵前的前奏作为淡入效果的演示),从“效果”菜单中选择“振幅和压限/振幅/淡化"命令,这时会出现“振幅/淡化”对话框,如图所示.在“预设"列表框中选择“淡入”效果,单击“确定“按钮,被选中的声音波形就出现了淡入的效果。
通信系统工程应用训练实验报告题目:数字音频回声系统的处理专业:通信工程姓名: 吕迪学号:13024219指导教师:孙恩昌完成日期:2016年6月6日一、实验目的(1)加深对IIR滤波器基本原理的理解;(2)学习利用IIR滤波器的C语言程序;(3)了解数字音频回声处理的方法,提高分析和解决问题的能力。
二、实验内容下面是一个对实际效果模拟的组合方案,如图3所示。
其中左面的子系统是延迟相加模块,滤波器参数分别为1)α=0.75,b=1,R=292)α=0.75,b=0.9,R=373)α=0.75,b=0.8,R=444)α=0.75,b=0.7,R=50右面的子系统是第二个延迟相加模块,参数为1)α=0.75,R=272)α=0.75,R=31输入一个脉冲信号,观察输出信号的波形(脉冲响应)。
图3 数字音频回声系统模拟三、实验思路及流程图四、实验结果单位冲击响应时延29滤波后图形单位冲击响应时延37滤波后图形单位冲击响应时延44滤波后图形单位冲击响应时延55滤波后图形滤波后求和后图形求和后时延27滤波后图形再次时延31滤波后图形DFT变换后频谱图五、实验程序#include "stdafx.h"#include"D:\x_math.cpp"#include"D:\x_graph.cpp"void Filter1(int t,double x[]); //延迟相加模块一void Filter2(double a,double b,double x[],int c0); //延迟相加模块二void Filter3(double a,double b,double x[]); //延迟相加模块三void plotgri2test(COLORREF gridcolor,COMPLEX p[],int N); //二维绘图函数double a[60];double b[60];double c[60];double d[60];int main(int argc, char* argv[]){int i;double x1[60];COMPLEX X2[60],X3[60];FILE *txtfile1;FILE *txtfile2;FILE *txtfile3;FILE *txtfile4;FILE *txtfile5;FILE *txtfile6;FILE *txtfile7;x1[0]=1; //在零时刻提供一个脉冲for(i=1;i<60;i++)x1[i]=0;for(i=0;i<60;i++)a[i]=0;window2("IIR数字滤波器-29",-2,3,70,-1,"t","f(t)");HPEN pen1=CreatePen(PS_SOLID,5,BLACK),oldpen=(HPEN)SelectObject(win2.hdc,pen1);//创建画笔HPEN pen2=CreatePen(PS_SOLID,1,RED);HPEN pen3=CreatePen(PS_SOLID,5,BLUE);xy2(GREEN);//画xy轴。
Filter1(29,x1);SelectObject(win2.hdc,pen3);for(int n=0;n<60;n++){line2(n,0,n,a[n]);}SelectObject(win2.hdc,pen2);for( n=0;n<60;n++){line2(n,0,n,x1[n]);}getch();//等待for(i=0;i<60;i++){b[i]=a[i];} //将结果存进数组b,进行求和txtfile1=fopen("1.txt","w");for(n=0;n<60;n++){fprintf(txtfile1,"%lf,",a[n]);}//将滤波结果存至txt文档fclose(txtfile1);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器-37",-2,3,70,-1,"t","f(t)");xy2(GREEN);//画xy轴。
Filter1(37,x1);SelectObject(win2.hdc,pen3);for( n=0;n<60;n++){line2(n,0,n,a[n]);}SelectObject(win2.hdc,pen2);for( n=0;n<60;n++){line2(n,0,n,x1[n]);}getch();//等待for(i=0;i<60;i++){b[i]=b[i]+0.9*a[i];}//进行求和txtfile2=fopen("2.txt","w");for(n=0;n<60;n++){fprintf(txtfile2,"%lf,",a[n]);}//将滤波结果存至txt文档fclose(txtfile2);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器-44",-2,3,70,-1,"t","f(t)");xy2(GREEN);//画xy轴。
Filter1(44,x1);SelectObject(win2.hdc,pen3);for( n=0;n<60;n++){line2(n,0,n,a[n]);}SelectObject(win2.hdc,pen2);for( n=0;n<60;n++){line2(n,0,n,x1[n]);}getch();//等待for(i=0;i<60;i++){b[i]=b[i]+0.8*a[i];}//进行求和txtfile3=fopen("3.txt","w");for(n=0;n<60;n++){fprintf(txtfile3,"%lf,",a[n]);}//将滤波结果存至txt文档fclose(txtfile3);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器-55",-2,3,70,-1,"t","f(t)");xy2(GREEN);//画xy轴。
Filter1(55,x1);SelectObject(win2.hdc,pen3);{line2(n,0,n,a[n]);}SelectObject(win2.hdc,pen2);for( n=0;n<60;n++){line2(n,0,n,x1[n]);}getch();//等待for(i=0;i<60;i++){b[i]=b[i]+0.7*a[i];}//进行求和txtfile4=fopen("4.txt","w");for(n=0;n<60;n++){fprintf(txtfile4,"%lf,",a[n]);}//将滤波结果存至txt文档fclose(txtfile4);txtfile5=fopen("5.txt","w");for(n=0;n<60;n++){fprintf(txtfile5,"%lf,",b[n]);}//将求和结果输出为txt文档fclose(txtfile5);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器求和",-2,5,70,-1,"t","f(t)");xy2(GREEN);//画xy轴。
SelectObject(win2.hdc,pen3);{line2(n,0,n,b[n]);}getch();//等待frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器-27",-5,5,70,-5,"t","f(t)");xy2(GREEN);//画xy轴。
Filter2(-0.75,0.75,b,27);SelectObject(win2.hdc,pen3);for( n=0;n<60;n++){line2(n,0,n,c[n]);}getch();//等待txtfile6=fopen("6.txt","w");for(n=0;n<60;n++){fprintf(txtfile6,"%lf,",c[n]);}//将滤波结果存至txt文档fclose(txtfile6);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框window2("IIR数字滤波器-31",-4,5,70,-5,"t","f(t)");xy2(GREEN);//画xy轴。
Filter3(-0.75,0.75,c);SelectObject(win2.hdc,pen3);for( n=0;n<60;n++){line2(n,0,n,d[n]);}getch();//等待txtfile7=fopen("7.txt","w");for(n=0;n<60;n++){fprintf(txtfile7,"%lf,",d[n]);}//将滤波结果存至txt文档fclose(txtfile7);frame2(win2.xstr,win2.ystr);//清除用户绘图区域,重画边框频谱图window2("频域图",-1,5,70,-5,"w","f(w)");xy2(BLUE);for(i=0;i<60;i++){X3[i]=COMPLEX(d[i],0);X2[i]=COMPLEX(0,0);} dft(X2,X3,60,1);plotgri2test(RED,X2,60);getch();//等待return 0;}void Filter1(int t,double x[]){int n;for( n=0;n<60;n++){if(n<t){a[n]=x[n];}else{a[n]=x[n]+0.75*a[n-t];}}}void Filter2(double a,double b,double x[],int c0) {int n;for( n=0;n<60;n++){if(n<c0){c[n]=a*x[n];}else{c[n]=a*x[n]+x[n-c0]+b*c[n-c0];}}}void Filter3(double a,double b,double x[]){int n;for( n=0;n<60;n++){if(n<31){d[n]=a*x[n];}else{d[n]=a*x[n]+x[n-31]+b*d[n-31];}}}void plotgri2test(COLORREF gridcolor,COMPLEX p[],int N) //二维绘图函数{int i;HPENpen1=CreatePen(PS_SOLID,1,gridcolor),oldpen=(HPEN)SelectObject(win2.hdc,pen1);for(i=0;i<N;i++){moveto2(i,0);lineto2(i,abs(p[i])); //lineto2(i,sqrt((p[i].r*p[i].r)+(p[i].i*p[i].i)));}SelectObject(win2.hdc,oldpen);DeleteObject(pen1);}六、心得体会通过本次实验,我体会到了编写一个滤波器程序的过程,让我收获颇丰,在编写程序的过程中,首先要有编写的思路,写出流程图,搭出框架,在具体算法的编写过程中,有些语句会出现错误,需要经过反复的调试来修改错误,还有一些语句的使用不够熟悉,需要查阅资料或者请教其他同学;除此之外,我还体会到了团队协作的力量,在本次实验中,我主要负责了绘图部分以及滤波器函数程序的编写工作,我和我的搭档相互帮助,相互讨论,最终完成了实验任务。