DFT的补0运算
在实际的DFT中,如果需要增加采样的密度。这里的采样是频域的采样。可以等到更加密集的谱。
如对于信号 x = [1, 1, 1, 1]做DFT如下图:
不零后的DFT, N = 8, N= 16, N= 32
结论:补零就是将原序列后增加0,使原序列增长。使DFT有更高密度的谱,但是没有给出一个更高分辨率的谱。因为没有任何新的信息附加到这个信号上,而仅仅是在数据添加额外的0, 为了要得到更高的分辨率的谱就必须获得更多的有效数。
为了证明结论:
xn = cos(0.48pi * n) + cos(0.52pi * n), 在n = [0: 10]加90个零的频谱,和直接n= [0:100]的频谱比较。在没有做DFT前,可以知道xn的频谱是两个脉冲。且脉冲的位置在0.48pi和0.52pi。
%corn 2014.11.13
clear; clc;
N = 10;
n = 0 : N;
x = cos(0.48 * pi * n) + cos(0.52 * pi * n);
k = 0 : N;
Wn = exp(-j* 2* pi / N);
nk = n' * k;
Wnnk = Wn .^ nk;
Xk = x * Wnnk;
magxk = abs(Xk);
subplot(3,1,1);
stem(n, magxk);
title('N = 10');
N = 100;
n = 0 : 100;
x = cos(0.48 * pi * n) + cos(0.52 * pi * n);
k = 0 : N;
Wn = exp(-j* 2* pi / N);
nk = n' * k;
Wnnk = Wn .^ nk;
x= [ x(1:1:11) zeros(1,90)]; %add 90 of 0
Xk = x * Wnnk;
magxk = abs(Xk);
subplot(3,1,2);
stem(n, magxk);
title('N = 10 and add 90 of 0');
x = cos(0.48 * pi * n) + cos(0.52 * pi * n);
Xk = x * Wnnk;
magxk = abs(Xk);
subplot(3,1,3);
plot(n, magxk);
title('N = 100');
可以明显的看出:在N=10,时和N= 100时的DFT是有明显差异的,这表明:N=10即频域的采样分辨率是2*pi/ 10 比 N = 100, 2*pi/ 100 有更多的混叠。而增加0只是增加了密度使之更平滑。如下图使用plot的频谱图。
比如最后在N = 100时再增加100个零它们的效果如下:
到此就可以知道:在原序列后加0,并没有得到更多的谱的信息,而是使相应的谱更加平滑。
DFT的补0运算的更多相关文章
- 为什么FFT时域补0后,经FFT变换就是频域进行内插?
应该这样来理解这个问题: 补0后的DFT(FFT是DFT的快速算法),实际上公式并没变,变化的只是频域项(如:补0前FFT计算得到的是m*2*pi/M处的频域值, 而补0后得到的是n*2*pi/N处的 ...
- 在js中做数字字符串补0
转自(http://blog.csdn.net/aimingoo/article/details/4492592) 通常遇到的一个问题是日期的“1976-02-03 HH:mm:ss”这种格式 ,我的 ...
- 关于用sql语句实现一串数字位数不足在左侧补0的技巧
在日常使用sql做查询插入操作时,我们通常会用到用sql查询一串编号,这串编号由数字组成.为了统一美观,我们记录编号时,统一指定位数,不足的位数我们在其左侧补0.如编号66,我们指定位数为5,则保存数 ...
- 在SQL中 给字符串补0方法
--第一种方法SELECT RIGHT('00000'+CAST(ID AS nvarchar(50)),5) FROM dbo.TableName --左边补0,如 00001,00039 SELE ...
- java 保留字符串数字的位数,不够前面补0
@Test public void test() { this.printToConsole(autoGenericCode("10011")); this.printToCons ...
- golang 前置补0
package main import ( "fmt" ) func main() { a := 1 fmt.Println(a) //前置补0 fmt.Printf(" ...
- input内强制保留小数点后两位 位数不足时自动补0
input内强制保留小数点后两位 位数不足时自动补0 小数点后位数超出2位时进行四舍五入 需引入jquery包 1.11.2版本 1 function xiaoshu(x) 2 { 3 var f = ...
- Java String字符串补0或空格
package cn.com.songjy; import java.text.NumberFormat; //Java 中给数字左边补0 public class NumberFormatTest ...
- ORACLE SQL前端补0的三种方式。
前端补0的三种方式. select lpad(sal,8,'0') from emp;select to_char(sal,'00000000') from emp;select substr('00 ...
随机推荐
- 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".'
引用:http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\Inv ...
- zabbix报警优化
常见rpc服务介绍 ---远程过程调用协议 常用的框架:阿里巴巴 Dubbo.微博 Motan.阿帕奇 thrift.谷歌 grpc Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架, ...
- 公有云厂商DDoS防护产品竞品分析——内含CC的一些简单分析,貌似多是基于规则,CC策略细粒度ip/url//ua/refer
公有云厂商DDoS防护产品竞品分析 from:http://www.freebuf.com/articles/network/132239.html 行文初衷 由于工作关系,最近接触了很多云上用户,对 ...
- 【IDEA】笔记
引言 IDEA是JAVA开发的一个神器,熟悉它能极大提高我们的开发效率.正所谓工欲善其事,必先利其器. 快捷键 快捷键 介绍 Ctrl + F 在当前文件进行文本查找 (必备) Ctrl + R 在当 ...
- python基础之socket编程(TCP三次握手和四次挥手)
TCP协议中中的三次握手和四次挥手 建立TCP需要三次握手才能建立,而断开连接则需要四次握手.整个过程如下图所示: 先来看看如何建立连接的. 首先Client端发送连接请求报文,Server段接受连接 ...
- Spring:org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class
很长时间没有使用Spring,Hibernate,Struts2等一些框架了,现在使用起来还是有点陌生,今天刚弄就在Tomcat在启动的时候是报的这个错误: org.springframework.b ...
- react: redux-devTools
import {composeWithDeTools} from 'redux-devtools-extension'; const bindMiddleware = middleware => ...
- jsp的运行内幕--Tomcat容器对自定义标签的解析过程
http://blog.sina.com.cn/s/blog_4adc4b090101daqb.html
- WebForms UnobtrusiveValidationMode 需要“jQuery”ScriptResourceMapping。
.net framework4.5开发中, Unobtrusive ValidationMode是一种隐式的验证方式,需要前端调用jquery来进行身份验证.且默认启用. 解决方法如下 方法一: 修改 ...
- 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境
一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...