最近学习王兆华教授的全相位FFT方面的知识,对于全相位时移相位差法有点疑问,望高手们解答。

全相位时移相位差法的采样长度为3N-1,倘若将其分为三段:1~N、N+1~2N-1、2N~3N-1,来模拟一下实际采样中噪声干扰可能带来的偏差。

设定三段的频率、相位相同,但是幅值取不同值(保证了频谱的连续性),然后按照附录3的原理性程序做全相位FFT,并对最后的结果分析:

结果的频率和相位没什么好说的,主要是结果中幅值一项基本就等于前两段数据(1~N、N+1~2N-1)理论幅值的平均值,而第三段数据(2N~3N-1)幅值的变化对结果基本没什么大的影响。换句话说,全相位时移相位差法所得的结果基本等于前两段数据FFT的平均值,而几乎与第三段无关,这是为什么???而平常FFT做例如10个周波的FFT,那么结果一定等于各个周波FFT的平均值(已证明)。那么全相位第三段数据(2N~3N-1)的突然跳变会对全相位结果无太大的影响,求解释?!!

实验代码如下:

%附3 apFFT时移相位差法校正程序

close all;clear all;clc;

N=1024;

FSX=5;

fs=FSX*N;

t1=-N+1:0;

t2=1:N-1;

t3=N:2*N-1;

f=50;

ph=90;

A1=120;A2=60;A3=10000;%试图改变A1、A2、A3的值...

s1=A1*cos(2*pi*t1*f/fs+ph*pi/180);

s2=A2*cos(2*pi*t2*f/fs+ph*pi/180);

s3=A3*cos(2*pi*t3*f/fs+ph*pi/180);

ss=[s1,s2,s3];

win=hanning(N)';win1=hann(N)';

win2=conv(win,win1);

win2=win2/sum(win2);

w=pi*2;

s1=ss(1:2*N-1); %第1组(2N-1)个数据

y1=s1.*win2;

y1a=y1(N:end)+[0 y1(1:N-1)];

out1=fft(y1a,N);

a1=abs(out1);

p1=mod(phase(out1),2*pi);

s2=ss(1+N:3*N-1); %第2组(2N-1)个数据

y2=s2.*win2;

y2a=y2(N:end)+[0 y2(1:N-1)];

out2=fft(y2a,N);

a2=abs(out2);

p2=mod(phase(out2),2*pi);

rr=round(f/FSX);

dp=p2(rr+1)-p1(rr+1);

dph=mod(dp,2*pi); %由于频率较小,为减小噪声信号的干扰,作如下改进频率和幅值

if dph>pi %dph即为两序列谱峰线间的相位差,(0~2*pi)

dph=dph-2*pi;

elseif dph

dph=dph+2*pi;

end

g0=dph/pi/2;

if g0==0

h=2;

else h=2*pi*g0.*(1-g0.*g0)./sin(pi*g0);

end

AA=abs((h.^2).*a1)/2;

fff=(rr+g0)*FSX

aaa=AA(rr+1)

ppp=p1(rr+1)*180/pi

结果:fff =  50.0251        aaa =  90.0058           ppp =  89.5443

即幅值aaa为前两段数据幅值(120、60)的平均值,改变其他数据同理。我想知道,第三段数据干什么去了???

