全相位fft matlab,全相位FFT问题——全相位时移相位差法 请教!!!
最近学习王兆华教授的全相位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问题——全相位时移相位差法 请教!!!相关推荐
- matlab ifft频率分辨率,[FFT] matlab中关于FFT的使用(理解频率分辨率、补零问题)
[FFT] matlab中关于FFT的使用(理解频率分辨率.补零问题).txt我这人从不记仇,一般有 仇当场我就报了.没什么事不要找我,有事更不用找我!就算是believe中间也藏了一个lie! 我那 ...
- STM32F103+全彩LED显示屏+万年历闹钟+FFT音频频谱制作
目录 1.硬件总体框图 2.材料准备 3.IO口的连接 4.自制的模块 5.源程序及其相关模块资料 6.最终效果演示 1.硬件总体框图 工作原理:电脑,手机等外部设备3.5mm耳机孔输出音频信号,经过 ...
- 深入浅出解释FFT(四)——fft分析信号频率和相位
很基础的问题往往很重要,做仿真时候有一个点的差错都会导致结果的错误.在网上找了前人写的东东,总结下希望对大家有帮助,让大家少走一些弯路. 1. 信号的时域采样点N和频域采样点数相同 %####### ...
- fft 相位谱_基于级联FFT的广义互相关算法在声源定位中的应用
杨韬 余文辉 曹申 2020-09-30 Wednesday 针对2020年第十五届全国大学生智能车竞赛信标组关于声音信标的识别,需要采集声音信号和FM信号,通过声音信号和FM信号互相关进行距离检测和 ...
- Matlab中N是什么意思,MATLAB中y=FFT(X,N)中的N是什么意思
matlab傅里叶变换中fft(x,n),x,n分别是什么含义? fft(x,n)是一维快速傅里叶变换,x相当于信号,n是变换点数.离散傅里叶变换DFT的快速算法就是FFT. matlab中FFT函数 ...
- 小试牛刀--我的快速离散傅里叶变化matlab函数(FFT)
小试牛刀--我的快速离散傅里叶变化matlab函数(FFT) 想法来源 例子分析 函数说明 代码展示 想法来源 我在实验室里使用示波器观察实验数据的波形时,有时需要对实验数据进行傅里叶变换,观察其中的 ...
- matlab中 y =ft(x)的意思,matlab中y=fft(x)语句的意思
matlab傅里叶变换中fft(x,n),x,n分别是什么含义? fft(x,n)是一维快速傅里叶变换,x相当于信号,n是变换点数.离散傅里叶变换DFT的快速算法就是FFT. matlab中FFT函数 ...
- 零相位滤波matlab,什么叫零相位滤波器(最小相位滤波器)
本文主要介绍什么是阶段,阶段给了我们什么启示?什么是相位滤波,相位滤波在整个声音系统中起着什么重要的作用.在本文的最后,我们将通过一个典型的相位滤波调试案例,与朋友们分享分频系统中相位均衡调试的重要性 ...
- 离散系统模型的辨识matlab程序,基于MATLAB的系统辨识及离散时间全通系统
基于 !"#$"% 的系统辨识及离散时间全通系统! 施秀萍 王嘉梅 虎雁华 (云南民族学院物理与电子电气信息工程学院,昆明,&'(()*) 摘 要 基于 !"#$ ...
最新文章
- 利用jmap和MAT等工具查看JVM运行时堆内存
- python 用一个数组实现三个栈
- java编译后的扩展名,Java的源代码扩展名和编译完后是扩展名正确的是
- Matlab | MATLAB编辑器:无法使用GBK编码保存文件,请改用UTF-8编码保存文件(问题解决)
- 如何降低Windows Server 2008的IE安全级别?
- 把一个dataset的表放在另一个dataset里面_现在开始:用你的Mac训练和部署一个图像分类模型...
- C++ 上用 ONNXruntime 部署自己的模型
- Linux系统Ubuntu下部署Tomcat
- 如何下载sonar?
- 【Godot】项目结构设计
- 在小程序中如何使用svg图标
- s7edge固件android7.0,欧版S7 edge刷上Android 7.0之后:超级流畅
- 中华传统吉祥图案集锦
- oracle双活svc,SVC存储虚拟化双活方案
- phpcms数据库备份与恢复_Phpcms一键清理数据后完整找回数据
- 人工智能有哪些方向?什么方向有前景?
- 李亚涛:python判断日志中的IP是否为百度蜘蛛
- 金仓数据库KingbaseES Clusterware配置手册(集群搭建前置操作 )
- 通过王者来帮你理解脏读、不可重复读和幻读
- 筛网目数-孔径对照表