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 <= fs/2

3)在对雷达的慢时间维(复信号)进行fft后,由于要用doppler= ((0:LFFT-1)/LFFT - 0.5)*PRF; 计算多普勒频率,所以对该慢时间信号fft后要fftshift下,以便和正确的频率单元相对应。注意多普勒频率fd < = PRF/2 时才测的准!

实信号
clf;fs=100;N=256;
n=0:N-1;t=n/fs;
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y1=fft(x,N);
y2=fftshift(y1);mag1=abs(y1);
mag2=abs(y2);   f1=n*fs/N;
f2=n*fs/N-fs/2;subplot(3,1,1),plot(f1,mag1,'r');
xlabel('频率/Hz');
ylabel('振幅');title('图1FFT','color','r');grid on;subplot(3,1,2),plot(f2,mag1,'b');
xlabel('频率/Hz');
ylabel('振幅');title('FFT变换后无FFTSHIFT','color','b');grid on;subplot(3,1,3),plot(f2, mag2,'c');
xlabel('频率/Hz');
ylabel('振幅');title('FFT后进行FFTSHIFT','color','c');grid on;

复信号
close all; clear; clf;fs=100;N=256;
n=0:N-1;t=n/fs;
x=0.5*exp(j*2*pi*15*t)+2*exp(j*2*pi*40*t); y1=fft(x,N);
y2=fftshift(y1);mag1=abs(y1);
mag2=abs(y2);   f1=n*fs/N;
f2=n*fs/N-fs/2;subplot(3,1,1),plot(f1,mag1,'r');
xlabel('频率/Hz');
ylabel('振幅');title('FFT','color','r');grid on;subplot(3,1,2),plot(f2,mag1,'b');
xlabel('频率/Hz');
ylabel('振幅');title('FFT后无FFTSHIFT','color','b');grid on;subplot(3,1,3),plot(f2,mag2,'c');
xlabel('频率/Hz');
ylabel('振幅');title('FFT后有FFTSHIFT','color','c');grid on;

subplot(3,1,3),plot(f2,mag2,‘c’);
xlabel(‘频率/Hz’);
ylabel(‘振幅’);title(‘FFT后有FFTSHIFT’,‘color’,‘c’);grid on;


![image-20210511200428935](https://img-blog.csdnimg.cn/img_convert/116629808359a402c7bdcd93722f283e.png)

Matlab中fft函数详解相关推荐

  1. Matlab中 pdist 函数详解

    学习笔记,仅供参考,有错必纠 转载自:Matlab中 pdist 函数详解(各种距离的生成); pdist Pairwise distance between pairs of objects. Sy ...

  2. matlab中xcorr函数详解

    Matlab中xcorr函数详解 引言 在matlab中查找相关函数时,找到了xcov函数和xcorr函数,仔细看了帮助文档,发现虽然计算公式不一样,但是两个函数用法相同,计算出的值也相同,于是在翻了 ...

  3. MATLAB中find函数详解

    (转自http://blog.sina.com.cn/emily250886) 功能:    寻找非零元素的索引和值 语法: 1.  ind = find(X) 2.  ind = find(X, k ...

  4. matlab中Regionprops函数详解——度量图像区域属性

    声明:原文链接https://blog.csdn.net/langb2014/article/details/49886787点击打开链接,仅学习使用,写的很不错. Regionprops:用途是ge ...

  5. Matlab中legend函数详解及legend边框去掉的方法

  6. c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍

    memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, si ...

  7. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  8. linux 中 sigaction 函数详解

    linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...

  9. matlab函数乘阶跃,MATLAB中FFT函数和点乘、乘、单位阶跃函数

    注意问题:1, 对于单位阶跃函数u(t-b)和Dirac函数delta(t-a),可以借用Maple函数库中的定义,他们分别是Heaviside(t-b),Dirca(t-a). 2,点乘和点除代表矩 ...

最新文章

  1. npm 安装less插件_2020 VSCode插件推荐
  2. c语言坐标输出图片,tc 如何在指定坐标处 输出bmp图片??
  3. Cookie操作以及如何在js中调用jsp变量
  4. myBatis association的两种形式
  5. windows搭建yolo环境
  6. Interface Project
  7. Xshell正版免费,再也不用找破解版了!
  8. 什么是tftp服务器? 如何搭建tftp服务器?
  9. 遥感影像数据解译基本步骤
  10. 荣耀8微信总是无法连接服务器,微信无法登陆想要登陆的王者荣耀账号,怎么办?...
  11. Google 101 Tips
  12. Teams App 资源中心种草指南
  13. Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
  14. Linux中的各种栈:进程栈 线程栈 内核栈 中断栈
  15. 字蛛(FontSpider,中文字体压缩器)网页自由引入中文字体
  16. 关于巴伦——Marchand巴伦
  17. 【C语言程序】编写登录函数,函数有两个形式函数:账号名和密码。如果账号名为“张三”,密码为“123”,则登陆成功,否则登录失败。
  18. 如何在 Windows 10 的同时安装 Ubuntu 20.04实现双系统
  19. 云计算、大数据能为反恐做什么?
  20. 一、试探回溯法(N皇后问题)

热门文章

  1. Adobe Acrobat 部分文件无法删除的解决办法
  2. 古典密码-凯撒加密和解密
  3. 世纪互联运营的office365登陆手机Outlook
  4. H5游戏(一)登录某某首富H5游戏之WebSockets初涉 易语言wss
  5. 百度Apollo晒成绩单:伴1500万车主,累计156亿公里,它还要让1亿辆车智能化
  6. 基于android平台语音日程软件的设计与实现,基于Android平台语音日程软件的设计与实现...
  7. 发疯之后创业能更成功吗 leo看赢在中国第三季 5
  8. 山东商业职业技术学院计算机应用技术代码,山东高考3+2模式11所高校名称及代码,专业及代码...
  9. 计算机编程 英语词汇
  10. linux中目录文件用ls显示是绿色的,linux 下设置 ls 命令 显示 文件、文件夹颜色...