.用Matlab产生正弦波,矩形波,以及白噪声信号,并显示各自时域波形图2.进行FFT变换,显示各自频谱图,其中采样率,频率、数据长度自选3.做出上述三种信号的均方根图谱,功率图谱,以及对数均方根图谱4.用IFFT傅立叶反变换恢复信号,并显示恢复的正弦信号时域波形图

源程序%*************************************************************************%

%                              FFT实践及频谱分析%

%*************************************************************************%

%*************************************************************************%

%***************1.正弦波****************%

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;

%****************2.矩形波****************%

fs=10;%设定采样频率t=-5:0.1:5;

x=rectpuls(t,2);

x=x(1:99);

figure(2);

subplot(231);

plot(t(1:99),x);%作矩形波的时域波形xlabel('t');

ylabel('y');

title('矩形波时域波形');

grid;

%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(2);

subplot(232);

plot(f,mag);%做频谱图xlabel('频率(Hz)');

ylabel('幅值');

title('矩形波幅频谱图');

grid;

%求均方根谱sq=abs(y);

figure(2);

subplot(233);

plot(f,sq);

xlabel('频率(Hz)');

ylabel('均方根谱');

title('矩形波均方根谱');

grid;

%求功率谱power=sq.^2;

figure(2);

subplot(234);

plot(f,power);

xlabel('频率(Hz)');

ylabel('功率谱');

title('矩形波功率谱');

grid;

%求对数谱ln=log(sq);

figure(2);

subplot(235);

plot(f,ln);

xlabel('频率(Hz)');

ylabel('对数谱');

title('矩形波对数谱');

grid;

%用IFFT恢复原始信号xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

figure(2);

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('通过IFFT转换的矩形波波形');

grid;

%****************3.白噪声****************%

fs=10;%设定采样频率t=-5:0.1:5;

x=zeros(1,100);

x(50)=100000;

figure(3);

subplot(231);

plot(t(1:100),x);%作白噪声的时域波形xlabel('t');

ylabel('y');

title('白噪声时域波形');

grid;

%进行FFT变换并做频谱图y=fft(x);%进行fft变换mag=abs(y);%求幅值f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换figure(3);

subplot(232);

plot(f,mag);%做频谱图xlabel('频率(Hz)');

ylabel('幅值');

title('白噪声幅频谱图');

grid;

%求均方根谱sq=abs(y);

figure(3);

subplot(233);

plot(f,sq);

xlabel('频率(Hz)');

ylabel('均方根谱');

title('白噪声均方根谱');

grid;

%求功率谱power=sq.^2;

figure(3);

subplot(234);

plot(f,power);

xlabel('频率(Hz)');

ylabel('功率谱');

title('白噪声功率谱');

grid;

%求对数谱ln=log(sq);

figure(3);

subplot(235);

plot(f,ln);

xlabel('频率(Hz)');

ylabel('对数谱');

title('白噪声对数谱');

grid;

%用IFFT恢复原始信号xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

figure(3);

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('通过IFFT转换的白噪声波形');

grid;

