大家好,课题涉及到光谱数据先转换到波数空间,再重采样,最后做FFT得到不同深度的信息。现在自己编程用'spline'插值,直接fft的数据不行,怎么在插值后重采样?下面是我的程序:(附件里是原始波长数据的txt文档)clear all;clc;t=0:2047;
tt=0:0.1:2047;
load G:\z1.txt;
y1=z1;
y2=hilbert(y1); %y1希尔伯特变换
xr=real(y2);
xi=imag(y2);
P1=atan2(xi,xr); %y1包裹相位
phase1=unwrap(P1); %y1解包裹相位
load G:\z2.txt;
y3=z2;
y4=hilbert(y3); %y2希尔伯特变换
xr=real(y4);
xi=imag(y4);
P2=atan2(xi,xr);%y2解包裹相位
phase2=unwrap(P2);%y2解包裹相位
phase3=phase2-phase1;%y1和y2相位差
phase4=floor(2*3.14*200000/1260);%初始相位
phase=phase3+phase4;
lamda=4*3.14*100000./phase;%波长
% figure(6)
% plot(t,lamda,'r')
% title '波长图'
figure
A=sort(lamda,'ascend'); %波长升序排序
daA=max(A);
xiA=min(A);
w=min(A):0.005:max(A)
plot(A,y1);
title('波长空间')
k=2*3.14./lamda;%波长波数转换
B=sort(k,'ascend'); %波数降序排序
figure
plot(B,y1);
title('k空间')
y4=abs(fft(y1));%对y1做fft后取绝对值
figure
plot(B,y4);
title('插值前FFT')
dak=max(B);
xik=min(B);
x=xik:0.00000002:dak;
y5=interp1(B,y1,x,'spline');
figure
y6=abs(fft(y5));
plot(y6)
title ‘插值后FFT’
2018-6-18 19:24 上传
点击文件名下载附件
13.95 KB, 下载次数: 5
2018-6-18 19:24 上传
点击文件名下载附件
14.14 KB, 下载次数: 4