全相FFT

作者:桂。

时间:2017-12-02  23:29:48

链接:http://www.cnblogs.com/xingshansi/p/7956491.html 


一、相位提取

以正弦信号为例,x = sin(2pi*f*t+pi),希望提取phi:

思路1:通过Hilbert变化解决

思路2:借助FFT,利用插值思想,估计Phi;

思路3:借助全相FFT(apFFT, all phase FFT)实现。

思路三可提取信号相位,这一点FFT做不到,而相位信息通常可判断相位调制类型,可用于情报的脉内检测。

全相FFT思路:

  • 选定N点窗,如hanning
  • 窗函数自相关,并归一化
  • 对2N-1序列x(n)加窗,
  • 将2N-1个点,每间隔N点相加
  • FFT实现

二、仿真验证

clc;clear all;close all;fs = 1e9;
fo =  200e6;
t = 0:1/fs:1023/fs;
tao = 0.3/3e8*sind(45);
SNR = 20;
ch1 = awgn(sin(2*pi*t*fo),SNR) ;
ch2 = awgn(sin(2*pi*t*fo + 2*pi*tao*fo),SNR);
% ch1 = sin(2*pi*t*fo) ;
% ch2 = sin(2*pi*t*fo + 0.5);
pha = angle(hilbert(ch2))-angle(hilbert(ch1));
figure()
subplot 211
plot(t*fs,pha);
subplot 212
plot(t(1:512)*fs,abs(fft(ch1(1:512))),'r--');hold on;
%FFT提取相位
pha1 = angle(fft(ch1(1:512)).*fft(ch2(1:512)));
figure()
subplot 211
plot(t(1:512)*fs,pha1);
subplot 212
plot(t(1:512)*fs,abs(fft(ch1(1:512))),'r--');hold on;
%apFFT提取相位
win = hanning(512)';
win1 = conv(win,win);
win1 = win1/sum(win1);
y1 = ch1(1:1023).*win1;
y2 = ch2(1:1023).*win1;
out1 = [0,y1(1:511)]+y1(512:1023);
out2 = [0,y2(1:511)]+y2(512:1023);
pha2 = angle(fft(out1).*conj(fft(out2)));
figure()
subplot 211
plot(t(1:512)*fs,pha2);
subplot 212
plot(t(1:512)*fs,abs(fft(ch1(1:512))),'r--');hold on;
[~,pos] = max(abs(fft(ch1(1:512))));
[pha2(pos) mean(pha) ;-pi+ 2*pi*tao*fo  2*pi*tao*fo]
theta_est = asind((pha2(pos))/2/pi/fo/0.3*3e8)+90;
abs(theta_est-45)

 

另外,频谱细化,可借助zoom-FFT:

fs = 2048;
T = 100;
t = 0:1/fs:T;
x = 30 * cos(2*pi*110.*t) + 30 * cos(2*pi*111.45.*t) + 25*cos(2*pi*112.3*t) + 48*cos(2*pi*113.8.*t)+50*cos(2*pi*114.5.*t);
[f, y] = zfft(x, 109, 115, fs);
plot(f, y);function [f, y] = zfft(x, fi, fa, fs)
% x为采集的数据
% fi为分析的起始频率
% fa为分析的截止频率
% fs为采集数据的采样频率
% f为输出的频率序列
% y为输出的幅值序列(实数)f0 = (fi + fa) / 2;              %中心频率
N = length(x);                 %数据长度r = 0:N-1;
b = 2*pi*f0.*r ./ fs;               
x1 = x .* exp(-1j .* b);          %移频bw = fa - fi;                                       B = fir1(32, bw / fs);             %滤波 截止频率为0.5bw
x2 = filter(B, 1, x1);               c = x2(1:floor(fs/bw):N);           %重新采样
N1 = length(c);
f = linspace(fi, fa, N1);
y = abs(fft(c)) ./ N1 * 2;                         
y = circshift(y, [0, floor(N1/2)]);            %将负半轴的幅值移过来
end

  

参考:Digital Receiver-based Electronic Intelligence System Configuration for the Detection and Identification of Intrapulse Modulated Radar Signals

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

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

相关文章

现金贷合法吗?

说到现金贷,大家估计都听说过,甚至使用过,因为最近现金贷很火,整顿也很火,新闻充斥了各种平台。现金贷可以说让人欢喜让人优,喜的是,现金贷门槛很低,让那些借钱无门的朋友找到了一个…

I2C接口

