mofei 发表于 2007-1-8 22:30

向各位大牛请教!!

本帖最后由 wdhd 于 2016-9-2 13:47 编辑

  我刚接触MATLAB,使用MATLAB的FFT函数,对y=sin(2*pi*t)进行变换时,得到的频域信号如下:


  在频域中不仅1Hz附近有能量,其他频率上(0~2Hz)之间,也有能量分布,如何理解呢?
  另外,频域上的信号单位是什么?为什么幅值是5??
  谢谢大家了。

mofei 发表于 2007-1-8 22:36

图没粘上!

频域图如下:

jytan 发表于 2007-1-9 10:57

把程序帖出来看看。

xuefei01 发表于 2007-1-9 12:58

你的信号 频率 为1HZ
采样频率为 5HZ
我觉的 没有问题

mofei 发表于 2007-1-9 19:36

程序的代码很简单,如下:
t = 0:0.1:1;               
x = sin(2*pi*t);            
figure(1);
plot(t,x);
Y = fft(x,10);
y=abs(Y);
f = 10*(0:5)/10;         
figure(2);
plot(f,y(1:6));


上图中,变换后的纵坐标单位是什么?另外,为什么幅值是5呢??
谢谢了。

eight 发表于 2007-1-9 20:14

原帖由 mofei 于 2007-1-8 22:30 发表
我刚接触MATLAB,使用MATLAB的FFT函数,对y=sin(2*pi*t)进行变换时,得到的频域信号如下:
file:///C:/DOCUME%7E1/ff/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg

在频域中不仅1Hz附近有能量,其他频率 ...


请搜索本版精华贴

songzy41 发表于 2007-1-10 06:58

这是由于谱分析中泄漏(leakage)所造成的,是正常现象。

jytan 发表于 2007-1-10 15:23

回复 #6 mofei 的帖子

增加采样点数。
效果会好一些。。

jytan 发表于 2007-1-10 15:27

原帖由 mofei 于 2007-1-9 19:36 发表
程序的代码很简单,如下:
t = 0:0.1:1;               
x = sin(2*pi*t);            
figure(1);
plot(t,x);
Y = fft(x,10);
y=abs(Y);
f = 10*(0:5)/10;         
figure(2);
plot(f,y(1:6)); ...

采样点才10个,
采频为10,
频率分辨率fs/n=1 Hz,
所以在0-2hz都会有能量出现。
建议增加采样点数,提高频率分辨率。。。

xuefei01 发表于 2007-1-10 21:58

我认为没有问题

信号 频率为1Hz 而采样率为 10Hz 采样率没有问题
没有必要 提高采样点数
而且是整周期采样    变换结果没有泄露
至于 为什么幅值 是 5这是 由fourier 级数 和 离散fourier 变换 的相互关系 产生的
DFT 变换后 是以 N采样点为周期 所以 fourier 级数展开式的幅值 是 DFT变换后 得到X(n)/N;
5除以10为0.5,觉得 还有问题 ,其实变换后是双边谱所以 就只有一半了

xuefei01 发表于 2007-1-10 22:01

回复 #11 xuefei01 的帖子

0到2上 是没有能量分布的这是由于 你用plot 作图命令造成的 另外要注意FFT 是离散 fourier 变换的快速算法

mofei 发表于 2007-1-11 22:55

谢谢了。

plot明白了,但楼上您说“是以 N采样点为周期 所以 fourier 级数展开式的幅值 是 DFT变换后 得到X(n)/N”能否再解释一下呢。

xuefei01 发表于 2007-1-12 12:31

回复 #13 mofei 的帖子

建议 看一下 数字信号 处理   连续 fourier变换CFT 和 离散fourier变换DF之间的关系
页: [1]
查看完整版本: 向各位大牛请教!!