サブプロットに2つのことを表示しようとしています
1. サブプロット上のフレーム (211) 上の信号のセグメント 2. 一部のフォルマントの値 - サブプロット上の (212)
フレームごとに表示するために「一時停止」を使用しています。
そして、ここに私の問題があります:
最初のサブプロットはフレームごとに表示されますが、2 番目のサブプロットではフレームが前のサブプロットに追加されるため、フォルマントの値の間で実際に成功することはできません。
誰かが私の2番目のサブプロットに現在のフレームのみのフォルマントを持ち、2番目のフレームに追加されないようにするのを手伝ってもらえますか?
これが私のコードです:
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