软件工程设计.docx
- 文档编号:6191865
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:20
- 大小:418.07KB
软件工程设计.docx
《软件工程设计.docx》由会员分享,可在线阅读,更多相关《软件工程设计.docx(20页珍藏版)》请在冰豆网上搜索。
软件工程设计
《计算机软件技术基础》
软件工程
班号:
XXXXX学号:
XXXXXX
姓名:
XXXXEmail:
XXXXXXXXXXXX
签名:
南京航空航天大学
2013年12月2日
目录
WAV文件结构的综述…………………………………………3
WAV文件创建与读取软件需求分析…………………………5
WAV文件创建与读取软件设计………………………………9
WAV文件创建与读取软件运行测试………………………13
WAV文件结构的综述
1WAV文件简介
WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(ResourceInterchangeFileFormat)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITTALAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几。
此类文件扩展名为“*.wav”,因而该类文件也被称为WAVE文件。
2WAV文件结构
整个WAVE文件以4个字节的“RIFF”作为标志符。
WAVE文件的基本组成部分是“块”(Chunk)。
每个块有“标志符”、“数据长度”及“数据”所组成。
RIFF块包含若干子块,这些子块的标志符分别是FMT、LIST、DATA等,其中FMT子块记录了该WAVE文件的编码类型标识、声道数、采样频率、数据流量、采样数据的字节数以及每个数据的比特位。
DATA子块记录了声音信号的数字量以及数据长度。
3WAV文件头
WAV文件文件头类型比较多,这里只介绍两种常见的WAV标准文件头
3.144字节的文件头
地址
字节数
数据块类型
内容
00H~03H
4
4字符
资源交换文件标志(RIFF)
04H~07H
4
长整数
从下个地址开始到文件尾的总字节数
08H~0BH
4
4字符
WAV文件标志(WAVE)
0CH~0FH
4
4字符
波形格式标志(fmt),最后一位空格。
10H~13H
4
整数
过滤字节(一般为00000010H)
14H~15H
2
整数
格式种类(值为1时,表示数据为线性PCM编码)
16H~17H
2
整数
通道数,单声道为1,双声道为2
18H~1BH
4
长整数
采样频率
1CH~1FH
4
长整数
波形数据传输速率(每秒平均字节数)
20H~21H
2
整数
DATA数据块长度,字节。
22H~23H
2
整数
PCM编码
24H~27H
4
4字符
数据标志符(data)
28H~2BH
4
长整型
DATA总数据长度字节
2CH……
DATA数据块
3.258字节的文件头
地址
字节数
数据块类型
内容
00H~03H
4
4字符
资源交换文件标志(RIFF)
04H~07H
4
长整数
从下个地址开始到文件尾的总字节数
08H~0BH
4
4字符
WAV文件标志(WAVE)
0CH~0FH
4
4字符
波形格式标志(fmt),最后一位空格。
10H~13H
4
整数
过滤字节(一般为00000010H)
14H~15H
2
整数
格式种类(值为1时,表示数据为线性PCM编码)
16H~17H
2
整数
通道数,单声道为1,双声道为2
18H~1BH
4
长整数
采样频率
1CH~1FH
4
长整数
波形数据传输速率(每秒平均字节数)
20H~21H
2
整数
采样一次占字节数
22H~23H
2
整数
PCM编码
24H~25H
4
4字符
标志符(fact)
26H~29H
4
长整型
DATA总数据长度字节
2AH~2DH
4
整数
量化数
2EH~31H
4
4字符
(fact)
32H~35H
4
4字符
DATA数据块(data)
36H~39H
4
长整型
DATA总数据长度字节
2CH……
DATA数据块
4其他
WAV文件当然不仅仅是可以用于保存音频数据,还可以用于保存其他数据。
当WAV文件保存音频时,声道有单声道和立体声之分,采样频率一般有11025Hz(11kHz)、22050Hz(22kHz)和44100Hz(44kHz)三种。
WAV文件所占容量=(采样频率×采样位数×声道)×时间/8(1字节=8bit)。
WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。
WAV文件创建与读取软件需求分析
1软件需求分析
1.1需求概述
本软件需要完成对一类符合通用的WAV标准的WAV文件的创建和读取,同时能够完成波形绘制。
1.2功能需求
WAV文件创建:
软件能够创建一类符合通用的WAV标准的WAV文件,而且文件能被其他软件读取,具有一定的通用性。
WAV文件读取:
软件能够读取一类符合通用的WAV标准的WAV文件,并且以波形的形式显示出来。
波形绘制:
软件能够绘制WAV文件创建和读取的波形。
本软件指定的一类WAV标准为44字节文件头,16位单声道的WAV文件,即两个字节作为一个data数据(头文件格式与上文《WAV文件结构的综述》中3.1节中44字节文件头中所示的文件头形式一致)。
1.3性能需求
响应时间:
软件正常启动时间不超过3秒,WAV文件创建时间不超过2秒,WAV文件读取并绘制波形图像不超过2秒。
数据的完整性,准确性:
软件能完全读取一类符合通用的WAV标准的WAV文件的数据(本软件指定的那类WAV文件如上1.2节中所述)。
1.4运行需求
装有MFC运行库的计算机(装有VisualC++软件就会有MFC运行库,或者下载一个MFC运行库,拷贝到C:
\Windows\System目录下)。
1.5未来可能提出的需求
未来可能需要软件创建更多不同波形的WAV文件,读取多种不同头文件标准的WAV文件。
1.6数据需求
1.6.1WAV文件创建所需数据
WAV文件创建时,需要先行写入WAV文件头数据。
WAV文件文件头后面的是data数据,由于本软件指定的一类WAV标准为44字节文件头,16位单声道的WAV文件。
所以本软件写入时,需要data数据为2个字节一组,每一组中前者是低位data数据,后者是高位data数据。
1.6.2WAV文件读取所需数据
WAV文件读取时,需要先行读取WAV文件头数据。
WAV文件文件头后面的是data数据,由于本软件指定的一类WAV标准为44字节文件头,16位单声道的WAV文件。
所以本软件读取时,需要2个字节为一组读取data数据,每一组中前者是低位data数据,后者是高位data数据。
1.6.3波形绘制所需数据
WAV文件创建时,需要将特定波形的函数值转化为像素点坐标数据,用于绘图。
WAV文件读取时,需要将data数据转化为像素点坐标数据,用于绘图。
2软件数据流图
WAV文件
二进制数据
二进制流
二进制流
函数值数据
函数计算式
坐标数据
函数值数据
坐标数据
二进制数据
取样后数据
二进制流
二进制数据
WAV文件
二进制数据
3软件数据字典
3.1数据项
3.1.1数据项1——x轴坐标
数据项名:
x轴坐标
别名:
x轴像素坐标
类型:
int
长度:
4字节
取值范围及含义:
在35~835内取值,表示x轴像素坐标位置
3.1.2数据项2——y轴坐标
数据项名:
y轴坐标
别名:
y轴像素坐标
类型:
int
长度:
4字节
取值范围及含义:
在30~350内取值,表示y轴像素坐标位置
3.2数据流
3.2.1数据流1——坐标数据
数据流名:
坐标数据
别名:
像素坐标点
来源:
加工4“函数值数据转化”
去向:
加工5“画图”
组成:
x轴像素坐标,y轴像素坐标
数据流量:
大约2000个/一幅图
3.2.2数据流2——函数值
数据流名:
函数值
别名:
函数取样点的值
来源:
加工1“函数值生成”
去向:
加工4“函数值数据转化”
组成:
函数各个取样点的值
数据流量:
2000个数据/次
3.2.3数据流3——二进制数据
数据流名:
二进制数据
别名:
WAV文件data数据
来源:
加工2“转化为二进制数据”或加工6“读取”
去向:
加工3“写入”或者加工7“数据取样”
组成:
以char类型保存的二进制数据
数据流量:
4000个数据/次
3.2.4数据流4——取样后数据
数据流名:
取样后数据
别名:
取样后的二进制数据
来源:
加工7“数据取样”
去向:
加工8“二进制数据转化”
组成:
以char类型保存的二进制数据
数据流量:
2000个数据/次
3.3数据储存文件
3.3.1数据储存文件1——WAV文件
文件名:
**.wav(WAV文件)
描述:
保存了WAV文件数据
组成:
44字节WAV文件头+data数据
组织:
按一类指定的WAV文件组织(详细叙述如下4节所述)
4WAV文件数据结构
4.1文件头
本软件支持的一类WAV文件为44字节文件头,16位单声道的WAV文件,头文件具体如下:
地址
字节数
数据块类型
内容
00H~15H
16
与《WAV文件结构的综述》中3.1节中44字节文件头中所示的文件头内容一样
16H~17H
2
整数
本软件为0100
18H~1BH
4
长整数
本软件为E80300(采样率1000Hz)
1CH~1FH
4
长整数
波形数据传输速率(每秒平均字节数)
20H~21H
2
整数
本软件为0200每个采样数据占2个字节
22H……
与《WAV文件结构的综述》中3.1节中44字节文件头中所示的文件头内容一样
4.2data数据部分
data部分数据为2字节取样单声道数据,数据结构如下:
data数据
样本1(2个字节)
样本2(2个字节)
单声道
0声道低位字节
0声道高位字节
0声道低位字节
0声道高位字节
WAV文件创建与读取软件设计
1软件概要设计
1.1软件构架设计
1.2软件的结构化设计
1.2.1软件结构图(SC图)
1.3软件界面设计
1.3.1波形绘制的界面
在特定波形生成与WAV读取时需要绘制WAV的波形,所以需要一个波形绘制的区域。
用绘图函数绘制一个矩形框。
1.3.2WAV文件创建部分的界面
需要一个文件名和路径的编辑框,正弦波、锯齿波、三角波、白噪声的生成按钮,一个保存文件的按钮
1.3.3WAV文件读取部分的界面
需要一个文件名和路径的编辑框(与WAV文件创建部分的界面共用一个编辑框),清除波形显示、打开波形文件、显示上一段波形和显示下一段波形四个按钮。
1.3.4退出按钮控件
需要一个退出按钮用于退出程序
1.3.5其他
需要若干个组框和静态文本框用于提示和美化界面
1.3.6软件界面
结合上述设计得出最终的软件界面设计。
2软件详细设计
2.1WAV文件创建模块
2.1.1WAV文件创建流程
(1)确定波形——正弦波、锯齿波、三角波、白噪声
1.通过函数生成特定波形
2.保存数据并转化为WAV文件data数据再次保存
(2)绘制波形(具体见波形绘制模块)
(3)输入文件名和路径
(4)保存文件
1.获取文件名和路径
2.写入文件头(本软件采用44字节标准的文件头)
3.调用data数据,并写入文件中(本软件只写入4000个字节的波形数据)
4.关闭文件
2.1.2WAV文件创建流程图
2.2WAV文件读取模块
2.2.1WAV文件读取流程
(1)输入文件名和路径
(2)打开文件
1.获取文件名和路径
2.打开文件
(3)读取数据
1.读取文件头(本软件适合读取WAV文件标准为44字节文件头,16位单声道的WAV文件,两个自己为一个data数据)
2.读取前2000个data数据
3.保存data数据最值之差转化为波形数据最值之差
(4)绘制波形(具体见波形绘制模块)
(5)查看每一段波形
1.可以选择“上一段波形”或“下一段波形”,读取前2000个data数据的波形或者后2000个data数据波形,直至到达文件头或者文件尾
2.同时执行第(4)步绘制波形
2.1.2WAV文件创建流程图
F
2.3WAV波形绘制模块
2.3.1WAV波形绘制流程
(1)获取绘图坐标点个数i,特定创建或者读取WAV文件的绘图的标记,波形数据最值之差
(2)绘制红边,白底的矩形框覆盖原有图形
(3)获取i个波形数据,根据最值之差将数据转化为x,y轴像素坐标
(4)绘制直线分段连接各个坐标点
2.3.2WAV波形绘制流程图
WAV文件创建与读取软件运行测试
1软件运行测试
1.1WAV文件创建部分与WAV波形绘制部分运行测试
1.1.1测试步骤
点击“正弦波”,“锯齿波”,“三角波”,“白噪声”四个按钮中任意一个,产生所需波形,然后在“输入路径和文件名:
”静态文本框后面的编辑框中输入路径和文件名,例如“F:
\test.wav”,点击“保存波形文件”按钮。
1.1.2测试结果
在F盘根目录下,确实建立了test.wav文件,而且可以读取。
图形界面运行效果如下图所示:
1.2WAV文件读取部分与WAV波形绘制部分运行测试
1.2.1测试步骤
在“输入路径和文件名:
”静态文本框后面的编辑框中输入路径和文件名,例如“F:
\wav\tst.wav”,点击“打开波形文件”按钮,然后在点击“清除波形显示”,“上一阶段波形”,“下一阶段波形”进行测试。
1.2.2测试结果
确实读取了在F盘根目录下test.wav文件。
且绘制了正确的图形,图形界面运行效果如下图所示:
2软件运行总结
测试结果符合软件需求目标,能够进行一类指定的WAV文件的创建和读取,同时能够完成波形绘制。
软件正常启动时间在1.5秒以内,WAV文件创建时间在1秒以内,WAV文件读取并绘制波形图像在1秒以内,软件能读取一类指定的WAV文件的数据。
符合软件需求分析中的要求,到达预期目标。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 设计