作业帮 > 综合 > 作业

这个傅立叶变换怎么用matlab来做?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/19 05:18:46
这个傅立叶变换怎么用matlab来做?
以前没有做过傅立叶变换.现在用仪器测到了一组电流值,上千个值.准备导入到MATLAB中做傅立叶变换来分析.然后找出一个对应频率(50Hz)的傅立叶变换系数值.假设数据已经导入到了MATLAB中,存入数据CU中,
采样频率是6400Hz,我需要的是50Hz的点,现在图形已经得出,但是有不明白的地方.
是否fft得出的图形要想观察的话,幅值必须是按照abs的形式观察的呢?但是如果只画幅值图,用这样的做法得到的对称图形,看到很多做法中都是只取一半,这样做是否就已经够了呢?
这个傅立叶变换怎么用matlab来做?
先写程序:
clc
clear
CU=[]; %%这里导入你的数据
CU_f=fft(CU); %%做FFT变换到频域
figure(1)
subplot(2,1,1)
plot(CU);
subplot(2,1,2)
plot(abs(CU_f))

CU_f就是频谱图,但是你说的对应50Hz的点,需要结合你的实验过程来找了.MATLAB输入的数据只不过是上千个点,它们只有数学意义,没有物理意义.首先,这上千个点是你采样采到的,那你的采样频率是多少?这只有你做实验的人才知道,MATLAB本身不知道.假设采样频率是Fs.那么CU_f这张图里,最后一个点对应的实际频率就是Fs,(第一个点对应的实际频率是0Hz).然后你再根据线性比例的关系,找到50Hz对应的那个点就行了.
再问: 这样的图形,幅值和角度在一起,看不成。采集频率是6400Hz。 按照plot(abs(CU_f))的图形是一个对称的,看到很多地方只用一半,是不是就应该这么用呢?为什么呢?
再答: 不对称就错了大哥! 傅里叶变换的一个性质是:时域实序列 频域共轭偶对称 因为傅里叶变换的基是e^-j2πft,我们知道,cosx=[e^(jx)+e^(-jx)]/2,从数学上构造了把一个单频的cosx拆成了正负两半,所以实序列的傅里叶变换一定是偶对称的。 你现在采样的是电流大小,那时域就是电流强度(安培)都是实数,它的频域一定是共轭对称的! Fs=6400Hz的话,比如你的总点数是N.那CU_f的第(50/6400)*N个点就是系数。 画图只画幅度是因为复数画不出来。但是你输入CU_f(floor((50/6400)*N)),它输出的就是那个复数