当前位置:文档之家› 数字信号处理实验指导书(2015年用) (1)

数字信号处理实验指导书(2015年用) (1)

数字信号处理实验指导书(2015年用) (1)
数字信号处理实验指导书(2015年用) (1)

实验0:熟悉Matlab环境和语言

1. 实验目的

(1)熟悉MATLAB界面,了解常用操作窗口。

(2)熟悉MATLAB语言的基本操作技术。

(3)掌握m文件的编程及调试技术。

2. 实验原理与方法

(1)软件界面简介

不同版本的Matlab软件界面不完全相同,但一般都由标题栏、菜单栏、工具栏、交互窗口、状态栏等部分组成。其中,交互窗口主要包括:命令窗、当前目录窗、工作空间窗(含数组编辑器)、历史指令窗、m文件编辑窗、图形显示窗等等。

(2)常用操作指定

标点符号在MATLAB中的地位极其重要,为确保指令正确执行,标点符号一定要在英文状态下输入。常用标点符号的功能如下:

逗号, 用于要显示计算结果的指令结尾标志;用于输入量与输入量之间的分隔符;用于数组元素分隔符号。

黑点. 用作数值中的小数点;用于元素群运算。

分号; 用于不显示计算结果的指令结尾标志;用作数组的行间分隔符号。

冒号: 用于生成一维数值数组;用做单下标援引。

注释号% 后面的物理行作注释。

单引号‘ ’ 字符串记述符。

圆括号()函数指令时用;数组援引时用。

方括号[ ] 输入数组时用;函数指令输出宗量列表时用。

续行号… 由三个以上连续黑点构成,用于长指令。

常用操作指定主要有:

clc 清除指令窗中显示内容

clear 清除MATLAB工作空间中保存的变量。

close all 关闭所有打开的图形窗口

type 显示指定m文件的内容。

disp 显示变量的内容。

(3)标识符、特殊变量、函数

标识符是标志变量名、常量名、函数名和文件名的字符串的总称。标识符可由字母、数字和下划线组成,但必须以英文字母开头。标识符区分字母大小写。

特殊变量是MATLAB内部用来表达特殊含义的变量(包括常量),又称为MATLAB的预定义变量。如:ans(指当前未定义变量名的答案);eps(表示浮点相对精度,eps=2-52≈2.2204e-016);inf(无穷大);nan(不是数);i或j(虚单元);pi(圆周率)。在编写程序指定时,应尽可能不对这些预定义变量重新赋值。

MATLAB语言的优点和难点是函数多,仅基本部分就有700多个函数,共分22大类(即22个函数库)。学习函数的基本方法是利用help命令或help窗口文件,在应用中逐步扩展掌握。

(4)矩阵运算和数组(元素群)运算

矩阵在结构上和二维数组没有区别,但矩阵是一种具有线性变换意义的二维数组,矩阵运算有明确而且严格的数学规则。把矩阵作为一个整体进行运算的常用运算符有五个“’、*、/、\、^ ”,常用运算函数有三个“expm、logm、 sqrtm”。在做矩阵运算时,往往还需要进行行列提取、抽除、转置、

重排等操作。

数组(元素群)运算是指对数组中所有元素按单个元素进行运算。MATLAB 所有的运算符和函数都适用于做数组运算。如果是对数组进行“转置、乘、除、幂”等运算,必须在运算符前加一个小黑点。 (5) 编辑调试m 文件

对于比较简单的问题或一次性问题,可通过在指令窗中直接输入指令求解,但当指令较复杂,或一组指令只需改变少量参数就可解决不同问题时,直接在指令窗中逐条输入指令的方法就显得烦琐、累赘和笨拙。m 文件可以很好地解决这个问题。

m 文件编辑器:m 文件可用编辑调试器(Edit/Debugger )进行编辑调试。缺省情况下,m 文件编辑器不随MATLAB 的启动而开启,新建或打开m 文件时均可启动m 文件编辑器。

m 文件的编写:用clear,close all,clc 等语句清除工作空间的变量、关闭所有图形窗口和清空命令窗口;除单引号内部的字符及注释外,程序语句必须用半角英文字母和符号(建议在程序输入时从头到尾用英文,汉字在程序调试完毕后加入);编辑器可对程序的字体格式和段落缩进自动排版;程序路径和标识符不允许出现汉字字符;以%开头的物理行后面是注释(可用汉字)。

m 文件的运行:在m 文件编辑调试器(Edit/Debugger )中执行Debug:Run 命令即可运行调试,可在命令窗口及工作空间窗口了解运行情况。想退出运行的m 文件可在命令窗中用“Ctrl+C ”中止m 文件的运行。

(6)matlab 绘图

matlab 绘图函数比较多,常用的MATLAB 绘图函数有plot 、stem 、subplot 、 figure 等。利用plot 函数可绘连续图象、利用stem 函数可绘离散图象。利用subplot 函数可分割窗口。利用figure 函数可创建新的图形窗口或指定当前窗口。title 命令可给图加上标题;xlabel/ylabel 命令可给坐标轴加说明;text 或gtext 命令可在图上任何位置加标注;grid 命令可在图上画坐标网格线;hold on 命令可保持当前图形绘图。这些函数命令的调用格式,可参阅help 查找。

表1 基本线型和颜色

3.实验内容及步骤

