1

我试图在子图中显示两件事

1.帧上的一段信号-子图(211) 2.一些共振峰的值-子图(212)

我对许多帧执行此操作。我使用“暂停”逐帧显示。

这是我的问题:

第一个子图逐帧显示,但在我的第二个子图上,这些帧被添加到前面的子图中,所以我无法在共振峰的值之间取得成功。

有人可以帮我在我的第二个子图上只为当前帧而不是添加到第二帧的共振峰!

这是我的代码:

for k=1:Nc

.............

 y_sint=filter(g_p,A_p,g_signal);

  figure(1);
    subplot(211);
   plot(y_sint);

 fm1=0;
  ft1=0;

while((k-1)*N<=(pos+ms))&((pos+ms)<=k*N)
     y1=X(pos:pos+50-1);%calculez coeficientii filtrului folosind metoda lpc
     a1=lpc(y1,ncoeff);
     r1=roots(a1);

      r1=r1(imag(r1)>0.01);
    ffreq=sort(atan2(imag(r1),real(r1))*Fs/(2*pi));%converteste in Hz

     fm1=[fm1 ffreq(3)];

    ft1=[ft1 pos/Fs];




 pos=pos+ms;

end

 subplot(212);

plot(ft1,fm1,'*');

 legend('Formants');

 xlabel('Time (s)');

 ylabel('Frequency (Hz)');

    pause
 end
4

1 回答 1

0

看起来它只是刷新速度不够快。drawnowpause. _ 那应该可以解决它。

于 2011-05-21T14:11:19.680 回答