dft.m

来自「冲激序列 阶跃序列 快速傅立叶变换 一个选择的MATLAB程序」· M 代码 · 共 37 行

M
37
字号
function [Xk, w] = DFT(x, M, str)%离散傅里叶变换及x(n),FT[x(n)]的绘图函数    n = 0 : M - 1;    %单位圆离散谱点数    N = 200;    %画2个周期    k = -N : N - 1;    %离散频率横坐标    w = (2 * pi / N) * k;    %x(e^jw)=∑x(n)e^(jwn),使用矩阵乘法实现    Xk = x * exp( -j * (2 * pi / N) ) .^ ( n' * k );    magX = abs(Xk);        subplot(2, 2, 1);    t = max(x);    n = 0 : M - 1;    stem(n, x, '.');    xlabel('n');    ylabel('x(n)');    title('时域信号波形');    text( (0.3 * M), (0.8 * t), str );        subplot(2, 2, 3)    plot(w/pi, magX, 'b');    xlabel('ω/π');    ylabel('|X(e^j^w)|');    title('信号的幅度谱');%     %使用FFT算法%     subplot(2, 2, 4)%     Xk = fft(x, N);%     Xk = [Xk, Xk];%补足2个周期%     magX = abs(Xk);%     stem(w/pi, magX, 'r');%     xlabel('ω/π');%     ylabel('|X(e^j^w)|');%     title('信号的FFT幅度谱');

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?