声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1389|回复: 4

[FFT] 相位谱!!对不对啊?

[复制链接]
发表于 2012-3-27 17:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
fs=1024;
N=1024;
n=0:N-1;
t=n/fs;
x=sin(2*pi*50*t+pi/6);
y=fft(x,N);%进行fft变换
mag=abs(y)*2/N;%求幅值
f=n*fs/length(y);%进行对应的频率转换
subplot(211);
plot(f(1:N/2),mag(1:N/2));%做频谱图
title('幅值-频率曲线图')
grid on
Pyy=[1:N/2];
for i=1:N/2
Pyy(i)=angle(y(i)); %计算相位
Pyy(i)=Pyy(i)*180/pi; %换算为角度
end;
subplot(212);
plot(f(1:N/2),Pyy(1:N/2));    %显示相位图
title('相位-频率曲线图');
grid on
这个画出来的是不是50hz 对应的是pi/6;
但是我貌似画出来 50hz  对应的不是pi/6;是-50度!!



回复
分享到:

使用道具 举报

发表于 2012-3-27 20:04 | 显示全部楼层
回复 1 # try__try 的帖子

是不是n=0:N-1的问题啊?是不是造成了fs大小的相移啊?我改成n=1:N出来是56.9度。
 楼主| 发表于 2012-3-28 10:57 | 显示全部楼层
回复 2 # 李清志 的帖子

这样 和pi/6 也差很远吧!!是不是我理解错了!!50hz对应的 不是pi/6?
发表于 2012-5-3 16:04 | 显示全部楼层
回复 3 # try__try 的帖子

一般的fft变换中对应的都是cos,你把程序里面的sin换成cos试试。这俩一般的差别是90度。
发表于 2012-5-4 10:25 | 显示全部楼层
本帖最后由 hcharlie 于 2012-5-4 10:30 编辑

回复 1 # try__try 的帖子

1)应该是整-60度,我用自编程序(也是0~N-1)计算误差极小,可以忽略。你再检查检查。
2)你计算的是整数周期,频谱上除主频外,其余频率振幅都等于0,计算相位可以只计算50这一点,其余点的相位杂乱没有意义。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-15 06:07 , Processed in 0.050286 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表