matlab中子图的问题

时间:2011-05-21 14:07:38

标签: matlab subplot

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

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

1 个答案:

答案 0 :(得分:0)

看起来它的刷新速度不够快。在drawnow之前使用pause。这应该可以解决它。