FFT采样频率小结

    科技2024-12-28  21

    假设采样bai频率为Fs,信号频率F,采样du点数为N。那么FFT之后结果就是一个为N点的复zhi数。每一个dao点就对应着一个频率点。这个点的模值,就是该频率值下的 幅度特性。假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。 而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0Hz),而最后一个点 N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被 N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为: fn=(n-1)*fs/N

    clc; clear; close all; % 原信号 t = 0:0.01:2; fs = 1 /0.01; % 采样频率 x = chirp(t,100,1,200,'quadratic'); LF=length(x); % 傅里叶变换 xf_o=fft(x); % 傅里叶变换的结果是对称的,原因单位根之间存在复共轭,具体请阅读第二部分“FFT的计算原理” f_o=(1:LF).*fs/LF; % 频率轴 xf_oc=fftshift(xf_o); % 将零频移动到输出的中心位置 f_oc=(floor(-LF/2):floor(LF/2)-1).*fs/LF; % 频率轴 figure subplot(311) plot(t,x) title('输入信号');xlabel('Time');ylabel('Amplitude'); subplot(312) plot(f_o,xf_o) % xf_o是复数,但图形仅画实部,忽略虚部。 title('fft结果');xlabel('Frequency');ylabel('Real part of fft'); subplot(313) plot(f_oc,xf_oc) title('零频移动到输出中心的fft结果');xlabel('Frequency');ylabel('Real part of fft'); % 双边谱 xf_da=abs(xf_oc)/LF; % 归一化后的双边谱 f_d=(floor(-LF/2):floor(LF/2)-1).*fs/LF; % 频率轴 % 单边谱 xf_s=abs(xf_o)/LF; % 归一化的谱 xf_sa=xf_s(1:floor(LF/2)+1); xf_sa(2:end-1)=2*xf_sa(2:end-1); % 单边谱,且去除零频放大效应! f_s=fs*(0:floor(LF/2))/LF; % 频率轴,根据采样定理,Nyquist频率是采样频率的一半!单位'Hz' % 相位谱 xf_dp=angle(xf_o); % 单位是“弧度” ,与[xf_dp=phase(xf_o)]等价! xf_p=xf_dp(1:floor(LF/2)+1); % 相位谱 figure subplot(311) plot(f_d,xf_da) title('fft 双边频率-幅度谱');xlabel('Frequency');ylabel('Magnitude'); subplot(312) plot(f_s,xf_sa) title('fft 单边频率-幅度谱');xlabel('Frequency');ylabel('Magnitude'); subplot(313) plot(f_s,xf_p) title('fft 相位谱');xlabel('Frequency');ylabel('Phase (rad)');
    Processed: 0.009, SQL: 8