FFT算法(用matlab实现)

数字信号处理实验报告

(一)实验目的:理解离散傅立叶变换时信号分析与处理的一种重要变换,特别是FFT在数字信号处理中的高效率应用。(二)实验原理:

1、有限长序列x(n)的DFT的概念和公式:

2、FFT算法

调用格式是

X= fft(x)或 X=fft(x,N)

对前者,若x的长度是2的整数次幂,则按该长度实现x的快速变换,否则,实现的是慢速的非2的整数次幂的变换;对后者,N应为2的整数次幂,若x的长度小于N,则补零,若超过N,则舍弃N以后的数据。Ifft的调用格式与之相同。(三)实验内容

1、题一:若x(n)=cos(n*pi/6)是一个N=12的有限序列,利用MATLAB计算它的DFT并画出图形。

源程序:clc;

N=12;

n=0:N-1;

k=0:N-1;

xn=cos(n*pi/6);

W=exp(-j*2*pi/N);

kn=n'*k

Xk=xn*(W.^kn)

stem(n,Xk);

xlabel('k');

ylabel('Xk');

grid on;

也可用FFT算法直接得出结果,程序如下:

clc;

N=12;

n=0:N-1;

xn=cos(n*pi/6);

Xk=fft(xn,N);

stem(n,Xk);

xlabel('k');

ylabel('Xk');

grid on;

实验结果:

分析实验结果:

2、源程序:

clc;

fs=1000;

N=1024;

n=0:N-1;

t=n/fs;

x=sin(2*pi*50*t)+sin(2*pi*120*t)+rand(1,N);

y=fft(x,N);

mag=abs(y);

f=n*fs/N;

subplot(1,2,1),plot(f,mag);

xlabel('/Hz');

ylabel('振幅');title('N=1024');grid on;

subplot(1,2,2),plot(f(1:N/2),mag(1:N/2));

xlabel('频率/Hz');

ylabel('振幅');title('N=1024');grid on;

实验结果:

分析实验结果:

用FFT运算,将序列转变到频域上,虽然信号受到均值随机噪声的干扰,但分析频谱可清楚看到原信号的频率,50Hz 120Hz。3、题三:源程序:

clc;

load mtlb % Load data

N=512;

subplot(2,2,1)

plot([1:N],mtlb(1:N));

title('原始语音信号'); grid;

y=fft(mtlb(1:N));

subplot(2,2,2)

plot([1:N],y);

title('原始语音信号FFT变换'); grid;

y(y<1)=0;

subplot(2,2,3)

plot([1:N],y);

title('去掉幅值小于1的FFT变换值'); grid;

subplot(2,2,4)

plot([1:N],ifft(y));

title('重构语音信号'); grid;实验结果:

分析实验结果:

去掉幅值小于1的FFT变换值(四)心得体会:通过Matlab的仿真,形象地得出了离散序列。

