【发布时间】:2013-05-03 19:43:28
【问题描述】:
我有一个信号想要复制:
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')
【问题讨论】:
标签: matlab signal-processing octave