数字信号||快速傅里叶变换(FFT)(4)

news2025/1/11 18:29:48

实验四  快速傅里叶变换(FFT)

一、实验目的

(1)加深对快速傅里叶变换(FFT)基本理论的理解。
(2)了解使用快速傅里叶变换(FFT)计算有限长序列和无限长序列信号频谱的方法。
(3)掌握用MATLAB语言进行快速傅里叶变换时常用的子函数。

二、实验涉及的MATLAB子函数
1.fft
功能:一维快速傅里叶变换(FFT)。
调用格式:y=fft(x);利用FFT算法计算矢量x的离散傅里叶变换,当x为矩阵时,y为矩阵x每一列的FFT。当x的长度为2的幂次方时,则fft函数采用基2的FFT算法,否则采用稍慢的混合基算法。

y=fft(x,n);采用n点FFT。当x的长度小于n时,fft函数在x的尾部补零,以构成n点数据;当x的长度大于n时,fft函数会截断序列x。当x为矩阵时,fft函数按类似的方式处理列长度。

三、实验原理

1.用MATLAB提供的子函数进行快速傅里叶变换
从理论学习可知,DFT是唯一在时域和频域均为离散序列的变换方法,它适用于有限长序列。尽管这种变换方法是可以用于数值计算的,但如果只是简单的按照定义进行数据处理,当序列长度很大时,则将占用很大的内存空间,运算时间将很长。

快速傅里叶变换是用于DFT运算的高效运算方法的统称,FFT只是其中的一种。FFT主要有时域抽取算法和频域抽取算法,基本思想是将一个长度为N的序列分解成多个短序列,如基2算法、基4算法等,大大缩短了运算的时间。
MATLAB中提供了进行快速傅里叶变换(FFT)的子函数,用fft计算DFT,用ifft计算IDFT。

四、实验任务

(1) 认真阅读实验原理,明确本次实验任务,读懂例题程序,了解实验方法,结合基本原理理解每一条语句的含义。
(2) 运行例题程序,编写实验程序。
(3)列写调试通过的实验程序,打印或描绘实验程序产生的图形和数据。

 例14-1 已知一个长度为8点的时域离散信号,n1=0,n2=7,在n0=4前为0,n0以后为1。对其进行FFT变换,作时域信号及DFT、IDFT的图形。
  解 程序如下:
n1=0;n2=7;n0=4;
n=n1:n2;N=length(n);
xn=[(n-n0)>=0];          %建立时域信号
subplot(2,2,1);stem(n,xn);
title(¢x(n)¢);

k=0:N-1;
Xk=fft(xn,N);%用FFT计算信号的DFT
subplot(2,1,2);stem(k,abs(Xk));
title(¢Xk=DFT(x(n))¢);
xn1=ifft(Xk,N);%用IFFT计算信号的IDFT
subplot(2,2,2);stem(n,xn1);
title(¢x(n)=IDFT(Xk)¢);
  运行结果如图14-1所示。

n1=0;n2=7;n0=4;

n=n1:n2;N=length(n);

xn=[(n-n0)>=0];          %建立时域信号

subplot(2,2,1);stem(n,xn)

title('x(n)');

k=0:N-1;

Xk=fft(xn,N);%用FFT计算信号的DFT

subplot(2,1,2);stem(k,abs(Xk));

title('Xk=DFT(x(n))');

xn1=ifft(Xk,N);%用IFFT计算信号的IDFT

subplot(2,2,2);stem(n,xn1);

title('x(n)=IDFT(Xk)');

                图14-1 例14-1用FFT求有限长序列的傅里叶变换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸟哥的Linux私房菜(三)之环境开发工具篇

文章目录 Linux软件包管理器 - yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传及其云服务器之间互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行模式各命令汇总vim替换模式各命令汇总…

快速幂的求解方法(位运算)

需要求解幂运算的解法,可以将需要运算的内容进行判别,众所周知,幂就是指数,就是将底数乘以自身完成n次自相乘,那么就可以幻化为他的幂的简化计算; 以二进制为例,你要求,即可以看作是…

win10系统通过docker部署pytorch的GPU环境

命名实体有关文章参考这篇文章 中文地址命名实体识别训练和预测 win10系统安装cuda环境参考这篇文章 搭建Pytorch的GPU环境超详细 文件结构 准备环境 (1)、安装cuda环境 (2)、安装docker 1、创建基础镜像,安装pytorch和python dockerfile # 使用适当的基础镜像 FROM…

安全防护软件的必要性:从微软蓝屏事件谈起

最近微软遭遇了的大规模蓝屏事件,让全球很多用户措手不及。这次事件告诉我们,保护我们的电脑和数据,安全防护软件是多么重要。 微软蓝屏事件源于网络安全公司CrowdStrike的技术更新错误,导致全球范围内大量Windows用户系统崩溃&a…

一元二次方程编程求解过程+题目

输入 输入的第一行包含两个正整数 T,M,分别表示方程数和系数的绝对值上限。 接下来 T 行,每行包含三个整数 a,b,c。 输出 输出 T 行,每行包含一个字符串,表示对应询问的答案,格式如题面所述。 每行输出的字符串中…

【netty系列-06】深入理解select、poll和epoll多路复用的区别

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

分布式架构网络通信(RPC,RMI) 03

