美文网首页
数字信号处理实验4:DFT频谱分析

数字信号处理实验4:DFT频谱分析

作者: 小Bill | 来源:发表于2019-05-12 15:17 被阅读0次

    %实验4:DFT频谱分析

    %设计计算机程序,产生序列并计算序列的FFT和IFFT,绘制其幅频特性和相频特性曲线;

    %模拟产生离散系统的输入序列和单位脉冲响应,利用FFT和IFFT算法计算系统的输出响应,分析FFT的计算长度对系统输出响应的影响;

    %模拟产生连续时间信号,选取适当的采样频率对其采样,并用FFT算法计算其频谱,分析信号的观测时间长度、FFT的计算长度对信号频谱计算结果的影响。

    程序直接复制粘贴跑,程序结果输出截图:第一个要求,略...,第二个要求,L>=N-M+1,这样才能用快速卷积计算线性卷积,主要是第三个要求,分析Sa函数,增加N,提高谱分辨率,增加Tp,减少截断误差。

    %1.

    xn = [1,1,1,1,1,1];%模拟输入信号

    N = 6;

    Xk16 = fft(xn,16);

    i16 = 0:15;

    Xk32 = fft(xn,32);

    i32 = 0:31;

    figure(1)

    subplot(421);stem(i16,Xk16);title("16点DFT的幅频特性图");

    subplot(422);stem(i32,Xk32);title("32点DFT的幅频特性图");

    subplot(423);stem(i16,angle(Xk16));title("16点DFT的相频特性图");

    subplot(424);stem(i32,angle(Xk32));title("16点DFT的相频特性图");

    Xn16 = ifft(Xk16);

    Xn32 = ifft(Xk32);

    subplot(425);stem(i16,Xn16);title("16点IDFT的幅频特性图");

    subplot(426);stem(i16,Xn16);title("32点IDFT的幅频特性图");

    subplot(427);stem(i16,angle(Xn16));title("16点IDFT的相频特性图");

    subplot(428);stem(i32,angle(Xn32));title("32点IDFT的相频特性图");

    %2.

    M = 5;

    n = 0:M-1;

    yn = cos(pi*n/10) + cos(2*pi*n/5);%模拟系统函数

    ync = conv(xn,yn);

    nc = 0:length(ync)-1;

    figure(2);

    subplot(421);stem(nc,ync);title("卷积法求输入序列的响应");

    j = 1;

    for i = -3:1:3

        L = M + N -i;

        Xk = fft(xn,L);;

        Yk = fft(yn,L);

        XYk = Xk.*Yk;

        XYik = ifft(XYk);

        h = 0:L-1;

        j = j + 1;

        subplot(4,2,j);stem(h,XYik);title("");title(sprintf('%d点快速卷积',L));

    end

    %结论:L-M+1点卷积结果不发生重叠

    %3

    t=0:pi/20:16;

    Sa=sin(pi.*(t-4))./(pi*(t-4));

    figure(3);

    subplot(511);plot(t,Sa);grid on;

    Tp1 = 8;

    n1 = 0:pi/20:Tp1;

    f1 = sin(pi.*(n1-4))./(pi*(n1-4));

    Tp2 = 10;

    n2 = 0:pi/20:Tp2;

    f2 = sin(pi.*(n2-4))./(pi*(n2-4));

    N1 = 12000;

    N2 = 1200;

    %观察时间长度的影响

    F1 = fft(f1,N1);

    F2 = fft(f2,N1);

    k1 = 0:N1-1;

    subplot(512);

    plot(k1,fftshift(abs(F1))./max(abs(F1)));xlabel('k');ylabel('|F(k)|');

    title('不同观测时间长度下FFT的幅频特性');

    legend('Tp=8s')

    subplot(513);

    plot(k1,fftshift(abs(F2))./max(abs(F2)));xlabel('k');ylabel('|F(k)|');

    title('不同观测时间长度下FFT的幅频特性');

    legend('Tp=10s')

    %计算长度的影响

    F1 = fft(Sa,N1);

    F2 = fft(Sa,N2);

    k1 = 0:N1-1;

    k2 = 0:N2-1;

    subplot(514);

    plot(k1,fftshift(abs(F1))./max(abs(F1)));xlabel('k');ylabel('|F(k)|');

    title('不同计算长度下FFT的幅频特性');

    legend('N = 12000')

    subplot(515);

    plot(k2,fftshift(abs(F2))./max(abs(F2)));xlabel('k');ylabel('|F(k)|');

    title('不同计算长度下FFT的幅频特性');

    legend('N = 1200')

    相关文章

      网友评论

          本文标题:数字信号处理实验4:DFT频谱分析

          本文链接:https://www.haomeiwen.com/subject/jcucaqtx.html