计算原始信号中Cos和正弦波的数量

时间:2015-02-16 21:41:54

标签: matlab

我正在尝试生成一个分数或数字,表示有多少cos和sin波可以产生我的信号。例如,如果信号是正弦波,这意味着它是100%纯,因为它只能由一个正弦信号产生,如果它由两个正弦波组成..这意味着它不是纯波,如果它包含100个正弦波它实际上是不可靠的等等....我尝试过FFT和FS但它没有工作......任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

FFT将起作用。 您必须使用傅里叶变换处理波,然后计算幅度 sqrt(真实*真实+图片*图片)。计算结果的峰值将为您提供不同频率的正弦波数。

答案 1 :(得分:0)

你走了:

x = s;
X = dct(x);
[XX,ind] = sort(abs(X),'descend');
i = 1;
while norm(X(ind(1:i)))/norm(X)<0.99
   i = i + 1;
end
Needed = i;