同一段数据分别做傅里叶变化和逆变换的结果及分析

  • 已知有公式
    D F T : X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N , 0 ≤ k ≤ N − 1 DFT:Χ[k]=\sum_{n=0}^{N-1}x[n]e^{-\frac{j2\pi kn}{N}},0≤k≤N-1 DFTX[k]=n=0N1x[n]eNj2πkn0kN1
    I D F T : x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π k n N , 0 ≤ n ≤ N − 1 IDFT:x[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{\frac{j2\pi kn}{N}},0≤n≤N-1 IDFTx[n]=N1k=0N1X[k]eNj2πkn0nN1
  • 则对同一段数据 s ( a ) , 0 ≤ a ≤ A − 1 s(a),0\leq a\leq A-1 s(a),0aA1 做 DFT 和 IDFT,有
    D F T : X [ k ] = ∑ a = 0 A − 1 s [ a ] e − j 2 π k a N , 0 ≤ k ≤ A − 1 DFT:Χ[k]=\sum_{a=0}^{A-1}s[a]e^{-\frac{j2\pi ka}{N}},0≤k≤A-1 DFTX[k]=a=0A1s[a]eNj2πka0kA1
    I D F T : x [ n ] = 1 A ∑ a = 0 A − 1 s [ a ] e j 2 π a n N , 0 ≤ n ≤ A − 1 IDFT:x[n]=\frac{1}{A}\sum_{a=0}^{A-1}s[a]e^{\frac{j2\pi an}{N}},0≤n≤A-1 IDFTx[n]=A1a=0A1s[a]eNj2πan0nA1
    从公式结果上可见,对同一段数据做 DFT 和 IDFT,结果在幅度上相差 数据长度 倍的关系,相位上互为相反数。
  • 下面通过仿真进行验证上述结论。
clear;
clc;
clf;
close all;

%% [生成信号]
Fs=50;             % 采样频率
n=100;             % 采样点数
f1=15;             % 信号1的频率
f2=20;             % 信号2的频率
t=0:1/Fs:(n-1)/Fs; % 采样时间索引
x=1.56+2*sin(2*pi*f1*t+pi/2)+1.6*sin(2*pi*f2*t); % 采样后的信号

%%% DFT
y1=fft(x,n);
y1=[y1(1)/n,y1(2:n)*2/n]; % 幅度轴
f=(0:n-1)*Fs/n;           % 频率轴
%%% IDFT
y2=ifft(x,n);
y2=[y2(1)/n,y2(2:n)*2/n]; % 幅度轴
f=(0:n-1)*Fs/n;           % 频率轴

%% [FFT的频谱图]
subplot(2,2,1);
plot(f,abs(y1));
xlabel("频率");
ylabel("幅值");
title("FFT的频谱图");
subplot(2,2,2);
stem(f,  angle(y1)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel("频率");
ylabel("相位");
title("FFT的相位图");

%% [IFFT的频谱图]
subplot(2,2,3);
plot(f,abs(y2));
xlabel("频率");
ylabel("幅值");
title("IFFT的频谱图");
subplot(2,2,4);
stem(f,  angle(y2)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel("频率");
ylabel("相位");
title("IFFT的相位图");

你可能感兴趣的:(DSP,数字信号处理,傅里叶变换,傅里叶逆变换,同一段数据做傅里叶变换和逆变换)