fft算法matlab程序,FFT算法(用matlab实现).doc相关推荐

  1. matlab水印剪切攻击程序,可以运行的水印matlab程序(嵌入,提取,攻击测试等).doc

    可以运行的水印matlab程序(嵌入,提取,攻击测试等).doc IMREAD YUANSHITUXIANGBMP SUBPLOT2,2,1IMSHOWTITLE 原始图像 WATERIMREAD W ...

  2. fdtd算法的matlab程序,FDTD算法的Matlab程序

    <FDTD算法的Matlab程序>由会员分享,可在线阅读,更多相关<FDTD算法的Matlab程序(6页珍藏版)>请在人人文库网上搜索. 1.* 5= T$h;O % 3-D ...

  3. fdtd算法的matlab程序,一维FDTD的matlab程序(最新整理)

    <一维FDTD的matlab程序(最新整理)>由会员分享,可在线阅读,更多相关<一维FDTD的matlab程序(最新整理)(2页珍藏版)>请在人人文库网上搜索. 1.一维 FD ...

  4. bfgs算法matlab程序,bfgs算法matlab代码

    (对 Large -scale 问题) 对应文件 \\toolbox\\matlab\\funfun\\fminbnd.m \\toolbox\\optim\\sfminbx.m \\toolbox\ ...

  5. dijkstra算法matlab程序_Dijkstra算法例子

    在Dijkstra算法代码下载本文涉及到的代码. 程序代码 Dijkstra算法的程序如下: function [d, p] = dijkstra(adj, s, t) % 使用dijkstra求最短 ...

  6. 爬山算法matlab程序,爬山算法和模拟退火算法

    爬山算法 大体思路 爬山算法即是模拟爬山的过程,随机选择一个位置爬山,每次朝着更高的方向移动,直到到达山顶 具体操作 把当前的节点和要走的节点的值进行比较. 如果当前节点是最大的,那么不进行操作:反之 ...

  7. jacobi matlab程序,jacobi迭代法实验MATLAB程序数值分析

    jacobi迭代法实验MATLAB程序数值分析 例1. 求线性方程组 得近似解.精确解为x*=[3,2,1]'. 解:对方程进行移项就得 记为Ax=b,或写为x=B0 x+f,其中 取初始值,代入原方 ...

  8. MATLAB程序详细解析,遗传算法——matlab代码解析

    遗传算法--matlab代码解析 本文为学习B站老哥数学建模课程之后的一点笔记,图片源自web,代码源自老哥程序包,侵权删. 详细的遗传算法原理不再赘述,百度即可找到. 算法定义 遗传算法(GA)是模 ...

  9. 线性规划单纯形法的matlab程序,线性规划单纯形法的MATLAB实现_数学专业.doc

    摘要:运筹学有着长远的发展历史,并且不断地发展变化出许多分支理论,线性规划是运筹学中专研较早,发展比较快速,对现实社会作用涵盖面广,理论系统趋于成熟的一个重要分支,虽然其只是运筹学的一小部分,但是作用 ...

  10. 用matlab程序表示三角形序列,MATLAB程序举例带注释

    1.绘制云图 Ex=18 En=2 He=0.2 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x ...

最新文章

  1. springMVC源码学习之:springMVC响应请求的几种方法
  2. 初试CSS(二):选择器
  3. IE8不能正常登录网上银行的解决方法
  4. 中科院召开嫦娥四号任务动员会
  5. scala能进入交互模式但是无法执行本地文件、长时间卡住的问题
  6. matlab subplot同时显示多幅图像
  7. 听说,阿里“拆中台”了?
  8. 最新!数字人民币横空出世,5万深圳人瓜分1000万红包!
  9. 阿里沈询:分布式事务原理与实践
  10. Spring JSF集成
  11. python 运算符重载_《fluent python》第 13 章 正确重载运算符
  12. [瞎搞]JZOJ 3096 Hash函数
  13. 【CTF】题目名称:破译 题目类型:Web
  14. IDEA下载并安装SVN教程
  15. linux sdr 2832u软件无线电,使用R820T+RTL2832U玩软件无线电
  16. 配置svn忽略 node_modules等文件
  17. Unity 百度语音合成
  18. /etc/hosts文件中的::1是什么意思
  19. 效果超牛的基于声波通信和声音指纹的微信互动平台
  20. 【解决】g++: error trying to exec ‘cc1plus’: execvp

热门文章

  1. bootdo跳sign in页面
  2. 火狐firebug,firepath以及Selenium IDE插件安装方法
  3. 【Scratch画图100例】图40-scratch实心五角星 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例
  4. 如何在整个数据库中查寻一条数据?
  5. xampp修改mysql默认端口需要修改的地方
  6. html静态页面如何复用,一种前端页面模板复用的方法与流程
  7. 真实网络环境下使用易邮搭建网络邮件服务器并测试通过
  8. 在eclipse环境下配置OpenCV环境
  9. docker安装禅道
  10. CAD常用命令大全(快捷键和命令说明)