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 <= 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函数详解相关推荐
- Matlab中 pdist 函数详解
学习笔记,仅供参考,有错必纠 转载自:Matlab中 pdist 函数详解(各种距离的生成); pdist Pairwise distance between pairs of objects. Sy ...
- matlab中xcorr函数详解
Matlab中xcorr函数详解 引言 在matlab中查找相关函数时,找到了xcov函数和xcorr函数,仔细看了帮助文档,发现虽然计算公式不一样,但是两个函数用法相同,计算出的值也相同,于是在翻了 ...
- MATLAB中find函数详解
(转自http://blog.sina.com.cn/emily250886) 功能: 寻找非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k ...
- matlab中Regionprops函数详解——度量图像区域属性
声明:原文链接https://blog.csdn.net/langb2014/article/details/49886787点击打开链接,仅学习使用,写的很不错. Regionprops:用途是ge ...
- Matlab中legend函数详解及legend边框去掉的方法
- c++ memset 语言_C/C++ 中memset() 函数详解及其作用介绍
memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的: 包含在头文件中,可以用它对一片内存空间逐字节进行初始化: 原型为 : void *memset(void *s, int v, si ...
- Linux中fork()函数详解
Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...
- linux 中 sigaction 函数详解
linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...
- matlab函数乘阶跃,MATLAB中FFT函数和点乘、乘、单位阶跃函数
注意问题:1, 对于单位阶跃函数u(t-b)和Dirac函数delta(t-a),可以借用Maple函数库中的定义,他们分别是Heaviside(t-b),Dirca(t-a). 2,点乘和点除代表矩 ...
最新文章
- npm 安装less插件_2020 VSCode插件推荐
- c语言坐标输出图片,tc 如何在指定坐标处 输出bmp图片??
- Cookie操作以及如何在js中调用jsp变量
- myBatis association的两种形式
- windows搭建yolo环境
- Interface Project
- Xshell正版免费,再也不用找破解版了!
- 什么是tftp服务器? 如何搭建tftp服务器?
- 遥感影像数据解译基本步骤
- 荣耀8微信总是无法连接服务器,微信无法登陆想要登陆的王者荣耀账号,怎么办?...
- Google 101 Tips
- Teams App 资源中心种草指南
- Mac电脑蓝牙连接出问题了,如何重置Mac的蓝牙模块
- Linux中的各种栈:进程栈 线程栈 内核栈 中断栈
- 字蛛(FontSpider,中文字体压缩器)网页自由引入中文字体
- 关于巴伦——Marchand巴伦
- 【C语言程序】编写登录函数,函数有两个形式函数:账号名和密码。如果账号名为“张三”,密码为“123”,则登陆成功,否则登录失败。
- 如何在 Windows 10 的同时安装 Ubuntu 20.04实现双系统
- 云计算、大数据能为反恐做什么?
- 一、试探回溯法(N皇后问题)
热门文章
- Adobe Acrobat 部分文件无法删除的解决办法
- 古典密码-凯撒加密和解密
- 世纪互联运营的office365登陆手机Outlook
- H5游戏(一)登录某某首富H5游戏之WebSockets初涉 易语言wss
- 百度Apollo晒成绩单:伴1500万车主,累计156亿公里,它还要让1亿辆车智能化
- 基于android平台语音日程软件的设计与实现,基于Android平台语音日程软件的设计与实现...
- 发疯之后创业能更成功吗 leo看赢在中国第三季 5
- 山东商业职业技术学院计算机应用技术代码,山东高考3+2模式11所高校名称及代码,专业及代码...
- 计算机编程 英语词汇
- linux中目录文件用ls显示是绿色的,linux 下设置 ls 命令 显示 文件、文件夹颜色...