静夏之逸 发表于 2016-6-4 15:20

请问,如何对时空变化的电磁力进行二维傅里叶分析

1、我现在有电磁力的数据,可是怎么才能得到图片上这些信息呢。
2、我看网上有一些说可以用matlab编程得到,可是该怎么编呢,有没有其他的算法?

静夏之逸 发表于 2016-6-4 16:31

研究了很久写了这个程序,但是不太对。请问有知道错在那里的吗?

Fs=1000;%%采样频率
N=16;%%采样点数
dt=1/Fs;%%时域最小间隔,即时域分辨率
t=(0:N-1)*dt;%%采样时间长度
df=Fs/N;%%频域最小间隔,即频域分辨率
f=(-N/2+1:N/2)*df;
x=[0        0.041701429        1.44709E-06        0.046288399        -1.75888E-05       
10        0.036167227        0.00241874        0.037241525        0.002272641       
20        0.023004982        0.007602312        0.023706005        0.007343235       
30        0.013914624        0.015816028        0.015142011        0.015523496       
40        0.007253148        0.026872408        0.008033318        0.026267828       
50        0.00289365        0.04344104        0.003306926        0.042888434       
60        0.000846542        0.124897772        0.001178556        0.138513271       
70        -6.23076E-05        0.002087223        -0.000105643        0.002275589       
80        0.000684221        0.003309114        0.000515715        0.003306367       
90        0.00122594        0.00767        0.001213389        0.007695452       
100        0.002117093        0.009410195        0.001952144        0.009433074       
110        0.007123071        0.009700101        0.005792573        0.009862954       
120        0.022129795        0.010885676        0.022387069        0.010893816       
130        0.066469253        0.017668725        0.065566404        0.01802584       
140        0.062273782        0.012976056        0.059858537        0.013378638       
150        0.051318754        0.006692113        0.051595124        0.006794511       
160        0.04208294        0.002774173        0.042095443        0.002871061       
];
y=fft(x);
Y=fftshift(y);
A=abs(Y);
A=A/(N/2);%%还原真实幅值
figure(1)
subplot(121)
plot(t,x)
xlabel('时间t')
ylabel('幅值x')
grid on
subplot(122)
plot(f,A)
xlabel('频率f')
ylabel('幅值A')
grid on

夕林0529 发表于 2016-6-4 16:37

你自己知道自己分解出来的是什么吗?就随便两次FFT,都不知道自己为什么要这么做,这么做出来的数据是什么?明确的回复,是错误的

静夏之逸 发表于 2016-6-4 16:42

夕林0529 发表于 2016-6-4 16:37
你自己知道自己分解出来的是什么吗?就随便两次FFT,都不知道自己为什么要这么做,这么做出来的数据是什么 ...

我不太懂matlab编程。我看了书,上面只提到一维快速傅里叶分解用X=fft(x,N).但是具体的语句和2维的没有提到。还请指点。
或者那本教材上有关于FFT2分解的,我去找到看看。

夕林0529 发表于 2016-6-4 16:45

不是书上没讲,而是你自己不清楚自己要做什么,我怎么说。就算做出来了,你也看不懂数据

夕林0529 发表于 2016-6-4 16:49

你应该是一个研一的吧,刚接触吧,好好锻炼,还有时间,这东西最好不是人家教会的,不然最后还是不懂。

静夏之逸 发表于 2016-6-4 17:03

夕林0529 发表于 2016-6-4 16:49
你应该是一个研一的吧,刚接触吧,好好锻炼,还有时间,这东西最好不是人家教会的,不然最后还是不懂。

嗯 是研一的,老师给一个星期时间让弄出来。现在都不知道如何下手了。

夕林0529 发表于 2016-6-5 15:18

你让你老师做,让他一个星期试试,这东西研一就想弄出来,想多了。做出来理论要很扎实,还得会基本数据处理。没有一年两年的电机理论知识,很难去理解,做出来也是不完全的。即使出来了,看不懂数据等于没做出来

静夏之逸 发表于 2016-6-6 10:10

夕林0529 发表于 2016-6-5 15:18
你让你老师做,让他一个星期试试,这东西研一就想弄出来,想多了。做出来理论要很扎实,还得会基本数据处理 ...

老师这几天理论推导,但让我用软件去实现。现在真的不太懂,之前做电磁力是师兄直接告诉我怎么做,然后自己照着再看书理论推导才研究明白的。
   现在没有头绪,还请大神指导。

自由落体猫 发表于 2016-6-6 10:47

电磁力的分析既包括时间fft又包括空间fft,你的程序同时对时间和空间都分析了么?

静夏之逸 发表于 2016-6-7 14:00

自由落体猫 发表于 2016-6-6 10:47
电磁力的分析既包括时间fft又包括空间fft,你的程序同时对时间和空间都分析了么?

没有。我知道电磁力是由时间和空间共同作用的。现在困难在我不懂matlab 编程,也没找到相应FFT2函数的用法或例子来学习。我想的是若先对空间分析之后在利用所得数据对时间分析。但是我没有编出来。不知道该如何下手去编程序。

自由落体猫 发表于 2016-6-7 14:19

静夏之逸 发表于 2016-6-7 14:00
没有。我知道电磁力是由时间和空间共同作用的。现在困难在我不懂matlab 编程,也没找到相应FFT2函数的用 ...

程序论坛里有的。你搞错了,不是先对空间分析之后的数据再对时间分析。完全是两组不同的数据。你原数据x轴是时间,分析之后是频率,原来x轴是距离,分析出来之后是次数。

静夏之逸 发表于 2016-6-7 18:53

