FFT的分析以及matlab实验

FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换(DFT)的快速算法。

采样得到的数字信号,做FFT变换,N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。

假设信号:

S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)

它含有:2V的直流分量

频率为50Hz、相位为-30度、幅度为3V的交流信号

频率为75Hz、相位为90度、幅度为1.5V的交流信号

假设以采样频率为Fs(200HZ)对信号进行采样,信号频率F(0HZ,50HZ,75HZ),共采样点数为N(256),那么FFT之后结果就是一个为N(256)点的复数。每一个点就对应着一个频率点。即有N(256)个频率点,第一个点表示直流分量(0HZ),第N+1个点(不存在,事实最后一个点为第256点)表示采样频率Fs(200HZ),N个间隔平分采样频率Fs,每个点的频率依次增加。某点n所表示的频率为:Fn=(n-1)*Fs/N。

点n为(1,2,3,4,········256)对应的频率分别为

(0,200/256,2*200/256,3*200/256,..........127*200/256)HZ.

由上面的公式可以看出,Fn所能分辨到频率为为Fs/N(200/256),即两点的间隔位200/256.

如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。

继续回到例子,有三个频率点,0HZ,50HZ,75HZ,应该在点n(1,65,97)其所代表的频率为(0,64*200/256,96*200/256)即(0,50,75)上出现峰值。结合matlab实验拿到这些值综合分析峰值与原始信号的关系。

clf;
fs=200;N=256; %采样频率和数据点数
n=(0:N-1);
t=n/fs; %时间序列
S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180); %信号
y=fft(S,N); %对信号进行快速Fourier变换
mag=abs(y); %求得Fourier变换后的振幅
f=n*fs/N; %频率序列
subplot(2,1,1),plot(f,mag); %绘出随频率变化的振幅
xlabel(‘频率/Hz‘);
ylabel(‘振幅‘);title(‘200的采样频率‘);grid on;
subplot(2,1,2),plot(n,mag); %绘出随频率变化的振幅
xlabel(‘频率点‘);
ylabel(‘振幅‘);title(‘256个数据点‘);grid on;

 

拿到第1,65,97点的数据。 no.1:   512.000000000001

no.65:     332.553755053224 - 192.000000000001i

no.97:      2.40097106720006e-12 + 192.000000000000i

结合数据可得:计算三个点的幅值:1点 512     65点  384    97点   192

分析数据可得:直流分量为512/N=512/256=2;
50Hz信号的幅度为:384/(N/2)=384/(256/2)=3;

75Hz信号的幅度为192/(N/2)=192/(256/2)=1.5。可见,从频谱分析出来的幅度是正确的。

计算三点相位信息:直流信号没有相位信息; 65点  :arctan(-192, 332.55)=-0.5236  ;97点: arctan(192, 2.4e-12)=1.5708

单位为弧度转换为角度:65点: 180*(-0.5236)/pi=-30.0001 ;97点:180*1.5708/pi=90.0002

总结:假设FFT之后某点n用复数a+bi表示,那么这个复数的模就是An=sqrt(a*a+b*b),相位就是Pn=arctan(b,a)。根据以上的结果,就可以计算出n点(n≠1,且n<=N/2)对应的信号的表达式为:An/(N/2)*cos(2*pi*Fn*t+Pn),即2*An/N*cos(2*pi*Fn*t+Pn)。对于n=1点的信号,是直流分量,幅度即为A1/N。

时间: 2024-10-15 08:23:43

FFT的分析以及matlab实验的相关文章

windows环境常用网络命令测试和分析(51cto实验01)

结果分析 1,ipconfig显示本机ip地址配置情况. 2,ipconfig/all显示本机IP地址配置等情况的详细信息. 3,ping指令测试网络的连通性,发送4个ICMP的类型8报文给对方,对方回应4个ICMP类型的报文给本机. 4,ping –t不停发送ICPM的类型8报文给对方,只要对方存活,就会一直发. 5,arp –a显示本机arp缓存的内容,对方IP地址和对方MAC地址的对应关系. 6,arp –d删除本机的arp缓存区,清除IP地址与MAC地址的对应关系. 7,arp –s绑定

MATLAB实验

