我有一个下面的正弦波方程
Fs = 8000; % Sampling rate of signal
Fc = 3000; % Carrier frequency
t = [0:Fs-1]'/Fs; % Sampling times
dev = 50; % Frequency deviation in modulated signal
s1 = sin(2*pi*200*t)+2*sin(2*pi*f*t);
现在我想为s1方程计算f的值,我们怎样才能得到这个?谢谢
您可能想四处寻找类似的问题。
FFT 是解决问题的最简单途径:
spec = abs(fft(s1));
然后使用检测阈值搜索频谱中的最大值。
示例(此处f=10
):
f= 10;
s1 = sin(2*pi*200*t)+2*sin(2*pi*f*t);
thresh = 0.2;
f1=abs(fft(s1))/sum(abs(s1));
f= [0:length(f1)-1]/length(f1)*Fs;
f(f1(1:end/2)>0.2)
这是结果(频谱中幅度大于阈值的峰值的频率):
ans =
10 200