自由落体猫 发表于 2016-6-7 14:19
程序论坛里有的。你搞错了,不是先对空间分析之后的数据再对时间分析。完全是两组不同的数据。你原数据x ...

1、这个是一维频谱分析吧?,我主要想做2维频谱分析。
2、请问可以把X轴为时间的频谱分析程序贴上来吗?或者链接。

自由落体猫 发表于 2016-6-8 09:03

静夏之逸 发表于 2016-6-7 18:53
1、这个是一维频谱分析吧?,我主要想做2维频谱分析。
2、请问可以把X轴为时间的频谱分析程序贴上来吗? ...

1这个做出来就是2维啊
2ANSOFT自带分析功能,我都是分析完导出数据处理

静夏之逸 发表于 2016-6-8 09:08

自由落体猫 发表于 2016-6-8 09:03
1这个做出来就是2维啊
2ANSOFT自带分析功能,我都是分析完导出数据处理

用ansoft可以直接做?我知道ansoft里面有个FFT分解可以得到频率,但是那个不是基于x轴为时间时得到的。

静夏之逸 发表于 2016-6-8 09:12

自由落体猫 发表于 2016-6-8 09:03
1这个做出来就是2维啊
2ANSOFT自带分析功能,我都是分析完导出数据处理

这是我在论坛里找到的,得到阶次和幅值关系,没有频率的关系。但是程序不太对,kn维数没法相乘。也得不出来。
N=201;
n=0:N-1;
t=0:0.1/2/pi:2*pi;
xn=ss(:,1);
k=0:N/2;
WN=exp(j*2*pi/N);
kn=k*n;
WNnk=WN^kn;
Xk=WNnk*xn*2/N;
stem(k,abs(Xk))
abs(Xk);
yy1=abs(Xk(2))*sin(t+pi/2-angle(Xk(2)));
yy2=abs(Xk(3))*sin(2*t+pi/2-angle(Xk(3)));
yy3=abs(Xk(4))*sin(3*t+pi/2-angle(Xk(4)));
yy4=abs(Xk(5))*sin(4*t+pi/2-angle(Xk(5)));
yy5=abs(Xk(6))*sin(5*t+pi/2-angle(Xk(6)));
yy6=abs(Xk(7))*sin(6*t+pi/2-angle(Xk(7)));
yy7=abs(Xk(8))*sin(7*t+pi/2-angle(Xk(8)));
yy8=abs(Xk(9))*sin(8*t+pi/2-angle(Xk(9)));
yy9=abs(Xk(10))*sin(9*t+pi/2-angle(Xk(10)));
yy10=abs(Xk(11))*sin(10*t+pi/2-angle(Xk(11)));
yy11=abs(Xk(12))*sin(11*t+pi/2-angle(Xk(12)));
yy12=abs(Xk(13))*sin(12*t+pi/2-angle(Xk(13)));
yy13=abs(Xk(14))*sin(13*t+pi/2-angle(Xk(14)));
yy14=abs(Xk(15))*sin(14*t+pi/2-angle(Xk(15)));
yy15=abs(Xk(16))*sin(15*t+pi/2-angle(Xk(16)));
yy16=abs(Xk(17))*sin(16*t+pi/2-angle(Xk(17)));
yy17=abs(Xk(18))*sin(17*t+pi/2-angle(Xk(18)));
yy18=abs(Xk(19))*sin(18*t+pi/2-angle(Xk(19)));
yy19=abs(Xk(20))*sin(19*t+pi/2-angle(Xk(20)));
a1=abs(Xk(2))
a2=abs(Xk(3))
a3=abs(Xk(4))
a4=abs(Xk(5))
a5=abs(Xk(6))
a6=abs(Xk(7))
a7=abs(Xk(8))
a8=abs(Xk(9))
a9=abs(Xk(10))
a10=abs(Xk(11))
a11=abs(Xk(12))
a12=abs(Xk(13))
a13=abs(Xk(14))
a14=abs(Xk(15))
a15=abs(Xk(16))
a16=abs(Xk(17))
a17=abs(Xk(18))
a18=abs(Xk(19))
a19=abs(Xk(20))
pi/2-angle(Xk(2))
figure(1)
plot(n*2*pi/201,xn,t,yy1,t,yy3,t,yy11,t,yy13,t,yy17,t,yy19);

自由落体猫 发表于 2016-6-8 09:43

静夏之逸 发表于 2016-6-8 09:08
用ansoft可以直接做?我知道ansoft里面有个FFT分解可以得到频率,但是那个不是基于x轴为时间时得到的。

那你是对什么进行fft得到频率的?ANSOFT自带的方法不管距离还是时间都可以分析啊

静夏之逸 发表于 2016-6-8 10:31

自由落体猫 发表于 2016-6-8 09:43
那你是对什么进行fft得到频率的?ANSOFT自带的方法不管距离还是时间都可以分析啊

得到的不是频率 是距离、是这个图,但不是我想要的。我想要的是得到x轴为频率的图

自由落体猫 发表于 2016-6-8 10:54

静夏之逸 发表于 2016-6-8 10:31
得到的不是频率 是距离、是这个图,但不是我想要的。我想要的是得到x轴为频率的图

如果你是对时变电磁力进行分析的,那这个结果的横坐标就是频率,那个横坐标的名称可以自己改,你把distance改成frequency不就是频率了么

夕林0529 发表于 2016-6-8 13:30

自由落体猫 发表于 2016-6-7 14:19
程序论坛里有的。你搞错了,不是先对空间分析之后的数据再对时间分析。完全是两组不同的数据。你原数据x ...

不懂装懂,没看懂人家想做什么,就瞎说
页: [1] 2 3
查看完整版本: 请问,如何对时空变化的电磁力进行二维傅里叶分析