余培 鄧世國 劉華珠 張志
摘 要:文章介紹了用MATLAB軟件的幾個(gè)函數(shù)來處理音頻信號(hào)的基本流程。
關(guān)鍵詞:MATLAB;數(shù)字信號(hào)處理;音頻信號(hào);wavread;resample
正文:
一、引言
語音信號(hào)是基于時(shí)間軸上的一維數(shù)字信號(hào),本文主要是對(duì)語音信號(hào)進(jìn)行頻域上的分析。在信號(hào)分析中,頻域往往包含了更多的信息。對(duì)于頻域來說,我們都可以用一種方法來分析,就是傅立葉變換:將時(shí)域的波形轉(zhuǎn)化到頻域來分析。
本文就從頻域的角度對(duì)信號(hào)進(jìn)行分析,并利用MATLAB函數(shù)進(jìn)行重采樣,MATLAB軟件在數(shù)字信號(hào)處理上發(fā)揮了相當(dāng)大的優(yōu)勢。
二、設(shè)計(jì)方案
1、利用MATLAB中的wavread命令來讀入(采集)語音信號(hào),將它賦值給某一向量。再將該向量看作一個(gè)普通的信號(hào),對(duì)其進(jìn)行FFT變換實(shí)現(xiàn)頻譜分析,對(duì)于波形圖與頻譜圖都可以用 MATLAB畫出。
2、我們可以利用resample函數(shù)改變語音信號(hào)的采樣率,并可以通過sound命令來對(duì)語音信號(hào)進(jìn)行回放,以便在聽覺上來感受聲音的變化。
3、利用MATLAB中的wavwrite命令
這個(gè)方案用到的軟件MATLAB語句。
三、主體部分
(一)、語音的錄入與打開
A、設(shè)計(jì)內(nèi)容、
用matlab對(duì)實(shí)際聲卡采集的男聲語音信號(hào)(‘ns.wav)和女聲語音信號(hào)(‘nvs.wav進(jìn)行分析,比較基音的頻率有何區(qū)別.
程序如下:
[s2,fs2,nbits2]=wavread('nvs');
f2=fft(s2);
f=(0:length(f2)-1)'*fs2/length(f2);
figure(1);plot(f,abs(f2));axis([0,3000,0,1400]);
xlabel('Hz');title('女聲頻譜');
[s1,fs1,nbits1]=wavread('ns');
f1=fft(s1,50000);
f=(0:length(f1)-1)'*fs1/length(f1);
figure(2);plot(f,abs(f1));axis([0,3000,0,2500]);
xlabel('Hz');title('男聲頻譜');
結(jié)果如圖:
B、結(jié)論
由圖可知,女聲頻譜的最高峰出現(xiàn)在700Hz左右,頻帶寬度在1500Hz左右。而男聲頻譜的最高峰出現(xiàn)在400Hz左右,頻帶寬度在1000Hz左右。因此女聲的基音頻率要比男聲的基音頻率要高。
(二)、用resample函數(shù)進(jìn)行重采樣、
A、分析
resample函數(shù)可以改變語音信號(hào)的采樣率,s=resample(s1,fs,fs1),即可將采樣率為s1的fs1信號(hào)變成采樣率為fs的s信號(hào),而信號(hào)的大致形狀不變。
B、設(shè)計(jì)內(nèi)容
對(duì)一段采樣率為fs2=44100Hz的女聲語音‘nvs.wav進(jìn)行分析,將采樣率分別變?yōu)?0000Hz,5000Hz,1000Hz,畫出波形圖,和原信號(hào)做比較。
程序如下:
[s2,fs2,nbits2]=wavread('nvs');
subplot(2,2,1);plot(s2);
title('fs=44000');
fs=10000;
s=resample(s2,fs,fs2);
subplot(2,2,2);plot(s);
title('fs=10000');
fs=5000;
s=resample(s2,fs,fs2);
subplot(2,2,3);plot(s);
title('fs=5000');
fs=1000;
s=resample(s2,fs,fs2);
subplot(2,2,4);plot(s);
title('fs=1000');
結(jié)果如圖:
C、結(jié)論
因?yàn)橛缮辖M實(shí)驗(yàn)可知女聲語音‘nvs.wav的帶寬約為1500Hz??梢?,當(dāng)采樣率fs為10000Hz,5000Hz時(shí),采樣率大于帶寬的兩倍,此時(shí),采樣率減小導(dǎo)致信號(hào)采集的樣點(diǎn)數(shù)就越少,波形圖也越稀松,但大致的形狀不變。但是,如果采樣率過于低,如fs=1000Hz時(shí),采樣率低于帶寬的兩倍,則波形圖發(fā)生較大的失真。
結(jié)束語
語音看作了一個(gè)向量,于是語音數(shù)字化了,則可以完全利用數(shù)字信號(hào)處理的知識(shí)來解決。我們可以像給一般信號(hào)做頻譜分析一樣,來給語音信號(hào)做頻譜分析。
廣東省省級(jí)科技計(jì)劃 2014B090911001