测井曲线fft matlab,Matlab编程实现FFT实践及频谱分析相关推荐

  1. matlab fftshift_matlab下实现FFT信号分析

    奈奎斯特定理: 对于信号分析,我们需要掌握一个定理: 在进行模拟/数字信号的转换过程中,当采样频率 fs.max大于信号中最高频率 fmax 的 2 倍时(fs.max > 2fmax),采样之 ...

  2. matlab2c使用c++实现matlab函数系列教程-fft函数

    全栈工程师开发手册 (作者:栾鹏) matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法: 1.下载动态链接库 2. ...

  3. 利用matlab对音频做FFT进行频谱分析

    利用matlab对音频的左右声道做频谱分析. syms y fs; syms in_put; in_put= 'C:\Users\getao\Desktop\立体声.wav' %in_put 为音频文 ...

  4. matlab fft实现dft,matlab实现dft和fft

    对任意长度的序列进行傅里叶变换 DFT 与 FFT 的运算时间比较 设计要求 利用 Matlab 或者 C 语言设计 DFT 和 FFT 程序,比较两种频谱分析方法的 计算速度,并与...... DF ...

  5. 如何避免FFT(matlab)计算傅里叶级数与傅里叶变换时存在的混叠(aliasing)和泄露(leakage)问题

    文章目录 前言 1. 周期信号的傅里叶级数 1.1 周期信号的多种傅里叶表示形式 1.2 周期信号傅里叶级数系数的计算 2 非周期信号的傅里叶变换 2.1 非周期信号的傅里叶变换 2.2 傅里叶级数与 ...

  6. DFT的计算、FFT的基础代码、FFT的横纵坐标问题(matlab)

    FFT的定义 FFT:快速傅里叶变换,是DFT的快速算法. DFT(Discrete Fourier Transform):离散傅里叶变换.在DTFT之后,将傅里叶变换的结果也进行离散化,就是DFT. ...

  7. matlab并行fft实现,matlab fft实现相关

    Matlab中用于计算自相关函数的指令是xcorr.比如矩阵A=[1 2 3]; xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000 自相关函数是信号间隔的函数, ...

  8. matlab fft反变换,Matlab实现FFT变换

    Matlab实现FFT变换 Matlab实现FFT变换(单边谱及双边谱)­ ­ 以前对于Fourier Transform从来没有细究,不管在LabVIEW还是Matlab里都有现成的FFT(快速Fo ...

  9. matlab对一行矩阵fft,MATLAB?fft命令

    %对y(1)取虚部 ================================================================ 函数fft的调用格式: *Y=fft(X) 返回应 ...

  10. 十分钟搞懂基-2 FFT原理及编程思想

    0.写在最前 写本文的目的一是为了帮人理清FFT算法思路,二是有几个疑问(在5总结部分提到)希望得到解答.看懂本文的基础:至少听说过.简单了解过傅里叶变换.离散傅里叶变换(DFT).基于时间抽取的基2 ...

最新文章

  1. 泰晤士最新排名出炉,这两所大学跌惨了
  2. 推荐65个以自然风光为背景的UI设计
  3. setleft android,android TextView的setCompoundDrawables()方法
  4. VTK:字形2D用法实战
  5. python在租房过程中的应用
  6. 判断线段和直线相交 POJ 3304
  7. html层次选择器例题,详解强大的jQuery选择器之基本选择器、层次选择器
  8. 【图解】透彻Java线程状态转换
  9. ext4 关闭延迟分配
  10. oracle 多路径 SAN,前言 - Oracle Solaris 管理:SAN 配置和多路径
  11. tomcat测试程序的安装
  12. 个人实践:总结方法论,提高做事效率
  13. 广州蓝景分享—「web前端素材」使用CSS动画效果(上)
  14. R语言t检验中手动计算t值和p值
  15. 超详细wordPress主题制作教程
  16. 网页引入谷歌字体_在网页中使用Google字体
  17. 项羽ol网站服务器,《项羽OL》今日开服 全新新服务器“巨鹿之战”开启
  18. 【微前端】591- 微前端在小米 CRM 系统的实践
  19. 百度地图android HD版,百度地图HD版
  20. POJ3414-Pots

热门文章

  1. laravel下载文件
  2. StataIC——协整检验与误差修正模型
  3. 安装LuaRocks
  4. label怎么换行 vb_VB中怎么换行 | 学步园
  5. AlphaGo增强式学习算法:实现‘高手指点’特效
  6. protel dxp教程 protel dxp经典视频教程
  7. Protel DXP2004 中文版 下载及安装
  8. c++笔记17之句柄类
  9. 基于FPGA的光口通信开发案例
  10. C++多线程函数_beginthread/_beginthreadex/CreateThread