数字信号处理实验报告完整版
时间:2021-10-12 来源:博通范文网 本文已影响 人
实验 1
利用 T DFT 分析信号频谱
一、实验目的
1.加深对 DFT 原理的理解。
2.应用 DFT 分析信号的频谱。
3.深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境
计算机、MATLAB 软件环境 三、实验基础理论
T 1.DFT 与 与 T DTFT 的关系
有限长序列 的离散时间傅里叶变换 在频率区间的 N 个等间隔分布的点 上的 N 个取样值可以由下式表示:
212 /0( )| ( ) ( ) 0 1Nj knjNk NkX e x n e X k k N 由上式可知,序列 的 N 点 DFT ,实际上就是 序列的 DTFT 在 N 个等间隔频率点 上样本 。
2.利用 T DFT 求 求 DTFT
方法 1 1:由恢复出的方法如下:
由图 2.1 所示流程可知:
101( ) ( ) ( )Nj j n kn j nNn n kX e x n e X k W eN 由上式可以得到:
IDFT DTFT
很敏锐地揭露出问题所在。
南京邮电大学
实 验 报 告
实验名称_____熟悉MATLAB环境 ___ 快速傅里叶变换及其应用 ____IIR数字滤波器的设计_ FIR数字滤波器的设计
课程名称 数字信号处理A
班级学号_______09002111___________ 姓 名 王都超
开课时间 2011/2012学年, 第 二 学期
实验一
熟悉MATLAB环境
一、实验目的
(1)熟悉MATLAB的主要操作命令。 (2)学会简单的矩阵输入和数据读写。 (3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。 (5)观察离散系统的频率响应。
二、实验内容
(1) 数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3,4,5,6],求
C=A+B, D=A-B,E=A.*B,F=A./B,G=A.^B 。并用stem语句画出A、B、C、D、E、F、G。
D =
-2
-2
-2
-2 E =
24
F =
0.3333
0.5000
0.6000
0.6667 G =
243
4096 (2) 用MATLAB实现下列序列: a) x(n)0.8n 0n1
5n=0:1:15; x1=0.8.^n; a=(0.2+3*i)*n; stem(x1) b) x(n)e(0.23j)n 0n15
n=0:1:15; x2=exp(a); a=(0.2+3*i)*n; stem(x2)
c) x(n)3cos(0.125n0.2)2sin(0.25n0.1)
0n15
(4) 绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注: a) x(t)sin(2t) 0t10s
b) x(t)cos(100t)sin(t) 0t4s t=0:0.01:4; x=cos(100*pi*t).*sin(pi*t); plot(t,x, \\"r-\\"); xlabel(\\"t\\"),ylabel(\\"x(t)\\"),title(\\"cos\\")
(6) 给定一因果系统H(z)(1频响应和相频响应。
2z1z2)/(10.67z10.9z2),求出并绘制H(z)的幅
(7) 计算序列{8 -2 -1 2 3}和序列{2 3 -1 -3}的离散卷积,并作图表示卷积结果。
(8) 求以下差分方程所描述系统的单位脉冲响应h(n), 0n50
y(n)0.1y(n1)0.06y(n2)x(n)2x(n1)
实验过程与结果(含实验程序、运行的数据结果和图形); clear all; N=50; a=[1 -2]; b=[1 0.1 -0.06]; x1=[1 zeros(1,N-1)]; n=0:1:N-1; h=filter(a,b,x1); stem(n,h) axis([-1 53 -2.5 1.2])
实验二
快速傅里叶变换及其应用
一、实验目的
(1) 在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。 (2) 应用FFT对典型信号进行频谱分析。
(3) 了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。 (4) 应用FFT实现序列的线性卷积和相关。
二、实验内容
实验中用到的信号序列 a) 高斯序列
(np)qxa(n)e020n15 其他
b) 衰减正弦序列
eansin(2fn)xb(n)00n15其他
c) 三角波序列 nxc(n)8n00n34n7 其他
d) 反三角波序列
4nxd(n)n400n34n7 其他
(1) 观察高斯序列的时域和幅频特性,固定信号xa(n)中参数p=8,改变q的值,使q分别等于2,4,8,观察它们的时域和幅频特性,了解当q取不同值时,对信号序列的时域幅频特性的影响;固定q=8,改变p,使p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
(3) 观察三角波和反三角波序列的时域和幅频特性,用N=8点FFT分析信号序列xc(n)和观察两者的序列形状和频谱曲线有什么异同?绘出两序列及其幅频特性xd(n)的幅频特性,曲线。
在xc(n)和xd(n)末尾补零,用N=32点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两种情况的FFT频谱还有相同之处吗?这些变化说明了什么?
(5) 用FFT分别实现xa(n)(p=8,q=2)和xb(n)(a=0.1,f=0.0625)的16点循环卷积和线性卷积。
n=0:15; p=8; q=2;
xa=exp(-(n-p).^2/q); subplot(2,3,1); stem(n,xa,\\".\\"); title(\\"xa波形\\");
Xa=fft(xa,16); subplot(2,3,4); stem(abs(Xa),\\".\\");
title(\\"Xa(k)=FFT[xa(n)]的波形 \\"); A=1; f=0.0625; a=0.1;
xb=exp(-a*n).*sin(2*pi*f*n); subplot(2,3,2); stem(n,xb,\\".\\"); title(\\"xb波形\\"); Xb=fft(xb,16); subplot(2,3,5); stem(abs(Xb),\\".\\");
title(\\"Xb(k)=FFT[xb(n)]的波形 \\");
实验过程与结果(含实验程序、运行的数据结果和图形);
实验三 IIR数字滤波器的设计
一、实验目的
(1) 掌握双线性变换法及脉冲响应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IIR数字滤波器的计算机编程。
(2) 观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点。
(3) 熟悉巴特沃思滤波器、切比雪夫滤波器和椭圆滤波器的频率特性。
二、实验内容 (1)P162 例4.4 设采样周期T=250s(采样频率fs=4kHz),分别用脉冲响应不变法和双线性变换法设计一个三阶巴特沃思低通滤波器,其3dB边界频率为fc=1kHz。
脉冲响应不变法: fc=1000; fs=4000; OmegaC=2*pi*fc; [B,A]=butter(3, OmegaC,\\"s\\"); [num1,den1]=impinvar(B,A,fs); [h1,w]=freqz(num1,den1); f = w/pi*fs/2; plot(f,abs(h1));
双线性变换法: fc=1000; fs=4000;
OmegaC=2*fs*tan(pi*fc/fs); [B,A]=butter(3, OmegaC,\\"s\\"); [num2,den2]=bilinear(B,A,fs); [h2,w]=freqz(num2,den2); f = w/pi*fs/2; plot(f,abs(h2));
同一图中画两条曲线: fc=1000; fs=4000; OmegaC=2*pi*fc; [B,A]=butter(3, OmegaC,\\"s\\"); [num1,den1]=impinvar(B,A,fs); [h1,w]=freqz(num1,den1); f = w/pi*fs/2;
OmegaC=2*fs*tan(pi*fc/fs); [B,A]=butter(3, OmegaC,\\"s\\"); [num2,den2]=bilinear(B,A,fs); [h2,w]=freqz(num2,den2); f = w/pi*fs/2; plot(f,abs(h1),\\"r-.\\"); hold on; plot(f,abs(h2),\\"g-\\");
(选做) (2)fc=0.2kHz,=1dB,fr=0.3kHz,At=25dB,T=1ms;分别用脉冲响应不变法及双线性变换法设计一巴特沃思数字低通滤波器,观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量,检查是否满足要求。比较这两种方法的优缺点。
实验过程与结果(含实验程序、运行的数据结果和图形);
实验四
FIR数字滤波器的设计
一、实验目的
(1) 掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉相应的计算机编程;
(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性;
(3) 了解各种不同窗函数对滤波器性能的影响。
二、实验内容
(1) 生成一个长度为20的矩形窗,画出其时域和幅频特性曲线。 n=0:1:19; N=20; win(1:20)=1; [H,w]=freqz(win,1); subplot(2,1,1); stem(n,win) subplot(2,1,2); plot(w,abs(H));
(2) 用矩形窗设计一个21阶的线性相位低通FIR数字滤波器,截止频率Wc=0.25π,求出滤波器系数,并绘出滤波器的幅频特性。修改程序,分别得到阶次为N=41,61的滤波器,并显示其各自的幅频曲线。
a) 在上面所得的几幅图中,在截止频率两边可以观察到幅频响应的摆动行为。 请问波纹的数量与滤波器脉冲响应的长度之间有什么关系?
b) 最大波纹的高度与滤波器脉冲响应的长度之间有什么关系?
实验过程与结果(含实验程序、运行的数据结果和图形); 21阶的线性相位低通FIR数字滤波器: Wc=0.25*pi; N=21; M=(N-1)/2;
%位移量
for n=0:(N-1)
if (n== fix(M))
%中间的点单独算
hd(n+1)=Wc/pi;
else
hd(n+1)=sin(Wc*(n-M)) /(pi*(n-M)); end; end; win=boxcar(N); %%%不同窗函数
h=hd.*win\\"; [H,w]=freqz(h,1); n=0:1:N-1; subplot(3,1,1); stem(n,h) subplot(3,1,2); plot(w,abs(H)); subplot(3,1,3); plot(w,angle(H));
41阶的线性相位低通FIR数字滤波器: Wc=0.25*pi; N=41; M=(N-1)/2;
%位移量
for n=0:(N-1)
if (n== fix(M))
%中间的点单独算
hd(n+1)=Wc/pi;
else
hd(n+1)=sin(Wc*(n-M)) /(pi*(n-M)); end; end; win=boxcar(N); %%%不同窗函数
h=hd.*win\\"; [H,w]=freqz(h,1); n=0:1:N-1; subplot(3,1,1); stem(n,h) subplot(3,1,2); plot(w,abs(H)); subplot(3,1,3); plot(w,angle(H));
61阶的线性相位低通FIR数字滤波器: Wc=0.25*pi; N=61; M=(N-1)/2;
%位移量
for n=0:(N-1)
if (n== fix(M))
%中间的点单独算
hd(n+1)=Wc/pi;
else
hd(n+1)=sin(Wc*(n-M)) /(pi*(n-M)); end; end; win=boxcar(N); %%%不同窗函数
h=hd.*win\\"; [H,w]=freqz(h,1); n=0:1:N-1; subplot(3,1,1); stem(n,h) subplot(3,1,2); plot(w,abs(H)); subplot(3,1,3); plot(w,angle(H));
数字信号处理实验小结及心得体会:
通过这次实验,我对MATLAB语言有了一定的认识,虽然还不能完全用MATLAB独立编写程序,但对这种语言环境有了新的了解。我知道了一般的加减乘除在MATLAB中不同的意义。知道输入、输出语句怎么形成。通过快速傅里叶变换及其应用的实验,加深了我对FFT的理解,还有对各典型信号的频谱分析,改变参数后时域和幅频特性的变化。IIR数字滤波器的设计让我知道了巴特沃思滤波器和切比雪夫滤波器的频率特性,还有双线性变换及脉冲响应不变法设计的滤波器的频率特性。做这个实验的时候程序有点困难,很多细节问题不能考虑清楚,导致图形出不来。FIR数字滤波器的设计出来的是三种窗的图形,通过三种窗的比较,我了解了他们各自的特点,幅频和相频特性。我在这次实验中的收获很大,接触了很多新的知识,但在实验写程序时,我发现自己还有很多不足。很多程序写不完全。这是自己今后要加强的地方。
加入作者的感触,很棒!