MATLAB中FFT的整理

article/2025/9/24 15:08:55

作为一个资深的健忘症患者,需要把每次用都忘记的FFT问题进行整理。
FFT可将信号从时域转换到频域。
首先是一些简单常识:

采样周期:两次采样之间的时间间隔。
采样频率:1/采样周期。每秒采样的点数。(注意:采样频率的选择应为信号频率的两倍以上)

时域采样将会造成频域的周期化,即频域的周期为时域的采样频率fs。
因此在画fft后的频域图时要注意横坐标每一小格的频率为fs/(N-1)。其中N为采样点数(包括前后两个端点)。

【此处的N可以自行设置,其决定了频率采样的点数,fs/N为频率域的分辨率。作fft的代码为:fft(x,N)或fft(x)。若为后者没有输入N的值,系统默认为信号时域的采样点数。】

以一个含有10Hz和40Hz频率分量的信号为例:

clc
clear all
close all
tz = 0.01;%采样周期=0.01s
fs = 1/tz;%采样频率=100Hz
t1 = 0.5; %起始时间
t2= 5;%结束时间
tt = t2 - t1;%时间
N= tt/tz + 1;%采样的点数(算上前后两个端点)
t = t1:tz:t2;
y = sin(2*pi*10*t)+2*sin(2*pi*40*t);%含有频率为10Hz和40Hz分量的信号
y_f = fft(y);%作fft
%-------------画原始信号时域图--------------
subplot(3,1,1);%3行一列第一个图
plot(t,y); 
title('原始信号');
%-------------作fft后频域图----------------
fx = 0:fs/(N-1):fs;%横坐标频率
subplot(3,1,2);%3行一列第二个图
plot(fx,abs(y_f)); 
title('fft transform');
%-------------fftshift频域图---------------
subplot(3,1,3);%3行一列第三个图
plot(fx-fs/2,abs(fftshift(y_f)));
title('shift fft transform');

运行得到的结果为:

在这里插入图片描述
FFT的处理使得在60Hz和90Hz均出现了频率分量,使用fftshift可将0频率分量移到坐标中心,正确处理了坐标。

纵坐标:
若要获得真实的振幅值,则应对得到的abs(fft(x))乘以2除以N
即将代码plot(fx,abs(y_f)); 更改为plot(fx,2*abs(y_f)/N);
运行得结果:在这里插入图片描述


http://chatgpt.dhexx.cn/article/EaJJUu3H.shtml

相关文章

matlab中abs函数,matlababs是什么意思 是是是什么意思

matlababs是什么意思 是是是什么意思以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! matlab 中的abs函数什么意思 编程知识 matlab中的abs(x)是去绝对值的函数 例如:x=-1.23 abs(x) ans 1.23 以上即是取了-1.23…

Matlab 用法

MATLAB基础: 清除命令 clc 清空命令行的命令 clf 清除当前figure中的内容 clear 清除工作区变量 close all 关闭所有图形窗口 清除命令通常放在代码最前方,避免其他变量或代码的干扰 变量命名规则 ①以英文字母开头,可包含英文字母、…

abs 三种功能及代码详解 matlab函数

