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变换相关推荐

  1. matlab dct反变换,MATLAB中 DCT变换、DCT反变换、分块DCT变换

    DCT变换.DCT反变换.分块DCT变换 欢迎转载,但请注明出处!转:http://www.tuicool.com/articles/nUfmAf2 一.引言 DCT变换的全称是离散余弦变换(Disc ...

  2. MATLAB中的快速傅里叶变换FFT与IFFT

    背景 FFT (Fast Fourier Transform)是离散傅立叶变换的快速算法,可以将一个信号从时域变换到频域.同时与之对应的是IFFT(Inverse Fast Fourier Trans ...

  3. 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像

    以前一直对MATLAB中fft()函数的使用一直存在疑惑,为什么要加一 些参数,并且如何确定这些参数,也查了许多资料,但很多都感觉只是 表面一说根本没有讲清其本质.但随着学习的推进,慢慢有所领悟,所 ...

  4. 【 MATLAB 】信号处理工具箱之 fft 案例分析

    上篇博文:[ MATLAB ]信号处理工具箱之fft简介及案例分析介绍了MATLAB信号处理工具箱中的信号变换 fft 并分析了一个案例,就是被噪声污染了的信号的频谱分析. 这篇博文继续分析几个小案例 ...

  5. 【 MATLAB 】信号处理工具箱之fft简介及案例分析

    目录 Syntax Description Y = fft(X) Y = fft(X,n) Y = fft(X,n,dim) Examples Noisy Signal Syntax Y = fft( ...

  6. Matlab快速傅里叶变换程序(FFT)编写

    Matlab快速傅里叶变换程序(FFT)编写 (不利用Matlab内置fft) 最近在学习数字信号处理,正好到快速傅里叶变换,写一个基于基2FFT算法的傅里叶变换.利用原理:DIT-FFT(时域抽取法 ...

  7. Matlab数字图像的傅里叶变换(FFT)

    查看全文 http://www.taodudu.cc/news/show-6182241.html 相关文章: 使用matlab对图像进行傅里叶变换 [ MATLAB ]离散傅里叶变换(DFT)以及逆 ...

  8. MATLAB中 DCT变换、DCT反变换、分块DCT变换

    DCT变换.DCT反变换.分块DCT变换 欢迎转载,但请注明出处!转:http://www.tuicool.com/articles/nUfmAf2 一.引言 DCT变换的全称是离散余弦变换(Disc ...

  9. [Matlab科学计算] 频谱分析和FFT算法总结

    频谱分析是一种非常重要的信号处理方法,在机械设备故障诊断.振动系统分析.电力系统.无线电通信.信息图像处理和自动控制等学科中都有重要应用.频谱分析的核心是1965年Cooely-Tukey发表的快速傅 ...

最新文章

  1. 什么是L1/L2/L3 Cache?
  2. python 中 sorted() 和 list.sort() 的用法
  3. 第一个Node.js实例
  4. 微信小程序开发工具 清除授权缓存/文件缓存/登录缓存等等
  5. CSS中控制不换行属性
  6. 树状数组求区间和(区间均值)
  7. 自适应宽度元素单行文本省略用法探究
  8. 正确认识 Vista 激活期限
  9. python spark安装_windows下安装spark-python
  10. 【j2ee spring】30、巴巴荆楚网-综合hibernate4+spring4(5)分页
  11. 华为鸿蒙系统ui界面会变吗,华为鸿蒙系统:全新UI界面
  12. 运维技术之二(2)、docker安装jumpserver
  13. 算法高级(22)-BCrypt加密算法,号称目前最安全的算法之一
  14. 网页表白代码烟花特效
  15. 全面讲解在BIOS设置IDE设备的多种组合方式
  16. Android流量统计分析
  17. 配置D3D8到vs2012项目中遇到的问题和解决过程
  18. 【踩坑小记】通过maven下载依赖jar包总超时,赶紧用小本本记录镜像站
  19. grep、cut常见用法
  20. java怎么调用另一个类的方法_在一个类中访问另一个类的方法

热门文章

  1. 【Verilog】——Verilog简介
  2. I2C SDA SCL被拉低问题分析
  3. web项目服务器拒绝了连接,Websocket服务器连接被拒绝
  4. k线图基础知识k线基本形态分析
  5. 前端与移动开发----Vue---- 组件,组件传值,插槽
  6. sybase 设置默认值_SYBASE性能优化
  7. android实现 仿iphoneDialog实现类似于iphone对话框样式
  8. 基于Android实现高德地图校内导航出行app项目演示【项目源码+简要论文说明】分享
  9. EDW与维度模型间的抉择
  10. Linux入门基础之 中