matlab仿真序列补0和插0的影响

信号处理时,经常会遇到时频域补0,或者插0的场景;

现在仅从时域角度出发,看频域上的变化。

1)补0的场景

时域补0,频域插值。

2)等间隔内插0

上变频,频域产生周期延拓

参考信号的抽取和内插:信号抽取与内插PPT

傅里叶的尺度变化特性,频域上的压缩和展宽,针对(-\pi ,+\pi )的周期上,对采样率归一化。

下面以matlab的代码仿一下看看

时域补0后,会看到频域上出现了纹波,由于频谱泄露造成,会发现出现了一些不和谐的频率分量。

clc;clear;close all;

f1 = 50;
f2 = 100;
A1 = 5;
A2 = 10;
p = 0;

fs = 1024;
ts = 1/fs;
N  = 128;
T = N*ts;
t = linspace(0,T,N);

st = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t);

fft_st = fft(st,N);
figure
plot(abs(fft_st));

%%%%%%%%%%%%在序列尾部补0%%%%%%%%%%
st_tail = [st zeros(1,128)];

fft_tail_st = fft(st_tail,256);
figure
plot(abs(fft_tail_st));

%%%%%%%%%%%%在中间尾部补0%%%%%%%%%%
st_mid = [st(1:128/2) zeros(1,128) st(128/2+1:end)];

fft_mid_st = fft(st_mid,256);
figure
plot(abs(fft_mid_st));

%%%%%%%%%%%%在等间隔插0%%%%%%%%%%
st_interpolation = zeros(1,256);

st_interpolation(1:2:end) = st(1:end);

fft_mid_st = fft(st_interpolation,256);
figure
plot(abs(fft_mid_st));



 

你可能感兴趣的:(数字信号处理)