数字信号处理课程设计
姓名:
学号:
专业:
班级:
指导老师:
目录
题目一:离散时间序列的时域分析 (2)
1.1实现离散时间序列 (2)
1.2序列的卷积 (2)
题目二:利用DFT进行周期信号频谱分析 (4)
2.1连续信号频谱分析比较 (5)
2.2利用DFT进行运算 (7)
题目三:离散系统的分析 (9)
3.1求系统的响应 (9)
3.2分析系统的频域特性 (10)
题目四:数字滤波器的设计 (12)
4.1高通滤波器的设计: (13)
总结: (16)
题目一:离散时间序列的时域分析
对离散时间序列的时域分析,通过MATLAB进行离散时间序列的描述,对离散时间序列进行卷积运算,将不同形式的信号波形用不同的时间函数来描述,实现信号的卷积运算。
1.1实现离散时间序列
(1)x0=2*sin(pi/3*n0+3*pi/4)
(2)x1=2^n1
(3)单位抽样序列
(4)单位阶跃序列
程序如下:
A=2;N=20;phi=3*pi/4;
w=pi/3;
n0=-5:0.5:10;
x0=A*sin(w*n0+phi);
a=2;N=20;
n1=0:0.3:6;
x1=a.^n1;
n2=-20:20;
x2=[zeros(1,20),1,zeros(1,20)];
n3=-20:20;
x3=[zeros(1,20),1,ones(1,20)];
subplot(2,2,1);plot(n0,x0);stem(n0,x0);
title('正弦序列');ylabel('x(n)');xlabel('n');
subplot(2,2,2);plot(n1,x1);stem(n1,x1);
title('指数序列');xlabel('n');ylabel('x(n)');
subplot(2,2,3);stem(n2,x2);
title('单位抽样序列');xlabel('n');ylabel('
) (n
');
subplot(2,2,4);stem(n3,x3);
title('单位阶跃序列');xlabel('n');ylabel('u(n)');
1.2序列的卷积
程序如下:
A=2;N=20;phi=3*pi/4;
w=pi/3;
n0=-5:0.5:10; x0=A*sin(w*n0+phi); a=2;N=20; n1=0:0.3:6; x1=a.^n1; y=conv(x0,x1);
stem([0:length(x0-1),x1]);
正弦序列
x (n )
n
指数序列
n
x (n )
n
δ(n ))
n
u (n )
10
20
30
40
50
60
70
正弦序列与指数序列卷积
题目二:利用DFT 进行周期信号频谱分析
连续周期信号相对于离散周期信号,连续非周期信号相对于离散非周期信
号,都可以通过时域抽样定理建立相互关系。因此,在离散信号的DFT 分析方法基础上,增加时域抽样的步骤,就可以实现连续信号的DFT 分析。应用离散傅里叶变换DFT ,分析连续周期信号x T (t)的频谱。
连续周期信号在满足一定条件下,可以通过傅立叶级数(CTFS )展开为一系列正弦信号的线性叠加,其频谱函数X (k Ω)是离散频率的复函数,因而周期信号的频谱结构具有离散性和谐波性。
?
-Ω-=
Ω22
00)(1
)(T T t jk dt
e t x T k X
对x(t)以T 为间隔进行取样,长度为一个周期T 0 ,dt →T, ?∑
→,)()(n x t x →,
T 0=NT,得到
T
e
n x T k X N n nT
jk ∑-=Ω-=
Ω1
)(1
)(
=∑-=-1
20
)(N n kn N
j e
n x T T π
=)(1
k X N
连续周期信号的频谱求解步骤:
(1) 根据取样定理,确定时域取样间隔T ; (2) 计算一个周期内的取样点数N 。
(3) 使用FFT 命令作N 点FFT 计算,求得X (k);
(4) 最后求得连续周期信号的频谱为X (k Ω)= N 1
X (k)
2.1连续信号频谱分析比较
例:利用DFT 近似分析连续信号x(t)=e^(-t)*u(t)的幅度频谱并与理论值比较,并分析二者产生误差的原因。 当Fs 分别为8Hz 、16Hz 和32Hz 时: Fs=8Hz 时,程序如下: Fs=8;T=1/Fs; ws=2*pi*Fs;
N=60; %假设信号长度 L=512; %假设DFT 的点数
detaf=N/(Fs*2);detafd=L/Fs; fprintf('分辨率为%f\n',detaf); fprintf('谱线间隔为%f\n',detafd); t=(0:N-1)*T;xk=exp(-1*t); X=fftshift(fft(xk,L)); w=(-ws/2+(0:L-1)*ws/L)/(2*pi); plot(w,abs(X));grid on ;
频谱图如下:
0123456789
当Fs=16Hz 时,程序如下:
Fs=16;T=1/Fs; ws=2*pi*Fs; N=60; %假设信号长度
L=512; %假设DFT 的点数
detaf=N/(Fs*2);detafd=L/Fs;
fprintf('分辨率为%f\n',detaf); fprintf('谱线间隔为%f\n',detafd); t=(0:N-1)*T;xk=exp(-1*t); X=fftshift(fft(xk,L)); w=(-ws/2+(0:L-1)*ws/L)/(2*pi); plot(w,abs(X));grid on ;
频谱图如下:
024681012141618
当Fs=16Hz 时,程序如下:
Fs=64;T=1/Fs; ws=2*pi*Fs; N=60; %假设信号长度
L=512; %假设DFT 的点数
detaf=N/(Fs*2);detafd=L/Fs; fprintf('分辨率为%f\n',detaf); fprintf('谱线间隔为%f\n',detafd); t=(0:N-1)*T;xk=exp(-1*t); X=fftshift(fft(xk,L)); //fft 运算 w=(-ws/2+(0:L-1)*ws/L)/(2*pi); plot(w,abs(X));grid on ;
频谱图如下:
0510152025303540
分析:有限长序列的DFT 仍是有限长序列,故其特别适合数字系统——它不仅具有重要的理论意义,且DFT 存在快速算法,所以仍用DFT 分析连续信号的频谱。在利用DFT 分析连续信号频谱时,会出现混叠现象,频率泄漏,栅栏现象导致误差。
2.2利用DFT 进行运算
例:考虑)52.0cos()48.0cos()(n n n x ππ+=
1)取)100)((≤≤n n x 时,求)(n x 的DFT : X (k );
2)将(1)中的)(n x 以补零方式使)(n x 加长到1000≤≤n ,求X (k ); 3)取)1000)((≤≤n n x ,求X (k )要求画出)(n x 和X (k ) 程序如下: N1=11;
k1=0:N1-1; n=[0:10];
xn=cos(0.48*pi*n)+cos(0.52*pi*n); subplot(3,2,1);stem(xn);title('xn'); y1=fft(xn,N1);
subplot(3,2,2);stem(k1,abs(y1)); title('xn 11点DFT '); N2=101; k2=1:N2;