我有一个信号,我想复制它:
1) 从零交叉开始变为正
2)复制一定数量的点(如8000)
3) 并在复制 8000 个点后继续附加点,直到找到一个过零下降部分。
我可以找到零交叉,但我在知道如何判断零交叉变为正和/或零交叉变为负时遇到了一些问题。我也无法在最后的 8000 点之后添加下一部分点(所以问题#1和问题#3 用粗体表示我有问题)
注意:请记住我使用的信号是一个音频信号,所以它不会像一个简单的方程那么好。
我附上了测试代码和图像。我正在使用 matlab / octave
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')