时域脉冲傅立叶变换(MATLAB)

采用MATLAB编程,对太赫兹脉冲波的时域波形进行傅立叶变换,画出幅度谱线和相位谱线。在网上没能找到相关代码的教程,只能自己根据师兄的指导来做一遍了。

1. MATLAB代码

clear variables;clc;

% 导入数据,数据格式为两列,第一列为x轴时域时间,第二列为y轴时域幅值
Sample    = importdata('data/air');    
   
% 傅立叶变换补0个数,为了达到2的次方来进行快速计算,具体取多少,有待思考
Zero_n = 2048;        

% 取出一维向量
Sample_x = Sample(:,1); 
Sample_y = Sample(:,2); 

% 计算采样率,用Delt_t这样的时间间隔,取倒数求得时域波形的采样频率
Delt_t = Sample_x(3) - Sample_x(2); %这里可能会遇到Sample_x(1) = 0 的情况,所以用第三个x值减第二个x值求得时间间隔
Sample_frequency = 1 / Delt_t;

% 换算成实际频率
Frequency = ((1 : Zero_n)-1) * Sample_frequency / (Zero_n); 
Frequency = Frequency'; %  13次方
Frequency = Frequency .* 10^-12; % 由于13次方单位太大,化到THz

% 傅立叶变换
Sample_fft = fft(Sample_y, Zero_n);
Sample_fft_amplitude = abs(Sample_fft);   % 取绝对值得到幅值,类似平方和开根号
Sample_fft_phase     = angle(Sample_fft); % 用angle函数解得有重叠的弧度

% unwrap(P)解包矢量P中的弧度相位角,如果想得到角度需要再 *180/pi
Sample_fft_phase    = -unwrap(Sample_fft_phase); 

% 我们来画出时域、频域幅值和频域相位三幅图
figure(1)

% 时域波形
subplot(1, 3, 1)
plot(Sample_x, Sample_y, 'Color', 'r', 'linewidth',2); 
set(gca,'fontname', 'Times New Roman', 'FontSize',20, 'linewidth', 2, 'color', 'non');
title('Time Domain','FontName', 'Times New Roman', 'fontsize',30, 'FontWeight', 'bold');
xlabel('Time(s)')
ylabel('Current(A)')

% 频域幅值波形
subplot(1, 3, 2)
plot(Frequency, Sample_fft_amplitude, 'Color', 'r', 'linewidth',2); 
set(gca,'fontname', 'Times New Roman', 'FontSize',20, 'linewidth', 2, 'color', 'non');
title('Amplitude','FontName', 'Times New Roman', 'fontsize',30, 'FontWeight', 'bold');
xlabel('Frequency(THz)')
ylabel('Amplitude')

% 频域相位波形
subplot(1, 3, 3)
plot(Frequency, Sample_fft_phase, 'Color', 'r', 'linewidth',2); 
set(gca,'fontname', 'Times New Roman', 'FontSize',20, 'linewidth', 2, 'color', 'non');
title('Phase','FontName', 'Times New Roman', 'fontsize',30, 'FontWeight', 'bold');
xlabel('Frequency(THz)')
ylabel('Phase')

2. 实验图像

这个地方有一点需要注意的是,我没有对频率范围做出限制,导致频域谱线中横坐标频率从0THz - 30THz,一遍情况下我们会截取0.2THz - 2.2THz中间的结果来进行后续分析。

3. 实验室真实结果

真实实验结果,3种透明薄膜材料样品,截取0.2THz - 2.2THz得到如下结果

在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值