求教matlab实现门函数的fft

2024-10-30 20:10:05
推荐回答(2个)
回答(1):

        如果你只对[-0.5,0.5]之间的信号进行采样,那么你采的将会是常数1,这样做出的FFT应该是一个delta函数,也就是一个冲击,所以你应该采包括外边的值才能够反映出信号的特性。

        这样结果没有任何问题,问题是你采样的值太少了,换句话说就是你采样的信号反映不出这是个门函数的特性来。

       

        matlab里边是可以利用单边函数表示门函数的。你可以跑一下下边的程序,看一下门函数:

        fx=heaviside(x+0.5)-heaviside(x-0.5);

        ezplot(fx,[-1,1]);




        而且matlab里边还有对符号表达式做傅里叶变换的函数fourier(),用法如下:

        FX=fourier(fx);

        ezplot(FX,[-30,30]);

        title('fourier transformation of fx')



而如果你非想用fft做,就必须加大采样点数,尤其是门之外的部分,才能够完整的描述信号。

回答(2):

不知道