找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2136|回復(fù): 0
收起左側(cè)

利用MATLAB求解聲信號共振峰

[復(fù)制鏈接]
ID:291340 發(fā)表于 2018-3-13 16:12 | 顯示全部樓層 |閱讀模式
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('樣點(diǎn)數(shù)'); ylabel('幅值')
subplot 212; plot(freq,U,'k');
title('聲道傳遞函數(shù)功率譜曲線');
xlabel('頻率/Hz'); ylabel('幅值');
[Loc,Val]=findpeaks(U);                     % U中尋找峰值
ll=length(Loc);                             % 有幾個(gè)峰值
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)計(jì)算
   bb=(p2-p1)/2;
   cc=p;
   dm=-bb/2/aa;                           % 按式(9-3-6)計(jì)算
   pp=-bb*bb/4/aa+cc;                     % 按式(9-3-8)計(jì)算
   m_new=m+dm;
    bf=-sqrt(bb*bb-4*aa*(cc-pp/2))/aa;      % 按式(9-3-13)計(jì)算
   F(k)=(m_new-1)*df;                     % 按式(9-3-7)計(jì)算
   Bw(k)=bf*df;                           % 按式(9-3-14)計(jì)算
   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)
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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