文章目录 1. 基本原理2. RPC 远程过程调用3. RMI 远程方法调用4. RMI代码实现4. BIO、NIO、AIO4.1 同步和异步4.2 阻塞和非阻塞4.3 BIO4.4 NIO4.5 AIO 1. 基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看&am…

WSL桥接网络配置

仅做记录与分享,平台版本等不同无法指导更多。 一、需求 ubuntu虚拟机(WSL)桥接win11并且能联通外网(百度之类) 二、环境: 版本 Windows 11 专业版 版本号 23H2 安装日期 ‎2024/‎6/‎20 操作系统版本…

Mysql 集群搭建 05

文章目录 1. Mysql主从复制集群搭建1.1 主库配置1.2 从库配置 2. 分库分表2.1 拆分策略2.2 实现技术2.2.1 MyCat概述2.2.2 MyCat入门2.2.3 配置 schema.xml 3. 双主双从4. 双主双从读写分离 1. Mysql主从复制集群搭建 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志…

有什么开放式耳机比较好用?耳机选购指南附赠五款开放式耳机推荐!

现在的耳机市场真的越来越多元了,最近的开放式耳机也是越来越火了,很多小伙伴都在后台开始问我,到底要怎么样才能选到一款比较合适自己的开放式耳机呢?开放式耳机现在这么多品牌,这么多的型号,真的很难选择…

如何评估自动化测试的效益

目录 自动化测试实施成本 自动化前期开发成本包括: 后期维护成本包括: 自动化测试执行次数 自动化测试实施成本比 其中“自动化测试收益”可能包括: “自动化测试成本”包括但不限于: 测试稳定性 可扩展性和可维护性 自动…

java拼接字符串的四种方法StringBuilder、StringBuffer、StringJoiner、String.join(x,x )

1.直接复制以下代码运行查看运行结果 import java.util.ArrayList; import java.util.List; import java.util.StringJoiner;public class Test {public static void main(String[] args) throws Exception {List<String> strs new ArrayList<>();strs.add("…

“等保测评:如何进行有效的安全漏洞管理与网络安全法规遵从“

随着网络环境的复杂性增加&#xff0c;安全漏洞管理成为企业信息安全管理体系中的关键环节。等保测评要求企业具备发现、评估、修复和监控安全漏洞的能力&#xff0c;以保障信息系统的安全稳定运行。本文将围绕“等保测评&#xff1a;如何进行有效的安全漏洞管理”这一主题&…

qrcode生成二维码并下载【带logo图标】【带文字描述】

qrcode官网地址&#xff1a;http://jeromeetienne.github.io/jquery-qrcode/ 结果图&#xff1a; 不带文字 带文字 遇到问题&#xff1a; 1、中文乱码&#xff1a;需要先将中文字体转码。 2、qrcode.js生成的二维码是没有白边的&#xff0c;需要重新绘制边框logo文字 3、将生成…

IoTDB 入门教程 实战篇④——C#示例(开源)

文章目录 一、前文二、新建C#项目三、NuGet安装四、示例源码五、查询数据六、参考 一、前文 IoTDB入门教程——导读 本文详细阐述了如何通过一个C#项目成功连接到IoTDB时序数据库&#xff0c;进而展示了如何向该数据库高效地写入数据以及执行精确的数据查询操作。 此示例旨在为…

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ 报错解决办法

1.查找 libstdc.so.6* find / -name libstdc.so.6*2.copy一个libstdc.so.6.0.19到/usr/lib64/下 cp /usr/lib64/libstdc.so.6 /usr/lib64/3.创建软连接 ln -sf /usr/lib64/libstdc.so.6.0.31 /usr/lib64/libstdc.so.6完毕&#xff01;

RISC-V (四)内存管理

本章目的&#xff1a; 对内存进一步的管理&#xff0c;实现动态的分配和释放。 实现page级别的内存分配和释放。 内存管理分类 -自动管理内存-栈&#xff08;stack&#xff09; -静态内存-全局变量/静态变量。放在数据段里面。 -动态管理内存-堆&#xff08;heap&#xff09;…

【Docker】LXC 容器操作实战

一、实战目的 通过 lxc 来完成容器的创建&#xff0c;体会容器并了解 docker 并不是容器的唯一实现。 自 docker 0.9 版本起&#xff0c;docker 除了继续支持 LXC 外&#xff0c;还开始引入自家的 libcontainer&#xff0c;试图打造更通用的底层容器虚拟化库。如今的 docker…

【EI稳定检索】第二届能源与化学工程国际会议(EACE 2024)

第二届能源与化学工程国际会议 2024 International Conference on Energy and Chemical Engineering 【1】会议简介 第二届能源与化学工程国际会议是一个旨在促进能源科学与化学工程领域学术交流与合作的重要平台。会议汇集了全球范围内的专家学者、研究人员及行业代表&#xf…

77.SAP ME - 数据库架构

目录 1.SAP ME的数据库 2.SAPMEINT的数据库 3.SAPMII的数据库 4.基于MSSQLSERVER或ORACLE的架构 5.基于HANA的架构 - 无ODS 1.SAP ME的数据库 WIP&#xff1a;在实时事务期间&#xff0c;SAP ME 在“在制品” (WIP) 数据库表中存储数据。ODS&#xff1a;可操作数据存储 (…