补零位置的不同对频谱的影响

补零的在很多时候都能用到,然而在不一样的位置补零产生的影响是不一样的。

补零主要有前面补零,后面补零和中间补零。

我们设原序列为x(n),前面补零后的序列为xq(n)  后面补零后的序列为xh(n)    中间补零后的序列为xz(n) ;

四个序列的DTFT分别为X(jw),XQ(jw),XH(jw),XZ(jw)  ;

四个序列的DFT分别为X(K),XQ(k),XH(k),XZ(k)。

  

(1)后面补零:这是就简单的情况,由离散时间傅里叶变换公式,可以知道前面补零和不补零产生的频谱是一样的。即X(jw)=XH(jw),又根据DFT是对离散时间傅里叶变换频谱上的采样,即X(k)=X(jw)在w=2π/N*k,

得:X(k)和XH(k)的差别就是XH(k)相对于X(k)多采样了几个点,

原因是X(K)是X(jw)在w=2π/N*k的采样值,而XH(k)是XH(jw){也就是X(jw)}  

在w=2π/M*k(M>N)的采样值。


(2)前面补零:关于此时DTFT,XQ(jw)=X(jw)*e^(-jwM)(M表示补零的个数),就是XQ(jw)和X(jw)幅值是一样的,

    区别在于,有相位的偏移。结合DFT是DTFT频域上的采样(X(k)=X(jw)在w=2π/N*k

XQ(k),X(k)幅值上也是一样的,但相位有偏移。


(3)中间补零:此时的DTFT,XZ(jwL)=X(jw)(L表示相邻中间插入0的个数),我们知道XZ(jw)是以2π为周期的,

所以看出XZ(jw)是以2π/Lw为周期的。同理,DFT时XZ(k)=X(Lk),相当于X3(k)对X(k)采样,

采样间隔为L+1。即不论幅值还是相位XZ(k)都是X(Lk)的采样。所以在相同区域中,XZ(k)的

周期数是X(k)的L+1倍。



下面是用matlab进行验证:

clear all
close all
clc
%总共补20个零
n=0:9;
x=cos(0.32*pi*n)+cos(0.36*pi*n);
y=fft(x,10);
subplot(211)
stem(0:9,abs(y));
xlabel('k');
ylabel('幅值')
title('原始序列');
subplot(212)
xw=angle(y)*180/pi;
stem(0:9,xw);
xlabel('k');
ylabel('相位')
title('原始序列');


figure
%% 后面补零
x1=[x zeros(1,20)];
y1=fft(x1,30);
subplot(321)
stem(0:29,abs(y1));  %后面补零,幅值
xlabel('k');
ylabel('幅值')
title('后面补零');


subplot(322)
xw1=angle(y1)*180/pi;
stem(0:29,xw1);  %后面补零,相位
xlabel('k');
ylabel('相位')
title('后面补零');


%% 前面补零
x2=[zeros(1,20) x];
y2=fft(x2,30);
subplot(323)
stem(0:29,abs(y2));   %前面补零,幅值
xlabel('k');
ylabel('幅值')
title('前面补零');


subplot(324)
xw2=angle(y2)*180/pi;
stem(0:29,xw2);  %前面补零,相位
xlabel('k');
ylabel('相位')
title('前面补零');


%% 中间补零
x3=zeros(1,30);
x3(3*n+1)=x(n+1);
y3=fft(x3,30);
subplot(325)
stem(0:29,abs(y3));   %中间补零,幅值
axis([0 30 0 15])
xlabel('k');
ylabel('幅值')
title('中间补零');


subplot(326)
xw3=angle(y3)*180/pi;
stem(0:29,xw3);  %中间补零,相位
xlabel('k');
ylabel('相位')
title('中间补零');




补零位置的不同对频谱的影响_第1张图片

(1)从图中可以明显看到,前面补零,后面补零的幅值是一样的,相位是有偏移性(主要性状没变);而且和原始序列相比,相当于多采样了几个点。

(2)中间补零的话,也可看出,幅值和相位均是后面补零的采样值(每个3个,因为L=2)。并且周期数也是它们的三倍。

你可能感兴趣的:(补零位置的不同对频谱的影响)