PHP分析.wav文件并绘制png格式的波形图

PHP分析.wav文件并绘制png格式的波形图
PHP分析.wav文件并绘制png格式的波形图

PHP分析.wav文件并绘制png格式的波形图用Php分析并绘制音频文件的波形图,网上还是很少见到。其实只要根据wav文件的规范,用Php的fseek,fopen,fopen,pack/unpack等函数,以及强大的gd图形库,这些都是很容易的。很多人可能对pack/unpack函数不熟悉;这其实是Php借用perl的,他们提供了使用脚本语言访问复杂二进制数据结构的方法。我的这段简化的程序只能处理PCM格式的RIFF 音频文件(这也是最常见的wav格式) ,不限声道,但是比特率(BitsPerSample)最好是16。

这里有wave file format 和MicroSoft wave soundfile format可以参考。这里是一个实际的例子(下载放大看)

1

3 function wav_graph($file, $f=0, $w=0)

4 {

5 global $DATA_DIR;

6

7 if(!is_file($file)) return 0;

8 $fp = fopen($DATA_DIR.$file, 'r');

9 $raw = fread($fp, 36);

10 $str = '';

11 $header = unpack('A4Riff/VSize/A4Wav/A4Head/VHeadSize/vPCM/vChannels/VSampleRate/VByteRate/vBlo ckAlign/vSampleBits', $raw);

12 foreach($header as $k=>$v)

13 $str .= $k.': '. $v.' ';

14 fseek($fp, 36 + $header['HeadSize'] - 16);

15 $raw = fread($fp, 8);

16 $data = unpack('A4Data/VDataSize', $raw);

17 foreach($data as $k=>$v)

18 $str .= $k.': '. $v.' ';

19

20 $b = $header['SampleBits'];

21 $c = $header['Channels'];

22 $l = $b * $c / 8; // sample frame length in bytes

23 $s = $data['DataSize'] / $l; // total number of samples

24 $r = $header['SampleRate'];

25 if($f) $h = pow(2, $b) / $f;

26 else { $h = 200; $f = pow(2, $b - 1) / $h; }

27 if($w == 0) $w = round($r / 1000); // default to show 1k sample frames per minute

28

29 header("Content-type: image/png");

30 $im = imagecreate($s / $w, $h * $c * 2);

31 imagecolorallocate($im, 0xff, 0xff, 0xff); // white bg

32 $color = imagecolorallocate($im, 0, 0, 255); // black

33 //imagestring($im, 5, 5, 5, $str, $color);

34

35 $x=0; $y = array(); $yn = array();

36 for($i = 0; $i < $c; $i++) $y[$i] = $h * $i + $h;

37 $n = $l * $w;

38 while(1)

39 {

40 if($s == 0) break;

41 if($s < $n) $n = $s;

42 $samples = fread($fp, 1000 * $n);

43 if($samples === FALSE) break;

44 $packed = unpack("s*", $samples);

45 foreach($packed as $k=>$v)

46 {

47 $cnt = ($k-1) % ($w * $l) ;

48 if( $cnt > $c - 1) continue;

49 $yn[$cnt] = $h * $cnt + $h - $v / $f;

50 imageline($im, $x, $y[$cnt], $x+1, $yn[$cnt], $color);

51 $y[$cnt] = $yn[$cnt];

52 $x++;

53 }

54 $s -= $n;

55 }

56

57 imagepng($im);

58 imagedestroy($im);

59 }

60

61 //wav_graph('audio2.wav');

62 ?> 更多相关阅读请点击:新濠天地娱乐场https://www.360docs.net/doc/d416790379.html, 有更多精彩文章。

wav音频格式

多媒体技术近年来发展很快,较好品质的声卡可以提供16位的立体声及44KHZ的播放录制能力,它不仅可以提供原音逼真的取样,其合成的音质也十分理想,有的声卡还加入了数字信号处理器,可编程控制的DSP具有强大的运算能力,它可以用来作声音信息的压缩和一些特殊效果的处理。具有此功能的声卡提供的WAV文件提供的语音信息可以满足语音特征识别的要求。 RIFF概念 在Windows环境下,大部分的多媒体文件都依循着一种结构来存放信息,这种结构称为"资源互换文件格式"(Resources lnterchange File Format),简称RIFF。例如声音的WAV 文件、视频的AV1文件等等均是由此结构衍生出来的。RIFF可以看做是一种树状结构,其基本构成单位为chunk,犹如树状结构中的节点,每个chunk由"辨别码"、"数据大小"及"数据"所组成。 图一、块的结构示意图 辨别码由4个ASCII码所构成,数据大小则标示出紧跟其后数据的长度(单位为Byte),而数据大小本身也用掉4个Byte,所以事实上一个chunk的长度为数据大小加8。一般而言,chunk本身并不允许内部再包含chunk,但有两种例外,分别为以"RIFF"及"L1ST"为辨别码

