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吗? @DushyantKumary_new = 2*y - 1;
以上是关于Matlab:矩形脉冲的傅里叶变换具有非常高的零频率分量的主要内容,如果未能解决你的问题,请参考以下文章
数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 单位脉冲序列 δ(n) 傅里叶变换 )
数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 单位脉冲序列傅里叶变换 )
数字信号处理序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 1 的傅里叶变换 )