数据处理 实验目的 进一步熟悉MATLAB数据处理基本功能. 实验内容 成绩评估 姓名 课1 课2 课3 课4 课5 总分 平均 标准差 优良率 学生1 97 86 89 94 96 462 92.4 4.7223 1 学生2 70 94 87 79 60 390 78 13.472 0.4 学生3 66 60 73 92 71 362 72.4 12.054 0.2 学生4 94 65 66 78 61 394 72.8 13.442 0.2 学生5 69 92 66 78 87 392 78

【C语言】多温度传感器大数据的分析与处理实验报告

实验目的: 一.从实验仪器测量数据并且记录在文本文档中 二.读取记录表的数据. 三.检查记录表中的温度是否符合标准. 实验步骤: 一.从实验仪器测量数据并且记录在文本文档中 根据实验仪器上的电路连接图连接相关路线读取相关数据,并且记录在文件中. 二.读取记录表的数据 在当前工程目录底下创建一个文本文档,将所测的数据(时间.温度.湿度)记录在文本文档中,如: (一)记录表 通过程序运行将此文件的有限数据读出并显示在终端(运行在屏幕上),同时求温度的最大值与平均值. 三.检查记录表中的温度是否符合标

模式识别之 MDS Multidimensional Scaling 多维尺度法 分析及Matlab实现

在模式识别中,我们会考虑到距离distance的问题,就是一个样本和另一个样本在空间中的距离.根据距离的大小来判断分类.那么,也存在这样的一类问题:我们只知道空间中的点(样本)的距离,那么怎么来重构这些点的相对位置呢? 显然欧式距离是最直观的距离,那么我们就会想使用欧式距离来进行计算重构,我们还希望能够在不同维度上进行重构,比如2维或者3维. 怎么做? 有这么个解决方法叫做MDS 全称为 Multidimensional Scaling. 下面Step By Step介绍MDS如何来求解这个问题

20179209《Linux内核原理与分析》安全类实验答疑

实验一 题目 Nmap 配合 Metasploit 进行端口扫描 问题 Nmap怎么配合Metasploit进行端口扫描? 回答 这里的Nmap配合Metasploit进行端口扫描是指在Metasploit中msf命令行下,调用nmap进行端口扫描. 实验二 题目 缓冲区溢出漏洞实验 问题 漏洞程序中,调用bof()前后堆栈变化? 回答 原文地址:https://www.cnblogs.com/genius-sen/p/8243834.html

面向对象分析与设计 实验七

实验一:http://www.cnblogs.com/scaugsh/p/8983219.html 实验二:http://www.cnblogs.com/scaugsh/p/8983253.html 实验三:http://www.cnblogs.com/scaugsh/p/9046697.html 实验四:http://www.cnblogs.com/scaugsh/p/9056838.html 实验七:https://www.cnblogs.com/scaugsh/p/9157127.html

stroop效应matlab实验

1 打开matlab,打开test1.m 点击运行,若出现选择 更改文件夹 2  引导界面 (在这个界面,只许用户鼠标点击开始,其余的别乱按按键. 记得将打字法关掉,切换到小写) 3 做题界面 根据颜色选择按键,直到做完题.80到题 界面出现,鼠标一定要点击下界面,不然键盘按键无效不起作用. 4结果 这里只统计正确的次数以及对应累加的时间. 2文件 function varargout = test1(varargin) % TEST1 MATLAB code for test1.fig % T

利用Gabor变换法分析纹理图像 matlab代码实现

Gabor变化属于加窗傅里叶变换,Gabor函数可以在频域不同尺度.不同方向上提取相关的特征.Gabor函数与人眼的生物作用相仿,所以经常用于纹理识别上,并取得了较好的效果. 二维Gobor滤波函数: ? 其中: xp = x*cos(theta)+y*sin(theta) yp=y*cos(theta)-x*sin(theta) function [ G,gabout ] = gaborfilter(I,Sx,Sy,f,theta) % gaborfilter定义,I为输入图像,Sx.Sy是变

面向对象分析与设计 实验一

在线购物系统 1.问题陈述/Problem Statement 随着网络的快速发展,在线购物成为时代潮流.本次任务是完成一个在线购物系统,支持功能如下: (1)     顾客注册 顾客可以通过邮箱注册,需要输入用户名,密码,用户名要唯一 (2)     顾客登陆 顾客通过账号或者邮箱,并输入密码登陆 (3)     顾客搜索商品 顾客可以通过模糊搜索搜索出相应物品,支持种类搜索,名字搜索等 (4)     顾客购买商品 注册顾客可以购买物品,未注册顾客只能看物品详情,不可购买.支付可以通过交易系