1.abs函数功能 求实数的绝对值、复数的模、字符串的ASCII值 2.基本用法 abs(x)函数是对数组元素进行绝对值处理的函数。 函数的定义域包括复数。 对于复数xab*i,有abs(x)sqrt(a2b2)。 3.代码 clc; clear all;a -7; b 12i; abs(a…

android 屏幕坐标总结

android 屏幕坐标好多个,有时候傻傻分不清楚,经常记错,然后只能一个个试。尴尬~~ 把它们总结下来,以备不时之需嘿嘿。 一、视图坐标 最外面一层是屏幕,左上角是坐标原点,向右向…

【Unity3D】世界坐标与屏幕坐标

Unity3D由于是在三维世界中编程,而最终的结果是需要反馈到肉眼所示的2D屏幕之上的。这就产生了一种比较需要考虑的问题,尤其在一些涉及屏幕与Unity3D的3D世界交互的情况。网络上对于这方面的文字,大部分罗列了许许多多文字与代码或者API&…

Unity世界坐标转换屏幕坐标(测试)

下面展示一下上一篇说的两种实现方式打包文件在不同分辨率下的效果 1.WorldToScreenPoint 1920 * 1080 800 * 600 2.WorldToViewportPoint 1920 * 1080 800 * 600 总结 可以看到四种情况全部都显示正确,我们再看一下原来的代码 public Vector3 GetScreenPositio…

Unity 屏幕坐标转UI坐标

1:屏幕坐标转UI坐标 首先我们来明确下三个坐标概念: 世界坐标:指的是Transform组件的position字段 UI坐标:指的是RectTransform组件的anchoredPosition字段 屏幕坐标:指的是屏幕空间的坐标 (也可以说是相机空间的坐…

经纬度转换成屏幕坐标

学期projet总结: 当把点的数据和线的数据读进来之后,为了画出地图还有最重要的一步就是把实际的经纬度转换成屏幕像素点的坐标。在找老师讨论之前,我在网上查资料,找到了下边链接的文章,并按照这个方法画出了地图。 …

Unity-世界坐标与屏幕坐标

transform.position.x和transform.position.y的值含义是世界坐标。 世界坐标与屏幕坐标有时一样,有时不同,这和Canvas的渲染模式有关。 Canvas共有三种渲染模式 Screen Space - Overlay (此模式UGUI层一直在最上面,其他例如粒子等物体一直…

Unity 世界坐标、屏幕坐标、UGUI 坐标 相互转换

Unity 世界坐标、屏幕坐标、UGUI 坐标 相互转换 坐标转换是游戏开发过程中必不可少的环节 看下图 世界坐标、屏幕坐标、UI 坐标 三种坐标系的转换过程,此文章中的 UI 坐标特指 UGUI 坐标 从上图可以看到,世界坐标 和 UI 坐标 需要通过 屏幕坐标作为中间…

Android得到控件在屏幕中的坐标

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值,//获取在整个窗口内的绝对坐标 (不是很理解= =、) …

安卓 获取屏幕坐标(点击屏幕获取坐标)

工具下载: 实现原理:创建一个背景透明的Activity, 点击屏幕时获取坐标信息并显示。在悬浮窗中调用该Activity,可以获取所有界面的坐标信息。 package sc.tool.screen;import sc.tool.component.ActivityComponent; import android.content.Co…

Unity世界坐标转换屏幕坐标(详解)

我们先通过简单的操作实现一下基础的UI跟随物体移动的功能,首先我们在场景中建立一个Canvas并且添加一个图片作为按钮,之后我们添加一个3d物体作为跟随目标,效果如下图所示 我们配置一下UICanvas的属性,书写对应的自定义类并添加至…

地理坐标(经纬度坐标)和屏幕坐标(xy坐标)间的转换

在我们的屏幕上,有一张地图,这张地图经过缩放、平移、旋转,最终地理坐标和屏幕坐标的关系大致如下图所示: 这种关系要怎么描述呢?我们可以假设地图是一张纸,而屏幕是一堵墙。只要我们有两个图钉&#xff0c…

Windows的三种坐标系:屏幕坐标系,非客户区坐标系,客户区坐标系

1. 屏幕坐标系:以屏幕的左上角为原点,如图所示GetWindowRect() 函数获得的 RECT 就是以屏幕坐标系算的。 2. 非客户区坐标系(窗口坐标系)包括标题栏的部分。GetWindowDC 返回的设备环境就是基于此坐标系,一般只在 WM_NCPAINT 消息中使用。 3.…

Unity世界坐标系、本地坐标系、屏幕坐标系、视口坐标系

Unity中的坐标系 世界坐标系本地坐标系屏幕坐标系视口坐标系各个坐标系相互转换的API 世界坐标系 原点:世界的中心 轴向:世界坐标系的三个轴向是固定的 相关API: transform.position;transform.rotation; 四元数transform.eulerAngles; 欧拉角transfor…

Unity世界坐标转换屏幕坐标(概览)

这些天做的项目中,有一个世界坐标转换屏幕坐标的功能,具体需求如下 在3d场景中,部分物体可以进行点击交互,如果某个物体可以点击,就在屏幕上对应位置,添加一个Button,也就是把场景中物体的坐标转…

手机屏幕坐标

整个坐标系是以手机屏幕左上角为原点(0,0),如果在屏幕没有滑动之前,这一理解肯定是ok的,但在滑屏之后,就会产生很多歧义和混淆,原因在于使用过程当中,很多方法的参数并非是参照屏幕&…

计算机屏幕坐标系

常用的屏幕坐标系有如下图所示的两种:

Android屏幕、坐标系、Padding、Margin

一、屏幕 二、坐标系分类 1、屏幕坐标系 该坐标系是以屏幕的左上角为原点(0, 0), 水平向右代表 x 方向的正方向, 垂直向下代表 y方向的正方向。而触控事件中,使用getRawX()和getRawY()方法。获取的坐标就是以这个坐标系为标准下的坐标值。 2、布局坐标…