(1) 用plot 函数在0到2π范围内绘制两条正弦信号波形)4/sin(2),sin(1π-==x y x y ,波形需用不同线形区分,需加必要说明。

clc; clear; close all;format compact x=linspace(0,2*pi,100); y1=sin(x);y2=sin(x-pi/4); plot(x,y1,'r');hold on plot(x,y2,'b:');

axis([0,2*pi,-1.1,1.1]); xlabel('x'),ylabel('y'), title('正弦波形图'),grid on

(2) 用stem 函数绘15点指数序列波形n n x 8.02)(?=,需加必要说明。 clc; clear; close all;format compact

n=0:14, xn=2*0.8.^n, stem(n,xn,'.');

xlabel('n'),ylabel('x(n)'), title('指数序列波形'),

(3) 已知序列}2,0,1,1,3,2{)(-=n x ,}1,1,2{)(-=n h ,计算卷积)(*)()(n h n x n y =,并用三个子窗口绘制x(n),h(n)和y(n)的波形,需加必要说明。

clc; clear; close all; format compact

xn=[2,3,1,-1,0,2],Nx=length(xn), hn=[2,-1,1],Nh=length(hn), yn=conv(xn,hn),Ny=length(yn), n=0:(Ny-1), subplot(3,1,1);

stem(n,[xn,zeros(1,Ny-Nx)],'b.'), xlabel('n'),ylabel('x(n)'), grid,title('输入信号x(n)'), subplot(3,1,2);

stem(n,[hn,zeros(1,Ny-Nh)],'b.'), xlabel('n'),ylabel('h(n)'),

grid,title('脉冲响应h(n)'), subplot(3,1,3); stem(n,yn,'r.'),

xlabel('n'),ylabel('y(n)'), grid,title('输出信号y(n)'),

(4) 已知系统的差分方程为

)2()()2(9801.0)1(8237.1)(00--+---=n x b n x b n y n y n y ,令 49.100/10=b ,判断系统是否稳定,绘出系统的幅频特性曲线和相频特性曲线。

clc; clear; close all; format compact

A=[1,-1.8237,0.9801],B=[1/100.49,0,-1/100.49], %系统差分方程系数向量A 和B

[r,p,k]=tf2zp(B,A), %求系统的零、极点及增益 figure(1);zplane(B,A), %绘零极点图 figure(2);freqz(B,A); %观察系统的谐振频率

实验一:系统响应及系统稳定性

1. 实验目的

(1)掌握求系统响应的方法。

(2)掌握时域离散系统的时域特性。 (3)分析、观察及判断系统的稳定性。 2. 实验原理与方法

描述系统特性有多种方式,时域描述有差分方程和单位脉冲响应,频域描述有系统函数和频率响应。已知输入信号可以由差分方程、单位脉冲响应、系统函数或频率响应求系统输出信号。

(1)求系统响应 本实验仅在时域求系统响应。在计算机上,已知差分方程可调用filter 函数求系统响应;已知单位脉冲响应可调用conv 函数计算系统响应。

(2)系统的时域特性 系统的时域特性是指系统的线性、时不变性质、因果性和稳定性。本实验重点分析系统的稳定性,包括观察系统的暂态响应和稳态响应。 (3)系统的稳定性判断 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和条件。实际中,检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。

(4)系统的稳态响应 系统的稳态输出是指当∞→n 时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n 的加大,幅度趋于稳定,达到稳态输出。注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

(1)已知差分方程求系统响应 设输入信号 )()(81n R n x =,)()(2n u n x =。已知低通滤波器的差分方程为 )1(9.0)1(05.0)(05.0)(-+-+=n y n x n x n y 。试求系统的单位冲响应,及系统对

)()(81n R n x =和)()(2n u n x =的输出信号,画出输出波形。

(2)已知单位脉冲响应求系统响应 设输入信号 )()(8n R n x =,已知系统的单位脉冲响应分别为

)()(101n R n h =,)3()2(5.2)1(5.2)()(2-+-+-+=n n n n n h δδδδ,试用线性卷积法分别求出各系

统的输出响应,并画出波形。

(3)系统的稳定性判断 给定一谐振系统的差分方程为

)2()()2(9801.0)1(8237.1)(00--+---=n x b n x b n y n y n y 令 49.100/10=b ,谐振器的谐振频率为0.4rad 。

①输入信号为)(n u 时,画出系统输出波形。判断系统是否稳定。

②给定输入信号为)4.0sin()014.0sin()(n n n x +=,求出系统的输出响应,并画出其波形。 4.思考题

(1) 如果输入信号为接近无限长的序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应? 应如何求?

(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化,结合实验(1)结果进行分析说明。 5.实验报告要求

(1)结合实验内容打印程序清单和信号波形。 (2)对各实验结果进行简单分析和解释。 (3)简要回答思考题。

%(1)已知差分方程求系统响应(显示50个数据)

clear;clc;close all;

A=[1,-0.9]; B=[0.05,0.05]; %系统差分方程系数向量A和B

n=0:49,% 显示50个数据

x1n=[1,1,1,1,1,1,1,1,zeros(1,42)]; %产生信号x1(n)=R8(n)

x2n=ones(1,50); %产生信号x2(n)=u(n)

hn=impz(B,A,50); %求系统单位脉冲响应h(n)

subplot(3,1,1); stem(n,hn,'.'); grid; %绘制点状图并加网格

xlabel('n');ylabel('hn');title('系统的单位脉冲响应');

y1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n)

subplot(3,1,2);

stem(n, y1n,'.'); grid; %绘制点状图并加网格

xlabel('n');ylabel(' y1n ');title('系统对R8(n)的响应');

y2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n)

subplot(3,1,3);

stem(n, y2n,'.'); grid; %绘制点状图并加网格

xlabel('n');ylabel(' y2n ');title('系统对u(n)的响应');

