matlab频谱分析

就是有x,y两列数据,然后求x和y的自谱还有他们的互谱,x,y不一样长,怎么做啊

你的问题不是很全,可能的代码根据注释改改吧:
%自谱Y=fft(X,N)其中X为需要分析的信号,N为数据点数,一般不指定N,简化为Y=fft(b)。

x=1; %长度为,周期为,一个周期,滤波之后。

fs=5e8; %采样间隔2e-9,采样频率500 MHz

N=1251-1; %使N为偶数

Y=fft(x);

magY=abs(Y*(1:1:N/2))*2/N;

logmagY=20*log10(magY)+120; %将幅频变为对数幅频,加120是变为dBμV

f=(0:N/2-1)*fs/N; %对数幅频的横坐标

semilogx(f,logmagY)

img

互谱:
Fs = 1000; t = 0:1/Fs:.296;
x = cos(2pit200)+randn(size(t)); % 200Hz间距,根据你的改
y = cos(2
pit100)+randn(size(t));
cpsd(x,y,[],[],[],Fs,'twosided');

img