找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2915|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于LPC內(nèi)插法求取聲信號共振峰的MATLAB程序,得到共振峰頻率和帶寬

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:291340 發(fā)表于 2018-3-13 17:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
x=sheng_500co2_2;
fs=62500;
u=filter([1 -.99],1,x);                     % 預(yù)加重
wlen=length(u);                             % 幀長
p=12;                                      % LPC階數(shù)
a=lpc(u,p);                                 % 求出LPC系數(shù)
U=lpcar2pf(a,256);                          % LPC系數(shù)求出頻譜曲線
freq=(0:256)*fs/512;                        % 頻率刻度
df=fs/512;                                  % 頻率分辨率
U_log=10*log10(U);                          % 功率譜分貝值
subplot 211; plot(u,'k');                   % 作圖
axis([0 wlen -0.5 0.5]);
title('預(yù)加重波形');
xlabel('樣點數(shù)'); ylabel('幅值')
subplot 212; plot(freq,U,'k');
title('聲道傳遞函數(shù)功率譜曲線');
xlabel('頻率/Hz'); ylabel('幅值');
[Loc,Val]=findpeaks(U);                     % U中尋找峰值
ll=length(Loc);                             % 有幾個峰值
for k=1 : ll
   m=Val(k);                              % 設(shè)置m-1,mm+1
   m1=m-1; m2=m+1;
   p=Loc(k);                              % 設(shè)置P(m-1),P(m)P(m+1)
   p1=U(m1); p2=U(m2);
   aa=(p1+p2)/2-p;                        % 按式(9-3-4)計算
   bb=(p2-p1)/2;
   cc=p;
   dm=-bb/2/aa;                           % 按式(9-3-6)計算
   pp=-bb*bb/4/aa+cc;                     % 按式(9-3-8)計算
   m_new=m+dm;
    bf=-sqrt(bb*bb-4*aa*(cc-pp/2))/aa;      % 按式(9-3-13)計算
   F(k)=(m_new-1)*df;                     % 按式(9-3-7)計算
   Bw(k)=bf*df;                           % 按式(9-3-14)計算
   line([F(k) F(k)],[0 pp],'color','k','linestyle','-.');
end
fprintf('F =%5.2f   %5.2f  %5.2f   %5.2f\n',F)
fprintf('Bw=%5.2f   %5.2f  %5.2f   %5.2f\n',Bw)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:604730 發(fā)表于 2020-1-8 13:44 | 只看該作者
U=lpcar2pf(a,256); 請問為什么lpcar2pf的第二個參數(shù)是256
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表