matlab中frame是什么意思,frame2time结果是什么含义?
再舉一例,圖2
代碼在這里,僅僅修改幾個(gè)參數(shù)而已。頻率為100,500,800的三個(gè)正弦波,采樣為10k,基音周期不理想,低于直接FFT
nt=4000;
fs=10000;
t=(0:nt-1)*1/fs;
f1=100;
f2=500;
f3=800;
x=0.6*sin(2*pi*f1*t)+0.8*sin(2*pi*f2*t)+1.2*sin(2*pi*f3*t);
x=x-mean(x);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???% 消去直流分量
x=x/max(abs(x));? ?? ?? ?? ?? ?? ?? ?? ?? ? % 幅值歸一化
wlen=320; inc=80;? ?? ?? ?? ???% 分幀的幀長(zhǎng)和幀移
overlap=wlen-inc;? ?? ?? ?? ???% 幀之間的重疊部分
T1=0.05;? ?? ?? ?? ?? ?? ?? ???% 設(shè)置基音端點(diǎn)檢測(cè)的參數(shù)
y??= enframe(x,wlen,inc)';? ?? ?? ?? ?? ?? ?% 分幀
fn??= size(y,2);? ?? ?? ?? ?? ?? ?? ?? ?? ? % 取得幀數(shù)
[voiceseg,vosl,SF,Ef]=pitch_vad1(y,fn,T1);
frameTime = frame2time(fn, wlen, inc, fs);??% 計(jì)算各幀對(duì)應(yīng)的時(shí)間坐標(biāo)
lmin=fix(fs/1000);? ?? ?? ?? ?? ?? ?? ?? ?? ?% 基音周期的最小值
lmax=fix(fs/60);? ?? ?? ?? ?? ?? ?? ?? ?? ? % 基音周期的最大值
period=zeros(1,fn);? ?? ?? ?? ?? ?? ?? ?? ? % 基音周期初始化
for k=1:fn
if SF(k)==1? ?? ?? ?? ?? ?? ?? ?? ?? ???% 是否在有話幀中
y1=y(:,k).*hamming(wlen);? ?? ?? ???% 取來(lái)一幀數(shù)據(jù)加窗函數(shù)
xx=fft(y1);? ?? ?? ?? ?? ?? ?? ?? ? % FFT
a=2*log(abs(xx)+eps);? ?? ?? ?? ?? ?% 取模值和對(duì)數(shù)
%B(:,k)=ifft(a);
b=ifft(a);? ?? ?? ?? ?? ?? ?? ?? ???% 求取倒譜
[R(k),Lc(k)]=max(b(lmin:lmax));? ???% 在lmin和lmax區(qū)間中尋找最大值
period(k)=Lc(k)+lmin-1;? ?? ?? ?? ? % 給出基音周期
end
end
% 作圖
subplot 311, plot(t,x,'k');??title('語(yǔ)音信號(hào)')
axis([0 max(t) -1 1]); ylabel('幅值');
subplot 312; plot(frameTime,period,'k');
xlim([0 max(t)]);ylim([0,150]); title('基音周期');
grid; xlabel('時(shí)間/s'); ylabel('樣點(diǎn)數(shù)');
subplot 313; plot(frameTime,fs./period,'k');
xlim([0 max(t)]);ylim([0,1000]); title('基音周期');
grid; xlabel('時(shí)間/s'); ylabel('頻率');
圖2.jpg
(107.72 KB, 下載次數(shù): 0)
2018-8-29 16:53 上傳
第二個(gè)圖
總結(jié)
以上是生活随笔為你收集整理的matlab中frame是什么意思,frame2time结果是什么含义?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于旅游景点主题的HTML网页设计——北
- 下一篇: 淘宝网-账户注册