MATLAB有强大的音频处理函数和强大的数据处理功能,能够方便地产生各种波形的数据数组,同时通过音频处理函数又可以很方便的将数据数组传递给声音设备,并以特定的采样频率和传输比特位由声卡输出。本文以MATLAB6.5版和Waveterminal 192L声卡为例,介绍了实现T型波信号发生器的方法。

在进行通讯和 DSP等试验过程中,信号源是不可缺少的一个工具,很多设备是使用信号源来模拟检测实际目标,来验证设备的功能及可靠性。通常,对于研制单一产品的厂家来说,需要某一固定的信号源即可,在市场上也可以找到性价比合适的产品。但对于某些开发人员来说,单一的信号源远远满足不了要求,他们可能需要各种频率、各种包络和精度的信号源来验证设计的可靠性。设计者通常很难找到完全符合要求的产品,而且价格一般也极为昂贵。此外,大多数信号源可能用一两天,从而造成极大的浪费。因此,自己研制出符合要求、高性价比的信号源成为很多厂家的选择。

使用硬件也可以完成过数字信号源的设计,其实现的大致思路是:先分析信号源的波形,对波形的一周期数据进行采样,存储到ROM中,再使用可编程逻辑器件对采样数据进行重复读取、A/D转换、滤波、放大;如想监测信号质量,对输出进行A/D转换,反馈到可编程逻辑器件进行分析、显示和校正。很多工程师会选择这样的设计思路,所得波形具有可靠性高、易于实现和精度高的优点。然而,是从选择思路、绘制原理图、设计电路板、制版、编程、调试和更改的整个设计周期可能达2、3个月之久,而用MATLAB和声卡去实现则更方便有效。

设计思路和软件实现方法

声卡是将音频输入数据转换为立体声输出的一种设备,输入信号同时也设定了声卡的采样频率和采样位数,普通声卡采样频率通常可选值为8,000Hz、11,000Hz、16,000Hz、22,000Hz和44,100Hz,而高性能的专业声卡的A/D采样频率最高可达96,000Hz,D/A转换频率最高可达192,000Hz。声卡的采样频率可以通过专业软件来进行更改和设置的。声卡输出位数为固定值,包括8位、16位和24位,这个参数标志声卡进行D/A转换时的转换精度,但要使输出信号更接近理想值,还需要高采样频率来做保障。

由于输出是一个T形波信号,具有一定的周期,在T形波以外输出零电平,因此界面设计(见图1)中应包括:中心频率、T形波上升段、平稳段、下降段时间间隔,T形波信号周期、采样频率的选择或输入/输出信号位数的选择,以及信号发送、演示、清除、发送暂停、继续和退出系统。其实还有很多软件可以对音频文件进行播放,因此又增加了一个按钮用于产生音频文件。将信号参数输入完全后,可以通过信号演示按钮对波形进行查看。对数据进行修改时,可先用信号清除按钮清空数据,或直接对数据进行修改,对信号发送暂停或继续也可进行控制。

a. 音频数据的产生方法

在应用界面中,共设置了中心频率、T形波上升段、平稳段、下降段时间间隔、T形波信号周期、采样频率和传输位共七个参数源,通过MATLAB强大的计算函数将其转换成声卡所能接受的音频数据向量、D/A采样频率以及数据向量的宽度。

Vs:一周期信号数据向量

Vup:上升段信号数据向量,

Vstb:平稳段信号数据向量,

Vdown:下降段信号数据向量;

Vs=[Vup,Vstb,Vdown]

Vup=sin(w×Pup),

Vstb=sin(w×Pstb),

Vdown=sin(w×Pdown),

w=2×3.1416×f。

Pup:上升段信号采样点,

Pstb:平稳段信号采样点,

Pdown:下降段信号采样点。

w:输出信号的角频率,

f:输出信号频率,由应用界面取得。

Pup=[0:point:tup-point]

Pstb=[tup:point:tup+tstb-point]

Pdown=[tup+tstb:point:tup+tstb+tdown-point]

Pt=[Pup,Pstb,Pdown]

point=1/fspl,为采样频率的倒数,中括号及内部数据表示由起始时间到结束时间以point为间隔而产生的数据向量,Pt为采样时间点。

b. 对T型波信号进行演示和信号清除

这两个功能分别由信号演示和信号清除两个按钮来完成,信号演示的实现方法是将采样时间点一周期信号数据向量使用plot函数,以二维图形的形式将信号显示在坐标轴上。坐标轴设置为自动调节,图形界面设置为系统菜单模式,这样可以方便对信号进行编辑、缩放和其它管理。信号清除只是在回调子函数中将中心频率、T形波上升段、平稳段、下降段时间间隔和T形波信号周期这5个文本框清零,并对坐标轴进行一个缺省设置,因此所显示的信号在座标轴中就会消失。