的chunk。而针对此两种chunk,RIFF又从原先的"数据"中切出4个Byte。此4个Byte 称为"格式辨别码",然而RIFF又规定文件中仅能有一个以"RIFF"为辨别码的chunk。 图二、RIFF/LIST块结构 只要依循此一结构的文件,我们均称之为RIFF档。此种结构提供了一种系统化的分类。如果和MS一DOS文件系统作比较,"RIFF"chunk就好比是一台硬盘的根目录,其格式辨别码便是此硬盘的逻辑代码(C:或D:),而"L1ST"chunk即为其下的子目录,其他的chunk则为一般的文件。至于在RIFF文件的处理方面,微软提供了相关的函数。视窗下的各种多媒体文件格式就如同在磁盘机下规定仅能放怎样的目录,而在该目录下仅能放何种数据。 WAV文件格式 WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,其子块的大小就是sizeofof(PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT结构中的数据。

wav信号的波形分析与合成

教学实验报告 电子信息学院_____ 专业通信工程2011年月19_日 实验名称wav信号的波形分析与合成指导教师_________ 姓名年级学号一成绩 ________ 预习部分 1.实验目的 2.实验基本原理 3.主要仪器设备(含必要的元器件、工具)

部分组成: 1 ?声音的采集 Matlab 提供了读入、录制和播放声音以及快速傅里叶变换的函数,分别是 wavread 、wavrecord 、wavplay 和fft 。阅读这几个函数的帮助文档,熟练使用。 2. 持续音的频谱分析 将Windows 的系统目录下的ding.wav 文件读入,这是一个双声道的声音, 选择任一声道的信号,使用fft 求取其频谱,并用plot 显示它的幅度谱, 观察主要的正弦分量; 参考代码: %% [y,fs]=wavread( 'di ng.wav' ) fs len g=le ngth(y) %取其中的一个声道,譬如说,右声道(左声道的格式 yr=y(:,2); %截取前1024个点 yr=yr(1:1024); %求取幅度普并显示,首先是 fs=2048 YR2048=fft(yr,2048); figure( 'numbertitle' , 'off' ,‘name' subplot(2,1,1) plot(li nspace(-pi,pi,2048),abs(YR2048)) title( 'FFT 的幅频特性') subplot(2,1,2) plot(li nspace(-pi,pi,2048),fftshift(abs(YR2048))) title( 'FFT 后幅频特性的 fftshift' ) %fs=1024 YR1024=fft(yr,1024); figure( 'numbertitle' , 'off' ,‘name' subplot(2,1,1) plot(li nspace(-pi,pi,1024),abs(YR1024)) title( 'FFT 的幅频特性') subplot(2,1,2) plot(li nspace(-pi,pi,1024),fftshift(abs(YR1024))) FFTSHIFT title( 'FFT 后幅频特性的 fftshift' ) ,'2048 ,'1024 yr=y(:,1) ) 点 FFT'); %FFT 的幅频特性 %FFT 的幅频特性FFTSHIFT 点 FFT'); %FFT 的幅频特性 %FFT 的幅频特性的

wav文件头

一、各种W AV文件头格式 WAV文件也分好几个种类,相应的非数据信息存储在文件头部分,以下是各种WAV文件头格式。表18KHz采样、16比特量化的线性PCM语音信号的WAV文件头格式表(共44字节) 表28KHz采样、8比特A律量化的PCM语音信号的WAV文件头格式表(共58字节) 表38KHz采样、8比特U律量化的PCM语音信号的WAV文件头格式表(共58字节)

表4ADPCM语音编码后的WAV文件头格式表(共90字节) 表5GSM(Global System for Mobile Communication全球移动通信系统)语音编码后的WAV文件头格式表(共60字节)

表6SBC(Sub-Band Coding子带编码)语音编码后的WAV文件头格式表(共58字节) 表7CELP(Code Excited Linear Prediction码激励线性预测编码——近10年来最成功的语音编码算法)语音编码后的WAV文件头格式表(共58字节) 概念1、读取WAV文件,填写WAVEFORMATEX结构 WAVEFORMATEX

typedef struct{WORD wFormatTag;WORD nChannels;DWORD nSamplesPerSec;DWORD nAvgBytesPe rSec; WORD nBlockAlign;WORD wBitsPerSample;WORD cbSize;} WAVEFORMATEX; 具体参数解释如下: wFormatTag:波形数据的格式,定义在MMREG.H文件中 nChannels:波形数据的通道数:单声道或立体声 nSamplesPerSec:采样率,对于PCM格式的波形数据,采样率有8.0 kHz,11.025kHz,22.05 kHz,44.1 kHz 等 nAvgBytesPerSec:数据率,对于PCM格式的波形数据,数据率等于采样率乘以每样点字节数nBlockAlign:每个样点字节数 wBitsPerSample:采样精度,对于PCM格式的波形数据,采样精度为8或16 cbSize:附加格式信息的数据块大小 概念2、定义设备头结构 以下WAVEHDR定义了指向波形数据缓冲区的设备头。 WAVEHDR typedef struct { LPSTR lpData; DWORD dwBufferLength; DWORD dwBytesRecorded; DWORD dwUser ; DWORD dwFlags; DWORD dwLoops; struct wavehdr_tag * lpNext; DWORD reserved; } WAVEHDR; lpData:波形数据的缓冲区地址 dwBufferLength:波形数据的缓冲区地址的长度 dwBytesRecorded:当设备用于录音时,标志已经录入的数据长度 dwUser:用户数据 dwFlags:波形数据的缓冲区的属性 dwLoops:播放循环的次数,仅用于播放控制中 lpNext和reserved均为保留值 注意:上述结构体以及我们在程序中所使用到的“HWAVEIN””HWAVEOUT”结构体均是系统已经存在的,我们只需要对其进行赋值即可。 二、PCM(44字节)的W AV文件头及其相关的编程方法 1、以下就经常见的一种格式PCM(44字节)的WAV文件头进行分析。 举例说明:kugoo下载的一首wav文件:魏三抹去泪水wav.wav(大小14,703,980 字节,时长2:46),文件头如下: ⑴地址00H-03H,值为“RIFF”标志;

波形分析

电控汽油喷射系统的波形分析 汽车用示波器 一、汽车示波器的功用 汽车上电子设备所占的比例越来越多,电子设备的修理工作也就越来越多,这就对今天的汽车维修技术提出了新挑战。现代的汽车修理工作已经不再是一个单纯的机械修理,而是机械和电子一体化的维修,如果一个汽车维修企业不具备有效地排除汽车电子设备的故障能力,这个企业必将面临被淘汰的危险。为了能有效地排除汽车电子设备的故障,保证汽车修理的质量,必须具备以下三个基本条件: (1)必备的测试设备; (2)必需的维修资料; (3)必要的技术培训; 汽车示波器的诞生为汽车修理技术人员快速判断汽车电子设备故障提供了有力了的工具。用普通的示波器去测试电子设备时,最大的困难是设定示波器(即调整示波器的各个按钮,使显示的波形更为清楚)和分析波形,而使用汽车示波器测试汽车电子设备非常简单,只要像点菜单一样,选择要测试的内容,无需任何设定和调整就可以直接观察波形。汽车示波器是专门为汽车维修人员设计的“傻瓜”示波器,它的设定和调整是全自动的,使用汽车示波器,就你使用一台“傻瓜”照相机一样方便。 示波器与万用表相比有着更为精确及描述细致的优点,万用表通常只能用1—2个电参数来反映电信号的特征,而示波器则用电压随时间的变化的图形来反映—‘个电信号,它显示电信号比万用表更准确、更形象达式 有些汽车电子设备的信号变化速率非常快,变化周期达到干分之一秒.通常测试仪器的扫描速度应该是被测试信号的5—10倍。还有许多故障信号是间歇的,时有时无,这就需要仪器的测试速度大大高于故障信号曲速度。汽车示波器不仅可以快速捕捉电信号,还对以用较慢的速度来显示这些波形,以便一面观察,一面分析。汽车示波器还可以以储存的方式记录信号波形,反复观察已经发生过的快速信号,这就为分析故障提供了极大方便。无论是高速信号(如喷油嘴、间歇性故障信号),还是慢速信号(如节气门位置变化及氧传感器信号),都可以用汽车示波器来观测被测设备的工作状况。 使用汽车示波器还可以判定故障是否已被排除,而不仅仅是知道故障码是否清除,这可以帮助维修人员提高修理水平。 二、汽车示波器(表)的应用 汽车示波器在汽车电子控制故障诊断中,有两种方式:

信号波形合成

信号波形合成设计报告 一、设计要求: 1、 方波振荡器的信号经分频与滤波处理,同时产生频率为10kHz 、30kHz 和50KHz 的正弦波信号,这三种种信号应具有确定的相位关系 2、 制作一个由移相器和加法器构成的信号合成电路,将产生的10kHz 和 30kHz 正弦波信号,作为基波和3次谐波,合成一个近似方波。 3、 根据三角波谐波的组成关系,设计一个新的信号合成电路,将产生的 10kHz 、30kHz 、50KHz 的正弦信号,合成一个近似的三角波形 (具体阐述设计的功能要求和指标要求) 二、方案设计: 傅里叶分析: 任何具有周期为T 的波函数f(t)都可以表示为三角函数所构成的级数之和即:∑∞=++=1 0)sin cos (21)(n n n t n b t n a a t f ωω。 此方波为奇函数,它没有常数项。数学上可以证明此方波可表示为: )7sin 715sin 513sin 31(sin 4)( ++++=t t t t h t f ωωωωπ ∑∞=--=1])12sin[()1 21( 4n t n n h ωπ 同样,对于三角波也可以表示为: )7sin 7 15sin 513sin 31(sin 8)(2222 +-+-=t t t t h t f ωωωωπ ∑∞=----=1212)12sin() 12(1)1(8n n t n n h ωπ。 (写出设计的整体思路构架,画出框图,说明各部分的主要作用.) 三、设计过程 由有源振荡器产生19.2MHz 信号经可编程逻辑器件EPM7128SLC84-7产生一个

300kHz的方波,再经3路分频器,最终输出50kHz、30kHz和10kHz的方波信号。四:测试数据 1、方波产生电路:

WAV文件格式说明

WAV文件格式说明 ――杨少军WAVE文件是以RIFF(Resource Interchange File Format,"资源交互文件格式")格式来组织内部结构的。RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,最顶端是一个“RIFF”块,下面的每个块有“类型块标识(可选)”、“标志符”、“数据大小”及“数据”等项所组成,其中,format chunk和data chunk是必需要的,其它的chunk可选。在data chunk中存放的数据可能是压缩的也可能是非压缩的,这是根据format chunk中的wFormatTag来决定的,如果wFormatTag为WA VE_FORMA T_PCM 时,表示数据为非压缩的,其它的为压缩的。在非压缩格式时,存放的数据就是PCM码;而在采用压缩格式时,由于各个公司都有自己的压缩算法,没有一个统一的标准,所以压缩制式非常杂。下面主要以INTEL 公司的IMA-ADPCM压缩算法来讲W A V文件的结构。 1.WA V文件内部结构 在讲W A V文件结构时,主要以非压缩格式和以INTEL 公司的IMA-ADPCM压缩算法来论述。下面来谈谈INTEL 公司的IMA-ADPCM压缩算法。 IMA-ADPCM 是Intel公司首先开发的是一种主要针对16bit采样波形数据的有损压缩算法, 压缩比为4:1.它与通常的DVI-ADPCM是同一算法。它是将声音流中每次采样的16bit 数据以4bit 存储。具体的压缩算法可以参看其它文章。

在wFormatTag为W A VE_FORMA T_PCM时,没有Fact Chunk,也没有format chunk 中的wSamplesPerBlock,data chunk中紧跟着DataChunkSize后的就是PCM数据了。而在wFormatTag为WA VE_FORMA T_DVI_ADPCM时,表示采用INTEL 公司的IMA-ADPCM 压缩算法,W A V文件格式即为上表所示。 在采用IMA-ADPCM压缩算法时,“data”chuck中的数据是以block形式来组织的,把它叫做“段”,也就是说在进行压缩时,并不是依次把所有的数据进行压缩保存,而是分段进行的。Data Block一般是由block header (block头) 和data 两者组成的。其中block header是一个结构,它在单声道下的定义如下: Typedef struct { short sample0; //block中第一个采样值(未压缩) BYTE index; //上一个block最后一个index,第一个block的index=0; BYTE reserved; //尚未使用 }MonoBlockHeader; 有了blockheader的信息后,就可以不需要知道这个block前面和后面的数据而轻松地解出本block中的压缩数据。对于双声道,它的blockheader应该包含两个MonoBlockHeader 其定义如下: typedaf struct { MonoBlockHeader leftbher; MonoBlockHeader rightbher; }StereoBlockHeader; 在解压缩时,左右声道是分开处理的,所以必须有两个MonoBlockHeader;

实验二、 波形合成与分解

实验二 波形合成与分解 1.实验目的 在理论学习的基础上,通过本实验熟悉信号的合成、分解原理,了解信号频谱的含义,加深对傅里叶变换性质和作用的理解。 2.实验原理 根据傅里叶分析的原理,任何周期信号都可以用一组三角函数)}cos();{sin(00t n t n ωω的组合表示,即: )2sin()2cos()sin()cos()(020201010t b t a t b t a a t x ωωωω++++= 即可以用一组正弦波和余弦波来合成任意形状的周期信号。 3.实验内容 (1) 方波的合成 图示方波是一个奇谐信号,由傅里叶级数可知,它是由无穷个奇次谐波分量 合成的,本实验用图形的方式来表示它的合成。方波信号可以分解为: ,9,7,5,3,1,1)2sin(2)(10=?=∑∞ =n n t nf A t x n ππ 用前5项谐波近似合成50Hz,幅值为3的方波,写出实验步骤。 a.只考察从 0=t s 到10=t s 这段时间内的信号。 b.画出基波分量)sin()(t t y =。 c.将三次谐波加到基波之上,并画出结果,并显示。 3/)*3sin()sin()(t t t y += d.再将一次、三次、五次、七次和九次谐波加在一起。 9/)*9sin(7/)*7sin(5/)*5sin(3/)*3sin()sin()(t t t t t t y ++++= e.合并从基波到十九次谐波的各奇次谐波分量。 f.将上述波形分别画在一幅图中,可以看出它们逼近方波的过程。注意“吉布斯现象”。周期信号傅里叶级数在信号的连续点收于该信号,在不连续点收敛于信号左右极限的平均值。如果我们用周期信号傅里叶级数的部分和来近似周期信号,在不连续点附近将会出现起伏和超量。在实际中,如果应用这种近似,就应该选择足够大的N ,以保证这些起伏拥有的能量可以忽略。 (2) 设计谐波合成三角波的实验,写出实验步骤,并完成实验。

很好的资料-wav文件头汇总

一、各种WA V文件头格式

概念1、读取WAV文件,填写WAVEFORMATEX结构WAVEFORMATEX

typedef struct{WORD wFormatTag;WORD nChannels;DWORD nSamplesPerSec;DWORD nAvgBytesPe rSec;WORD nBlockAlign;WORD wBitsPerSample;WORD cbSize;}WAVEFORMATEX; 具体参数解释如下: wFormatTag:波形数据的格式,定义在MMREG.H文件中 nChannels:波形数据的通道数:单声道或立体声 nSamplesPerSec:采样率,对于PCM格式的波形数据,采样率有8.0kHz,11.025kHz,22.05kHz,44.1kHz 等 nAvgBytesPerSec:数据率,对于PCM格式的波形数据,数据率等于采样率乘以每样点字节数nBlockAlign:每个样点字节数 wBitsPerSample:采样精度,对于PCM格式的波形数据,采样精度为8或16 cbSize:附加格式信息的数据块大小 概念2、定义设备头结构 以下WAVEHDR定义了指向波形数据缓冲区的设备头。 WAVEHDR typedef struct{LPSTR lpData;DWORD dwBufferLength;DWORD dwBytesRecorded;DWORD dwUser; DWORD dwFlags;DWORD dwLoops;struct wavehdr_tag*lpNext;DWORD reserved;}WAVEHDR; lpData:波形数据的缓冲区地址 dwBufferLength:波形数据的缓冲区地址的长度 dwBytesRecorded:当设备用于录音时,标志已经录入的数据长度 dwUser:用户数据 dwFlags:波形数据的缓冲区的属性 dwLoops:播放循环的次数,仅用于播放控制中 lpNext和reserved均为保留值 注意:上述结构体以及我们在程序中所使用到的“HWAVEIN””HWAVEOUT”结构体均是系统已经存在的,我们只需要对其进行赋值即可。 二、PCM(44字节)的W A V文件头及其相关的编程方法 1、以下就经常见的一种格式PCM(44字节)的WAV文件头进行分析。 举例说明:kugoo下载的一首wav文件:魏三抹去泪水wav.wav(大小14,703,980字节,时长2:46),文件头如下: ⑴地址00H-03H,值为“RIFF”标志;

信号波形发生与合成实验

摘要 本系统主要以TL081A运放为核心,由方波发生器、滤波分频电路、移相电路、加法器电路模块组成。实现了产生多个不同频率的正弦信号与基于多个正弦波合成方波信号的电路功能。系统基本工作过程为:1kHz方波信号通过低通滤波器和带通滤波器得到按傅里叶级数展开的1kHz基波正弦波信号和3kHz三次谐波正弦波信号。而后将基波信号通过移相电路使其相位调整到与三次谐波相同,然后通过加法电路将信号合成近似的方波信号。输出波形结果表明,系统合成波形符合理论傅里叶分析结果,比较准确。正弦波及合成波的幅值测试误差小于5%,符合题目要求。 关键词:方波发生器;傅里叶级数;分频;滤波;移相 一.总体方案设计及论证 1.1题目设计任务 设计制作一个电路,能够产生多个不同频率的正弦信号,并将这些信号再合成为近似方波信号。系统框图如下图所示: 具体要求: 1.2方案论证比较 方波发生电路产生1kHz方波,对其中的基波和三次谐波分量进行提取,1kHz基波可用截止频率为1kHz的巴特沃斯低通滤波器滤波得到,3kHz谐波可用中心频率设为3kHz的高Q值带通滤波器滤波得到。最后再经相位调整重新合成近似方波。 本系统中的方波发生电路是实现后续各级电路功能的基础,对频率准确度和稳定度的要求较高。方案一:555定时器组成的多谐振荡器,直接调节至1KHz左右的对称方波。此方案成本低廉,实现方便,但其稳定性容易受到外部元件的影响,在振荡频率较高时频率稳定度不够。 方案二:使用石英晶振组成高稳定度的频率参考源,并使用计数器和集成锁相环芯片构成分频/倍频环,以产生1KHz的方波。该方法产生的信号稳定度高,但需要搭建石英晶体振荡电路,并进行锁相环分频、倍频,电路较复杂。 方案三:采用基于反相输入的滞回比较器和RC电路的方波产生电路。该电路结构简单,性能稳定,主要的限制因素在于比较器的速度。结合适当的RC参数,可达到1KHZ的振荡频率。 方案选择:本系统采用方案三,此电路结构简单,产生的方波稳定性较好。 1.2.3滤波电路的选择 本系统中所需正弦波均来自于方波信号,需使用低通滤波器和带通滤波器。 方案一:使用由LC网络组成的无源高阶巴特沃斯滤波器。其通带内相应最为平坦,衰减特性和相位特性都很好,对器件的要求也不高。但其在低频范围内有体积重量大、价格昂贵和衰减大等缺点。方案二:采用实时DSP数字滤波技术,数字信号灵活性大,可以在不增加硬件成本的基础上对信号进行有效的滤波,但要进行滤波,需要A/D、D/A既有较高的转换速率,处理器具有较高的运算速度,成本高。 方案三:以集成运放为核心的有源滤波电路,结构简单,所需元件少,成本低,且电路输入阻抗高、输出阻抗低,并有专门的设计软件。 方案选择:选择方案三作为系统的基波和三次谐波滤波方案。用集成运放TL081A和RC网络组成的二阶有源滤波电路器的滤波器结构清晰,幅频响应更接近理想特性,截止频率和增益可以进行充分调节,具有较好的滤波效果,可以产生非常理想的正弦波效果。 1.2.4移相电路的选择 移相电路对分频滤波后的基波正弦信号进行移相,使基波与三次谐波相位关系满足信号合成的需要。 方案一:采用无源RC移相网络。该方案电路简单,可以完成移相,但是通过移相网络后信号有衰

wave文件(.wav)格式、PCM数据格式

wave文件(*.wav)格式、PCM数据格式 1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有44100 次采样, 采样数据用16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有22050 次采样, 采样数据用8 位(1字节)记录, 单声道; 当然也可以有16bit 的单声道或8bit 的立体声, 等等。 采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH); 而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位(左声道)和低八位(右声道)分别代表两个声道。 人对频率的识别范围是20HZ - 20000HZ, 如果每秒钟能对声音做20000 个采样, 回放时就足可以满足人耳的需求. 所以22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒24 帧图片的道理差不多。 每个采样数据记录的是振幅, 采样精度取决于储存空间的大小: 1 字节(也就是8bit) 只能记录256 个数, 也就是只能将振幅划分成256 个等级; 2 字节(也就是16bit) 可以细到65536 个数, 这已是CD 标准了; 4 字节(也就是32bit) 能把振幅细分到4294967296 个等级, 实在是没必要了. 如果是双声道(stereo), 采样就是双份的, 文件也差不多要大一倍. 这样我们就可以根据一个wav 文件的大小、采样频率和采样大小估算出一个wav 文件的播放长度。 譬如"Windows XP 启动.wav" 的文件长度是424,644 字节, 它是"22050HZ / 16bit / 立体声" 格式(这可以从其"属性->摘要" 里看到), 那么它的每秒的传输速率(位速, 也叫比特率、取样率)是22050*16*2 = 705600(bit/s), 换算成字节单位就是705600/8 = 88200(字节/秒), 播放时间:424644(总字节数) / 88200(每秒字节数) ≈ 4.8145578(秒)。 但是这还不够精确, 包装标准的PCM 格式的WAVE 文件(*.wav)中至少带有42 个字节的头信息, 在计算播放时间时应该将其去掉, 所以就有:(424644-42) / (22050*16*2/8) ≈ 4.8140816(秒). 这样就比较精确了. 关于声音文件还有一个概念: "位速", 也有叫做比特率、取样率, 譬如上面文件的位速是705.6kbps 或705600bps, 其中的b 是bit, ps 是每秒的意思;

wav文件格式分析详解

wav文件格式分析详解 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个 字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选), Data Chunk。具体见下图: ------------------------------------------------ | RIFF WAVE Chunk | | ID = 'RIFF' | | RiffType = 'WAVE' | ------------------------------------------------ | Format Chunk | | ID = 'fmt ' | ------------------------------------------------ | Fact Chunk(optional) | | ID = 'fact' | ------------------------------------------------ | Data Chunk | | ID = 'data' | ------------------------------------------------ 图1 Wav格式包含Chunk示例 其中除了Fact Chunk外,其他三个Chunk是必须的。每个Chunk有各自的ID,位 于Chunk最开始位置,作为标示,而且均为4个字节。并且紧跟在ID后面的是Chunk大小(去除ID和Size所占的字节数后剩下的其他字节数目),4个字节表示,低字节 表示数值低位,高字节表示数值高位。下面具体介绍各个Chunk内容。 PS: 所有数值表示均为低字节表示低位,高字节表示高位。 二、具体介绍 RIFF WAVE Chunk ==================================

信号的产生分解与合成

东南大学电工电子实验中心 实验报告 课程名称:电子线路实践 第七次实验 实验名称:信号的产生、分解与合成 院(系):电子科学与工程学院专业: 姓名:姜勖学号:06A11315 实验室:104实验组别:27 同组人员:徐媛媛实验时间:年月日 评定成绩:审阅教师: 实验四信号的产生、分解与合成 一、实验内容及要求 设计并安装一个电路使之能够产生方波,并从方波中分离出主要谐波,再将这些谐波合成为原始信号或其他周期信号。 1.基本要求 (1)设计一个方波发生器,要求其频率为1kHz,幅度为5V; (2)设计合适的滤波器,从方波中提取出基波和3次谐波; (3)设计一个加法器电路,将基波和3次谐波信号按一定规律相加,将合成后的信号与原始信号比较,分析它们的区别及原因。 2.提高要求 设计5次谐波滤波器或设计移相电路,调整各次谐波的幅度和相位,将合成后的信号与原始信号比较,并与基本要求部分作对比,分析它们的区别及原因。 3.创新要求 用类似方式合成其他周期信号,如三角波、锯齿波等。 分析项目的功能与性能指标: 功能:通过振荡电路产生一个方波,并将其通过滤波得到1、3、5次谐波,最后通过加法电路合成新的波形。 性能指标: (1)方波:频率1KHz,幅度5V。 (2)滤波器:基础要求从方波中提取基波和三次谐波,提高要求提取五次谐波。 (3)移相电路:通过移相电路调节滤出来的1、3、5次谐波相位,使得其与原方波相位差近似为0。

(4)加法器电路:将基波和3次谐波和5次谐波信号按一定规律相加。 1、信号的产生 通过震荡电路产生1kHz ,幅度为5V 的方波信号。 2、滤波器的设计 根据方波的傅里叶展开式: 可知原信号分解只包含奇次谐波分量。因此设计不同中心频率的带通滤波器,可将各次谐波滤出。 3、相位校正电路 由于滤波器用到了对不同频率有不同响应的储能元件,对于滤除的波形会产生附加相位。若要让各次谐波叠加出原有信号,必须调节其相位使之同相。用全通滤波器可在不影响相对幅度的前提下改变相位。 4、加法电路 将滤除的基波、3次谐波、5次谐波相加,得到近似的方波信号。对于滤波器对不同频率分量不成比例的衰减,可在加法电路中选择合适的比例给予响应的补偿。 二、电路设计(预习要求) (1) 电路设计思想(请将基本要求、提高要求、创新要求分别表述): 1、信号发生电路: 利用运放和RC 回路构成振荡电路,通过分别调节正反向RC 回路的时间常数和运放同相输入端的参考电压来调节震荡电路的频率以及占空比。用一对稳压二极管限制输出电压幅度,并对稳压管导通压降进行一定的补偿。 2、有源带通滤波器: 根据实验要求,设计有源带通滤波器,将所需频率的信号以尽量小的衰减输出,同时对其它频率有非常大的衰减。因此需要增加滤波器的阶数。初步选择采用二阶有源带通滤波器,通过理论计算,调节其中一个电阻来改变中心频率。根据实际搭出的电路效果,可尝试使用四阶有源带通滤波器,以求获得更好的滤波效果。 3、相移电路: 由于滤波器难免对滤出的谐波分量产生附加相位,需要在选频电路之后加一全通网络校正相位,抵消相位差。移向电路有两种,分为正向移向和反向移向。 4、加法电路 将所得到的各次谐波分量叠加,得到近似的方波。同时,加法电路可对滤波对原信号分量的衰减进行补偿。 (2) 电路结构框图(请将基本要求、提高要求、创新要求分别画出): 基础要求:因基础要求与提高要求相比,除缺少5次滤波与移相电路外,其余部分均相同,其结构框图已包含在提高要求的框图中,故不单独列出。 提高要求: (3)电路原理图(各单元电路结构、工作原理、参数计算和元器件选择说明): 分工:徐媛媛(滤波电路的设计、搭建和调试);姜勖(方波产生、相移及加法电路设计搭建和调试) 方波振荡及鉴幅电路: 采用迟滞比较及RC 反馈回路以及比较器鉴幅电路,总电路图如下: 设从输出端的对输入端的负反馈电阻分别为1f R 和2f R ,则前部分方波的振荡周期为111222 ln(12)ln(12)f f R R T R C R C R R =+++,通过电位器分别调节1f R 和2f R 的阻值使方波的频率为1kHz ,占空比为50%。

常见音频文件格式的特点

常见音频文件格式的特点。 要在计算机内播放或是处理音频文件,也就是要对声音文件进行数、模转换,这个过程同样由采样和量化构成,人耳所能听到的声音,最低的频率是从20Hz起一直到最高频率20KHZ,20KHz以上人耳是听不到的,因此音频的最大带宽是20KHZ,故而采样速率需要介于40~50KHZ之间,而且对每个样本需要更多的量化比特数。音频数字化的标准是每个样本16位-96dB的信噪比,采用线性脉冲编码调制PCM,每一量化步长都具有相等的长度。在音频文件的制作中,正是采用这一标准。 CD格式:正统血脉 当今世界上音质最好的音频格式是什么?当然是CD 了。因此要讲音频格式,CD自然是打头阵的先锋。在大多数播放软件的“打开文件类型”中,都可以看到*.cda格式,这就是CD音轨了。标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的,因此如果你是一个音响发烧友的话,CD是你的首选。它会让你感受到天籁

之音。CD光盘可以在CD唱机中播放,也能用电脑里的各种播放软件来重放。一个CD音频文件是一个*.cda文件,这只是一个索引信息,并不是真正的包含声音信息,所以不论CD音乐的长短,在电脑上看到的“*.cda文件”都是44字节长。注意:不能直接的复制CD格式的*.cda文件到硬盘上播放,需要使用象EAC这样的抓音轨软件把CD格式的文件转换成WAV,这个转换过程如果光盘驱动器质量过关而且EAC的参数设置得当的话,可以说是基本上无损抓音频。推荐大家使用这种方法。 WAV:无损 是微软公司开发的一种声音文件格式,它符合PIFFResource Interchange File Format 文件规范,用于保存WINDOWS平台的音频信息资源,被WINDOWS平台及其应用程序所支持。“*.WAV”格式支持MSADPCM、CCITT A LAW 等多种压缩算法,支持多种音频位数、采样频率和声道,标准格式的WAV文件和CD格式一样,也是44.1K的采样频率,速率88K/秒,16位量化位数,看到了吧,WAV格式的声音文件质量和CD相差无几,也是目前PC机上广为流行的声音文件格式,几乎所有的音频编辑软件都“认识”WAV格式。

UART协议之波形分析

UART数据波形分析 摘要:本文通过对异步串行数据格式的分析,阐述通过波形分析方法调试UART数据收发的原理和方法。 经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定以下情况: 1.是否有数据接收或发送; 2.数据是否正确; 3.波特率是否正确; 一、串行数据的格式 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。 起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑(如RS-232电平)则相反。 例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。 图1 TTL电平的串行数据帧格式(55aah)

图2 RS-232电平的串行数据帧格式(55aah) 二、根据波形图计算波特率 如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。 图3 波特率计算示意图 可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为: 10bit / 1.05ms X 1000 ≈ 9600 bit/s 如果上图中的时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。 当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。 三、根据波形图判断RS-485收发数据的正确与否 RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。 RS-485发送数据时的正确时序如图4所示。

信号波形合成实验

信号波形合成实验电路 实验报告 组员:于兴家、俞宝智、黄艳霞指导教师:赵娟老师 目录 一、系统设计................................................................ . (2) 1、设计任务 (2) 2、基本要求 (2) 3、发挥部分 (2) 二、方案论证 (3) 1、信号发生器电路 (4) 2、分频电路 (4) 3、滤波电路 (4) 4、移相电路.............. . (4) 5、加法电路 (5) 三、整体设计 (5) 原理图:整体方案设计 (5) 1、方波发生器的设计与实现 (5) 2、分频电路的设计与实现 (5) 3、电压跟随器 (6) 4、滤波电路的设计与实现 (7) 5、移向电路的设计与实现 (7) 6、合成电路的设计与实现 (8) 7、合成电路的设计与实现 (9) 四. 实验测试与结果分析 (10) 1、测试仪器与设备 (10) 2、整机标准 (10) 3、系统试验结果与分析 (10) 五、实物图片 (10)

一、系统设计 1、任务 设计制作一个电路,能够产生多个不同频率的正弦信号,并将这些信号再合成为近似方波和其他信号。电路示意图如图1所示: 图1 电路示意图 2、要求 1.基本要求 (1)方波振荡器的信号经分频与滤波处理,同时产生频率为10kHz和30kHz的正弦波信号,这两种信号应具有确定的相位关系; (2)产生的信号波形无明显失真,幅度峰峰值分别为6V和2V; (3)制作一个由移相器和加法器构成的信号合成电路,将产生的10kHz和30kHz正弦波信号,作为基波和3次谐波,合成一个近似方波,波形幅度为5V,合成波形的形状如图2所示。 图2 利用基波和3次谐波合成的近似方波 2.发挥部分 (1)再产生50kHz的正弦信号作为5次谐波,参与信号合成,使合成的波形更接近于方波;(2)根据三角波谐波的组成关系,设计一个新的信号合成电路,将产生的10kHz、30kHz等各个正弦信号,合成一个近似的三角波形; (3)设计制作一个能对各个正弦信号的幅度进行测量和数字显示的电路,测量误差不大于±5%; (4)其他。

请问如何将flac格式的视频转换成wav格式

flac和wav很相似,都是音频编码的一种音频压缩编码。而且flac 和wav都为无损压缩音频格式,标准格式化的WAV文件和CD格式一样,因此如果有些用户想要将下载的flac格式音频转换为wav也是比较容易实现的,只需要一款音频转换器便可轻松实现。以下即是小编常使用的一款迅捷音频转换器,一起来看看它是如何将flac转换wav 音频格式。 1、将此款迅捷音频转换器安装在电脑上,可鼠标双击软件图标将软件快速打开,有三种方式进行文件添加,第一是界面左上方的“添加文件”第二是点击中间的“+”号第三就很方便了,直接将flac文件拖拽进入即可。

2、点击右上方“选择输出格式”右边的倒三角符号。弹出格式选项,来到“音频”选项上,我们很快就可以找到并点击需要转换的wav格式文件。 3、如果想要wav文件转换出来的效果变得更好的,那么就要来到参数的设置项上。我们可以看到音频设置项上,有音频质量、声道、编码等设置。音频声道、质量越大,声音的效果就越好,文件也就越大;

这些功能参数可以按照自己的意愿随意更改设置。 4、在文件转换之前,我们接下来需要做的就是来到主界面下方的输出目录设置,点击输出目录右边的更改路径按钮,然后就在弹出的对话框上选择存放文件的地方。 5、等到所有都设置好了。我们就可以将flac文件进行转换啦,可以点击文件右边的“转换”按钮也可以点击下方的“开始转换”然后进行音频文件格式的转换。

6、相对于音频格式之间转换来说,一般一个文件的转换,其速度非常快的,一首歌曲只需要几秒钟就可以完成转换了。等到转换完成,你就可以到以上你设置好的输出目录上轻松又快速地找到wav音频文件了。 总结:在将flac转wav中,在整个过程中,选择格式和参数设置是最主要的两步。当你熟悉这款软件之后,你就会很快将音频格式文件轻

各种音视频编解码学习详解

各种音视频编解码学习详解 编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间。尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析、应用开发、释放license收费等等。最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了。所以豆丁上看不出所以然,从wiki上查。中文的wiki信息量有限,很短,而wiki的英文内容内多,删减版也减肥得太过。我在网上还看到一个山寨的中文wiki,长得很像,红色的,叫―天下维客‖。wiki的中文还是很不错的,但是阅读后建议再阅读英文。 我对媒体codec做了一些整理和总结,资料来源于wiki,小部分来源于网络博客的收集。网友资料我们将给出来源。如果资料已经转手几趟就没办法,雁过留声,我们只能给出某个轨迹。 基本概念 编解码 编解码器(codec)指的是一个能够对一个信号或者一个数据流进行变换的设备或者程序。这里指的变换既包括将信号或者数据流进行编码(通常是为了传输、存储或者加密)或者提取得到一个编码流的操作,也包括为了观察或者处理从这个编码流中恢复适合观察或操作的形式的操作。编解码器经常用在视频会议和流媒体等应用中。 容器 很多多媒体数据流需要同时包含音频数据和视频数据,这时通常会加入一些用于音频和视频数据同步的元数据,例如字幕。这三种数据流可能会被不同的程序,进程或者硬件处理,但是当它们传输或者存储的时候,这三种数据通常是被封装在一起的。通常这种封装是通过视频文件格式来实现的,例如常见的*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta. 这些格式中有些只能使用某些编解码器,而更多可以以容器的方式使用各种编解码器。 FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于―IDP3‖的FourCC。 视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。视频档实际上都是一个容器里面包裹着不同的轨道,使用的容器的格式关系到视频档的可扩展性。 参数介绍 采样率 采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数叫作采样周期或采样时间,它是采样之间的时间间隔。注意不要将采样率与比特率(bit rate,亦称―位速率‖)相混淆。 采样定理表明采样频率必须大于被采样信号带宽的两倍,另外一种等同的说法是奈奎斯特频率必须大于被采样信号的带宽。如果信号的带宽是100Hz,那么为了避免混叠现象采样频率必须大于200Hz。换句话说就是采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。 对于语音采样: ?8,000 Hz - 电话所用采样率, 对于人的说话已经足够 ?11,025 Hz ?22,050 Hz - 无线电广播所用采样率 ?32,000 Hz - miniDV 数码视频camcorder、DAT (LP mode)所用采样率 ?44,100 Hz - 音频CD, 也常用于MPEG-1 音频(VCD, SVCD, MP3)所用采样率

相关文档
最新文档