%(2)已知单位脉冲响应求系统响应(显示20个点)

clear;clc;close all;

n=0:19; %产生信号横坐标

xn=[ones(1,8), zeros(1,12)]; %产生信号x(n)=R8(n)

h1n=[ones(1,10), zeros(1,10)]; %产生信号h1(n)=R10(n)

y1n=conv(h1n,xn); %卷积计算输出信号y1(n)

h2n=[1, 2.5, 2.5, 1, zeros(1,16)];

y2n=conv(h2n,xn);

subplot(5,1,1); stem(n,xn,'.'); grid; %绘制点状图并加网格

ylabel('xn');title('系统的输入信号x(n)');

subplot(5,1,2); stem(n,h1n,'.'); grid; %绘制点状图并加网格

ylabel('h1n');title('系统单位脉冲响应h1(n)');

subplot(5,1,3); stem(n,y1n(1:20),'.'); grid;%取y1n前20个数据绘图ylabel('y1n');title('系统的输出信号y1(n)');

subplot(5,1,4); stem(n,h2n,'.'); grid; %绘制点状图并加网格

ylabel('h2n');title('系统单位脉冲响应h2(n)');

subplot(5,1,5); stem(n,y2n(1:20),'.'); grid;%取y2n前20个数据绘图ylabel('y2n');title('系统的输出信号y2(n)');

%(3)系统的稳定性判断(显示300个点)

clear;clc;close all;

A=[1,-1.8237,0.9801],B=[1/100.49,0,-1/100.49],

%系统差分方程系数向量A和B

figure(1);freqz(B,A);%观察系统的谐振频率

n =0:299; %产生信号横坐标

xun =ones(1,300); %产生阶跃信号

y1n=filter(B,A,xun); %谐振器对阶跃的响应y1(n)

figure(2); subplot(2,1,1);

stem(n,y1n,'.'); grid; %取y1(n)前300个数据绘图

