求教matlab实现门函数的fft
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/24 02:24:22
求教matlab实现门函数的fft
r(t)=1(-0.5
r(t)=1(-0.5
![求教matlab实现门函数的fft](/uploads/image/z/7574947-43-7.jpg?t=%E6%B1%82%E6%95%99matlab%E5%AE%9E%E7%8E%B0%E9%97%A8%E5%87%BD%E6%95%B0%E7%9A%84fft)
如果你只对[-0.5,0.5]之间的信号进行采样,那么你采的将会是常数1,这样做出的FFT应该是一个delta函数,也就是一个冲击,所以你应该采包括外边的值才能够反映出信号的特性.
这样结果没有任何问题,问题是你采样的值太少了,换句话说就是你采样的信号反映不出这是个门函数的特性来.
matlab里边是可以利用单边函数表示门函数的.你可以跑一下下边的程序,看一下门函数:
fx=heaviside(x+0.5)-heaviside(x-0.5);
ezplot(fx,[-1,1]);
![](http://img.wesiedu.com/upload/2/05/20551fd2e2bec43dda20282a661b9151.jpg)
而且matlab里边还有对符号表达式做傅里叶变换的函数fourier(),用法如下:
FX=fourier(fx);
ezplot(FX,[-30,30]);
title('fourier transformation of fx')
![](http://img.wesiedu.com/upload/e/55/e55eee2d3bc66e94f2fa869675c7d69f.jpg)
而如果你非想用fft做,就必须加大采样点数,尤其是门之外的部分,才能够完整的描述信号.
这样结果没有任何问题,问题是你采样的值太少了,换句话说就是你采样的信号反映不出这是个门函数的特性来.
matlab里边是可以利用单边函数表示门函数的.你可以跑一下下边的程序,看一下门函数:
fx=heaviside(x+0.5)-heaviside(x-0.5);
ezplot(fx,[-1,1]);
![](http://img.wesiedu.com/upload/2/05/20551fd2e2bec43dda20282a661b9151.jpg)
而且matlab里边还有对符号表达式做傅里叶变换的函数fourier(),用法如下:
FX=fourier(fx);
ezplot(FX,[-30,30]);
title('fourier transformation of fx')
![](http://img.wesiedu.com/upload/e/55/e55eee2d3bc66e94f2fa869675c7d69f.jpg)
而如果你非想用fft做,就必须加大采样点数,尤其是门之外的部分,才能够完整的描述信号.