同一段数据分别做傅里叶变化和逆变换的结果及分析

news2024/9/27 15:29:39
  • 已知有公式
    D F T : X [ k ] = ∑ n = 0 N − 1 x [ n ] e − j 2 π k n N , 0 ≤ k ≤ N − 1 DFT:Χ[k]=\sum_{n=0}^{N-1}x[n]e^{-\frac{j2\pi kn}{N}},0≤k≤N-1 DFTX[k]=n=0N1x[n]eNj2πkn0kN1
    I D F T : x [ n ] = 1 N ∑ k = 0 N − 1 X [ k ] e j 2 π k n N , 0 ≤ n ≤ N − 1 IDFT:x[n]=\frac{1}{N}\sum_{k=0}^{N-1}X[k]e^{\frac{j2\pi kn}{N}},0≤n≤N-1 IDFTx[n]=N1k=0N1X[k]eNj2πkn0nN1
  • 则对同一段数据 s ( a ) , 0 ≤ a ≤ A − 1 s(a),0\leq a\leq A-1 s(a),0aA1 做 DFT 和 IDFT,有
    D F T : X [ k ] = ∑ a = 0 A − 1 s [ a ] e − j 2 π k a N , 0 ≤ k ≤ A − 1 DFT:Χ[k]=\sum_{a=0}^{A-1}s[a]e^{-\frac{j2\pi ka}{N}},0≤k≤A-1 DFTX[k]=a=0A1s[a]eNj2πka0kA1
    I D F T : x [ n ] = 1 A ∑ a = 0 A − 1 s [ a ] e j 2 π a n N , 0 ≤ n ≤ A − 1 IDFT:x[n]=\frac{1}{A}\sum_{a=0}^{A-1}s[a]e^{\frac{j2\pi an}{N}},0≤n≤A-1 IDFTx[n]=A1a=0A1s[a]eNj2πan0nA1
    从公式结果上可见,对同一段数据做 DFT 和 IDFT,结果在幅度上相差 数据长度 倍的关系,相位上互为相反数。
  • 下面通过仿真进行验证上述结论。
clear;
clc;
clf;
close all;

%% [生成信号]
Fs=50;             % 采样频率
n=100;             % 采样点数
f1=15;             % 信号1的频率
f2=20;             % 信号2的频率
t=0:1/Fs:(n-1)/Fs; % 采样时间索引
x=1.56+2*sin(2*pi*f1*t+pi/2)+1.6*sin(2*pi*f2*t); % 采样后的信号

%%% DFT
y1=fft(x,n);
y1=[y1(1)/n,y1(2:n)*2/n]; % 幅度轴
f=(0:n-1)*Fs/n;           % 频率轴
%%% IDFT
y2=ifft(x,n);
y2=[y2(1)/n,y2(2:n)*2/n]; % 幅度轴
f=(0:n-1)*Fs/n;           % 频率轴

