matlab fft反变换,Matlab实现FFT变换
Matlab实现FFT变换 Matlab实现FFT变换(单边谱及双边谱)
以前对于Fourier
Transform从来没有细究,不管在LabVIEW还是Matlab里都有现成的FFT(快速Fourier
Transform)函数,输入相应的参数就可以了。
在Matlab下
y=fft(x,nfft);
x为输入
nfft为快速傅立叶变换的点数
LabVIEW下,同样输入x及变换的点数,还有一个布尔控制,是否shift?
下面的例子,先进行fourier transform,即双边谱
程序代码
fs=100;%设定采样频率
N=128;
n=0:N-1;
t=n/fs;
f0=10;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f0*t);
figure(1);
subplot(231);
plot(t,x);%作正弦信号的时域波形
xlabel('t');
ylabel('y');
title('正弦信号y=2*pi*10t时域波形');
grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure(1);
subplot(232);
plot(f,mag);%做频谱图
axis([0,100,0,80]);
xlabel('频率(Hz)');
ylabel('幅值');
title('正弦信号y=2*pi*10t幅频谱图N=128');
grid;
%求均方根谱
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq);
xlabel('频率(Hz)');
ylabel('均方根谱');
title('正弦信号y=2*pi*10t均方根谱');
grid;
%求功率谱
power=sq.^2;
figure(1);
subplot(234);
plot(f,power);
xlabel('频率(Hz)');
ylabel('功率谱');
title('正弦信号y=2*pi*10t功率谱');
grid;
%求对数谱
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln);
xlabel('频率(Hz)');
ylabel('对数谱');
title('正弦信号y=2*pi*10t对数谱');
grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(1);
subplot(236);
plot(ti,magx);
xlabel('t');
ylabel('y');
title('通过IFFT转换的正弦信号波形');
grid;
下面进行单边谱计算:
程序代码
fs=100;%设定采样频率
N=128;
n=0:N-1;
t=n/fs;
f0=10;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f0*t);
figure(1);
subplot(231);
plot(t,x);%作正弦信号的时域波形
xlabel('t');
ylabel('y');
title('正弦信号y=2*pi*10t时域波形');
grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
m=length(y);
f=(0:m/2-1)'*fs/m;%进行对应的频率转换
figure(1);
subplot(232);
plot(f,mag(1:m/2));%做频谱图
axis([0,100,0,80]);
xlabel('频率(Hz)');
ylabel('幅值');
title('正弦信号y=2*pi*10t幅频谱图N=128');
grid;
%求均方根谱
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq(1:m/2));
xlabel('频率(Hz)');
ylabel('均方根谱');
title('正弦信号y=2*pi*10t均方根谱');
grid;
%求功率谱
power=sq.^2;
figure(1);
subplot(234);
plot(f,power(1:m/2));
xlabel('频率(Hz)');
ylabel('功率谱');
title('正弦信号y=2*pi*10t功率谱');
grid;
%求对数谱
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln(1:m/2));
xlabel('频率(Hz)');
ylabel('对数谱');
title('正弦信号y=2*pi*10t对数谱');
grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(1);
subplot(236);
plot(ti,magx);
xlabel('t');
ylabel('y');
title('通过IFFT转换的正弦信号波形');
grid;
+++++++本文转载于 Dinga's Blog http://www.dinga.cn
+++++++
matlab fft反变换,Matlab实现FFT变换相关推荐
- matlab dct反变换,MATLAB中 DCT变换、DCT反变换、分块DCT变换
DCT变换.DCT反变换.分块DCT变换 欢迎转载,但请注明出处!转:http://www.tuicool.com/articles/nUfmAf2 一.引言 DCT变换的全称是离散余弦变换(Disc ...
- MATLAB中的快速傅里叶变换FFT与IFFT
背景 FFT (Fast Fourier Transform)是离散傅立叶变换的快速算法,可以将一个信号从时域变换到频域.同时与之对应的是IFFT(Inverse Fast Fourier Trans ...
- 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像
以前一直对MATLAB中fft()函数的使用一直存在疑惑,为什么要加一 些参数,并且如何确定这些参数,也查了许多资料,但很多都感觉只是 表面一说根本没有讲清其本质.但随着学习的推进,慢慢有所领悟,所 ...
- 【 MATLAB 】信号处理工具箱之 fft 案例分析
上篇博文:[ MATLAB ]信号处理工具箱之fft简介及案例分析介绍了MATLAB信号处理工具箱中的信号变换 fft 并分析了一个案例,就是被噪声污染了的信号的频谱分析. 这篇博文继续分析几个小案例 ...
- 【 MATLAB 】信号处理工具箱之fft简介及案例分析
目录 Syntax Description Y = fft(X) Y = fft(X,n) Y = fft(X,n,dim) Examples Noisy Signal Syntax Y = fft( ...
- Matlab快速傅里叶变换程序(FFT)编写
Matlab快速傅里叶变换程序(FFT)编写 (不利用Matlab内置fft) 最近在学习数字信号处理,正好到快速傅里叶变换,写一个基于基2FFT算法的傅里叶变换.利用原理:DIT-FFT(时域抽取法 ...
- Matlab数字图像的傅里叶变换(FFT)
查看全文 http://www.taodudu.cc/news/show-6182241.html 相关文章: 使用matlab对图像进行傅里叶变换 [ MATLAB ]离散傅里叶变换(DFT)以及逆 ...
- MATLAB中 DCT变换、DCT反变换、分块DCT变换
DCT变换.DCT反变换.分块DCT变换 欢迎转载,但请注明出处!转:http://www.tuicool.com/articles/nUfmAf2 一.引言 DCT变换的全称是离散余弦变换(Disc ...
- [Matlab科学计算] 频谱分析和FFT算法总结
频谱分析是一种非常重要的信号处理方法,在机械设备故障诊断.振动系统分析.电力系统.无线电通信.信息图像处理和自动控制等学科中都有重要应用.频谱分析的核心是1965年Cooely-Tukey发表的快速傅 ...
最新文章
- 什么是L1/L2/L3 Cache?
- python 中 sorted() 和 list.sort() 的用法
- 第一个Node.js实例
- 微信小程序开发工具 清除授权缓存/文件缓存/登录缓存等等
- CSS中控制不换行属性
- 树状数组求区间和(区间均值)
- 自适应宽度元素单行文本省略用法探究
- 正确认识 Vista 激活期限
- python spark安装_windows下安装spark-python
- 【j2ee spring】30、巴巴荆楚网-综合hibernate4+spring4(5)分页
- 华为鸿蒙系统ui界面会变吗,华为鸿蒙系统:全新UI界面
- 运维技术之二(2)、docker安装jumpserver
- 算法高级(22)-BCrypt加密算法,号称目前最安全的算法之一
- 网页表白代码烟花特效
- 全面讲解在BIOS设置IDE设备的多种组合方式
- Android流量统计分析
- 配置D3D8到vs2012项目中遇到的问题和解决过程
- 【踩坑小记】通过maven下载依赖jar包总超时,赶紧用小本本记录镜像站
- grep、cut常见用法
- java怎么调用另一个类的方法_在一个类中访问另一个类的方法