吕梁和谁康达尔:终于弄明白了傅里叶变换--FashionXu的博客

来源:百度文库 编辑:中财网 时间:2024/04/29 05:18:07
  真是惭愧,学《数字信号处理》好长时间了,也记住了傅里叶变换的公式,也会做FFT程序了,但是居然不知道傅里叶变换的意义何在!真是该!!

      还好,算是搞明白了。抛开数学上的意义不说,单说一下实际的一些意义吧。傅里叶变换是将信号从时域转换到频域,这样在时域上一些交叉在一起的、看不出来的信号的特性,在频域上就很明显的能看出来了。比如下图:

      Figure1,是a=0.4*sin(4*w*(x))的图形,Figure2,是b=1.6*cos(12*w*(x))的图形。这两个图形,在时间轴上,很容易看出来。但是两个的和,也就是a+b,如Figure3所示,里面的一些信息就看不出来了。但是做一个傅里叶变换,转换到频域上,如Figure4所示,就很明显了。Figure4的横坐标是频率,纵坐标是幅值,就可以看出Figure3是有两个信号组成的,频率大的信号的幅值比较大(就是b,由于此处用了fftshift,所以恰好相反),意义就比较明显了。

     唉,说起来真是一言难尽。当时数字信号相关的书看了不少,就是没搞明白到底怎么回事。这是为什么呢?自学能力太差了!由此例,引以为戒。

附:上图的Matlab程序


w=2*pi;
x=-1:0.01:1;
a=0.4*sin(4*w*(x));
b=1.6*cos(12*w*(x));

subplot(2,2,1);

plot(w*x,a),title('Figure 1 : a=0.4*sin(4*w*(x))');
subplot(2,2,2);
plot(w*x,b),title('Figure 2 : b=1.6*cos(12*w*(x))');
subplot(2,2,3);
plot(w*x,a+b),title('Figure 3 : a+b');
c=fft(a+b);
subplot(2,2,4);
plot(x,fftshift(abs(c))),title('Figure 4 : FFT');