java 傅里叶变换 频谱_傅里叶变换分析频谱(FFT)
此前因为英语不好,看不下去help,进而懒得看demo,这才发现,原来Demo里面有如此多而有用的信息。学会了。
傅里叶变换的物理意义:
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。
傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。
从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数。
Y = fft(X)利用快速傅里叶变换返回向量X的离散傅里叶变化。如果X是个矩阵,则返回矩阵每一列的傅里叶变化。
Y = fft(X,n)
返回n维傅里叶变换。如果X的长度不足,则已0填充,如果X长度长于N,则对X进行截顶操作。
傅里叶变换最常用的是对一个加噪的时域信号进行频域分析。
语法:
datf = fft(data)
datf = fft(data,N)
datf = fft(data,N,'complex')
如果data在时域范围内,值为实数且按连续的时间间隔ts取样,则datf为频域范围内的数值,频率范围从0到尼奎斯特频率。尼奎斯特频率不取决于信号的长度(无论基数或者偶数)。经傅里叶变换后的每个值通过除以信号长度的平方根进行归一化。这是为了保护信号的能量和噪声的特性。
在默认情况下,进行变换的长度由信号长度决定。第二个参数N是强迫将傅里叶变换限制在范围N内,根据实际情况进行填充或者截顶。这样实际信号的频率值再N/2或者(N+1)/2范围内。
对于实数信号,默认datf只包括非负频率,对于复数信号来说,也包括负数频率。因此加参数complex.
fft(x)是伽罗瓦向量X的离散傅里叶变换。如果X在伽罗瓦区域为0-2^m,则X的长度为2^m-1。
m = 4;
n = 2^m-1;
x = gf(randint(n,1,2^m),m); % Random vector
y = fft(x); % Transform of x
z = ifft(y); % Inverse transform of y
一维情况下:
clear all
clc
clear
f=[30.5 31.2 33.7 34.5 35.1 30.3 34.7
33.1 30.5 31.5 31.2 33.7
34.5 35.1 30.3 34.7 33.1 30.5
32.2 31.8 32.6
33.6 34.8
30.5 32.5 32.8 31.9 30.9
32.3 34.6 32.6
33.8 32.7 30.5 31.1 33.5 32.7
33.4 34.5 32.3 30.8 31.6 33.5 35.6 32.2 34.5
34.5 33.8
31.9 32.5
30.1];
g=randn(size(f));
y=fft(g+f);
figure,plot(fftshift(abs(y))),title('fft with
noise');
xlabel('Frequency (Hz)');
ylabel('fft');
经傅里叶变换后y的平方显示为能量。能量对频率的图叫做周期图。
n=51; %n=lengh(X)
power = abs(y(1:floor(n))).^2; %floor计算n中每个元素离它最近的整数。
nyquist = 10;
freq = (1:n)/(n)*nyquist;
figure,plot(freq,power);
xlabel('frequency');
title('Periodogram');
下面利用能量周期对画出周期图
period=1./freq;
figure,plot(period,power);
axis([0 6 0 3e+6]);
ylabel('Power');
xlabel('Period');
通过画一个强调符号,我们可以更加精确的找到他的周期。
hold on;
index=find(power==max(power));
mainPeriodStr=num2str(period(index));
figure,plot(period(index),power(index),'r.',
'MarkerSize',25);
text(period(index)+2,power(index),['Period =
',mainPeriodStr]);
hold off;
plot函数:
plot(Y),当Y是实数时,直接在坐标中画出对应的值,当Y是复数时,对应画出实数部分及虚数部分。
plot(X1,Y1,...,Xn,Yn)画出每个Xn,Yn对。如果其中一个是个矩阵另外一个是个向量,画出向量对矩阵的每一行或者矩阵的列对向量相应的维。如果Xn是个标量而Yn是个向量,画出离散的Yn垂直对应Xn。
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)。
好好学习。
java 傅里叶变换 频谱_傅里叶变换分析频谱(FFT)相关推荐
- FFT快速傅里叶变换的应用——画单边频谱图matlab
FFT快速傅里叶变换的应用--画单边频谱图matlab 快速傅里叶变换在数字信号处理里用的十分广泛,在matlab仿真中,处理信号的时频域变换十分有效,这里结合两个做过的仿真,来说一说fft的应用:画 ...
- 《信号与系统》解读 第3章 强大的傅里叶时域频域分析工具-3:时域信号的傅里叶变换与常见信号的频谱
目录 目录 1 时域周期性信号的频域傅里叶级数概述 1.1 周线性.连续信号的傅里叶级数 1.2 周期.离散信号的傅里叶级数 2 时域.周期性.连续信号的频域傅里叶级数的频谱图表达 2.1 周期性.连 ...
- 信号归一化功率_信号的频谱 频谱密度 功率谱密度 能量谱密度
这是我在知乎上的一个回答,鉴于很多朋友对这几个概念不是很清楚,就在公众中发一下. 这几个概念,对于刚学信号系统的同学甚至对于很多信号处理的老手来说,都是分不清楚的,下面我们就一一解释这几个概念. ...
- sin傅里叶变换公式_全面解析傅立叶变换(非常详细)
前言 第一部分. DFT 第一章.傅立叶变换的由来 第二章.实数形式离散傅立叶变换(Real DFT) 从头到尾彻底理解傅里叶变换算法.下 第三章.复数 第四章.复数形式离散傅立叶变换 前言:&quo ...
- 方波与sinc函数之间的最全傅里叶变换关系_助记_有图有推导
方波与sinc函数的最全傅里叶变换对_助记_有图有推导 文章目录 方波与sinc函数的最全傅里叶变换对\_助记\_有图有推导 1.连续时间周期信号傅里叶变化下的方波与sinc 2.离散时间周期信号傅里 ...
- JVM - 结合代码示例彻底搞懂Java内存区域_对象在堆-栈-方法区(元空间)之间的关系
文章目录 Pre 示例demo 总体关系 代码示例论证 反汇编 Pre JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器 中我们探讨了线程栈中的内部结构 ,大家 ...
- Java计算时间差_传统的SimpleDateFormat类
Java计算时间差_传统的SimpleDateFormat类 SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd ...
- JAVA异常使用_每个人都曾用过、但未必都用得好
JAVA异常使用_每个人都曾用过.但未必都用得好 一.抛出异常 vs. 返回错误代码 有人说"Well, an exception is a goto.",但也有人言"m ...
- 学习笔记:Java 并发编程①_基础知识入门
若文章内容或图片失效,请留言反馈. 部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/av81461839 视频下载: ...
最新文章
- 微信开源「派大星」:4000元游戏电脑能带动7亿参数GPT!
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)
- ExtJs6解决添加和修改Form共用一个form的隐藏域的id的取消传值
- Java Web项目的发布
- 【数字图像处理】三.MFC实现图像灰度、采样和量化功能详解
- form 窗体增加边框_C#控件美化之路(13):美化Form窗口(上)
- 红旗linux培训文档,Linux基本应用培训-红旗Linux.ppt
- 关闭 IOS8 最近使用 最近联系人
- 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究
- springboot添加拦截器 监听等设置
- 百度地图手机端单触点单击和长按事件,解决部分手机(小米手机)地图单击事件失效,多触点、拖动依然触发长按的bug...
- 【Windows】treamview完全卸载
- 多图像 并行 浏览 放大 对比 MulimgViewer win10 ubuntu 多图片 多张图片
- FPAG—UART串口实现与解析-黑金fpga资料解析
- 运动目标检测发展概述
- regeneratorRuntime is not defined
- multiset用法详解
- intel无线网卡日志服务器,Intel的无线网卡总掉线,慎入
- Ubuntu18.04安装win7虚拟机
- 苹果4如何添加时间插件_Pr快速批量制作和添加字幕,节省时间还不用插件的做法...