MATLAB中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 354|回复: 0|关注: 0

[未答复] 求指数函数的傅里叶变换

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2017-10-11 11:51:06 | 显示全部楼层 |阅读模式
程序目标:推导得到exp(-2t)快速傅里叶变换为(1-e^(-2T))/(2T-j*2*pi),验证matlab的FFT程序得到的结果
与计算公式结果相同。

完整程序如下:
fs=1e4;T=0.02;omega=100*pi;
t=0:1/fs:0.1;
k=0:20;%求出前20次谐波的结果
is=exp(-2.*t);
N=length(is);
y=fft(is(:,1),N); % 进行fft变换
magIs1=abs(y)/N/sqrt(2); % 求幅值
phaseIs1=angle(y);
fFFTa_b = (0:length(is)-1)'*fs/length(y); % 抽样离散后对应的频率转换
mag_a = interp1(fFFTa_b,magIs1,k*50,'PCHIP'); % 取谐波频率幅值
phase_a=interp1(fFFTa_b,phaseIs1,k*50,'PCHIP'); % 取谐波相角
Isw=-1/T./(-2-1i*k*omega).*(exp(-2*T)-1);
bmag=[mag_a' abs(Isw)'];

figure(1);plot(t,is);
figure(2);bar(k,bmag);

输出结果:
两者差别较大,理论上指数函数的傅里叶变换应该是以直流为主,推导的公式与理论相符,
但是FFT程序得到的结果不合理,请问有人可以解答一下为什么吗?

结果.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

快速回复 返回顶部 返回列表