我正试图在子图中显示两件事
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
答案 0 :(得分:0)
看起来它的刷新速度不够快。在drawnow
之前使用pause
。这应该可以解决它。