回复 13 # songzy41 的帖子
你好,谢谢老师的讲解和解答。我思路上有点清晰了,fft如果满足一定的条件,就能在变化后的某个谱线上显示信号的幅值和相位,如果不满足就不能显示出来,要想得到正确的数值必须通过校正,说到这里,我想请老师能不能给我举个例子示范一下呢,因为我现在就是要做这种复数的FFT,关键是变化后不能得到,我现在很困惑,不知道如何得到数据,希望得到老师您的帮助。
function pinlv()
clf
fs=100;
N=128;
n=0:N;
t=n/fs;
x1=3*sin(2*pi*25*t+pi/6);
x2=3*sin(2*pi*25*t+pi/2+pi/6);
y1=6*sin(2*pi*25*t-pi);
y2=6*sin(2*pi*25*t+pi/2-pi);
x=i*x1+x2;
y=i*y1+y2;
r1=fft(x,N);
r2=fft(y,N);
mag1=abs(r1);
mag2=abs(r2);
deg1=angle(r1);
deg2=angle(r2);
f1=(0:length(r1)-1)'*fs/length(r1);
f2=(0:length(r2)-1)'*fs/length(r2);
subplot(2,2,1),plot(f1,mag1*2/N);grid
subplot(2,2,2),plot(f2,mag2*2/N);grid
subplot(2,2,3),plot(f1,deg1);grid
subplot(2,2,4),plot(f2,deg2),grid
我是分别吧相差90度的两个信号构成了一个复数,然后对这个两个复数进行FFT,看他们的FFT之后的幅频图和相频图满足不满足给定的初始信号的相位角以及他们的相位差?通过这个例子我最终想把我用传感器在前后支撑测得的水平和垂直的数据也这样构成复数并且进行FFT,看看前后支撑相位相差多少度,以判断转子是属于那种不平衡,恳请老师帮忙分析一下程序,并将这个程序校正一下,我当做程序的模板来学习,谢谢老师了,麻烦老师要给我改改哦。 |