基于声卡的数字示波器设计 河工大.docx
《基于声卡的数字示波器设计 河工大.docx》由会员分享,可在线阅读,更多相关《基于声卡的数字示波器设计 河工大.docx(22页珍藏版)》请在冰豆网上搜索。
基于声卡的数字示波器设计河工大
专业方向实践课程设计说明书
专业:
测控技术与仪器
班级:
学号:
姓名:
指导老师:
2014年5月31日
目录
一、课程设计的目的、意义、内容及要求……………………….
二、示波器的原理、发展及应用………………………………….
三、声卡的工作原理、相关参数………………………………….
四、基于声卡的数字示波器……………………………………….
五、软件功能介绍………………………………………………….
(一)基本示波器………………………………………………………...
(二)基本信号发生器……………………………………………………...
(三)频谱分析仪………………………………………………………....
(四)录音和播放…………………………………………………………
六、课程设计总结…………………………………………………..
七、参考文献………………………………………………………..
八、附录……………………………………………………………..
一、课程设计的目的、意义、内容及要求
(1)课程设计的目的、意义
本专业方向实践课以基于Labview的虚拟仪器设计为主。
课程的总体目标是:
通过设计基于声卡的数字化示波器,加深学生对Labview虚拟仪器的理解、掌握和应用,并激发学生进一步的思考和发挥,培养学生的学习兴趣和创新思维。
(2)课程设计的内容
了解和掌握Labview虚拟仪器开发的软、硬件平台;掌握Labview形图化编程的设计方法;应用Labview的进行基于声卡的数字化示波器设计开发。
模拟示波器、信号发生器和频率计等设备的基本功能。
用于音频范围的各种信号的采集、产生与监测。
(3)课程设计的要求
1、了解机器所配置声卡的参数
1)机器中声卡的采样位数、采样频率、解析度。
2)声卡的输入、输出装置。
如Linein/out等.
3)声卡的输入、输出音频范围、输出电压幅度
2、进行基于声卡的仪器设计(包括三大功能)
1)虚拟示波器设计
基本功能:
信号采集、显示、基线、时间和幅度调整;实现保存波形、文件显示、打印及远程数据的交换功能。
2)虚拟信号发生器设计
基本功能:
实现模拟信号源,产生如方波、正弦波、三角波和单次脉冲等信号,幅度和频率可根据需要进行实时的调整。
3)频谱分析仪
基本功能:
实现对所测量信号的波形相加/减、滤波处理、傅立叶变换等分析功能。
二、示波器的原理、发展及应用
(一)示波器简介
示波器是利用示波管内电子束在电场或磁场中的偏转,显示随时间变化(波形)的电压信号的一种观测仪器。
它不仅可以定性观察电路(或元件)的动态过程,而且还可以定量测量各种电学量,如电压、周期、波形的宽度及上升、下降时间等。
用双踪示波器还可以测量两个信号之间的时间差或相位差,显示两个相关函数的图像。
示波器还可以用作其他显示设备,如晶体管特性曲线、雷达信号等。
配上各种传感器,还可用于各种非电量测量,如压力、声光信号、生物体的物理量(心电、脑电、血压)等。
自1931年美国研制出第一台示波器至今已有70年,它在各个研究领域都取得了广泛的应用,示波器本身也发展成为多种类型,如慢扫描示波器、各种频率范围的示波器、取样示波器、记忆示波器等,已成为科学研究、实验教学、医药卫生、电工电子和仪器仪表等各个研究领域和行业最常用的仪器。
(二)示波器原理
示波器基本结构图
(三)示波器各部分功用
①电子放大系统
竖直放大器、水平放大器
作用:
在偏转板上加足够的电压,使电子束获得明显偏移;对较弱的被测信号进行放大。
②扫描触发系统
扫描发生器作用:
产生一个与时间成正比的电压作为扫描信号
触发电路作用:
形成触发信号。
示波器工作在自动(AUTO)方式时,扫描发生器始终有扫描信号输出;当示波器处于AC/DC触发方式工作时,扫描发生器必须有触发信号的激励才能产生扫描信号。
一般对应:
内触发方式时,触发信号由被测信号产生,满足同步要求;
外触发方式时,触发信号由外部输入信号产生
(四)示波器面板基本功能
三、声卡的工作原理、相关参数
(1)从数据采集的角度看声卡
1.1声卡的作用
从数据采集的角度来看,声卡是一种音频范围内的数据采集卡,是计算机与外部的模拟量环境联系的重要途径。
声卡的主要功能包括录制与播放、编辑和处理等。
1.2声卡的工作原理
声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。
声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过DSP音效芯片的处理,将该数字信号转换为模拟信号输出。
输入时,麦克风或线路输入(LineIn)获取的音频信号通过A/D转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以PCM(脉冲编码调制)方式送到D/A转换器,变成模拟的音频信号,进而通过功率放大器或线路输出(LineOut)送到音箱等设备转换为声波。
(2)声卡的主要技术参数
2.1采样位数
采样位数可以理解为声卡处理声音的解析度。
这个数值越大,解析度就越高,录制和回放的声音就越真实。
我们首先要知道:
电脑中的声音文件是用数字0和1来表示的。
所以在电脑上录音的本质就是把模拟声音信号转换成数字信号。
反之,在播放时则是把数字信号还原成模拟声音信号输出。
声卡的位是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。
声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。
8位代表2的8次方——256,16位则代表2的16次方——64
。
比较一下,一段相同的音乐信息,16位声卡能把它分为64
个精度单位进行处理,而8位声卡只能处理256个精度单位,造成了较大的信号损失,最终的采样效果自然是无法相提并论的。
位数越高,在定域内能表示的声波振幅的数目越多,记录的音质也就越高。
2.2采样频率
每秒钟采集声音样本的数量。
采集频率越高,记录的声音波形就越准确,保真度就越高。
但采样数据量相应变大,要求的存储空间也越多。
目前,声卡的最高采样频率是44.1KHz,有些能达96KHz。
一般将采样频率设为4挡,分别是44.1KHz、22.05KHz、11.025KHz、8KHz。
2.3缓冲区
与一般数据采集卡不同,声卡面临的D/A和A/D任务通常是连续的。
为了在一个简洁的结构下较好地完成某个任务,声卡缓冲区的设计有其独到之处。
为了节省CPU资源,计算机的CPU采用了缓冲区的工作方式。
在这种工作方式下,声卡的A/D、D/A都是对某一缓冲区进行操作。
声卡一般只对20Hz~20KHz的音频信号有较好的响应,这个频率响应范围已经满足了音频信号测量的要求。
四、基于声卡的数字示波器
利用声卡作为声音信号的DAQ卡,可以方便快捷地创建一个采集声音信号的VI。
与声音信号相关的函数节点位于程序框图下【函数】选版下【编程】函数选版的【图形与声音】函数子选版的【声音】函数选版的各子选版,如下图所示:
下面主要介绍【声音】/【输入】控件选板中相关控件的作用。
配置声音输入配置声音输入设备(声卡)参数,用于获取数据并且将数据传送至缓冲区。
启动声音输入采集开始从设备上采集数据,只有停止声音输入采集已经被调用时,才需要使用该VIs。
声音输入清零停止声音采集,清除缓冲区,返回到任务的默认状态,并且释放与任务有关的资源。
配置声音输出用于配置声音输出设备的参数,使用“写入声音输出”VI将声音写入设备。
写入声音输出将数据写入声音输出设备,如要连续写入,必须使用配置声音输出VI配置设备,必须手动选择所需多态实例。
声音输出清零将任务返回到默认的未配置状态,并清空与任务相关的资源,任务变为无效。
此外,还有众多的声音文件的打开和关闭等函数节点。
另外在程序框图下【Express】下【输入】下的【声音采集】及【输出】下的【播放波形】也是与声音信号相关的函数节点,如下图:
设计实例
①声音信号的采集:
采集外部声音信号的程序,条件结构控制采集的开始和停止
②示波器中幅值增益
可以调节两个声道的幅值的大小和倍数,通过条件结构选择不同的增益倍数
③示波器的通道选择输出
通过条件结构选择两个声道输出方式
④其它
由于直接由“读取声音输入”节点输入的声音实则是动态数据,要对采集到的信号进行增益等的控制,必须进行数据类型的转化,在本设计中,采用“从动态数据转换”节点实现目的
由于由LineIn采集到的声音信号,其左右声道的声音信号是并接的,利用“拆分信号”节点,可以实现不同声道信号分离的目的,以达到对不同声道信号进行不同操作如增益、幅度改变等。
⑤整体程序框图和前面板
五、软件功能介绍
(一)基本示波器部分见四、基于声卡的数字示波器的原理
(二)基本信号发生器
下图是一个用声卡实现的基本信号发生器,它可以产生正弦波、矩形波等,并实现频率、幅值等的控制。
下图为基本信号发生器的程序框图设计
为实现在运行界面当中选择产生不同的波形,我们利用到前面板设计窗口下【空间】/【新式】/【下拉列表与枚举】空间选板中的“枚举”控件,如图所示:
【枚举】控件
移动光标到前面板设置的“枚举”控件上,单击鼠标右键,执行弹出的快捷菜单【属性】命令,打开【枚举属性】对话框,切换到“编辑项”选项卡,按图所示对枚举项进行编辑。
【枚举属性】编辑项的编辑
在程序框图设计区,将“枚举”节点作为【条件结构】的条件,两个节点连接后,可以看到条件结构的“条件选择标签”的条件选择变为“正弦波”、“方波”,且“正弦波”为默认条件,如图所示。
图26“条件结构”的连接
在程序设计窗口下,选择【函数】/【编程】/【波形】/【模拟波形】/【波形生成】控件面板中的“正弦波形”、“方波波形”等节点,放置在条件结构内,完成频率、幅度、相位等相应控件的创建,便可以实现产生不同波形的需要。
(三)频谱分析仪
通过对采集到的声音信号进行功率谱分析,练习声音信号的采集和分析过程。
(四)录音和播放
①录音程序设计
用“输入”和“文件”子选板的VI构建一个录制声音的程序,用这个程序可以通过麦克风将音乐、声响或语音录制下来,保存在文件中,以备特定情况下播放,对操作者进行提示。
录制声音的程序由一系列声音VI和一系列文件VI
并列组成。
(1)读取并打开声音文件VI:
这是一个多态VI,此处选取“写入”。
它创建一个声音文件,用于写入“.wav”格式的声音文件。
“声音格式”参数是一个簇,其中包含采样率、通道数、每采样比特数。
程序中把这3个参数分别设置为22050、2、16,,它输出一个声音文件引用句柄。
(2)写入声音文件VI:
将输入的声音数据写入声音文件。
声音数据是一个簇数组,共两个元素;每个元素是一个波形簇,包括采样开始时间0t、采样时间间隔dt和声音数据y。
0t和dt被忽略,y可以是DBL、SGL、U8、I16、I32几种数据类型。
这是一个多态VI,要根据y输入的数据类型手工选择相应的子VI。
(3)关闭声音文件VI:
根据输入的声音文件引用句柄将“.wav”声音文件关闭。
(4)配置声音输入VI:
配置声音输入设备以采集声音数据。
“每通道采样数”参数配置内存缓冲区中每个通道的采样数,连续录音时要用大一些的数值,本文配置为“10000”;“采样模式”参数在事前不清楚录制数据量大小时配置为“连续采样”;“设备ID”参数指定使用的声音设备;“声音格式”参数在写入声音文件VI中已经介绍过;“任务ID”参数输出一个关于制定设备配置信息的标识。
(5)读取声音输入VI:
根据输入的任务ID从声音输入设备读取数据。
“每通道采样数”的参数要和配置声音输入VI中的配置相同。
这是一个多态VI,要根据需要的声音数据类型手工选择相应的子VI。
(6)声音输入清零VI:
根据输入的任务ID结束声音采集、清空内存缓冲区、释放相关设备资源。
(7)简易错误处理器VI:
报告整个程序执行过程中是否有错误。
②播放程序设计
用“输出”和“文件”子选板的VI把声音文件播放出来,下面介绍程序的构成。
(1)打开声音文件VI:
这是一个多态VI,此处选取“读取”。
它创建一个声音文件,用于读取“.wav”格式的声音文件。
“声音格式”参数是一个簇,其中包含采样率、通道数、每采样比特数。
程序中把这3个参数分别设置为22050、2、16,,它输出一个声音文件引用句柄。
(2)读取声音文件VI:
根据输入的声音文件引用句柄从“.wav”文件读取一个波形数组。
“每通道采样总数”参数指定这个VI每次被调用时读出的采样数据量,尽量和“配置声音输入VI”的“每通道采样数”参数一致;“位置模式”和“位置偏移量”两个参数确定读取文件的起始位置,“绝对”是从文件开头加上偏移量的位置开始读数据,“相对”是从文件当前位置加上偏移量的位置开始读数据,默认值为“相对”;输出的“数据”类型与写入时一样,每次输出一次采样的数据;输出的“偏移量”参数是输入的偏移量加上本次读文件产生的偏移量之和;“文件结束?
”参数输出“T”时到达文件末尾。
这是一个多态VI,要根据声音文件的数据类型手工选择相应的子VI。
(3)关闭声音文件VI:
根据输入的声音文件引用句柄将“.wav”声音文件关闭。
(4)配置声音输出VI:
和“配置声音输入VI”的配置参数相同。
(5)配置声音输出音量VI:
调节输出声音音量大小用。
(6)写入声音输出VI:
将输入数据写入声音输出设备。
这是一个多态VI,要根据声音文件的数据类型手工选择相应的子VI。
(7)声音输入清零VI:
根据输入的任务ID结束声音采集、清空内存缓冲区、释放相关设备资源。
(8)简易错误处理器VI:
报告整个程序执行过程中是否有错误。
六、课程设计总结
通过本次Labview课程的设计,经过努力所得的结果,我感很不错。
由于平时大家都是学习理论知识,没有过实际运用Labview开发设计具有特定功能系统的经验,对于软件中有的控件知识不是很了解,甚至对于很多控件不知道实现什么功能,或者不知道如何去运用它。
虽然上课的时候讲过很多关于Labview的应用,但还是对它不是很熟悉。
但通过计算机对Labview进行了几天的摸索学习,通过各种相关资料的查阅,我终于把交通灯控制系统课程设计做好了,并发现了Labview的强大功能。
通过这次课程设计我基本学会了虚拟仪器设计的步聚和基本方法,提高了动手能力,增强了理论联系实际的能力。
通过这次设计实践。
我总结了使用Labview编程的两个要点。
第一,熟悉每个控件的用途、使用方法和在软件中的位置。
Labview有这么多控件,有这么单元,如果我们不知道每个单元是用来干什么的,那就根本谈不上应用它们了,只有在知道这个空间是做什么用的,我们才会去使用它。
知道需要用到某个单元,但是不知道怎么使用,怎么连线,这也是很让人郁闷的事,所以我们得熟悉一些基本单元的用法。
要想很快地做成一个虚拟仪器,就得熟悉每个单元所在的位置,以免在使用过程中找半天找不到它在哪个菜单中。
第二,对于虚拟仪器设计来说,因果朔源的设计方法是一种比较好的设计方法,知道要做什么,知道需要哪些单元,我们就添加那些单元,按需求增添元件。
课程设计的过程中,我遇到了不少的问题,比如在选择课程设计题目时,对示波器相关原理知识的不了解,以至于浪费了时间。
通过努力,最后完成了课程设计任务并在这过程中增加对Labview的了解,并从中获得学习的乐趣,扎实自己的理论知识。
我认为课程设计是我学习中不可或缺的一课。
七、参考文献
《基于声卡的虚拟示波器设计与实现》——冯尔理
《基于声卡的虚拟示波器设计与实现》——肖渊
《基于声卡的虚拟示波器设计与实现》——马丽萍
《基于LabVIEW和声卡的数据采集及频谱分析仪设计》——车子萍
《基于声卡的LabVIEW虚拟信号发生器设计》——马海瑞
《大话声卡》——风风雨雨20年
《基于声卡虚拟音频信号分析仪设计》——熊国华,罗颂荣,王耕耘
《虚拟仪器设计》(高等教育出版社)——詹惠琴,古军,袁亮
《LabVIEW程序设计与应用(第2版)》——杨乐平,李海涛
《LabVIEW8.2中文版入门与典型实例(修订版)》—岂兴明,周建兴
《LabVIEW8.20中文版编程及应用》——刘刚,王立香
《基于声卡的LabVIEW数据采集与分析系统设计》—马海瑞,周爱军
八、附录
示波器程序框图
基本信号发生器程序框图
录音与播放程序框图
频谱分析仪程序框图
整体前面板