%% [FFT的频谱图]
subplot(2,2,1);
plot(f,abs(y1));
xlabel("频率");
ylabel("幅值");
title("FFT的频谱图");
subplot(2,2,2);
stem(f,  angle(y1)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel("频率");
ylabel("相位");
title("FFT的相位图");

%% [IFFT的频谱图]
subplot(2,2,3);
plot(f,abs(y2));
xlabel("频率");
ylabel("幅值");
title("IFFT的频谱图");
subplot(2,2,4);
stem(f,  angle(y2)*180/pi);   %绘制相频响应曲线,注意这将弧度转换成了角度
xlabel("频率");
ylabel("相位");
title("IFFT的相位图");

在这里插入图片描述

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

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

相关文章

超详细 | 模拟退火-粒子群自适应优化算法及其实现(Matlab)

作者在前面的文章中介绍了经典的优化算法——粒子群算法(PSO),各种智能优化算法解决问题的方式和角度各不相同,都有各自的适用域和局限性,对智能优化算法自身做的改进在算法性能方面得到了一定程度的提升,但算法缺点的解决并不彻底…

学生公寓智能电表控电系统的技术要求

学生公寓电表智能控电石家庄光大远通电气有限公司模块采用高精度计量芯片,的计量计费功能。 控制路数:可输出1~4路输出,每个回路都可以设置负载识别,定时断送过载功率等控电参数。 自动断电 :具有自动断电功能,可用电量为0时,应自动切断该分路电源 支持正…

创建Spring CloudDEMO流程

创建普通的maven工程作为父工程 然后设置字符集为UTF-8 再注解生效激活 java编译版本选择8 idea文件忽略(忽略乱七八糟的文件) *.hprof;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc;.idea;*.iml…

TencentOS3.1安装PHP+Nginx+redis测试系统

PHP和Nginx应用统一安装在/application下。 Nginx选用了较新的版本1.25.0 官网下载安装包,解包。执行如下命令编译: ./configure --prefix/application/nginx-1.25.0 --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_modu…

win系统电脑在线打开sketch文件的方法

自Sketch诞生以来,只有Mac版本。Windows计算机如何在线打开Sketch文件? 即时设计已经解决了你遇到的大部分问题,不占用内存也是免费的。 您可以使用此软件直接在线打开Sketch文件,完整预览并导出CSS、SVG、PNG等,还具…

解析JSON格式数据

解析JSON格式数据 比起XML,JSON的体积更小,语义性更差 传入的JSON文件如下 使用JSONObject private fun parseJSONWithJSONObject(jsonData: String) { try { val jsonArray JSONArray(jsonData) for (i in 0 until jsonArray.length()){ val j…

视频去除水印怎么弄?这几个实用方法分享给大家!

在我们观看或分享视频时,可能会遇到一些带有水印的视频。这些水印可能会影响我们的观看体验,或者在我们需要使用这些视频时造成不便。下面,我将为你介绍三种去除视频水印的方法。 方法一:使用记灵在线工具 记灵在线工具是一个非…

Leetcode:684. 冗余连接(并查集C++)

目录 684. 冗余连接 题目描述: 实现代码与解析: 并查集 原理思路: 684. 冗余连接 题目描述: 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的…

Python安装解释器

文章目录 一、下载Python解释器二. Linux环境的安装三. pycharm创建项目四、验证安装是否成功 一、下载Python解释器 首先,您需要从官方Python网站(https://python.org)下载Python解释器。Python的当前稳定版本是3.9.x系列。网站上提供了针对…

Anoym:一种以组合质押策略为特点的 LSD 设施

LSD(Liquid Staking Derivatives),即流动性质押衍生品,目前主要包括Lido、Frax等主要项目,它是伴随着ETH 2.0升级成长起来的DeFi衍生品赛道。ETH 2.0 以 POS 为共识机制,节点需要质押 32 ETH 才能参与网络维…

三分钟了解 RocketMQ消息队列

文章目录 基本概念详细介绍主题(Topic)消息类型(MessageType)消息队列(MessageQueue)消息(Message)消息视图(MessageView)消息标签(MessageTag&am…

【Linux后端服务器开发】Shell外壳

目录 一、Shell外壳概述 二、描述Shell外壳原理的生动例子 三、C语言模拟实现Shell外壳 一、Shell外壳概述 在狭义上 , 我们称Linux操作系统的内核为 Linux 在广义上 , Linux发行版 Linux内核 外壳程序 就比如市面上现在的redhat, centos, ubuntu等等我们耳熟能详的Linux发…

Apache Tomcat 信息泄露漏洞CVE-2023-28708处理

一、漏洞描述 Apache Tomcat软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annotations和 Jakarta Authentication 规范的开源实现 。Apache Tomcat实现了对Servlet和JavaServer Page(JSP&#xff09…

C++输出编译器名称和版本以及编译器位数、C/C++常见编译器

使用C输出编译器的名称、版本和位数 #include<iostream>int main() {#ifdef __clang__std::cout << "Compiler: Clang" << std::endl;std::cout << "Version: " << __clang_major__ << "." << __cla…

Anaconda配置可视化绘图库seaborn的方法

本文介绍在Anaconda的环境中&#xff0c;安装Python语言中&#xff0c;常用的一个绘图库seaborn模块的方法。 seaborn模块是基于Matplotlib的数据可视化库&#xff0c;它提供了一种更简单、更漂亮的界面来创建各种统计图形。seaborn模块主要用于数据探索、数据分析和数据可视化…

多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)

目录 守护线程 什么是守护线程 守护线程的使用 线程同步 实现线程同步 线程同步的使用 守护线程 什么是守护线程 在Java中有两类线程&#xff1a; User Thread(用户线程)&#xff1a;就是应用程序里的自定义线程。 Daemon Thread(守护线程)&#xff1a;比如垃圾回收线程&am…

串口问题案例分享

最近在调试一个新板子的时候&#xff0c;发现一个问题&#xff0c;板子使用的是一个国产的处理器芯片&#xff0c;表现为如果板子232串口的发送和接收与电脑串口连接时&#xff0c;板子可以正常进入系统。 但是如果板子与电脑只接232串口的发送信号&#xff0c;不接232串口的接…

Java入门--字面量

字面量 字面量是指在代码中直接表示特定的常量或值&#xff0c;可以是整数&#xff0c;浮点数&#xff0c;布尔值&#xff0c;字符等 演示 整数和小数 System.out.println(666);//小数System.out.println(99.5);快捷写法&#xff1a;666.sout 加回车 字符 字符必须用单引号…

docker安装es集群(三台)

文章目录 1、防火墙设置&#xff0c;开启所需端口2、创建目录&#xff0c;并更改目录权限3 设置系统参数4 启动5 安装ik分词器6 配置7 安装elasticsearch-head&#xff08;用于访问es&#xff0c;界面化工具&#xff09;8、 修改es中每次返回的数据数量参数&#xff08;默认100…

剑指offer55-II.平衡二叉树

我这个方法比较笨&#xff0c;用的是用的是昨天写的求二叉树深度的方法&#xff0c;先定义dfs求二叉树深度的方法&#xff0c;再定义cur方法&#xff0c;比较左子树和右子树的深度&#xff0c;递归比较每一个子树的左子树和右子树的深度&#xff0c;一旦有一个不平衡就把flag改…