PC-1500的代码存入WAV文件

1保存    1

1.1 操作    1

1.2 波形说明    4

1.3 波形整形    5

1.4 压缩    8

2载入    9

2.1 操作    9

2.2 音量    9

3 wav2bin代码解析    10

3.1 读取一个数据位    10

 

 

1保存

本章将介绍如何把PC-1500机内的BASIC代码保存到PCwav文件内。您需要:PC-1500的底座(CE-150)、录音软件(本章以Cool Edit 2.1为例进行说明)、E500Comm14.11.23

1.1 操作

准备一根音频线。普通的音频线也行,如下图所示

1.1

音频线一端插入底座的MIC插孔(这是PC-1500输出音频信号的地方),另一端插入PCMIC插孔。一定不要插入PCLine In插孔。Line InMIC都是PC音频输入的插孔,但它们有很大的区别:Line In直接把音频信号传给声卡,MIC会把音频信号放大后再传给声卡。PC-1500输出的音频信号很弱,使用Line In插孔,PC根本无法辨认。

运行Cool Edit 软件,新建一个波形文件,如下图所示:

采样率建议16000以上。声道固定为"单声道",采样精度固定为"8位"。

1.2

单击下图的录音按钮,然后在PC-1500上运行CSAVE命令。Cool Edit 将录音。CSAVE命令执行完毕,请单击下图的停止按钮。

1.3

注意波形的最大值和最小值,两者的差值应在80左右,太小则说明采集到的信号太弱了。

1.4

解决办法就是调整PC上麦克风的音量和麦克风加强,如下图所示:

1.5

Cool Edit里单击【文件】【另存为】菜单项,将录好的音频保存到wav文件里,如下图所示:

1.6

1.2 波形说明

上一节记录下来的波形如下图所示。

1.7

理想的波形应该是正弦波,如下图所示:

1.8

码元宽度(竖线的间隔)为0.0004秒。左边3个码元内的正弦波频率为2500Hz;右边4个码元内的正弦波频率为1250Hz。高频码元被当做1,低频码元被当做08个码元1组成一个数据位18个码元0组成一个数据位0。因此,PC-1500输出的音频信号,其波特率为2500,其比特率大概为2500/8=312.5,每秒大概只能输出40个字节(事实上,每秒大概只能输出15个左右的字节。1KB的程序大概要1分钟才能传输完毕)。

1.3 波形整形

波形整形有这么几个目的:

1、图1.7所示波形其振幅非常关键:振幅太小则PC-1500将无法接收音频信号。因此,有必要将波谷的样本值调整为0,波峰的样本值调整得大一些(一般大于180即可)。

2、可以简化波形,如下图所示:可更改采样率为5000Hz,这样一个码元里只需要2个采样点。左边三个码元表示1,右边四个码元都表示0

1.9

简化之后,wav文件的大小会减小很多。假定录制wav文件时的采样率为16000Hz,而简化后的采样率变成了5000Hz,数据量将减少近70%

不过,播放简化后的wav文件其波形就不是非常完美的了。下图是使用Cool Edit打开globe.wav文件(下载自www.pc1500.com)看到的内容:

1.10

globe.wav的采样值只有两个:0173。上图上面一排小方块的采样点,其采样值就是173。为什么不设置为最大值255呢?因为如上图所示:高频变低频时,会有一个突然变高的波峰。为了让这个突变的波峰尽量接近255,只能设置采样值的最大值为173了。

wav文件的波形整形请通过E500Comm来实现。该程序下载方法:

进入网盘 http://pan.baidu.com/s/1gd7XDkf

再进入 public\Tools\E500Comm 下载压缩包E500Comm14.11.23.rar

使用E500Comm处理wav文件的步骤:

1、运行E500Comm。选择计算器为"PC-1500",然后单击"确定"按钮;

1.11

2、程序主界面请单击"1.程序"按钮

1.12

3、单击【文件】【打开...】菜单项,载入wav文件,如下图所示。

1.13

4、单击上图【文件】【保存】菜单项(或【另存为】菜单项),保存wav文件。

1.4 压缩

波形整形后,能否压缩为MP3wma?经笔者测试是不行的。因为MP3wma都是有损压缩。

 

 

2载入

本章将介绍如何把录制在wav文件里的BASIC代码载入到PC-1500机内。

2.1 操作

音频线一端插入底座的EAR插孔(这是PC-1500输入音频信号的地方,也就是"耳朵"),另一端插入PCLine Out插孔。一定不要插入PC的耳机插孔。Line Out和耳机都是PC音频输出的插孔,但它们有很大的区别:Line Out是声卡直接输出的音频信号,耳机则是声卡输出的音频信号经放大后输出的。不使用耳机的原因一是音量太大,二是容易失真。

PC-1500上运行命令CLOADPC上播放wav文件。注意:PC上的能突然发声的程序请关闭,如:QQ。否则会打扰PC-1500接听wav文件。

2.2 音量

PC-1500接听声音文件,最难控制的就是音量。

该如何精准的调节音量呢?笔者在这里介绍一个方法——使用 Cool Edit 查看Line Out输出的音频信号。具体做法为:

1、将插入PC-1500底座的EAR孔的音频线插头拔下来,插入PCLine In插孔。也就是说:Line Out输出的音频信号直接进入Line In插孔;

2PC上播放wav文件;

3、使用Cool Edit软件录制音频,查看音频波形的振幅。这个振幅最好在170以上。

对于波形被处理后的wav文件,简单的把音量调整到最大即可(假定播放wav音频的软件是Windows Media Player,则其音量也要最大。其它播放软件不知是否放大了音频信号,最好用Cool Edit查看一下音频输出)。

 

3 wav2bin代码解析

wav2bin下载自http://www.pocketmuseum.com/index.html。它可以将wav文件转换为bas文件(文本格式的BASIC代码)和img文件(二进制格式的BASIC代码)。

3.1 读取一个数据位

3.2毫秒内,8个周期的高频波(2500Hz),表示二进制位1。如下图所示:

3.1

3.2毫秒内,4个周期的低频波(1250Hz),表示二进制位0。如下图所示:

3.2

换句话说就是:二进制位1与中间红线的交点个数为16;二进制位0与中间红线的交点个数为8

数据存入wav文件时,会有1个起始位04个数据位,6个停止位1。所以,问题的关键在于把数据位前面的两个二进制位10读取出来。换句话说就是找到一段6.4毫秒的数据,前面3.2毫秒交点数为16,后面3.2毫秒交点数为8。这样就找到了起始位,接着读取4个数据位。

posted @ 2016-12-14 09:48  hanford  阅读(870)  评论(0编辑  收藏  举报