clc;
clear;
m=1;
fwhm=0.5e-12; %脉冲宽度0.5ps
N=2000; %取样点
T=50.e-12/N; %取样时间宽度50ps,取样点2000个
n=floor(-(N-1)/2:(N-1)/2);
t=n*T;
g=exp(-0.5*(t/fwhm).^2); %高斯脉冲
dg=-t.*g/fwhm^2; %高斯一阶微分,理论表达式
k=floor(-(N-1)/2:(N-1)/2);
D=1/(N*T); %频率分辨率
G=fft(g,N); %高斯信号频谱
H=2*pi*1i*(k)*D; %一阶微分传输函数
GG=G.*H; %高斯一阶微分信号的频谱
iGG=ifft(GG,N); %逆变换,计算高斯一阶微分时域信号
syms t
p=abs(iGG)/max(abs(iGG)); %实际输出的微分信号,进行归一化
q=abs(dg)/max(abs(dg)); %理论值,进行归一化
D_1=int(abs(p).^2-abs(q).^2,t,-inf,inf);
D_2=int(abs(q).^2,t,-inf,inf);
D=D_1/D_2; %差错因子
plot(t*1e+12,D);
axis([-3,3,0,0.05]);
xlabel('t(ps)');
ylabel('D');
title('差错因子D与衰减因子的关系');
为什么运行后出现Conversion to double from sym is not possible????
clear;
m=1;
fwhm=0.5e-12; %脉冲宽度0.5ps
N=2000; %取样点
T=50.e-12/N; %取样时间宽度50ps,取样点2000个
n=floor(-(N-1)/2:(N-1)/2);
t=n*T;
g=exp(-0.5*(t/fwhm).^2); %高斯脉冲
dg=-t.*g/fwhm^2; %高斯一阶微分,理论表达式
k=floor(-(N-1)/2:(N-1)/2);
D=1/(N*T); %频率分辨率
G=fft(g,N); %高斯信号频谱
H=2*pi*1i*(k)*D; %一阶微分传输函数
GG=G.*H; %高斯一阶微分信号的频谱
iGG=ifft(GG,N); %逆变换,计算高斯一阶微分时域信号
syms t
p=abs(iGG)/max(abs(iGG)); %实际输出的微分信号,进行归一化
q=abs(dg)/max(abs(dg)); %理论值,进行归一化
D_1=int(abs(p).^2-abs(q).^2,t,-inf,inf);
D_2=int(abs(q).^2,t,-inf,inf);
D=D_1/D_2; %差错因子
plot(t*1e+12,D);
axis([-3,3,0,0.05]);
xlabel('t(ps)');
ylabel('D');
title('差错因子D与衰减因子的关系');
为什么运行后出现Conversion to double from sym is not possible????