次の場合にコピーしたいシグナルがあります。
1) ゼロクロスで開始し、正になります
2) セット数のポイント (8000 など) をコピーする
3) 8000 ポイントがコピーされた後、ゼロ クロッシング ダウン セクションが見つかるまでポイントを追加し続けます。
ゼロ クロッシングを見つけることはできますが、ゼロ クロッシングが正になるタイミングやゼロ クロッシングが負になるタイミングを判断する方法を知るのに問題があります。また、最後の 8000 ポイントの後にポイントの次のセクションを追加することにも問題があります (質問#1と太字の質問#3 に問題があります)。
注:私が使用している信号はオーディオ信号であるため、単純な方程式ほど良くないことに注意してください.
テストコードと画像を添付しました。私はmatlab/オクターブを使用しています
clear all, clc, tic, clf;
n=16000
t=linspace(0,2*pi,n);
y=cos(6*t)+sin(4*t);
%find zero crossings
t1=y(1:n-1);
t2=y(2:n);
tt=t1.*t2;
indx=find(tt<0)
%1) start at first zero crossing going positive
%2) get 8000 pts
%3) and after the 8000 points continue appending points until a zero crossing going down section is found
new_y=y(indx(1,1):8000); %start at zero section found get 8000 pts
subplot(2,1,1);plot(y);title('Original Signal')
subplot(2,1,2);plot(new_y);title('New signal')