ylabel('y1(n)');title('谐振器对阶跃信号的响应

y1(n)');

xsin=sin(0.014*n)+sin(0.4*n); %产生正弦叠加信号

y2n=filter(B,A,xsin); %谐振器对正弦信号的响应y2(n)

figure(2); subplot(2,1,2);

stem(n,y2n,'.'); grid; %取y2(n)前300个数据绘图

ylabel('y2(n)');title('谐振器对正弦信号的响应y2(n)');

实验二:用FFT 对信号作频谱分析

1. 实验目的

(1)学会用FFT 对时域离散信号进行谱分析。

(2)理解序列的傅里叶变换与序列的离散傅里叶变换之间关系。 (3)了解离散傅里叶变换的时域循环移位定理。 2. 实验原理

用FFT 对信号作频谱分析是学习数字信号处理的重要内容。需要进行频谱分析的信号主要有时域连续信号和时域离散信号。对连续信号进行频谱分析时,先要对信号进行采样,在满足采样定理条件下,采样序列的数字频谱能准确反映连续信号的模拟频谱,否则会发生频谱混叠现象。由于DFT 要求信号时域离散且数量有限,如果序列很长或采样点数太多,计算机存储和DFT 计算都很困难,通常采用加窗方法截取部分数据进行DFT 运算。DFT 只能描述其有限个频点的频率数据,故存在栅栏效应。总之,用DFT 分析实际信号的频谱,其结果必然是近似的。

本实验只对离散时间信号进行频谱分析,重点掌握用FFT 对时域离散信号进行谱分析的分析方法,理解DFT 与序列的傅里叶变换之间的关系,验证离散傅里叶变换的时域循环移位定理。

关于一般信号的频谱分析过程及误差分析,可参见:张登奇,杨慧银.信号的频谱分析及MATLAB 实现[J].湖南理工学院学报(自然科学版),2010,(03)。关于周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。关于模拟周期信号,先采样成周期序列,再按周期序列进行频谱分析。 3.实验内容及步骤

(1)不同点数的FFT 频谱分析(参见教材P76) 设时域离散信号)()(41n R n x =,选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。并对结果进行对比、分析和讨论。 (2)循环移位序列的频谱分析(参见教材P80)

设时域离散信号)(2n x =[1,2,3,4,4,3,2,1];)(3n x =[4,3,2,1,1,2,3,4]。选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并对结果进行对比、分析和讨论。 4.思考题

(1)用FFT 对连续信号进行频谱分析中,简述连续信号的离散原则和过程。(参见教材P98) (2)当N=8时,)(2n x 和)(3n x 的幅频特性会相同吗?为什么?N=16 呢? 5.实验报告要求

(1)结合实验内容打印程序清单和信号波形。 (2)对各实验结果进行简单分析和解释。 (3)简要回答思考题。

6.附加题

将)(4n R 的傅里叶变换幅频函数|)(|ω

j e

X 和)(4n R 的8点及16点离散傅里叶变换幅频函数绘在一

个图上,对比分析理解图形,并解释离散傅里叶变换的物理意义。

%(1)不同点数的FFT频谱分析(参见教材P76)

clear;clc;close all;format compact

x1n=ones(1,4), %产生序列

X1k8=fft(x1n,8); X1k16=fft(x1n,16);

%计算x1n的8点和16点DFT

subplot(2,1,1);k8=[0:7];

stem(k8,abs(X1k8),'.') %绘制x1(n)的8点DFT幅频特性图

xlabel('2π/8');ylabel('幅度'); grid;

title('x1(n)的8点幅频特性');

axis([0,8,0,1.2*max(abs(X1k8))]);

subplot(2,1,2);k16=[0:15];

stem(k16,abs(X1k16),'.') %绘制x1(n)的16点DFT幅频特性图

xlabel('2π/16');ylabel('幅度'); grid;

title('x1(n)的16点幅频特性');

axis([0,16,0,1.2*max(abs(X1k16))]);

%(2)循环移位序列的频谱分析(参见教材P80)

clear;clc;close all;format compact

x2n=[1,2,3,4,4,3,2,1], x3n=[4,3,2,1,1,2,3,4],%产生序列

X2k8=fft(x2n,8); X2k16=fft(x2n,16); %计算x2n的8点和16点DFT X3k8=fft(x3n,8); X3k16=fft(x3n,16); %计算x3n的8点和16点DFT subplot(2,2,1);k8=[0:7];

stem(k8,abs(X2k8),'.') %绘制x2(n)的8点DFT幅频特性图

xlabel('2π/8');ylabel('幅度'); grid;

title('(a) x2(n)的8点幅频特性');

axis([0,8,0,1.2*max(abs(X2k8))]);

subplot(2,2,2);k16=[0:15];

stem(k16,abs(X2k16),'.') %绘制x2(n)的16点DFT幅频特性图

xlabel('2π/16');ylabel('幅度'); grid;

title('(b) x2(n)的16点幅频特性');

axis([0,16,0,1.2*max(abs(X2k16))]);

subplot(2,2,3);k8=[0:7];

stem(k8,abs(X3k8),'.') %绘制x3(n)的8点DFT幅频特性图

xlabel('2π/8');ylabel('幅度'); grid;

title('(c) x3(n)的8点幅频特性');

axis([0,8,0,1.2*max(abs(X3k8))]);

subplot(2,2,4);k16=[0:15];

stem(k16,abs(X3k16),'.')

%绘制x3(n)的16点DFT幅频特性图

xlabel('2π/16');ylabel('幅度'); grid;

title('(d) x3(n)的16点幅频特性');

axis([0,16,0,1.2*max(abs(X3k16))]);

实验三:IIR 数字滤波器设计及软件实现

1.实验目的

(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法。 (2)学会根据滤波需求确定滤波器指标参数。

(3)学会调用滤波器设计分析工具fdatool 设计各种IIR 数字滤波器。 (4)掌握IIR 数字滤波器的MATLAB 实现方法。

(5)通过观察滤波器输入输出信号的波形,建立数字滤波的概念。 2.实验原理

设计IIR 数字滤波器一般采用间接法,即先设计一个模拟滤波器原型,再利用脉冲响应不变法或双线性变换法变换成数字滤波器,其中,应用最广泛的是双线性变换法。本实验要求能根据滤波需求确定滤波器指标参数,学会按设计原理编程设计和调用滤波器设计分析工具fdatool 设计各型IIR 数字滤波器。本实验软件实现是调用MATLAB 信号处理工具箱函数filter 函数对给定输入信号x(n)进行滤波,得到滤波后的输出信号y(n )。 3. 实验内容及步骤

(1) IIR 数字滤波器设计 根据双线性变换法设计IIR 数字滤波器的原理和步骤,设计一个butterworth 数字低通滤波器,要求通带临界频率fp=3400Hz,阻带临界频率fs=5000Hz ,通带内的最大衰减Ap=2dB ,阻带内的最小衰减As=20db,采样频率Fs=22050Hz 。 (2) IIR 数字滤波器软件实现 利用第(1)步设计的数字滤波器,调用filter 函数对信号进行滤波,观察滤波前后的信号波形变化,建立数字滤波的概念。 4.思考题

(1)简述双线性变换法设计IIR 数字滤波器的设计步骤。 (2)为了观察数字滤波的效果,应怎样设计滤波前的信号? 5.实验报告要求

(1)结合实验内容打印程序清单和信号波形。 (2)对实验结果进行简单分析和解释。 (3)简要回答思考题。 6.附加题

将c ω分别取2/)(cs cp cs cp ωωωω+、、时三种情况下的IIR 数字滤波器幅频函数绘在一个图上,对比分析理解图形,并解释c ω的不同取值对幅频函数的影响。

附:IIR 数字滤波器的工具设计法

工具设计法是利用MATLAB 提供的滤波器设计与分析工具(FDATool )进行设计的一种方法。在命令窗口输入FDATool ,即可打开如图所示的图形用户界面设计窗口。该窗口分为上下两部分:上面是设计结果显示;下面用来设定所需的技术参数。FDATool 需设置的参数主要有响应类型、设计方法、滤波器阶数及选项、频率参数和幅度参数等项目,不同类型和不同方法的滤波器设计参数不尽相同,图中给出的是某设计实例的设计指标。设置好技术指标后,点击Design Filter 按键,即可完成设计。想对设计结果进行分析,可通过分析菜单或相关工具进行分析。

如要将设计结果以传输函数的分子分母形式输出,先运行Edit/convert to single section 命令,再运行 File/Export …命令,在弹出的对话框中给变量命名为bz 和az ,即可在工作空间得到设计结果。

实验四:FIR数字滤波器设计与软件实现

1.实验目的

(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

(2)学会调用MA TLAB函数设计FIR滤波器。

(3)通过观察频谱的相位特性曲线,建立线性相位概念。

(4)掌握FIR数字滤波器的MATLAB软件实现方法。

2.实验原理

设计FIR数字滤波器一般采用直接法,如窗函数法和频率采样法。本实验采用窗函数法设计FIR 滤波器,要求能根据滤波需求确定滤波器指标参数,并按设计原理编程设计符合要求的FIR数字滤波器。本实验软件实现是调用MATLAB提供的fftfilt函数对给定输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。

3. 实验内容及步骤

(1) FIR数字滤波器设计根据窗函数法设计FIR数字滤波器的原理和步骤,设计一个线性数字低通滤波器,要求通带临界频率fp=120Hz,阻带临界频率fs=150Hz,通带内的最大衰减Ap=0.1dB,阻带内的最小衰减As=60db,采样频率Fs=1000Hz。观察设计的滤波器频率特性曲线,建立线性相位概念。

(2) FIR数字滤波器软件实现利用第(1)步设计的数字滤波器,调用fftfilt函数对信号进行滤波,观察滤波前后的信号波形变化。

4.思考题

(1)简述窗函数法设计FIR数字滤波器的设计步骤。

(2)简述信号在传输过程中失真的可能原因。

5.实验报告要求

(1)结合实验内容打印程序清单和信号波形。

(2)对实验结果进行简单分析和解释。

(3)简要回答思考题。

6.附加题

测出设计的FIR数字滤波器的As值,检验是否符合要求,然后根据测出的的As值算出Ap值并与测到的Ap值进行比较看是不是相等,并检验Ap值是否符合要求。如果不符合该怎样处理。

常用窗函数技术参数及性能比较一览表

实验程序文本

%(1)IIR数字滤波器设计

clear;clc;close all;format compact

%利用双线性变换法设计一个LowpassButterworth滤波器

%技术指标 fp=3400Hz, Ap=2dB, fs=5000Hz, As=20dB,Fs=22050Hz

fp=3400, Ap=2, fs=5000, As=20 ,Fs=22050, %输入模拟技术指标

wp=2*pi*fp/Fs,ws=2*pi*fs/Fs ,%将模拟技术指标转化为数字指标

%利用双线性变换法设计,设T=2,将数字指标转化为模拟原型技术指标

T=2,FS=1/T,

Wp=tan(wp/2), Ws=tan(ws/2),

N=ceil( log10( (10 .^ (0.1*As) - 1)./(10 .^ (0.1*Ap) - 1) ) /... (2*log10(Ws/Wp)) ),

Wcp = Wp / ( (10^(.1*Ap) - 1)^(1/(2*N))),

Wcs = Ws / ( (10^(.1*As) - 1)^(1/(2*N))),

Wc=Wcs,%可取Wcp-Wcs之间任意值,MATLAB取的是Wcs

[bp,ap]=butter(N,1,'s'),%获取归一化低通原型,参见P157

[bs,as] = lp2lp(bp,ap,Wc), %将归一化低通原型转换为模拟低通原型[bz,az] = bilinear (bs,as,FS),%将模拟低通原型转换为数字低通

sys=tf(bz,az,1/Fs), % 给出传输函数H(z)

freqz(bz,az,512,Fs), % 验证技术指标(5000Hz精确满足)

%(2)IIR数字滤波器软件实现

clear;clc;close all;format compact

%指标Fp=3400Hz, Ap=2dB, Fs=5000Hz, As=20dB,Fs=22050Hz

%利用第一步设计的LowpassButterworth滤波器技术指标

bz =[ 0.0047 0.0280 0.0700 0.0933 0.0700 0.0280 0.0047],

az =[ 1.0000 -1.9161 2.1559 -1.3866 0.5585 -0.1257 0.0125], n=[0:199];% 显示200个数据

xn=sin((2*pi*3400/22050)*n)+sin((2*pi*5000/22050)*n);

yn=filter(bz,az,xn); % 实现数字滤波

%subplot(2,1,1);stem(xn,'.'); % 绘制滤波前信号

subplot(2,1,1);plot(xn); % 绘制滤波前信号包络

title('滤波前信号'); % 加标题

%subplot(2,1,2);stem(yn,'.'); % 绘制滤波后信号

subplot(2,1,2);plot(yn); % 绘制滤波后信号包络

title('滤波后信号'); % 加标题

%(1)FIR数字滤波器设计

clear;clc;close all;format compact

%利用窗函数法设计一个线性相位低通滤波器

%技术指标fp=120Hz, Ap=0.1dB, fs=150Hz, As=60dB,Fs=1000Hz

fp=120, Ap=0.1, fs=150, As=60 ,Fs=1000, %输入模拟技术指标

wp=2*pi*fp/Fs,ws=2*pi*fs/Fs ,%将模拟技术指标转化为数字指标

%选择窗函数的类型(As=60选布莱克曼窗)并估计窗口长度M

Bt=ws-wp; M=ceil(11*pi/Bt);

if mod(M,2)==0; N=M+1, else N=M, end; %选用第一类滤波器

wc=(wp+ws)/2, %转折频率一般取通带频率和阻带频率的中点

n=0:N-1;r=(N-1)/2; %用于计算理想低通单位脉冲响应中数据hdn=sin(wc*((n-r)+eps))./(pi*((n-r)+eps)); %参见教材P202 win=blackman(N); hn=hdn.*win',%用布莱克曼窗加窗

figure(1);

freqz(hn,1,512,Fs);grid on;% 绘制结果并加网络

%(2)FIR数字滤波器软件实现(和第一步程序在一个文件里面)n=[0:190];

xn=sin((2*pi*120/1000)*n)+sin((2*pi*150/1000)*n);

yn=fftfilt(hn,xn); % 实现数字滤波

figure(2)

%subplot(2,1,1);stem(xn,'.'); % 绘制滤波前信号

subplot(2,1,1);plot(xn); % 绘制滤波前信号包络

title('滤波前信号'); % 加标题

%subplot(2,1,2);stem(yn,'.'); % 绘制滤波后信号

subplot(2,1,2);plot(yn); % 绘制滤波后信号包络

title('滤波后信号'); % 加标题

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验1,2,3,4

实验一 连续时间系统的时域和频域分析相关MATLAB 函数1.设描述连续时间系统的微分方程为:)()()()()()()()(01)1(1)(01)1(1)(t f b t f b t f b t f b t y a t y a t y a t y a m m m m n n n n +'+++=+'+++---- 则可用向量和表示该系统,即 a b ] ,,,,[011a a a a a n n -=],,,,[011b b b b b m m -=注意,向量和的元素一定要以微分方程时间求导的降幂次序排列,且缺项要用0补齐。a b 如微分方程)()()(2)(3)(t f t f t y t y t y +''=+'+''表示该系统的向量为 ]2 3 1[=a ]1 0 1[=b (1)求解冲激响应:impulse()函数impulse()函数有以下四种调用格式: ① impulse(b,a) 该调用格式以默认方式绘制由向量和定义的连续时间系统的冲激响应的时域波形。a b ② impulse(b,a,t)该调用格式绘制由向量和定义的连续时间系统在时间范围内的冲激响应的时a b t ~0域波形。③ impulse(b,a, t1:p:t2)该调用格式绘制由向量和定义的连续时间系统在时间范围内,且以时间间a b 21~t t 隔均匀抽样的冲激响应的时域波形。p ④ y=impulse(b,a,t1:p:t2)该调用格式并不绘制系统冲激响应的波形,而是求出由向量和定义的连续时间系a b 统在时间范围内以时间间隔均匀抽样的系统冲激响应的数值解。21~t t p (2)求解阶跃响应:step()函数 step()函数也有四种调用格式:① step(b,a) ② step(b,a,t) ③ step(b,a, t1:p:t2) ④ y=step(b,a,t1:p:t2) 上述调用格式的功能与impulse()函数完全相同。

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (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。 clear all; 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; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号:1204140228 班级:通信工程02

一、实验设备 计算机,MATLAB语言环境。 二、实验基础理论 1.序列的相关概念 2.常见序列 3.序列的基本运算 4.离散傅里叶变换的相关概念 5.Z变换的相关概念 三、实验内容与步骤 1.离散时间信号(序列)的产生 利用MATLAB语言编程产生和绘制单位样值信号、单位阶跃序列、指数序列、正弦序列及随机离散信号的波形表示。 四实验目的 认识常用的各种信号,理解其数字表达式和波形表示,掌握在计算机中生成及绘制数字信号波形的方法,掌握序列的简单运算及计算机实现与作用,理解离散时间傅里叶变换,Z变换及它们的性质和信号的频域分

实验一离散时间信号(序列)的产生 代码一 单位样值 x=2; y=1; stem(x,y); title('单位样值 ') 单位阶跃序列 n0=0; n1=-10; n2=10; n=[n1:n2]; x=[(n-n0)>=0]; stem(n,x); xlabel('n'); ylabel('x{n}'); title('单位阶跃序列');

实指数序列 n=[0:10]; x=(0.5).^n; stem(n,x); xlabel('n'); ylabel('x{n}'); title('实指数序列');

正弦序列 n=[-100:100]; x=2*sin(0.05*pi*n); stem(n,x); xlabel('n'); ylabel('x{n}'); title('正弦序列');

随机序列 n=[1:10]; x=rand(1,10); subplot(221); stem(n,x); xlabel('n'); ylabel('x{n}'); title('随机序列');

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

数字信号处理实验1

clc; clear; M=26;N=32;n=0:M; xa=0:M/2; xb=ceil(M/2)-1:-1:0; xn=[xa,xb]; Xk=fft(xn,512); Xk1=abs(Xk); X32k=fft(xn,32); X32k1=abs(X32k); x32n=ifft(X32k); X16k=X32k(1:2:N); X16k1=abs(X16k); x16n=ifft(X16k,N/2); figure(1); subplot(3,2,1); stem(Xk1); subplot(3,2,2); stem(X32k1); subplot(3,2,3); stem(x32n); subplot(3,2,4); stem(X16k1); subplot(3,2,5); stem(x16n); Lx=41;N=5;M=10; hn=ones(1,N);hn1=[hn zeros(1,Lx-N)]; n=0:Lx-1; xn=cos(pi*n/10)+cos(2*pi*n/5); yn=fftfilt(hn,xn,M); figure(1); subplot(3,1,1); stem(hn1); subplot(3,1,2); stem(xn); subplot(3,1,3); stem(yn);

clc; clear; n=0:31; A=3; y=A*exp((0.8+j*314)*n); subplot(2,1,1); stem(y); Az=[0.7 0.3]; Bz=[1 -0.8 -0.5]; subplot(2,1,2); zplane(Bz,Az);

数字信号处理实验二

实验二: 用FFT 作谱分析 实验目的 (1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。 (2) 熟悉FFT 算法原理和FFT 子程序的应用。 (3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。 ● 实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。 (2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。 (3) 编制信号产生子程序, 产生以下典型信号供谱分析用: (4) 编写主程序。 下图给出了主程序框图, 供参考。 本实验提供FFT 子程序和通用绘图子程序。 (5) 按实验内容要求, 上机实验, 并写出实验报告。 1423()()1,03()8470403()3470 x n R n n n x n n n n n x n n n =?+≤≤? =-≤≤?? ?-≤≤?? =-≤≤???456()cos 4 ()sin 8 ()cos8cos16cos20x n n x n n x n t t t π π πππ===++

●实验内容 (1) 对2 中所给出的信号逐个进行谱分析。 (2) 令x(n)=x4(n)+x5(n),用FFT计算8 点和16 点离散傅里叶变换, X(k)=DFT[x(n)] (3) 令x(n)=x4(n)+jx5(n),重复(2)。 ●实验报告要求 (1) 简述实验原理及目的。 (2) 结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。 (3) 总结实验所得主要结论。 (4) 简要回答思考题。 Matlab代码: 对六个所给信号进行谱分析的主程序(对信号进行64点的FFT变换): clc;clear all; N=64; x1=Signal_x1(N);

数字信号处理实验1认识实验

实验1认识实验-MATLAB语言上机操作实践 一、实验目的 ㈠了解MATLAB语言的主要特点、作用。 ㈡学会MATLAB主界面简单的操作使用方法。 ㈢学习简单的数组赋值、运算、绘图、流程控制编程。 二、实验原理 ㈠简单的数组赋值方法 MATLAB中的变量和常量都可以是数组(或矩阵),且每个元素都可以是复数。 在MATLAB指令窗口输入数组A=[1 2 3;4 5 6;7 8 9],观察输出结果。然后,键入:A(4,2)= 11 键入:A (5,:) = [-13 -14 -15] 键入:A(4,3)= abs (A(5,1)) 键入:A ([2,5],:) = [ ] 键入:A/2 键入:A (4,:) = [sqrt(3) (4+5)/6*2 –7] 观察以上各输出结果。将A式中分号改为空格或逗号,情况又如何?请在每式的后面标注其含义。 2.在MATLAB指令窗口输入B=[1+2i,3+4i;5+6i ,7+8i], 观察输出结果。 键入:C=[1,3;5,7]+[2,4;6,8]*i,观察输出结果。 如果C式中i前的*号省略,结果如何? 键入:D = sqrt (2+3i) 键入:D*D 键入:E = C’, F = conj(C), G = conj(C)’ 观察以上各输出结果, 请在每式的后面标注其含义。 3.在MATLAB指令窗口输入H1=ones(3,2),H2=zeros(2,3),H3=eye(4),观察输出结果。 ㈡、数组的基本运算 1.输入A=[1 3 5],B= [2 4 6],求C=A+B,D=A-2,E=B-A 2.求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B, F5=B.\A, F6=B.^A, F7=2./B, F8=B.\2 *3.求B',Z1=A*B’,Z2=B’*A 观察以上各输出结果,比较各种运算的区别,理解其含义。 ㈢、常用函数及相应的信号波形显示 例1:显示曲线f(t)=2sin(2πt),(t>0) ⅰ点击空白文档图标(New M-file),打开文本编辑器。 ⅱ键入:t=0:0.01:3; (1) f=2*sin(2*pi*t); (2) plot(t,f); title(‘f(t)-t曲线’); xlabel(‘t’),ylabel(‘f(t)’);

习题集-02 数字信号处理习题答案

§ Z 变换 ? Z 变换的定义及收敛域 【习题】 1. 假如)(n x 的z 变换代数表示式是下式,问)(z X 可能有多少不同的收敛域。 )83451)(411(411)(2122----+++- =z z z z z X 【分析】 )要单独讨论,(环状、圆外、圆内:有三种收敛域:双边序列的收敛域为:特殊情况有:左边序列的收敛域为:因果序列的收敛域为:右边序列的收敛域为:特殊情况有:有限长序列的收敛域为 0 0 , , 0 0 , , 0 , 0 0 , 0 , 0 22 11 212 1∞==<<≤≤<≤<<≥≥∞≤<≥∞<<≤∞<≤≥∞≤<≤≤∞<<+ -++--z z R z R n n R z n n R z n n z R n n z R n z n z n n n z x x x x x x

解:对X (Z )的分子和分母进行因式分解得 )43 1 )(21 1)(211(2111111----+-+- =Z jZ jZ Z X (Z )的零点为:1/2,极点为:j/2,-j/2,-3/4 ∴ X (Z )的收敛域为: (1) 1/2 < | Z | < 3/4,为双边序列,见图一 (2) | Z | < 1/2,为左边序列,见图二 (3) | Z | > 3/4,为右边序列,见图三 图一 图二 图三 )431)(211)(411()211)(211()(11211-----++++- =Z Z Z Z Z Z X

? Z 反变换 【习题】 2. 有一右边序列 )(n x ,其 z 变换为)1)(211(1 )(11----=z z z X (a) 将上式作部分分式展开(用 1-z 表示),由展开式求 )(n x 。 (b) 将上式表示成 z 的多项式之比,再作部分分式展开,由展开式求 )(n x ,并说明所得到的序列 与(a)所得的是一样的。 【注意】不管哪种表示法最后求出 x (n ) 应该是相同的。 解:(a) 因为11122 111)(---+--=z z z X 且x(n)是右边序列 所以 )()212()(n u n x n ?? ? ??-= (b) 122 1211 )1)(2 1(21231 )1)(2 1()(2 -+--+=---+=--=z z z z z z z z z X )()212( )1(2)1(21)()( n u n u n u n n x n n ??? ??-=-+-?? ? ??-=δ则

数字信号处理实验一.

实验一离散傅里叶变换的性质 一、实验目的 1、掌握离散傅里叶变换的性质,包括线性特性、时移特性、频移特性、对称性和循环卷积等性质; 2、通过编程验证傅里叶变换的性质,加强对傅里叶变换性质的认识。二、实验原理和方法 1. 线性特性 1212DFT[((]((ax n bx n aX k bX k +=+ 2. 时移特性 DFT[(](DFT[(]( km km x n m W X k x n m W X k ?+=?= 3. 频移特性 ((nl N IDFT X k l IDFT X k W +=???????? 4. 对称性 设由x(n开拓成的周期序列为 (p x n 则(((p pe po x n x n x n =+ 偶序列(((*1 2 pe p p x n x n x N n ??= +???奇序列(((*12 po p p x n x n x N n ??=

????将(pe x n 和(po x n 截取主周期,分别得 (((pet pe N x n x n R n = (((pot po N x n x n R n = 则(((((p N pet pot x n x n R n x n x n ==+ x(n序列的实部和虚部的离散立叶变换 ({} (Re pet DFT x n X k =???? ({} (Im pot DFT j x n X k =???? [][] (((((((((((arg (arg (R R R I I I X k X k X N k X k X k X N k X k X k X N k X k X N k X k X k ?=?=?=?=?=??=??=?=?? 5. 循环卷积 (3123121 (((((x n x n x n X k X k X k N =?= ?有限长序列线性卷积与循环卷积的关系 X1(n和x2(n的线性卷积: 11 31 2 1 2 0(((((N m m x n x m x n m x m x n ?∞=?∞

数字信号处理上机实验答案(全)1

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一 系统响应及系统稳定性。 实验二 时域采样与频域采样。 实验三 用FFT 对信号作频谱分析。 实验四 IIR 数字滤波器设计及软件实现。 实验五 FIR 数字滤波器设计与软件实现 实验六 应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR 数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 10.1 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握 求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MA TLAB 语言的工具箱函数filter 函数。也可以用MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞→n 时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n 的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤 (1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter 函数或conv 函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。 (2)给定一个低通滤波器的差分方程为

数字信号处理实验八

实验报告 实验名称:FIR数字滤波器设计及应用 课程名称____数字信号处理________ 院系部:电气与电子工程专业班级:信息1002 学生姓名:王萌学号: 11012000219同组人:实验台号: 指导教师:范杰清成绩: 实验日期: 华北电力大学

一、实验目的 加深理解 FIR 数字滤波器的时域特性和频域特性,掌握FIR 数字 滤波器的设计原理与设计方法,以及FIR 数字滤波器的应用。 二、 实验原理 FIR 数字滤波器可以设计成具有线性相位,在数据通信、图像处理、 语音信号处理等实际应用领域得到广泛应用。 M 阶FIR 数字滤波器的系统函数为: FIR 数字滤波器的单位脉冲响应h [k ]是长度为M +1的有限长因果序列。当满足对称条件时,该FIR 数字滤波器具有线性相位。FIR 数字滤波器设计方法主要有窗口法、频率取样法及优化设计法。 MATLAB 中提供的常用FIR 数字滤波器设计函数有: fir1 窗函数法设计FIR 数字滤波器(低通、高通、带通、 带阻、多频带滤波器) fir2 频率取样法设计FIR 数字滤波器:任意频率响应 firls FIR 数字滤波器设计:指定频率响应 firrcos 升余弦型 FIR 数字滤波器设计 intfilt 内插FIR 数字滤波器设计 kaiserord 凯塞(Kaiser)窗函数设计法的阶数估计 firpm Parks-McClellan 算法实现FIR 数字滤波器优化设计 firpmord Parks-McClellan 数字滤波器的阶数选择 cremez 复系数非线性相位FIR 等波纹滤波器设计 1、 窗口法设计FIR 数字滤波器 fir1函数可以很容易地实现FIR 数字滤波器窗口法设计。 可设计低通、高通、带通、带阻滤波器、多频带滤波器。 k M k z k h z H -=∑=][)(0

数字信号处理实验一信号、-系统及系统响应

数字信号处理实验一信号、-系统及系统响应

西安郵電學院数字信号处理课内实验 报告书 系部名称:计算机系 学生姓名:常成娟 专业名称:电子信息科学与技术 班级:电科0603 学号:04062095(22号) 时间: 2008-11-23

实验一: 信号、 系统及系统响应 一. 实验目的 (1) 熟悉连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。 (2) 熟悉时域离散系统的时域特性。 (3) 利用卷积方法观察分析系统的时域特性。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、 离散信号及系统响应进行频域分析。 二. 实验原理与方法 采样是连续信号数字处理的第一个关键环节。 对一个连续信号xa(t)进行理想采样的过程可用(10.3.1)式表示。 ( 10.3.1)其中 (t)为xa(t)的理想采样, p(t)为周期冲激脉冲, 即 (10.3.2) (t)的傅里叶变换 (j Ω)为 (10.3.3) 将(10.3.2)式代入(10.3.1)式并进行傅里叶变换, (10.3 .4) 式中的xa(nT)就是采样后得到的序列x(n), 即 x(n)的傅里叶变换为 (10.3 .5) 比较(10.3.5)和(10.3.4)可知 ^ ()()() a a x t x t p t =^x ()()n p t t nT δ∞ =-∞ =-∑^x ^ a X 1()[()] a a s m X j X j m T ∞ ?=-∞ Ω=Ω-Ω∑^()[()()]()()()j t a a n j t a n j t a n X j x t t nT e dt x t t nT e dt x nT e dt δδ∞∞ -Ω-∞=-∞ ∞ ∞-Ω-∞=-∞∞ -Ω=-∞ Ω=-=-=∑?∑?∑()() a x n x nT =()()j j n n X e x n e ωω∞ -=-∞ =∑

相关主题
文本预览
相关文档 最新文档