频域补零实现时域内插

       频域补零可以实现时域内插,在某些数据插值的应用场景中可能十分有用。频域补零实现时域插值的过程如下面的示意图所示:

       下面直接给出示例代码及结果:

clear all;                  % 清除所有变量
close all;                  % 关闭所有窗口
clc;

% 设置参数
amplitude = 3; % 信号的幅度
frequency = 5; % 信号的频率

sampling_frequency = 40;  % 采样的频率
sampling_num = 40; % 采样数

% 生成时间轴
t = 0:1/sampling_frequency:(sampling_num-1)/sampling_frequency;

figure(),
% 生成信号
signal = amplitude * cos(2 * pi * frequency * t + pi / 3);
subplot(3,1,1);
plot(signal,'ro');
hold on 
plot(signal,'r');
legend('原始信号','Fontsize',18);

% 计算FFT和iFFT
fft_result = fft(signal);
ifft_result = ifft(fft_result);
subplot(3,1,2);
plot(ifft_result,'bo');
hold on 
plot(ifft_result,'b');
legend('原始信号直接fft后执行ifft','Fontsize',18);

% 频域补零实现的时域内插, K= 2表示时域信号量增加至原来的两倍
K = 2;
N = length(fft_result);
fft_result_1 = K * [fft_result(1 : N / 2), zeros(1, (K - 1) * N), fft_result(N / 2 + 1: N)];
ifft_result_1 = ifft(fft_result_1);
subplot(3,1,3);
plot(real(ifft_result_1),'go');
hold on 
plot(real(ifft_result_1),'g');
legend('原始信号fft后高频部分补零再执行ifft','Fontsize',18);

       频域补零后执行ifft,实现了时域内插。目的达成。

       频域补零后执行ifft,本质相当于时域执行sinc插值,后续有时间再补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值