离散系统的频率响应及DFT
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 离散系统的频率响应及DFT
实验目的:
1. 运用MATLAB 计算离散时间系统的频率响应。
2. 运用MATLAB 计算有限长序列的离散傅立叶变换。
3. 运用MATLAB 熟悉离散傅立叶变换的圆周移位和对称性质。
实验内容:
一、计算离散时间系统的DTFT
已知一个离散时间系统∑∑==−=−M
k k N k k k n x b k n y a 00)()(,可以用MATLAB 函数
frequz 非常方便地在给定的L 个离散频率点l ωω=处进行计算。
由于)(ωj e H 是ω的连续函数,需要尽可能大地选取L 的值(因为严格说,在MATLAB 中不使用symbolic 工具箱是不能分析模拟信号的,但是当采样时间间隔充分小的时候,可产生平滑的图形),以使得命令plot 产生的图形和真实离散时间傅立叶变换的图形尽可能一致。
在MATLAB 中,freqz 计算出序列{M b b b ,,,10L }和{N a a a ,,,10L }的L 点离散傅立叶变换,然后对其离散傅立叶变换值相除得到L l e H l j ,,2,1),(L =ω。
为了更加方便快速地运算,应将L 的值选为2的幂,如256或者512。
实验程序2.1:运用MATLAB 画出以下系统的频率响应。
y(n)-0.6y(n-1)=2x(n)+x(n-1)
程序:
clf;
w=-4*pi:8*pi/511:4*pi;
num=[2 1];den=[1 -0.6];
h=freqz(num,den,w);
subplot(2,1,1)
plot(w/pi,real(h));grid
title(‘H(e^{j\omega}的实部’))
xlabel(‘\omega/ \pi’);
ylabel(‘振幅’);
subplot(2,1,1)
plot(w/pi,imag(h));grid
title(‘H(e^{j\omega}的虚部’))
xlabel(‘\omega/ \pi’);
ylabel(‘振幅’);
运行程序2.1 ,并显示图形。
已知因果线性时不变离散时间系统
y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2)
画出该系统的频率响应。
二、计算有限长序列的离散傅立叶变换(时域离散,频域也离散)
实验程序2.2:如果)4/sin()8/sin()(ππn n n x +=是一个N=16的有限长序列,用MATLAB 求其DFT 。
程序:
N=16;
n=0:1:N-1;
x=sin(n*pi/8)+sin(n*pi/4);
k=0:1:N-1;
W=exp(-j*2*pi/N);
nk=n ’*k;
Wnk=W .^nk;
Xk=x*Wnk;
subplot(2,1,1);
stem(n,x);
title(‘x(n)’));
subplot(2,1,2);
stem(k,abs(Xk));
title(‘X(k)’));
运行程序2.1 ,并显示图形,写出运行数据结果
三、圆周移位。
在MATLAB 中,使用 fft 可以很容易地计算有限长序列x[n]的离散傅立叶变换X[k]。
下面我们利用MATLAB 来运算DFT 中的圆周移位性质。
圆周移位定义为)()][()(n R m n x n x N N m +=
实验程序 2.3 求有限长序列x(n)=8 (0.4) n , 0≤n<20的圆周移位)()]10[()(2020n R n x n x m +=。
并画出其结果图。
程序:
N=20;
m=10;
n=0:1:N-1;
x=8* (0.4).^n;
n1=mod((n+m),N); %求余
xm=x(n1+1); % 求余后加1是因为MATLAB 向量下标从1开始
subplot(2,1,1)
stem(n,x);
title(‘原序列’);
xlabel(‘n’);
ylabel(‘x(n)’);
subplot(2,1,2)
stem(n,xm);
title(‘圆周移位序列’);
xlabel(‘n’);
ylabel(‘xm(n)’);
运行程序2.3 ,验证圆周移位性质并显示图形。
指令mod 的含义是什么?
四、验证一个实序列的共轭对称部分的离散傅立叶变换与原序列的傅立叶变换的关系。
10),()()(−≤≤+=N n n x n x n x op ep
10,)]()([21)()]()([21)(**−≤≤⎪⎩
⎪⎨⎧−−=−+=
⇒N n n N x n x n x n N x n x n x op ep )()(k X n x N DFT ⎯⎯→←
)()](Re[)]()([2
1)(*k X k X k X k X n x r N DFT ep ==+⎯⎯→← 实验程序2.4 验证上面的结论
程序:
x=[1 2 4 2 6 32 6 4 2 zeros(1,247)];
x1=[x(1) x(256:-1:2)];
xep=0.5*(x+x1);
XF=fft(x);
XEPF=fft(xep);
clf;
k=0:255;
subplot(2,2,1);
plot(k/128,real(XF));grid;
ylabel(‘振幅’);
title(‘原序列DFT 的实部’);
subplot(2,2,2);
plot(k/128,imag(XF));grid;
ylabel(‘振幅’);
title(‘原序列DFT 的虚部’);
subplot(2,2,3);
plot(k/128,real(XEPF));grid;
ylabel(‘振幅’);
title(‘其共轭对称序列DFT 的实部’);
subplot(2,2,4);
plot(k/128,imag(XEPF));grid;
ylabel(‘振幅’);
title(‘其共轭对称序列DFT的虚部’);
运行程序2.4,说明实序列的共轭对称部分的离散傅立叶变换与原序列的傅立叶变换实部的关系。
修改程序,验证实序列的共轭反对称部分的离散傅立叶变换与原序列的傅立叶变换虚部的关系,并说明其关系。