Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-30, 12:14   #1
sockhui
初级会员
 
注册日期: 2009-03-30
年龄: 46
帖子: 2
声望力: 0
sockhui 正向着好的方向发展
默认 请问在matlab中fft,fft2,fftshift的区别是什么?

matlab中采用fft做傅立叶变换,而要得到其频谱图是不是有一定的要求,下面是我收集到的几个例子:
matlab帮助文件中的核心部分是:

Y = fft(y,512);
Pyy = Y.* conj(Y) / 512;
f = 1000*(0:256)/512;
plot(f,Pyy(1:257))
title('Frequency content of y')
xlabel('frequency (Hz)')

而对于不绘制图片的采用
%求付利叶变换
frequency=1000*(0:512)/1024; % 实际频率点
fftdata=fft(data); %付利叶变换
y=fftdata.*conj(fftdata)/1024
sinfft=fftdata(1:513,2);
cosfft=fftdata(1:513,3);

%求能量最大点
[fz1,f1]=max(abs(sinfft));
[fz2,f2]=max(abs(cosfft));

% 求两信号能量最大点的频率
sin_frequency = frequency(f1); %得到实际频率
cos_frequency = frequency(f2);

% 求两信号能量最大点的相位
phase1=phase(sinfft(f1))*57.3;
phase2=phase(cosfft(f1))*57.3;

fprintf('信号1频率=%fHz\n信号2频率=%fHz\n',sin_frequency,cos_frequency);
fprintf('信号2比信号1幅值衰减=%f db\n',20*log10(fz2/fz1));
fprintf('信号2比信号1相位差=%f度\n',phase1-phase2);
通过这两种方法均可以得到其频率。


请问具体是采用那种方法比较好,请熟悉的人能够解释一下!
sockhui 当前离线   回复时引用此帖
旧 2009-04-01, 13:17   #2
tangxiangwei
初级会员
 
注册日期: 2008-06-22
年龄: 45
帖子: 13
声望力: 17
tangxiangwei 正向着好的方向发展
默认 回复: 请问在matlab中fft,fft2,fftshift的区别是什么?

关注一下。
tangxiangwei 当前离线   回复时引用此帖
旧 2009-04-02, 03:20   #3
silas_xue
高级会员
 
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26
silas_xue 是一个将要出名的人
默认 回复: 请问在matlab中fft,fft2,fftshift的区别是什么?

fft: 1-d signal available, though could be used to 2-d signal.
fft2: 2-d signal available.
fftshift: modify the spetrum with the low and direct frequency values in the centre of the plan and high ones around, and you can also achieve by shift your signal which is to be transformed.

Thx for reading.
PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。
silas_xue 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[MATLAB工具箱] QFT工具箱 fjmagic MATLAB论坛 0 2009-05-22 17:12
[MATLAB数学相关] 求助:matlab积分问题,香农限 mailide MATLAB论坛 1 2009-05-16 15:34
[求助]怎么把tiff图像数据读到matlab里面做小波分析? tangpq MATLAB论坛 0 2009-03-17 17:08
[求助]请各位大哥帮帮忙 warlock8238 MATLAB论坛 3 2008-09-14 15:31


所有时间均为北京时间。现在的时间是 06:00


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.