fft算法matlab程序,FFT算法(用matlab实现).doc
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相关推荐
- matlab水印剪切攻击程序,可以运行的水印matlab程序(嵌入,提取,攻击测试等).doc
可以运行的水印matlab程序(嵌入,提取,攻击测试等).doc IMREAD YUANSHITUXIANGBMP SUBPLOT2,2,1IMSHOWTITLE 原始图像 WATERIMREAD W ...
- fdtd算法的matlab程序,FDTD算法的Matlab程序
<FDTD算法的Matlab程序>由会员分享,可在线阅读,更多相关<FDTD算法的Matlab程序(6页珍藏版)>请在人人文库网上搜索. 1.* 5= T$h;O % 3-D ...
- fdtd算法的matlab程序,一维FDTD的matlab程序(最新整理)
<一维FDTD的matlab程序(最新整理)>由会员分享,可在线阅读,更多相关<一维FDTD的matlab程序(最新整理)(2页珍藏版)>请在人人文库网上搜索. 1.一维 FD ...
- bfgs算法matlab程序,bfgs算法matlab代码
(对 Large -scale 问题) 对应文件 \\toolbox\\matlab\\funfun\\fminbnd.m \\toolbox\\optim\\sfminbx.m \\toolbox\ ...
- dijkstra算法matlab程序_Dijkstra算法例子
在Dijkstra算法代码下载本文涉及到的代码. 程序代码 Dijkstra算法的程序如下: function [d, p] = dijkstra(adj, s, t) % 使用dijkstra求最短 ...
- 爬山算法matlab程序,爬山算法和模拟退火算法
爬山算法 大体思路 爬山算法即是模拟爬山的过程,随机选择一个位置爬山,每次朝着更高的方向移动,直到到达山顶 具体操作 把当前的节点和要走的节点的值进行比较. 如果当前节点是最大的,那么不进行操作:反之 ...
- jacobi matlab程序,jacobi迭代法实验MATLAB程序数值分析
jacobi迭代法实验MATLAB程序数值分析 例1. 求线性方程组 得近似解.精确解为x*=[3,2,1]'. 解:对方程进行移项就得 记为Ax=b,或写为x=B0 x+f,其中 取初始值,代入原方 ...
- MATLAB程序详细解析,遗传算法——matlab代码解析
遗传算法--matlab代码解析 本文为学习B站老哥数学建模课程之后的一点笔记,图片源自web,代码源自老哥程序包,侵权删. 详细的遗传算法原理不再赘述,百度即可找到. 算法定义 遗传算法(GA)是模 ...
- 线性规划单纯形法的matlab程序,线性规划单纯形法的MATLAB实现_数学专业.doc
摘要:运筹学有着长远的发展历史,并且不断地发展变化出许多分支理论,线性规划是运筹学中专研较早,发展比较快速,对现实社会作用涵盖面广,理论系统趋于成熟的一个重要分支,虽然其只是运筹学的一小部分,但是作用 ...
- 用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 ...
最新文章
- springMVC源码学习之:springMVC响应请求的几种方法
- 初试CSS(二):选择器
- IE8不能正常登录网上银行的解决方法
- 中科院召开嫦娥四号任务动员会
- scala能进入交互模式但是无法执行本地文件、长时间卡住的问题
- matlab subplot同时显示多幅图像
- 听说,阿里“拆中台”了?
- 最新!数字人民币横空出世,5万深圳人瓜分1000万红包!
- 阿里沈询:分布式事务原理与实践
- Spring JSF集成
- python 运算符重载_《fluent python》第 13 章 正确重载运算符
- [瞎搞]JZOJ 3096 Hash函数
- 【CTF】题目名称:破译 题目类型:Web
- IDEA下载并安装SVN教程
- linux sdr 2832u软件无线电,使用R820T+RTL2832U玩软件无线电
- 配置svn忽略 node_modules等文件
- Unity 百度语音合成
- /etc/hosts文件中的::1是什么意思
- 效果超牛的基于声波通信和声音指纹的微信互动平台
- 【解决】g++: error trying to exec ‘cc1plus’: execvp