PC中的声卡不仅能输出和录制各种音频信号,利用其内部的A/D变换器,通过编写程序还可以用来对外部的模拟信号进行采样,采样所得数据经计算机处理后,在PC的屏幕上显示出该信号的能量频谱图和波形曲线,用于定性地分析各种音频信号(如语音、歌声)中各个频率分量能量的分布情况,从而确定该信号的频率能量分布特征,为研究或模仿语音、歌声提供了一种工具。文中介绍的笔者设计的程序就实现了这样功能,该程序是标准的Windows界面,能够满足一般电子爱好者使用的要求。
一、实现功能
1.实时地显示被测信号的频率能量分布图;
2.实时地显示被测信号的波形曲线;
3.3种声卡采样频率设置:11025Hz、22050Hz和44100Hz;
4.两种采样长度设置:1024和2048;
5.FFT(快速傅里叶变换)速度调节;
6.能量频谱图的纵轴以频率标尺标示信号中各个频率分量的频率值(频率的大约值,误差10%左右);
7.能量频谱图的横轴以一条白色竖直游标亮线标示时间进度;
8.能量频谱图以色彩标示信号中各个频率分量的能量值大小。色温低时(如红色),表示该频率分量的能量高;色温高时(如蓝色),表示该频率分量的能量低。
二、对计算机和运行环境的要求
该程序对计算机的要求是586及以上的PC;运行环境是Windows9x的系统软件,当然还要安装好声卡和它的驱动程序。
三、程序使用方法
1.把声卡的录音功能设置成有效
在Windows界面的右下角有一个小扬声器图标,用鼠标左键双击该图标,出现电平控制对话框。鼠标左键单击左上角的“选项”菜单项,出现子菜单。左键单击“属性”,出现录音和回放设置对话框。选中“录音”项,再选中其中的外部线路输入(Line In),或话筒输入(Microphone),选择线路输入时,可输入其他音频设备(如CD机、录音机等)输出的信号;选择话筒输入时,可接一只话筒,用于测试话筒采集的信号(如歌声、语言信号),单击“确定”,出现电平控制对话框。把该对话框中的电平控制滑块向上推,对信号的放大量大;向下推,对信号的放大量小。输入信号的最大幅度以使显示的信号波形不出现切顶为准。关闭对话框,打开资源管理器,把本文提供的可执行文件Freq.exe拷贝到PC中的某个文件夹内,用鼠标左键双击该文件名,就可运行该程序了。
2.硬件连接
当选择外部音频设备(如CD机、录音机等)作为信号的来源时,在上述声卡的录音功能设置中,要选择外部线路输入(Line In),再用一根单芯音频屏蔽电缆与一个直径3.5mm的立体声插头的一个声道连接点连接在一起,或把两个声道的连接点并联在一起,作为一个声道使用。然后,把立体声插头插入声卡的线路输入端(Line In);音频屏蔽电缆的另一端连接外部音频设备的线路输出端(Line Out),或耳机的输出端。
当用话筒采集信号时,在上述声卡的录音功能设置中,要选择话筒输入(Microphone),把PC机专用的“耳麦”与声卡连接好,或把普通的话筒接入声卡的话筒输入端。
3.程序界面上各个设置的作用
“FFT速度”,向右调整该控件上的滑块,FFT的速度加快,表现在能量频谱图上,横向拉伸;向左调整该控件上的滑块,FFT的速度减慢,表现在能量频谱图上,横向压缩,并且在其左边都有相应的数值指示。
“采样频率”,单击箭头,显示有3种声卡采样频率可供选择,单击要选择的采样频率,即可重新设置声卡的采样频率。
“采样点数”,单击箭头,显示有两种采样点数可供选择,单击要选择的采样点数,即可重新设置声卡的采样点数,采样点数越多,信号分析越细致。
读者可在本期配刊光盘的“本期程序”文件夹中找到本文介绍的程序。另外,本文还提供了VC++6.0环境中生成Freq.exe文件的全部文件,该程序是用C++语言面向对象的方法编写的。读者可在安装有VC++6.0软件的计算机中,双击Freq.dsw文件,调入生成Freq.exe文件的全部文件,对程序进行修改操作。
(李朝友)

