【发布时间】:2019-11-08 13:13:08
【问题描述】:
我有一个信号是两个频率的线性组合,我正在尝试使用 MATLAB 来确定(主)信号的频率。作为输入,我有采样率rate 和带有信号数据的行向量segment。
现在我有以下代码:
N=length(segment);
freq = rate*(0:N/2)/N;
X = fft(segment);
X=X(1:N/2+1);
plot(freq*2, abs(X))
这确实返回了一个具有两个峰值的图形,一个在信号所包含的每个频率上。现在我想提取这些频率。所以我想返回一个变量signal,它是两个频率的向量。
因此,如果我的信号是由30 Hz 和60 Hz 之一的信号的线性组合创建的,那么我想要signal = [30,60]。我可以创建一个图表然后识别它,但我想去掉那个中间人,只返回找到的频率,而不使用任何工具箱。
我怎样才能找到我想要的频率?
【问题讨论】:
标签: matlab signal-processing fft continuous-fourier