Matlab中fft函数详解 |
您所在的位置:网站首页 › length函数matlab用法 › Matlab中fft函数详解 |
FFT函数
Y = fft(x)
如果x是向量,则fft(x)返回该向量的傅里叶变换 如果x是矩阵,则fft(x)将x的各列视为向量,并返回每列的傅里叶变换。 如果x是一个多维数组,则 fft(X) 将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的傅里叶变换。 Y = fft(X,n)如果 X 是向量且 X 的长度小于 n,则为 X 补上尾零以达到长度 n。 如果 X 是向量且 X 的长度大于 n,则对 X 进行截断以达到长度 n。 如果 X 是矩阵,则每列的处理与在向量情况下相同。 如果 X 为多维数组,则大小不等于 1 的第一个数组维度的处理与在向量情况下相同。 Y = fft(X,n,dim)当x为矩阵时,在指定的dim维上进行傅里叶变换 dim=1按列 dim =2按行 函数详细解释 一.实信号因为实信号以fs为采样速率的信号在 fs/2处混叠,所以实信号fft的结果中前半部分对应[0, fs/2],后半部分对应[ -fs/2, 0]; 1)实信号fft的结果前半部分对应[0, fs/2]是正频率的结果,后半部分对应[ -fs/2, 0]是负频率的结果。大于fs/2的部分的频谱实际上是实信号的负频率加fs的结果。故要得到正确的结果,只需将视在频率减去fs即可得到频谱对应的真实负频率; 2)如果要让实信号fft的结果与[-fs/2, fs/2]对应,则要fft后fftshift一下即可,fftshift的操作是将fft结果以fs/2为中心左右互换; 3)如果实信号fft的绘图频率f从[-fs/2, fs/2],并且没有fftshift,则fft正频谱对应f在[0, fs/2]的结果将混叠到(f - fs/2)的位置; fft负频谱对应f在[-fs/2, 0]的结果混叠到 f + fs - fs/2 的位置,注意这里f为负值,也就是说此种情况下fft负频谱对应的视在频率减去fs/2即可得到频谱对应的真实负频率。 二.复信号情况1)复信号没有负频率,以fs为采样速率的信号,fft的频谱结果是从[0,fs]的。 2)在 f> fs/2时,对复信号的fft结果进行fftshift会产生频率混叠(将下面的示例2中的频率从f=15改为f=85可以验证f=85的谱线在fftshift后跑到 f= -15 = 85 - fs = 85 - 100的位置了),所以复信号也一般要求 f |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |