离散傅里叶变换的一些理解和LTE基带信号生成的数学理解

2023-11-17

离散傅里叶变换(DFT):

 

快速傅里叶变换(FFT)是一种运用蝶形算子计算DFT的方法。

下面是matlab实现代码:

close all; clear;

fs=200;

N=256; %采样freq和数据点数

n=0:N-1;

t=n/fs; %时间序列

% x=0.5*sin(2*pi*15*t); %+2*sin(2*pi*40*t); %实信号

x=4*exp(j*2*pi*15*t)% +2*exp(-j*2*pi*40*t) + 2 + 4*i; %+ 4000+4000*i; %复数信号

y1=fft(x,N); %对信号进行快速Fourier变换

y2=fftshift(y1);

x_ifft1 = ifft(y1);

x_ifft2 = ifft(y2);

mag1=abs(y1); %求得Fourier变换后的amplitude

mag2=abs(y2);

f1=n*fs/N; %freq序列

f2=n*fs/N-fs/2;

subplot(4,1,1),plot(t,abs(x),'b'); %绘出随freq变化的amplitude

xlabel('time/s');

ylabel('amplitude');title('Figure1: time domain signal','color','b');grid on;

subplot(4,1,2),plot(f1,mag1,'b'); %绘出随freq变化的amplitude

xlabel('freq/Hz');

ylabel('amplitude');title('Figure2: usual FFT','color','b');grid on;

subplot(4,1,3),plot(f2,mag1,'b'); %绘出随freq变化的amplitude

xlabel('freq/Hz');

ylabel('amplitude');title('Figure3: FFT without fftshift','color','b');grid on;

subplot(4,1,4),plot(f2,mag2,'b'); %绘出随freq变化的amplitude

xlabel('freq/Hz');

ylabel('amplitude');title('Figure4: FFT after fftshift','color','b');grid on;

 

图中,信号由三个信号叠加起来, 15Hz的信号, -40Hz的信号,(2+4i)的直流分量。

Question 1) 如何理解负频率信号?频率不都应该是正的吗?

频率,原始定义是机械1秒内运动的次数。然而,到了二维平面,它的定义就扩充了,不再局限,而是用来描述旋转的快慢。这里就有了角频率,Ω=2πf,rad/s。既然是旋转,那么就有逆时针旋转和顺时针旋转,以逆时针旋转频率为正,那么顺时针旋转频率就为负频率了。因此,傅里叶变换中,负频率是有物理意义的,不是只有数学意义的东西。

2)为什么实数信号做完fft之后在正负频率轴各有一个峰值,而复数信号只有一个呢?

复信号fft推导:

 

实信号推导:

 

 

3. fftshift的作用?

fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。将零频点放到频谱的中间对于观察傅立叶变换是有用的。图3和图4对比发现, 做完fftshift之后,很容易看到-40Hz和15Hz的波峰。         

注意,如果想恢复时域信号,这必须是没有做fftshift的值,做fftshift只为便于观察频谱。

4)如果给输入信号加一个相位呢?怎么求这个相位?

实数相位可以用atan2(b, a)来求,复数相位??????

总结:

假设采样频率为Fs,采样点数为N,做FFT之后,某一点n(n从1开始)表示的频率为:Fn=(n-1)*Fs/N;该点的模值除以N/2就是对应该频率下的信号的幅度(对于直流信号是除以N)该点的相位即是对应该频率下的信号的相位。相位的计算可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi到pi。要精确到xHz,则需要采样长度为1/x秒的信号,并做FFT。要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现实的,需要在较短的时间内完成分析。解决这个问题的方法有频率细分法,比较简单的方法是采样比较短时间的信号,然后在后面补充一定数量的0,使其长度达到需要的点数,再做FFT,这在一定程度上能够提高频率分辨力。

IDFT变换:

LTE 信号:

LTE信号,先不考虑NCP 的情况,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

离散傅里叶变换的一些理解和LTE基带信号生成的数学理解 的相关文章

  • Matlab:不正确的索引矩阵参考(或智胜matlab)

    我希望能够写jasmine http pivotal github io jasmine 类似于 Matlab 中的测试 所以像 expect myfibonacci 0 toBe 0 expect myfibonacci 5 toBe 1
  • 如何从矩阵的每一行中减去一个向量? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将矩阵的每一行除以固定行 https stackoverflow com questions 4723824 how can i divide each row of a matrix by a
  • 计算向量中连续 1 和 0 的数量

    在 Matlab 中我有一个如下所示的向量 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 1 我现在要做的是统计这个向量中1的个数 连续的 1 算作 1 此外 我还想计算 1 之间 0 的平均值和中
  • MATLAB 引擎函数的输入参数

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 我的傅立叶逆变换中的尖峰

    我正在尝试在 MATLAB 中比较两个数据集 为此 我需要通过傅里叶变换数据来过滤数据集 对其进行过滤 然后对其进行逆傅里叶变换 然而 当我对数据进行逆傅里叶变换时 我在红色数据集的两端都出现了一个尖峰 图片显示了第一个尖峰 它在开始时应该
  • 在Matlab中使用中心切片定理实现滤波反投影算法

    我正在研究一种使用中心切片定理的滤波反投影算法作为家庭作业 虽然我理解纸上的理论 但在 Matlab 中实现它时遇到了问题 我得到了一个可以遵循的框架 但我认为我可能误解了一个步骤 这是我所拥有的 function img sampleFB
  • 优化数组压缩

    假设我有一个数组k 1 2 0 0 5 4 0 我可以按如下方式计算掩码m k gt 0 1 1 0 0 1 1 0 仅使用掩码 m 和以下操作 左移 右移 And Or 加 减 乘 我可以将 k 压缩为以下形式 1 2 5 4 以下是我目
  • MATLAB 图像锐化 - 使用(1-高斯低通滤波器)的高斯高通滤波器

    我试图通过设计高斯高通滤波器来锐化图像 我想利用高通滤波器相当于单位矩阵减去低通滤波器的事实来做到这一点 所以我执行了以下操作 image imread Question3 Data Cats jpg read image H 1 fspe
  • 使用 varargin (...) 时如何显示不同的函数用法?

    当您输入 Matlab 函数名称并打开大括号时 例如sum 在命令窗口中 将打开一个工具提示 显示此函数的所有可能用法 当我编写自己的接受函数时varargin 工具提示仅显示一个选项 而不是varargin puts e g myfunc
  • MATLAB 是否已有 YAML 库/解析器?

    我想使用 YAML 跨多种语言交流一些数据 将其视为 与语言无关的序列化 其中一种语言是 MATLAB 但我似乎找不到该语言的 YAML 库 我在 Google 上检查了 matlab yaml 和 matlab yaml parse 似乎
  • 将输出从符号数学 (sym) 转换为浮点型

    我的问题类似于这个问题 https stackoverflow com questions 11114101 how to convert mupad symbol i sqrt 1 to i in matlab 11114959 1111
  • 在 Matlab 中对列进行排序

    我有 2 列使用 textscan 导入的数据 数据看起来像这样 其中U is undetect and D is detect mydata 51 U 57 D 48 U 47 D my data 4x1 double 4x1 char
  • 图像增强 - 从书写中清除给定图像

    我需要清理这张照片 删除 清理我 的字样并使其变亮 作为图像处理课程作业的一部分 我可能会使用 matlab 函数 ginput 来查找图像中的特定点 当然 在脚本中您应该对所需的坐标进行硬编码 您可以使用 conv2 fft2 ifft2
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • matlab矩阵中求子矩阵的通用方法

    我正在寻找一种 好 方法来在更大的矩阵 任意维数 中找到矩阵 模式 Example total rand 3 4 5 sub total 2 3 1 3 3 4 现在我希望这样的事情发生 loc matrixFind total sub 在
  • Matlab 编辑器不使用 emacs 快捷方式

    Is there some way I can make the matlab integrated editor not use emacs shortcut but use more normal shortcuts such that
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma

随机推荐

  • Android 解析json数据

    花了两天的时间完成了一个简单的小程序 服务器端从数据库封装json 数据 客户端解析json数据后用listview 显示 现在做一个简单的梳理 一 服务器端从数据库中获取数据后封装成json数据 服务器端编程 连接数据库的过程就不上代码了
  • 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!

    一 又是一个可乐配赘婿的晚上 我和女朋友舒服的窝在沙发里 一边看爽剧一边傻笑 其实 我并不太喜欢看这种剧 但是为了陪女朋友 我还是乐此不疲 可能因为长期996 我的脑子已经坏掉了 就在女朋友一边大笑一边大喊好甜啊磕到啦 我用地图老爷爷看手机
  • 解决邮件附件乱码问题

    参考这个博客 https blog csdn net daiqinge article details 89970382或者https blog csdn net z69183787 article details 79238735 1 如
  • 神奇的python(六)之python的串口操作(pyserial)

    简介 最近项目突然要使用python串口操作 这不 查资料 翻文档 是时候写一份串口操作的简要用法 以后有时间可以使用pyqt再写个界面 弄个串口调试终端 1 安装pyserial库 pip install pyserial 2 pyser
  • 巅峰战舰服务器维护,怎么又维护 ?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 儿子马上就要过15岁生日了 爸爸问他生日礼物想要什么 儿子想了想说 男孩子想要的东西我都有了 唯一能想到的 就是一只用塑料做的鹦鹉玩具 爸爸很纳闷 塑料做的鹦鹉 真的就只要这个玩意 儿子点头 恩
  • SSM框架-小区物业管理系统(附源码和运行视频)

    文章目录 系列文章目录 前言 一 开发框架与业务需求 1 开发框架 2 开发环境 3 整体业务 二 项目结构以及页面展示 1 注册 登录页展示 2 首页 小区管理 3 房产 业主信息管理 4 停车位 服务管理 三 ssm框架配置以及代码包级
  • c 显示ftp服务器上的图像,ftp服务器上的图片怎样预览

    ftp服务器上的图片怎样预览 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具 将文件上传到云服务器 例如QQ exe 在本地主机和Windows云服务器上分别安装数据传输工具 将文件上传到云服务器 例
  • $route和$router的区别

    1 router是用来操作路由 route是用来获取路由信息 2 router是VueRouter的一个实例 他包含了所有的路由 包括路由的跳转方法 钩子函数等 也包含一些子对象 例如history 3 route是一个跳转的路由对象 路由
  • React中的事件处理

    原生中点击事件时onclick 在React中点击事件是onClick C是大写 1 所以事件都是被React封装了一次React封装一次 是为了更好的兼容性 2 React中的事件是通过事件委托方式处理的 委托给组件最外层的元素 例子 下
  • file not found: /usr/lib/libstdc++.dylib

    git clone https github com devdawei libstdc 进入到对应文件夹 sudo sh nstall Xcode 12 sh
  • YOLO——基于回归的目标检测算法

    YOLO You Only Look Once Unified Real Time Object Detection 这篇论文的内容并不多 核心思想也比较简单 下面相当于是对论文的翻译 YOLO是一个可以一次性预测多个Box位置和类别的卷积
  • 解决Ubuntu报错 E: Unable to locate package yum

    开门见山 Ubuntu的包管理工具是apt get 所以不必再安装yum 如果要安装其他包需要使用apt get命令 这里以locate命令为例 sudo apt get install mlocate 下文就是问题解决的全过程了 1 报错
  • uni-app:标签中对数据进行判断,看数据前中后是否含有需要的字符startsWith(),endsWith(),includes()

    效果图 核心代码 判断数据是否存在并且此数据是否以 开头
  • TCP/IP编程实现远程文件传输

    TCP IP编程实现远程文件传输 在TCP IP网络结构中 为了保证网络安全 网络人员往往需要在路由器上添加防火墙 禁止非法用户用ftp等安全危害较大的TCP IP协议访问主机 而有时系统维护人员需要用ftp将一些文件从中心机房主机传到前端
  • 【数据竞赛】Kaggle知识点:比赛类型介绍

    在Kaggle平台上 经常有好多个比赛可供选择 如下图所示 为正在进行比赛的截图 那么对于入门同学 从没参加过一次Kaggle比赛 如何选择一场适合的比赛呢 本文将对Kaggle平台上的比赛按照类型进行划分 并对每种类型的比赛进行介绍 总有
  • 1.1c/c++开源库清单

    以下我是从 资源网站 获取到的数据 关于 C 框架 库和资源的一些汇总列表 由 fffaraz 发起和维护 内容包括 标准库 Web应用框架 人工智能 数据库 图片处理 机器学习 日志 代码分析等 标准库 C 标准库 包括了STL容器 算法
  • “放弃 GitHub ,时机已到”,软件自由保护协会怒批!

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 诞生 14 年来 凭借完整协议支持 Git格式的版本库托管等优势 GitHub成为了最受开发者欢迎的代码托管平台 不过 近几年来 随着GitHub的一些转变 引发了行业内一些
  • 第一节:数据类型——null,undefined和布尔值

    JavaScript 的数据类型 共有六种 ES6 又新增了第七种 Symbol 类型的值 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 boolean 表示真伪的两个特殊
  • 矩阵求导网站

    https www matrixcalculus org
  • 离散傅里叶变换的一些理解和LTE基带信号生成的数学理解

    离散傅里叶变换 DFT 快速傅里叶变换 FFT 是一种运用蝶形算子计算DFT的方法 下面是matlab实现代码 close all clear fs 200 N 256 采样freq和数据点数 n 0 N 1 t n fs 时间序列 x 0