为什么用matlab求出的正弦函数的傅立叶变换不是狄拉克函数?

2018-01-29
字体:
浏览:
文章简介:1. fft求出来的是频谱0-2pi上的等间隔采样,这个谱的横坐标是k=[0:N-1],即exp(-j*2pi/N*k)中的k,所以你需要把

1. fft求出来的是频谱0-2pi上的等间隔采样,这个谱的横坐标是k=[0:N-1],即exp(-j*2pi/N*k)中的k,所以你需要把这个横坐标转换成实际的模拟频率才行。 2. 如果是sin(2t)的话,它的周期是pi,所以你应该在0:pi间取1024点。

sin函数不取整数周期的话,频谱不肯能是Delta函数。但是需要注意的是这里的Delta函数不是真正意义上的Delta函数,只不过取整数周期的话,刚好其他频率采样点的值刚好是0。

只有连续sin函数做连续傅里叶变换才是Delta函数,也就是采样间隔无限小,持续时间无限大。 3. 还是fft的问题,不同点数的fft,其频谱采样位置会放生变化,所以频谱发生变化,如果是你在sin函数一个周期里N点采样,然后再做N点fft,那么出峰值处,其余采样位置会刚好是0,这是个特例,如果是N点采样,M点fft,那么频谱会随M的变化变化。

4. 所示建议,以后频谱显示时,调整一下位置,把pi-2pi移到-pi-0处,显示-pi到pi频谱,因为数字域里pi即高频,所以0-pi对应0~无穷Hz,pi-2pi实际对应-无穷~0Hz,如果直接数字忘模拟转,不调整的话,转换起来比较麻烦。