全相位fft matlab,全相位FFT问题——全相位时移相位差法 请教!!!相关推荐

  1. matlab ifft频率分辨率,[FFT] matlab中关于FFT的使用(理解频率分辨率、补零问题)

    [FFT] matlab中关于FFT的使用(理解频率分辨率.补零问题).txt我这人从不记仇,一般有 仇当场我就报了.没什么事不要找我,有事更不用找我!就算是believe中间也藏了一个lie! 我那 ...

  2. STM32F103+全彩LED显示屏+万年历闹钟+FFT音频频谱制作

    目录 1.硬件总体框图 2.材料准备 3.IO口的连接 4.自制的模块 5.源程序及其相关模块资料 6.最终效果演示 1.硬件总体框图 工作原理:电脑,手机等外部设备3.5mm耳机孔输出音频信号,经过 ...

  3. 深入浅出解释FFT(四)——fft分析信号频率和相位

    很基础的问题往往很重要,做仿真时候有一个点的差错都会导致结果的错误.在网上找了前人写的东东,总结下希望对大家有帮助,让大家少走一些弯路. 1.  信号的时域采样点N和频域采样点数相同 %####### ...

  4. fft 相位谱_基于级联FFT的广义互相关算法在声源定位中的应用

    杨韬 余文辉 曹申 2020-09-30 Wednesday 针对2020年第十五届全国大学生智能车竞赛信标组关于声音信标的识别,需要采集声音信号和FM信号,通过声音信号和FM信号互相关进行距离检测和 ...

  5. Matlab中N是什么意思,MATLAB中y=FFT(X,N)中的N是什么意思

    matlab傅里叶变换中fft(x,n),x,n分别是什么含义? fft(x,n)是一维快速傅里叶变换,x相当于信号,n是变换点数.离散傅里叶变换DFT的快速算法就是FFT. matlab中FFT函数 ...

  6. 小试牛刀--我的快速离散傅里叶变化matlab函数(FFT)

    小试牛刀--我的快速离散傅里叶变化matlab函数(FFT) 想法来源 例子分析 函数说明 代码展示 想法来源 我在实验室里使用示波器观察实验数据的波形时,有时需要对实验数据进行傅里叶变换,观察其中的 ...

  7. matlab中 y =ft(x)的意思,matlab中y=fft(x)语句的意思

    matlab傅里叶变换中fft(x,n),x,n分别是什么含义? fft(x,n)是一维快速傅里叶变换,x相当于信号,n是变换点数.离散傅里叶变换DFT的快速算法就是FFT. matlab中FFT函数 ...

  8. 零相位滤波matlab,什么叫零相位滤波器(最小相位滤波器)

    本文主要介绍什么是阶段,阶段给了我们什么启示?什么是相位滤波,相位滤波在整个声音系统中起着什么重要的作用.在本文的最后,我们将通过一个典型的相位滤波调试案例,与朋友们分享分频系统中相位均衡调试的重要性 ...

  9. 离散系统模型的辨识matlab程序,基于MATLAB的系统辨识及离散时间全通系统

    基于 !"#$"% 的系统辨识及离散时间全通系统! 施秀萍 王嘉梅 虎雁华 (云南民族学院物理与电子电气信息工程学院,昆明,&'(()*) 摘 要 基于 !"#$ ...

最新文章

  1. 利用jmap和MAT等工具查看JVM运行时堆内存
  2. python 用一个数组实现三个栈
  3. java编译后的扩展名,Java的源代码扩展名和编译完后是扩展名正确的是
  4. Matlab | MATLAB编辑器:无法使用GBK编码保存文件,请改用UTF-8编码保存文件(问题解决)
  5. 如何降低Windows Server 2008的IE安全级别?
  6. 把一个dataset的表放在另一个dataset里面_现在开始:用你的Mac训练和部署一个图像分类模型...
  7. C++ 上用 ONNXruntime 部署自己的模型
  8. Linux系统Ubuntu下部署Tomcat
  9. 如何下载sonar?
  10. 【Godot】项目结构设计
  11. 在小程序中如何使用svg图标
  12. s7edge固件android7.0,欧版S7 edge刷上Android 7.0之后:超级流畅
  13. 中华传统吉祥图案集锦
  14. oracle双活svc,SVC存储虚拟化双活方案
  15. phpcms数据库备份与恢复_Phpcms一键清理数据后完整找回数据
  16. 人工智能有哪些方向?什么方向有前景?
  17. 李亚涛:python判断日志中的IP是否为百度蜘蛛
  18. 金仓数据库KingbaseES Clusterware配置手册(集群搭建前置操作 )
  19. 通过王者来帮你理解脏读、不可重复读和幻读
  20. 筛网目数-孔径对照表

热门文章

  1. Ubuntu系统上轻松截图的几种方法介绍
  2. Dynamic Selective Network for RGB-D Salient Object Detection
  3. 在Windows10上安装wls
  4. 计算机大赛剪辑的视频,视频创作剪辑大赛活动策划
  5. Intel base instruction -- bnd
  6. java gps_java-使用GPS位置
  7. pmbok电子版_用技巧方法,让PMBOK知识点烂熟于心
  8. CAD图形的缩放——鸟瞰
  9. 程序员被问:你的期望薪资是多少?这样回答再涨5K!
  10. 【网络】IP地址和静态路由