马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
计算机能够处理的信号是离散的数字信号,因此必须对模拟信号进行采样,采样信号满足fs>2*f0。同时,输出的频率也必须是离散的,这样计算机才能处理或保存。
我们知道离散的采样信号在频域具有周期性,因此DTFT(离散时间傅里叶变换,对模拟信号进行采样后获得,采样频率满足fs>2*f0)具有周期性,我们对切只对其主周期[-π,π)或者[0,2π)进行分析,对于整个频谱[-∞,+∞]我们可以进行周期性的拓展获得。
离散时间信号频域具有周期性,但是在却是连续的频谱;我们仍希望能够让频域也离散,那么只有使这些离散的时间序列进行周期性拓展,成为周期离散信号的DTFT(当拓展无穷个周期,就是DFS),以获取离散的频谱。下面以xn=[2,-1,1,1]这个离散时间序列进行分析,使用matlab编程为:
n=0:3; xn=[2,-1,1,1]; [y1,w1]=freqz(xn,1,2000,'whole'); %序列xn的DTFT,2000是指把[0,2*pi]分割的分数 Nw=1000; dw=2*pi/Nw; %2*pi分为1000份
k=[-500:499]; np=0:[500*4-1];
%拓展500个周期后的序列位置 xp=xn(mod(np,4)+1); %拓展后的周期序列 [y2,w2]=freqz(xp,1,2000,'whole'); %xn拓展500个周期之后的DTFT w0=[0:3]/4*2*pi; y3=fftshift(fft(xn)); %序列xn的DFT
subplot(3,1,1), plot(w1,abs(y1),'red'); xlabel('xn序列的DTFT曲线'); hold on, stem(w0,abs(y3)); %xn序列DFT曲线与DTFT曲线画在一起 subplot(3,1,2), plot(w2,abs(y2),'red'); xlabel('xn序列拓展500个周期后的DTFT曲线'); subplot(3,1,3), stem(w0,abs(y3),'red'); axis([0 7 0 5]); xlabel('xn序列DFT曲线');
画出的DTFT、周期拓展后的DTFT、DFT曲线分别如下图:
从上图可见,对xn周期性拓展后进行DTFT和xn原始序列的DFT所在的频点是一样的,不同的只是幅度值的大小。因此可以用DFT来表示周期信号的DTFT(从第2和第3图比较看出)。
以上为周期离散信号的DTFT(当拓展无穷个周期,就是DFS)和DFT的关系。
以下为原始离散信号的DTFT和DFT的关系:
而原始序列xn的DFT同时又是其连续谱上的几个采样值,其幅度大小都一样(从第1个图看出),将整个频域[0,2π)分为4等份(采样数N=4),如果对其后补96个零,使xn=[2,-1,1,1,zeros(1,96)];
n=0:99; N=100; xn0=[2,-1,1,1]; %原始序列 [y0,w0]=freqz(xn0,1,1000,'whole'); xn=[2,-1,1,1,zeros(1,96)]; %补零后的序列 wn=n/N*2*pi; y=abs(fft(xn));
plot(wn,y,'*'); xlabel('xn0补零后的DFT变换'); hold on, plot(w0,abs(y0),'red');
可以比较DTFT曲线和补零后的DFT曲线如下图:
由此可见,DFT是在DTFT连续谱上的样值,如果DFT变换点数量足够多,完全可以用其DFT来表示其DTFT信号的频谱。
注:DFS是周期性序列的傅里叶级数,之所以没有提及,是因为已经把它当做DFT进行处理了,DFS是在时域和频域都具有周期性的信号,DFT在时域和频域上都取其主周期进行计算。
本文内容来源于新浪LAY1984_XL的博客(2010年5月13日)。
|