• DFT的补0运算


    在实际的DFT中,如果需要增加采样的密度。这里的采样是频域的采样。可以等到更加密集的谱。

    如对于信号 x = [1, 1, 1, 1]做DFT如下图:

    不零后的DFT, N = 8, N= 16, N= 32

    结论:补零就是将原序列后增加0,使原序列增长。使DFT有更高密度的谱,但是没有给出一个更高分辨率的谱。因为没有任何新的信息附加到这个信号上,而仅仅是在数据添加额外的0, 为了要得到更高的分辨率的谱就必须获得更多的有效数。

    为了证明结论:

    xn = cos(0.48pi * n) + cos(0.52pi * n), 在n = [0: 10]加90个零的频谱,和直接n= [0:100]的频谱比较。在没有做DFT前,可以知道xn的频谱是两个脉冲。且脉冲的位置在0.48pi和0.52pi。

    %corn 2014.11.13

    clear; clc;

    N = 10;
    n = 0 : N;

    x = cos(0.48 * pi * n) + cos(0.52 * pi * n);

    k = 0 : N;
    Wn = exp(-j* 2* pi / N);
    nk = n' * k;
    Wnnk = Wn .^ nk;

    Xk = x * Wnnk;
    magxk = abs(Xk);
    subplot(3,1,1);
    stem(n, magxk);
    title('N = 10');

    N = 100;
    n = 0 : 100;

    x = cos(0.48 * pi * n) + cos(0.52 * pi * n);

    k = 0 : N;
    Wn = exp(-j* 2* pi / N);
    nk = n' * k;
    Wnnk = Wn .^ nk;
    x= [ x(1:1:11) zeros(1,90)]; %add 90 of 0
    Xk = x * Wnnk;
    magxk = abs(Xk);
    subplot(3,1,2);
    stem(n, magxk);
    title('N = 10 and add 90 of 0');

    x = cos(0.48 * pi * n) + cos(0.52 * pi * n);
    Xk = x * Wnnk;
    magxk = abs(Xk);
    subplot(3,1,3);
    plot(n, magxk);
    title('N = 100');

    可以明显的看出:在N=10,时和N= 100时的DFT是有明显差异的,这表明:N=10即频域的采样分辨率是2*pi/ 10 比 N = 100, 2*pi/ 100 有更多的混叠。而增加0只是增加了密度使之更平滑。如下图使用plot的频谱图。

     比如最后在N = 100时再增加100个零它们的效果如下:

    到此就可以知道:在原序列后加0,并没有得到更多的谱的信息,而是使相应的谱更加平滑。

  • 相关阅读:
    第二周作业
    第一周作业
    抓老鼠啊~亏了还是赚了?
    打印沙漏
    寒假作业2
    我与老师
    自我介绍
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周实验报告(五)&周总结
  • 原文地址:https://www.cnblogs.com/cornhill/p/4092201.html
Copyright © 2020-2023  润新知