怎么用单片机做一个声音的数据采集卡?
1、单片机本身不能进行高速AD采集和大容量储存,需用专用的音频采集模块,数据要存到SD卡上 。并且单片机的传输要求比较高,最好用STM32单片机,上面有数字音频接口。可以参考野火或正点原子STM3F4开发板的相关教程。
2、采集信号需要拾音器件,把声波转换成电信号,再把电信号转换成数字量。
3、一,用录音软件或者自己找找资料,查证0~9所对应的模拟信号 (我想帮你找,但是好像没找到。所以第一条就需要费点功夫了)二,把你查阅到的0~9信号进行AD转换,把对应的数字量保存起来。
4、可以使用驻极体话筒,后面再加上音频放大电路,放大器输出接单片机的ADC(模数转换器)就可以了。单片机就可以通过编写相应的程序对声音识别处理,不过要做复杂的运算处理,需要使用DSP芯片,单片机的运算能力很有限。
5、进行下AD转换然后传入单片机。你有8路信号,分别转换,然后弄个数据选择器(这个不难做),逐个依次获取信号。
关于单片机的音频存储
1、系统通过话筒录入语音数据,经过滤波电路、采样保持电路等处理,由STC89C52单片机控制芯片将语音信号储存在寄存器中。回放时,由单片机控制芯片提取寄存器中的数据,通过功率放大器将语音信号放大后回放出来。
2、采集信号需要拾音器件,把声波转换成电信号,再把电信号转换成数字量。
3、单片机本身不能进行高速AD采集和大容量储存,需用专用的音频采集模块,数据要存到SD卡上 。并且单片机的传输要求比较高,最好用STM32单片机,上面有数字音频接口。可以参考野火或正点原子STM3F4开发板的相关教程。
4、单片机内置存储容量有限,主要用于程序存储,因此EEPROM还是比较实用的。EEPROM是指带电可擦可编程只读存储器,是一种掉电后数据不丢失的存储芯片,EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用。
用单片机实现声音信号的MP3格式压缩
单片机压缩mp3,性能到不到,32b位的也要跑几十兆,才能压缩。我指的是实时压缩。如果采样率是8k,效果很差。16k采样才可以。
存在的问题如下:一般的单片机的容量有限,几K到几十K甚至上百K不等,而一首MP3一般要几M大小。。这个差距你也能看的出来。。除非外扩存储空间,比如说flash,比如说SD卡之类的。。
呵呵!看是什么型号的吧!8位的应该是不行的!你试试16位(如:MSP430)或32位(如:ARM)。
如果你说用DS89C450来解码,而MP3的码率为128Kbps,即16KB/s,当单片机达到32MIPS(为了便于计算)时,对应一个字节的数据有2K(2000条左右)条指令来处理——我个人认为是完全足够了。
使用这首歌是因为这首歌的柔和、简单旋律使得在回放时更容易听到压缩格式中的缺陷。一些人开玩笑地将Suzanne Vega称为“MP3之母”。
MP3采用的是MPEG Audio Layer 3数据压缩编码标准对声音进行压缩编码。MP3。它被设计用来大幅度地降低音频数据量。
单片机高速数据采集,A/D转换和存储一般怎么实现?
1、普通单片机实现多路模拟量的数据采集、显示需要:外部连接一个多通道输入的ADC芯片,单片机按照一定的周期驱动模拟开关切换到不同的模拟通道,设计模数转换控制器的控制程序,可以进行定时模拟信号采集和显示。
2、如果你用C语言的话,你可以将ad_date(可以是其它变量名)变量定义为外部RAM或内部RAM,然后直接ad_date=ad_read(读AD转换);就可以把AD值直接存入单片机了。
3、假如你要IN0~IN7都显示,那么需要8个n位数码管模块,假如你只用一个n位数码管模块动显8个通道数据,只会一直闪烁。但是,你可以用LCD12864或者1206显示。
还没有评论,来说两句吧...