实验二 离散时间傅里叶变换
一、实验原理
1、经由正、逆离散时间傅里叶变换表达的信号傅里叶表示式是信号分析的一个关键部分。
X(e
j ω
)=
n =-∞π
∑x [n ]e
∞
-j ωn
(3.9)
1j ωj ωn
x [n ]=X (e ) e d ω(3.10) ⎰2π-π
类似地,当LTI 系统用于滤波时,作为冲击响应离散时间傅里叶变换的频率响应,提供了LTI 系统简介的描述。离散时间傅里叶变换X(e
j ω
) 是ω的周期复值函数,周期总是
2π,并且基周期通常选在区间[-π,π)上。对离散时间傅里叶变换DTFT 来说有两个问题:
① DTFT 的定义对无限长信号是有效的。 ② DTFT 是连续变量ω的函数。
在MA TLAB 中,任何信号(向量)必须是有限长度的,仅此就是第一点成为问题。因此,不可能使用MATLAB 计算无限长信号的DTFT 。有一个值得注意的例外情形,当能从变换定义式推导出解析式并只是计算它时,可以使用MA TLAB 计算无限长信号的DTFT 。
2、对于频率抽样问题。MATLAB 擅长在有限网格点上计算DTFT 。通常选择足够多的频率以使绘出的图平滑,逼近真实的DTFT 。对计算有利的最好选择是在(-π,π)区间上一组均匀地隔开的频率,或者对共轭对称变换选择[0,π]区间。采用上述抽样办法,DTFT 式变成X(e
j ω
)=X (e
j 2πk /N
) =∑x [n ]e -j (2πk /N ) n , k =0, 1, 2... N -1
n =0
L -1
DTFT 的周期性意味着在-π≤ωN/2的数值。因为上市是在有限数量的频率点ωk =2πk/N处计算,并在有限范围内求和,因此它是可计算的。由于信号长度必须是有限的(0≤n
计算N 点DFT 前,需要对x[n]进行时间混叠。
3、计算DTFT 需要两个函数,MA TLAB 的freqz 函数计算无限长信号,dtft (h ,H )函数计算有限长信号的DTFT 。 二、实验内容
1、脉冲信号的DTFT
(1)要求:设矩形脉冲r[n]= 1 0≤n
n
1sin(ωL )
a 、证明r[n]的DTFT 可由R (e j ω) =⋅e -j ω(L -1) /2得出,记asinc (ω,L )ω)
2
1ωL )
=
sin(ω)
2,使用dtft 函数计算12点脉冲信号的DTFT 。绘出在区间-π≤ω
π上对ω的DTFT 。把实部和虚部分开绘出。另绘出DTFT 的幅度。选择频率样本
的数量是脉冲长度的5到10倍,以使绘出的图看上去平滑。用不同数量的频率样本做试验。
b 、注意asinc 函数零点的位置是规律分布的。对奇数长脉冲,比如L=15的脉冲重复进行DTFT 计算并绘出幅度,同样再次检验零点位置,注意峰值高度。 c 、对于asinc 函数零点的间距与asinc 函数的直流值,确定出通用规则。
(2)程序
a 、证明:
j ωR (e ) =∑e -j ωn =DTFT[r[n]]=
L
n =0
1-e e (e -e )
=⋅=e -j j -j 1-e -j e 2(e 2-e 2)
-j ωL
-j ωL 2j ωL 2-j ωL 2
L -1-j ω
2
1sin ωL ⋅
sin ω2
b 、程序 M 文件:
function [H,W] = dtft(h,N) N=fix(N); L=length(h); h=h(:); if(N
W=(2*pi/N)*[0:(N-1)]'; mid=ceil(N/2)+1;
W(mid:N)=W(mid:N)-2*pi; W=fftshift(W); H=fftshift(fft(h,N)); 3-b >> clear nn=0:11;
u=ones(1,12); [X,W]=dtft(u,72);
subplot(411),plot(W,real(X));grid,title('REAL RESPONSE') xlabel('FREQUENCY W'),ylabel('REAL A') subplot(412),plot(W,imag(X)); grid,title('IMAGE RESPONSE')
xlabel('FREQUENCY W'),ylabel('IMAGE A') subplot(413),plot(W,abs(X));
grid,title('MAGNITUDE RESPONSE') xlabel('FREQUENCY W'),ylabel('|H(w)|') subplot(414),plot(W,angle(X)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')
c.nn=0:14; u=ones(1,15); [X,W]=dtft(u,90); [Y,W]=dtft(X,90);
subplot(111),plot(W,abs(Y));
grid,title('MAGNITUDE RESPONSE')
xlabel('FREQUENCY W'),ylabel('|H(w)|')
D .
如a. L=12时由R(e^jw)=0得sin(wL/2)=0 即wL/2=k*pi 则w=k*pi/36 所以零点间距为pi/6 又如图1.1,直流值:12
零点间距*直流值=(pi/6)*12=2*pi 指数信号
A.
N=1000; a=[1,-0.9]; b=1;
[X,W]=freqz(b,a,N); W=[-pi:0.1:pi]; X=freqz(b,a,W);
subplot(211),plot(W,abs(X));
grid,title('MAGNITUDE RESPONSE')
subplot(212),plot(W,angle(X)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')
c.
w=-pi:0.1:pi;
x=1./(1-exp(-j.*w));
subplot(211),plot(w,abs(x));
grid,title('MAGNITUDE RESPONSE')
subplot(212),plot(w,angle(x)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')
实验二 离散时间傅里叶变换
一、实验原理
1、经由正、逆离散时间傅里叶变换表达的信号傅里叶表示式是信号分析的一个关键部分。
X(e
j ω
)=
n =-∞π
∑x [n ]e
∞
-j ωn
(3.9)
1j ωj ωn
x [n ]=X (e ) e d ω(3.10) ⎰2π-π
类似地,当LTI 系统用于滤波时,作为冲击响应离散时间傅里叶变换的频率响应,提供了LTI 系统简介的描述。离散时间傅里叶变换X(e
j ω
) 是ω的周期复值函数,周期总是
2π,并且基周期通常选在区间[-π,π)上。对离散时间傅里叶变换DTFT 来说有两个问题:
① DTFT 的定义对无限长信号是有效的。 ② DTFT 是连续变量ω的函数。
在MA TLAB 中,任何信号(向量)必须是有限长度的,仅此就是第一点成为问题。因此,不可能使用MATLAB 计算无限长信号的DTFT 。有一个值得注意的例外情形,当能从变换定义式推导出解析式并只是计算它时,可以使用MA TLAB 计算无限长信号的DTFT 。
2、对于频率抽样问题。MATLAB 擅长在有限网格点上计算DTFT 。通常选择足够多的频率以使绘出的图平滑,逼近真实的DTFT 。对计算有利的最好选择是在(-π,π)区间上一组均匀地隔开的频率,或者对共轭对称变换选择[0,π]区间。采用上述抽样办法,DTFT 式变成X(e
j ω
)=X (e
j 2πk /N
) =∑x [n ]e -j (2πk /N ) n , k =0, 1, 2... N -1
n =0
L -1
DTFT 的周期性意味着在-π≤ωN/2的数值。因为上市是在有限数量的频率点ωk =2πk/N处计算,并在有限范围内求和,因此它是可计算的。由于信号长度必须是有限的(0≤n
计算N 点DFT 前,需要对x[n]进行时间混叠。
3、计算DTFT 需要两个函数,MA TLAB 的freqz 函数计算无限长信号,dtft (h ,H )函数计算有限长信号的DTFT 。 二、实验内容
1、脉冲信号的DTFT
(1)要求:设矩形脉冲r[n]= 1 0≤n
n
1sin(ωL )
a 、证明r[n]的DTFT 可由R (e j ω) =⋅e -j ω(L -1) /2得出,记asinc (ω,L )ω)
2
1ωL )
=
sin(ω)
2,使用dtft 函数计算12点脉冲信号的DTFT 。绘出在区间-π≤ω
π上对ω的DTFT 。把实部和虚部分开绘出。另绘出DTFT 的幅度。选择频率样本
的数量是脉冲长度的5到10倍,以使绘出的图看上去平滑。用不同数量的频率样本做试验。
b 、注意asinc 函数零点的位置是规律分布的。对奇数长脉冲,比如L=15的脉冲重复进行DTFT 计算并绘出幅度,同样再次检验零点位置,注意峰值高度。 c 、对于asinc 函数零点的间距与asinc 函数的直流值,确定出通用规则。
(2)程序
a 、证明:
j ωR (e ) =∑e -j ωn =DTFT[r[n]]=
L
n =0
1-e e (e -e )
=⋅=e -j j -j 1-e -j e 2(e 2-e 2)
-j ωL
-j ωL 2j ωL 2-j ωL 2
L -1-j ω
2
1sin ωL ⋅
sin ω2
b 、程序 M 文件:
function [H,W] = dtft(h,N) N=fix(N); L=length(h); h=h(:); if(N
W=(2*pi/N)*[0:(N-1)]'; mid=ceil(N/2)+1;
W(mid:N)=W(mid:N)-2*pi; W=fftshift(W); H=fftshift(fft(h,N)); 3-b >> clear nn=0:11;
u=ones(1,12); [X,W]=dtft(u,72);
subplot(411),plot(W,real(X));grid,title('REAL RESPONSE') xlabel('FREQUENCY W'),ylabel('REAL A') subplot(412),plot(W,imag(X)); grid,title('IMAGE RESPONSE')
xlabel('FREQUENCY W'),ylabel('IMAGE A') subplot(413),plot(W,abs(X));
grid,title('MAGNITUDE RESPONSE') xlabel('FREQUENCY W'),ylabel('|H(w)|') subplot(414),plot(W,angle(X)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')
c.nn=0:14; u=ones(1,15); [X,W]=dtft(u,90); [Y,W]=dtft(X,90);
subplot(111),plot(W,abs(Y));
grid,title('MAGNITUDE RESPONSE')
xlabel('FREQUENCY W'),ylabel('|H(w)|')
D .
如a. L=12时由R(e^jw)=0得sin(wL/2)=0 即wL/2=k*pi 则w=k*pi/36 所以零点间距为pi/6 又如图1.1,直流值:12
零点间距*直流值=(pi/6)*12=2*pi 指数信号
A.
N=1000; a=[1,-0.9]; b=1;
[X,W]=freqz(b,a,N); W=[-pi:0.1:pi]; X=freqz(b,a,W);
subplot(211),plot(W,abs(X));
grid,title('MAGNITUDE RESPONSE')
subplot(212),plot(W,angle(X)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')
c.
w=-pi:0.1:pi;
x=1./(1-exp(-j.*w));
subplot(211),plot(w,abs(x));
grid,title('MAGNITUDE RESPONSE')
subplot(212),plot(w,angle(x)); grid,title('PHASE RESPONSE')
xlabel('FREQUENCY W'),ylabel('DEGREES')