2011-05-21 63 views
1

我試圖在一個插曲顯示兩件事情問題在MATLAB

上框架上副區的信號的

1.A段(211) - 酮一些共振峯的 2.值副區副區( 212)

而我這樣做了一些frames.I'm使用「暫停」逐幀顯示。

這裏是我的問題:

顯示第一個插曲逐幀,但我的第二個插曲幀被添加到以前的,所以我真的不能贏得成功主頻的值之間。

有人可以幫助我在我的第二個副圖上有formants只爲當前幀,不會被添加到第二幀!

這裏是我的代碼:

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

看起來它只是沒有刷新速度不夠快。在pause之前使用drawnow。這應該可以解決它。

+0

不是這樣的問題!!!我試圖顯示幀中的第二個子圖,但它只是添加到以前的幀......我想只顯示當前幀...就像子圖1 – embry 2011-05-21 14:14:41

+0

我用drawnow,就是一樣! – embry 2011-05-21 14:16:53

+0

我很難理解你...你的意思是你想從同一個迭代中得到'subplot1'和'subplot2'在一個圖中。相反,你會在下圖中看到'subplot2'?我看不出你的代碼在這裏怎麼會發生這種情況.. – 2011-05-21 14:28:23