用Matlab仿真整数倍内插过程的信号变换关系——整数倍内插
clc; % 清空命令行窗口
clear; %清空工作区
close all;
% % % 整数倍内插
%
% E6_2_InterSpec.m文件源代码
% % 用Matlab仿真整数倍内插过程的信号变换关系
% 假设原始信号为频率为100Hz的正弦波,初始采样频率为800Hz。
% 仿真信号进行8倍内插后的信号波形图。比较内插前后信号的时域波形变化。
f = 100; %信号频率
Fs = 800; %采样频率为800Hz
I = 8; %内插倍数
% 产生信号
t = 0:1/Fs:0.5;
c = 2*pi*f*t;
si = sin(c); %产生正弦波
% 进行8倍零值内插处理
Isi = zeros(1,length(si)*I);
Isi(1:I:length(Isi)) = si;
% 经低通滤波处理
b = fir1(80,1/I);
FilterS = filter(b,1,Isi);
FilterS = FilterS/max(abs(FilterS));
% 画图
subplot(211); stem(si(1:40)); axis([0 40 -1.2 1.2]);
title('频率为100Hz的正弦波信号频谱图','fontsize',8);
grid on; %显示或隐藏坐标区网格线
subplot(212); stem(FilterS(40:105)); axis([0 66 -1.2 1.2]);
title('8倍内插前后正弦波信号的时域波形','FontSize',8);
grid on; %显示或隐藏坐标区网格线