function d=
stftms
(x,win,nfft,inc)
iflength
(win)==1
% 判斷有否設定窗函式
wlen=win;
% 否,設幀長
win=
hanning
(wlen)
;% 設定窗函式
else
wlen=
length
(win)
;% 設幀長
endx=x(
:); win=
win(:)
;% 把x和win都變為列陣列
s =length
(x);
% 計算x的長度
c =1
;d =
zeros((
1+nfft/2)
,1+fix
((s-wlen)
/inc));
% 初始化輸出陣列
for b =
0:inc:
(s-wlen)
% 設定迴圈
u = win.*x
((b+1)
:(b+wlen));
% 取來一幀資料加窗
t =fft(u,nfft)
;% 進行傅利葉變換
d(:,c)=t
(1:(
1+nfft/2)
);% 取1到1
+nfft/
2之間的譜值
c = c+1;
% 改變幀數,求取下一幀
end;
MATLAB實現語音頻號分幀
為了分析讀入資料,通常進行分幀處理。在分幀中,往往設定在相鄰兩幀之間有一部分重疊,如下圖所示 設語音檔案的資料存放在y中,y的長度為n,取樣頻率為fs,取每幀長為wlen,後一幀對前一幀的位移量用inc表示,相鄰兩幀之間的重疊部分overlap wlen inc。f enframe x,win,in...
語音頻號短時域分析之短時平均能量(四)
因為語音頻號的能量隨時間而變化,清音和濁音之間的能量區別相當顯著。因此對短時能量和短時平均幅度進行分析,能夠描寫敘述語音的這樣的特徵變換情況。定義n時刻某語音頻號的短時平均能量e為 式中,n為窗長,可見短時能量為一幀樣點值的加權平方和。當窗函式為矩形窗時 短時平均能量用途 1 能夠作為區分清音和濁音...
matlab給語音頻號新增雜訊
我們有時候做演算法分析,需要自己給訊號新增雜訊來驗證自己演算法的魯棒性。以語音頻號為例,給訊號新增指定訊雜比的高斯白雜訊程式如下 data xx 10000 26000 讀入資料 新增雜訊 snr 10 設定訊雜比,單位db 輸出引數data是帶噪語音,noise為加在訊號上的白雜訊 data,no...