c. 对T型波信号进行发送、暂停和继续控制

信号发送是采用MATLAB“sound”函数,该函数的输入参量是音频数据向量、采样频率和转换位数,数据产生方法如上所述。由于信号是连续发送,因此需要使用一个循环对产生的音频信号向量反复读取发送,需要注意的是在函数sound后面需要加一个pause(T)语句,T的单位为秒,为一个信号的周期。加该语句是由于MATLAB是连续执行循环段语句的,并不管声卡是否已执行完一周期信号的D/A转换。发送暂停和发送继续是由一个全局变量对信号发送进行控制,当此全局变量为1时,发送继续,否则发送禁止,但应用此方法的缺点是信号并不能在暂停的时间点继续发送,而是从新的周期开始重复读取音频信号向量。

d. 输出波形文件和退出系统

这个功能由输出文件按钮来完成,是应用MATLAB的wavwrite函数将音频信号转换成.wav文件,文件中也包含了采样频率和数据宽度选项,增加此项的目的是为了能让更专业的音频处理软件对信号进行分析。通过执行应用程序和MATLAB的退出操作,使用“quit”命令退出系统。采用MATLAB的一点不足就是不能将所有的M文件转换成能脱离MATLAB而独立运行的应用程序。

声卡输出波形分析

下面采用界面缺省参数输出信号,即信号周期为29.5kHz,上升段时间为15ms,平稳段时间为70ms,下降段时间为15ms,周期为1s,也可以推算出每周期有900ms是没有信号输出。对信号的采样波形如图2所示,经过仪器分析,时间误差可达到小于0.1ms。

对周期信号的傅立叶频谱分析如图3所示,信号的能量主要集中在29.5kHz的窄带范围内,是符合设计要求的。

信号的信噪比分析:通过对输出0伏值段分析即可判断信号信噪比和噪音信号类型,从而找出消除噪音的方法。对噪音波形进行局部放大,可看出此噪音为频率大于1M的锯齿波,波形如图4所示。

声卡输出噪音分析

Waveterminal 192L声卡的输出信号峰峰值为6V,而噪音信号的峰峰值为40mV,因而信噪比为20log(6000/40)=43.5dB,当数据宽度为8位时,D/A精度为1位;数据宽度为16位时,D/A精度为9位;数据宽度为24位时,D/A精度为17位。而Waveterminal 192L声卡的信噪比为104位,因此,噪音信号主要为电脑本身、电脑辐射和环境噪音。电脑本身的噪音主要来自于主机电源,声卡的电源信号取自计算机主板,因此主机电源的噪音会引入声卡。另外,接收T型波的设备,如被检验设备和示波器等,往往就放在主机旁边,主机的高频辐射会通过机箱缝隙而形成噪音。环境噪音是最容易被忽视的一个部分,因为这是一个频率仅有50赫兹的噪音分量,对于低频输出信号会有很大的影响。

降低噪音的解决方法

a. 通过消除噪声源来减小噪音分量

通过上述分析可知,噪音源主要来自于电脑本身、电脑辐射和环境噪音。选择信噪比较高的主机电源将会对消除噪音源起到重要作用。另外,测试设备再利用信号源时应尽量与主机保持1米以外的距离,以减少电磁辐射对设备的影响。对于环境噪音,当信号频率与50赫兹相差很大时可以忽略环境噪音对设备的影响,但当信号频率接近50赫兹时,应对被检测设备采取适当的屏蔽措施。

b. 采用滤波消除声卡输出的噪音

经实验测定,声卡输出的噪音大于1MHz,因此对于29.5kHz的T形波来说,通过滤波可以轻易地将噪音滤掉,同时还应考虑到环境噪音的影响,因此使用带通滤波器会得到更好的效果。当然,是否采取措施减小噪音,还应根据试验的要求决定,对于要求特别严格的信号源来说,靠MATLAB和声卡也是难以实现的。

本文小结

采用MATLAB和声卡来实现信号源,使设计者能快速实现多种方案,对信号源进行采集、分析和处理都带来了极大的方便。MATLAB有丰富的数据处理函数,可提供任意形式的数据源,同时也有很多音频处理函数支持声卡的运行。MATLAB强大的图形可视化功能可以做出友好的操作界面。使用这种方法实现信号源的不足是受采样频

