Matlab:矩形脉冲的傅里叶变换具有非常高的零频率分量

Posted

技术标签:

【中文标题】Matlab:矩形脉冲的傅里叶变换具有非常高的零频率分量【英文标题】:Matlab: Fourier transform of Rectangular pulse has VERY HIGH zero frequency compoent 【发布时间】:2014-03-20 13:35:39 【问题描述】:

我正在尝试获得矩形脉冲的一维傅立叶变换。其他一切看起来都很好;零频率分量看起来非常高,看起来像一个离散的峰值。

FFT 图(链接到 jpeg 图像): https://drive.google.com/file/d/0B0Ah9soYnrlIYmw0UTJRNGhrWFE/edit?usp=sharing

如果有人能告诉我我做错了什么,我将不胜感激。

我的 Matlab 代码:

function FFT_1D_Example()

    Tau = 10e-3;    %CEST duration in second    
    NoOfPtsOnPulse = 1000;
    %Time scale for the pulse
    t_Pulse = (0:1:NoOfPtsOnPulse-1)*(Tau/(NoOfPtsOnPulse-1));      % in sec   
    B1Max = 1;          % in tesla; current value = 3 uT 

    %% Simulating the pulse shape      
    %Reactangular pulse
    B1_Array_Rect       = ones(1, length(t_Pulse))*B1Max;
    B1_Array_Rect(1)    = 0.0;
    B1_Array_Rect(end)  = 0.0;
    y = B1_Array_Rect;

    figure(1);  plot(t_Pulse, y);  title('Pulse shape');  xlabel('time (seconds)')

    %% FFT
    [Y, NFFT] = Return_1D_FFT(y);
    % Shift zero-frequency component to center of spectrum
    Y = fftshift(Y)

    % Plot single-sided amplitude spectrum.
    figure(2);  plot(abs(Y)) 
    title('Two-Sided Amplitude Spectrum of y(t)')

end
function [Y, NFFT] = Return_1D_FFT(y)
    L = length(y);
    NFFT = 2^nextpow2(L); % Next power of 2 from length of y
    Y = fft(y,NFFT);
end

【问题讨论】:

【参考方案1】:

那是什么样的矩形脉冲? -1 到 1 还是 0 到 1?我猜是后者。

在这种情况下,只需查看您的脉冲,您就会发现它的平均值高于 0。这反映了所谓的直流分量,即 FFT 的 0 值。

【讨论】:

谢谢glglgl,你能告诉我如何修改我的矩形脉冲以使-1变为1吗? @DushyantKumar y_new = 2*y - 1;

以上是关于Matlab:矩形脉冲的傅里叶变换具有非常高的零频率分量的主要内容,如果未能解决你的问题,请参考以下文章

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 单位脉冲序列 δ(n) 傅里叶变换 )

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 单位脉冲序列傅里叶变换 )

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 1 的傅里叶变换 )

数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 1 的傅里叶变换 )

余弦信号的傅里叶变换分析

基于matlab的傅里叶变换