I2C接口 I2C总线是一种简单的方法来连接多个芯片,特别是fpga / cpld。 I2C总线的特点 除了电源和接地外,只使用2根电线(命名为“SDA”和“SCL”)可以在同一总线上支持超过100个设备(总线上的每个设备都有一个单独可访问的地址)多主机(例如,两个cpu可以很容易地共享相同的I…

不行是谁决定的呢,明明你眼前就有这么多的可能啊

插画:排骨chop -1- 最近事情繁杂,总觉得精力跟不上,加之天气骤变,有点小感冒,吃了药就想睡觉,躺在床上,回顾最近的几个月,脑子里飘过最多的一句话就是:“坚持就是胜利。…

计算机原码、反码、补码详解

注:之前查找了关于原码、反码、补码的相关资料,张子秋的博客:原码, 反码, 补码 详解讲的比较透彻。为了方便,现将其转载至此,版权归原作者所有。更加深入的分析,可以参考作者的原文。 本文大部分内容来源于…

EPP (Enhanced Parallel Port 增强型并口)

EPP (Enhanced Parallel Port 增强型并口) EPP使与PC的通信快速和容易。 这里我们使用Pluto-P FPGA板与启用epp的PC通信。 EPP是IEEE 1284(并行端口标准)的一部分。 IEEE 1284还定义了SPP和ECP,但EPP提供了两者的最佳特性,即速度和简单性。 EPP的主要特点是: 通过并行端口…

公积金10万元,为何却不能贷款买房?

近日有一朋友,自己和老公公积金加在一起已经超过10万元,可是想用公积金去办理贷款的时候却被拒绝了,这到底是怎么回事呢?其实类似这样的案例最近在很多城市都有发生,继海南停止执行装修提取住房公积金政策之后&#xf…

现金贷平台倒闭后,借的钱是否可以不还?

目前火热的现金贷遭到一盆冷水,国家已经开始着手大力整顿那些不合规的现金贷,凡是没有获得相关放贷资质的就不能从事现金贷业务。在监管重拳整顿之下,很多现金贷已经开始吃不消,甚至有的面临倒闭的风险。11月份,就有媒…

好用的Perl包 Class::Ref

包的链接 https://metacpan.org/pod/Class::Ref 网页上介绍是 Class::Ref - Automatic OO wrapping of container references 就是将一个哈希、数组引用到一个 package 中来使用。 下面给出一个例子: #!/usr/bin/perluse FindBin qw($RealBin); use lib "$…

以太网UDP帧发包设计

以太网UDP帧发包设计 RTL8211 是一片 10M/100M/1000M 自适应以太网收发器,提供 MII/GMII/RGMII 接口的 MAC 连接。 下图为 RTL8211 与 FPGA 的连接关系。 以太网MAC层(媒体介入控制层)接口介绍 MII 接口 PHY是物理接口收发器&#xff0…

如何学习

读百度学术“机长夫人”的《研究生毕业后,才知道什么是真正的学习》后的笔记和感想 关于学习学习是什么?学习是通过各种途径获得知识和技能的过程。它只是过程和手段,而绝不应该成为目的,它最终是为了改变行为,升级自己…

Perl split字符串分割函数用法指南

本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中。这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上。 Perl split函数可…

为什么你总是申请不到大额贷款?

有一个客户反映,近段接近年底,生意周转需要大量的资金,于是他找到了一家贷款公司申请贷款,可是贷款审批下来之后才发现,贷款公司给他批的额度只有2万元,与他心里预期的20万有很大的差距。于是他就怀疑&…

以太网通信协议

以太网通信协议 以太网数据格式

小心,信用卡销卡后,竟然变成黑名单!

信用卡现在很多人都在用,而且大部分人持有的卡片不仅仅一张,有很多人都是持有好几家银行的信用卡,但是卡多了有时候也是一种麻烦,稍微不留意就造成逾期了,因此有些人会选择把不常用的信用卡消掉。但是销卡有时候也不是…

verilog中的综合与不可综合

1)所有综合工具都支持的结构:always,assign,begin,end,case,wire,tri,aupply0,supply1,reg,integer,default,f…

贷款被拒,因为你的征信黑洞太多

去贷款,征信大家都知道很重要,想要获得贷款审批,或者提高贷款额度,一个良好的信用必不可少。因此贷款被拒有很大的可能性是跟征信太差有关,如果征信记录上有以下信息,基本就跟贷款无缘了。(1&am…

信号输出库

信号输出库 文件及工作空间模块

学会放松,也是一项了不起的技能!

-1-读此文前先放一个小测试,大家不妨试一下,答案会在文末给出。写文已一年有余,但都停留在兴趣爱好的层面,虽说兴趣是最好的老师,但终究缺乏专业的培训。报名参加了土豆姐的书评写作课,希望可以系统地学习相…

数字IC设计经典书籍

1 《Verilog HDL高级数字设计》 中文版和原著。这本书本人以为是讲Verilog方面的最好的一本书,看完此书后,相信大家的code水平会有很大提高。书中例子及其丰富,涵盖了RISC、UART、异步FIFO、数字信号处理、乘法器和触发器,其中一章…

频分复用(Frequency Division Multiplexer)

作者:桂。 时间:2017年12月19日20:43:04 链接:http://www.cnblogs.com/xingshansi/p/8067839.html 前言 主要记录基本的频分复用原理,以及仿真实现。 一、频分复用原理 频分复用FDM: 通常x1..4(t)可以是同一个序列的串并转化&am…