音频信号介绍以及MATLAB简单处理
音频信号(Audio Signal),泛指由人耳听到的各种声音之信号。
基本特征:
音量(Volume):声音的大小称为音量,又称为力度,强度(intensity)或是能量(Energy)。音量越大,代表音频信号的波形振幅越大。
音高(Pitch):声音的基本频率(基频,Fundamental Frequency)。
音色(Timber):音频信号波形在每个周期内的变化,形成此声音的特质音色(主要是频谱特征)。
取样点数:长度(Y)
取样频率(取样点/秒):FS
音频信号的长度(秒):长度(Y)/ FS音频
量化位数:nbits
MATLAB对音频信号处理的函数
音频信号读入:
[ y, fs] = wavread(\'welcome.wav\', [4001 5000]); %读取4001~5000点的数据
若wav信号是8bits量化,以unsigned interger存储器,其所能表示的数值介于0~255之间。MATLAB读入数据时将其归一化到-1~1,若要还原成unsigned interger时,将变量 y 乘以128,再加上128,就可得到原来的整数值。
音频信号的播放
将音频信号读入之后,就可做处理了如:放大音量,提高或降低音高,去噪等。
通过改变振幅的大小调节音量
wavplay(1*y, Fs, \'sync\'); % 播放1倍振幅的音频信号
改变播放时的采样频率,改变音频信号的时间长度,进而影响到音高。提高采样频率,听到的声音越高,最后出现像唐老鸭的声音。反之,像牛叫的声音。
wavplay(y, 1.2*Fs, \'sync\'); % 同步播放 1.2 倍速度的音频信号
就
将音频信号的波形上下颠倒,听到的声音基本上是一样的,但是如果是前后颠倒,听到的声音就像录音带倒带
原声音播放:
wavplay(y, Fs, \'sync\');
播放上下颠倒的音频:
wavplay(-y, Fs, \'sync\');
播放前后颠倒的音频:
wavplay(flipud(y), Fs, \'sync\');
通常在使用wavplay播放音频信号时,MATLAB会停止进行其他操作,直到音频播放完成。此种方式称为同步(synchronous)。若需要一边播放、一边进行其他运算,就必须使用非同步(Asynchronous)。
wavplay只能用于微软的Windows平台,在其他操作系统中用sound。
sound(y, Fs); 默认非同步;
MATLAB可直接录麦克风的信号。
y = wavrecord(n, fs);
MATLAB也可直接将信号直接存储为wav格式
wavwrite(y, fs, nbits, waveFile) ;
请发表评论