求助:关于matlab中有关频谱分析的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:49:19
以前没用过matlab,现在老师要求先建立一个关于识别频差问题的仿真模型,老师说很简单的,但是我不会。大概意思是,对于两个频率差在1%的正弦信号。将它们合成为一个信号,在用频谱分析的方法识别出这两个信号。(对不同百分比的微弱频差信号进行仿真,并利用至少两种谱估计方法对其主频率进行识别)。要求使用的谱估计方法比较新(至少比周期图法要新)。望哪位大侠不吝赐教。小生在这先行谢过!
1楼用的是fft的吧。麻烦再给一个方法吧。

t = 0:.001:.25;
x1=sin(2*pi*100*t);
x2=sin(2*pi*101*t)
x = x1+x2;
y =x;
figure(1);
plot(y(1:50));
title('signal');
Y = fft(y,512);
Pyy = Y.*conj(Y)/512;
f = 1000/512*(0:199);
xlabel('Frequency (Hz)');
figure(2);
plot(f(45:55),Pyy(45:55));
title('2')
xlabel('Frequency (Hz)')

在最后一张图中,两个尖尖就是信号的

现代谱估计方法有参数模型估计方法,在Matlab里有pyulear,aryule,pburg,arburg等函数,这个方法的谱估计精度是比较高的,不过具体的用法不是三言两语说的清的,你可以参看数字信号处理的相关教材,比如,胡广书的“数字信号处理”