Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FFT不返回matlab中的振幅?_Matlab_Fft - Fatal编程技术网

FFT不返回matlab中的振幅?

FFT不返回matlab中的振幅?,matlab,fft,Matlab,Fft,我已生成以下时间信号: 现在,我想使用matlab命令fft 这是我的密码: function [ xdft, omega ] = FastFourier( t, fs ) %% Inputs from other functions %% [P_mean, x, u] = MyWay( t ) %From here comes my signal x(t) %% FFT %% xdft1 = fft(x); % Perform FFT xdft2 =

我已生成以下时间信号:

现在,我想使用matlab命令
fft

这是我的密码:

function [ xdft, omega ] = FastFourier( t, fs )

%% Inputs from other functions %%
[P_mean, x, u] = MyWay( t )   %From here comes my signal x(t)

%% FFT %%
xdft1 = fft(x);                  % Perform FFT
xdft2 = abs(xdft1);              % Take the absolute value of the fft results
xdft = xdft2(1:length(x)/2+1);   % FFT is symmetric, second half is not needed
freq = 0:fs/length(x):fs/2;      % frequency axis

plot (freq(1:100),xdft(1:100));

end
下面是我得到的情节:

让我困惑的是
y
轴?
y
轴不应该代表频率分量的振幅吗?有没有办法得到所有频率分量的振幅

谢谢

编辑: 我发现有些人会这样做:

n = size(x,2)/2;      %The number of components and second half can be neglected again
xdft2 = abs(xdft1)/n;   

通过这种方式,我似乎可以得到振幅谱,但为什么我必须将绝对值除以n?

FFT在每个频率单元中提供一个复数对。FFT中的第一个单元类似于信号的直流部分(约0 Hz),第二个单元是
Fs/N
,其中
Fs
是采样率,
N
是FFT的窗口大小,下一个单元是
2*Fs/N
,依此类推。 你用这样一对的
abs()
计算的是箱子里的能量


您可能还想检查一下:

FFT在每个频率单元中为您提供一个复数对。FFT中的第一个单元类似于信号的直流部分(约0 Hz),第二个单元是
Fs/N
,其中
Fs
是采样率,
N
是FFT的窗口大小,下一个单元是
2*Fs/N
,依此类推。 你用这样一对的
abs()
计算的是箱子里的能量


您可能还想检查一下:

FFT在每个频率单元中为您提供一个复数对。FFT中的第一个单元类似于信号的直流部分(约0 Hz),第二个单元是
Fs/N
,其中
Fs
是采样率,
N
是FFT的窗口大小,下一个单元是
2*Fs/N
,依此类推。 你用这样一对的
abs()
计算的是箱子里的能量


您可能还想检查一下:

FFT在每个频率单元中为您提供一个复数对。FFT中的第一个单元类似于信号的直流部分(约0 Hz),第二个单元是
Fs/N
,其中
Fs
是采样率,
N
是FFT的窗口大小,下一个单元是
2*Fs/N
,依此类推。 你用这样一对的
abs()
计算的是箱子里的能量


您可能还想检查一下:

大多数(并非所有)FFT库保留总能量(Parseval定理),这意味着随着FFT窗口的延长,幅度必须变大(更长的静止波形->更多的能量)。因此,您必须将结果除以N,以获得频谱中正弦波的更“自然”的幅度高度。

大多数(并非所有)FFT库保留总能量(Parseval定理),这意味着FFT窗口越长,幅度越大(平稳波形越长->能量越大)。因此,您必须将结果除以N,以获得频谱中正弦波的更“自然”的幅度高度。

大多数(并非所有)FFT库保留总能量(Parseval定理),这意味着FFT窗口越长,幅度越大(平稳波形越长->能量越大)。因此,您必须将结果除以N,以获得频谱中正弦波的更“自然”的幅度高度。

大多数(并非所有)FFT库保留总能量(Parseval定理),这意味着FFT窗口越长,幅度越大(平稳波形越长->能量越大)。因此,您必须将结果除以N,以获得频谱中正弦波的更“自然”的幅度高度。

如果您想要谐波的幅度,则需要绘制real(xdft1)和imag(xdft1)。Real(xdft1)给出信号中所有余弦谐波的系数,从-Fs/2到+Fs/2(我们假设您的Fs足够大,可以覆盖信号中的所有频率),imag(xdft)给出正弦的振幅。 你所做的是给你信号的大小,这是在实频分量和虚频分量中一个箱子的总能量的均方根值。 它通常是人们在查看频谱时最感兴趣的项目


这方面的基础知识:()

如果需要谐波的振幅,则需要绘制real(xdft1)和imag(xdft1)。Real(xdft1)给出信号中所有余弦谐波的系数,从-Fs/2到+Fs/2(我们假设您的Fs足够大,可以覆盖信号中的所有频率),imag(xdft)给出正弦的振幅。 你所做的是给你信号的大小,这是在实频分量和虚频分量中一个箱子的总能量的均方根值。 它通常是人们在查看频谱时最感兴趣的项目


这方面的基础知识:()

如果需要谐波的振幅,则需要绘制real(xdft1)和imag(xdft1)。Real(xdft1)给出信号中所有余弦谐波的系数,从-Fs/2到+Fs/2(我们假设您的Fs足够大,可以覆盖信号中的所有频率),imag(xdft)给出正弦的振幅。 你所做的是给你信号的大小,这是在实频分量和虚频分量中一个箱子的总能量的均方根值。 它通常是人们在查看频谱时最感兴趣的项目


这方面的基础知识:()

如果需要谐波的振幅,则需要绘制real(xdft1)和imag(xdft1)。Real(xdft1)给出信号中所有余弦谐波的系数,从-Fs/2到+Fs/2(我们假设您的Fs足够大,可以覆盖信号中的所有频率),imag(xdft)给出正弦的振幅。 你所做的是给你信号的大小,这是一个箱子在实频和虚频的总能量的均方根值