matlab 控制声卡,用MATLAB和声卡实现T型波信号发生器的设计方法相关推荐

  1. matlab三相电压源电压为什么没有谐波,三相电压源型SPWM逆变器仿真设计与分析...

    三相电压源型SPWM逆变器的设计1概述1.1逆变电路简介 与整流相对应,把直流电变成交流电称为逆变.当交流侧接在电网上,即交流侧接有电源时,称为有源逆变:当交流侧直接和负载连接时,称为无源逆变.又逆变 ...

  2. matlab 控制命令,[转载]Matlab绘图基本控制命令

    图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令: axis: 人工选择坐标轴尺寸. clf:清图形窗口. ginp ...

  3. 【Matlab 控制】利用 Matlab Function 绘制分段函数

    利用 Switch block 利用 Matlab Function block function [mean, stdev] = fcn(vals) % #codegen% calculates a ...

  4. matlab 控制图例个数,MATLAB 识别图像中米粒个数

    clc,clear,close all;                  % 清除缓存 % 2019/10/11 星期五  DAY12 % 功能:识别照片中米粒个数并作出相应标记.计数 % 说明:无 ...

  5. MATLAB加入螺旋相位板调制,连续型螺旋相位板设计方法与流程

    本发明涉及光学元件设计,尤其是螺旋相位板设计,属于光学技术领域. 背景技术: 目前,螺旋相位板是一种厚度与旋转方位角成正比的透明玻璃板,它可以将高功率平面光束转化为带有轨道角动量的涡旋光束,这种高功率 ...

  6. matlab中元器件三相lc filter滤波器,三相PWM逆变器输出LC滤波器设计方法.pdf

    ELECTRICDRIVE 2013 Vol.43 No.12 电气传动 2013年 第43卷 第12期 三相PWM逆变器输出LC滤波器设计方法 何亮,王劲松 (中国核动力研究设计院核反应堆系统设计技 ...

  7. 基于Matlab的声波信号处理,基于声卡和Matlab平台的语音信号增强处理系统

    第29卷第6期 V01.29 No.6 企业技术开发 TECHNOLOGICAL DEVELOPMENT 0F ENTERPRISE 2010年3月 Mar.2010 基于声卡和Matlab平台的语 ...

  8. matlab做信号发生,声卡和Matlab的虚拟信号发生器的工作原理

    声卡从话筒中获取声音模拟信号,通过模数转换器(ADC),将声波振幅信号采样转换成一串数字信号,存储到计算机中.重放时,这些数字信号送到数模转换器(DAC),以同样的采样速度还原为模拟波形,放大后送到扬 ...

  9. 宽带噪声语音信号增强matlab,基于声卡和Matlab平台的语音信号增强处理系统

    基于声卡和Matlab平台的语音信号增强处理系统 摘要:计算机声卡是多媒体技术中最基本的组成部分,是实现声波/数字信号相互转换的一种硬件.文章对基于计算机声卡的谱相减语音增强系统进行分析.首先分析了基 ...

  10. matlab怎么控制采集卡,用MATLAB控制NI采集卡实现高精度数据采集与分析功能-l采.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 用MATLAB控制NI采集卡实现高精度数据采集与分 ...

最新文章

  1. python检查_python设置检查点简单实现
  2. NOI模拟题4 Problem C: 填格子(board)
  3. WindowsXP如何设置共享权限
  4. Android studio显示红叉,提示Error:please select android sdk
  5. Linux 内核参数:meminfo
  6. net-java-php-python-新华眼镜ERP系统计算机毕业设计程序
  7. HBuilderX搭建Vue项目
  8. word2007如何批量删除文本框
  9. zk-ui 安装部署
  10. Deepin Linux下编译并运行Proxmark3
  11. JAVA适配器特点_适配器模式的优缺点
  12. 西安工业大学计算机学院研究生招生简章,西安工业大学计算机技术在职研究生招生简章...
  13. [F2F] Java基础 (JDK特性/集合/IO/锁)
  14. 给文火慢炖的“少儿美术”加点料
  15. 离线数仓搭建_14_DWT数据构建
  16. 现任明教教主CCNP Security SecureV1.0 第一天.3
  17. Linux下ffmpeg添加 x265
  18. 文件上传漏洞 — 前端JS绕过、MIME类型绕过
  19. python图像处理之skimage
  20. js保留两位小数,整数不补零

热门文章

  1. mac chrome 重启电脑 插件消失
  2. HTMl悬浮播放器XPlayer,XPlayer万能视频播放器
  3. android 优秀项目,11个优秀的Android开发开源项目
  4. 查询计算机端口状态是否开启,如何查看自己的电脑3389端口是否是处于开启状态?...
  5. C语言 符号的不同意义
  6. C# 图片验证码简单例子
  7. hp打印机装不上服务器系统,winxp系统无法安装HP打印机驱动程序如何解决
  8. 惠普m128fn中文说明书_hp m125m126m127m128使用说明.pdf
  9. 第十七届全国大学生智能汽车竞赛智能视觉组全国一等奖(RT1064工程+openART识别代码)
  10. 沁恒CH32V307母板+OPA4377运放模块-开源