文档库 最新最全的文档下载
当前位置:文档库 › 数字信号处理实验

数字信号处理实验

数字信号处理实验
数字信号处理实验

南昌航空大学实验报告

二○○七 年 月 日

课程名称: 数字信号处理 实验名称: 离散信号及其MATLAB 实现 班级: 姓名: 同组人: 指导老师评定: 签名:

一、实验目的

(1) 熟悉MATLAB 的主要操作命令;

(2) 学会离散信号的表示方法及其基本运算;

(3) 掌握简单的绘图命令;

(4) 用MATLAB 编程并学会创建函数;

二、实验内容

(1) 序列的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],起点n=0,求C=A+B ,D=A-B ,E=A.*B ,F=A./B ,G=A.^B ,并用stem 语句画出A ,B ,C ,D ,E ,F ,G 。

(2) 用MATLAB 实现下列序列:

①()n n x 8.0= 150≤≤n

②()()n j e n x 32.0+= 150≤≤n

③()()()ππππ1.025.0sin 22.0125.0cos 3+++=n n n x 150≤≤n

(3) 编写函数如()2,1,0n n n stepshift 实现()n u 的移位序列()0n n u -,21n n n ≤≤,绘出该函数的图形。设n1=0,n2=9,n0=2

(4) ()]5,3,1,1[-=n x , 起点n=0, 产生并绘出下列序列的样本:

()()()()n x n x n x n x 21221---+=

三、程序清单

(1)

n=0:1:3;

%初始化n 值 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;

%乘方运算 figure(1);

%图1 subplot(1,2,1);

%图分割 stem(n,A); %绘制A 序列

title('输入序列A'); %给出该图的标题

subplot(1,2,2);

stem(n,B);

title('输入序列B');

figure(2);

subplot(3,2,1);

stem(n,C);

title('输出序列C');

subplot(3,2,2);

stem(n,D);

title('输出序列D');

subplot(3,2,3);

stem(n,E);

title('输出序列E');

subplot(3,2,4);

stem(n,F);

title('输出序列F');

subplot(3,2,5);

stem(n,G);

title('输出序列G');

图1-1 输入序列A,B

图1-2 输出序列C,D,E,F,G

(2)

clear; close all; %清除内存中变量

n=[0:15]; %初始化n值

x1=(0.8).^n; %通过运算得到x1序列

x2=exp((0.2+3j).*n); %通过运算得到x2序列

x3=3*cos(0.175*pi*n+0.2*pi)+2*sin(0.25*pi*n+0.1*pi); %通过运算得到x3序列figure(1); %创建图1

subplot(3,1,1); %子图分割

stem(n,x1); %绘制x1

xlabel('n');ylabel('x1'); %给出x,y轴的文本标注

grid on; %打开网格

title('序列的表示');

subplot(3,1,2);

stem(n,x2);

xlabel('n');ylabel('x2');

grid on;

subplot(3,1,3);

stem(n,x3);

xlabel('n');ylabel('x3'); grid on;

图1-3 n 8.0、()n j e 32.0+、()()ππππ1.025.0sin 22.0125.0cos 3+++n n

(3)

clear;close all; %清除内存中变量

n1=0;n2=9;n0=2; %设定三个初始值

N=n2-n1+1; %计算序列长度

x=ones(1,N); %给出u(n)序列

[n,x1]=stepshift(n0,n1,n2); %调用stepshift 函数实现u(n)序列移位

figure(1);

subplot(2,1,1);

stem(n,x);xlabel('n');ylabel('x');title('阶跃序列'); %绘制u(n)序列

subplot(2,1,2);

stem(n,x1);xlabel('n');ylabel('x1');title('阶跃序列的移位'); %绘制移位后的序列

function [n,x1]=stepshift(n0,n1,n2) %移位函数的实现

n=n1:n2; %初始化n 值

x1=[(n-n0)>=0]; %通过关系运算实现在一定范围内的序列的移位

图1-4 序列的移位

(4)

clear; close all; %清除内存中变量

n=0:3; %初始化n值

x=[1 -1 3 5]; %初始化x序列

[x11,n11]=sigshift(x,n,-2); %通过函数实现序列移位

[x12,n12]=sigshift(x,n,1);

[x13,n13]=sigshift(x,n,0);

[x1,n]=sigadd(2*x11,n11,(-1)*x12,n12,(-2)*x13,n13);%通过函数实现序列的叠加

figure(1)

stem(n,x1);

xlabel('n');ylabel('x1');title('序列相加');grid on;

function[y,n]=sigshift(x,m,n0) %sigshift函数实现移位

n=m+n0;

y=x;

function [y,n]=sigadd(x1,n1,x2,n2,x3,n3) %sigadd函数实现不同范围的序列的叠加m=[min(n1),min(n2),min(n3)]

p=[max(n1),max(n2),max(n3)]

n=min(m):1:max(p)

y1=zeros(1,length(n));

y2=y1;

y3=y1;

y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;

y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;

y3(find((n>=min(n3))&(n<=max(n3))==1))=x3;

y=y1+y2+y3;

图1-5 序列的移位和叠加运算

四、实验分析与小结

通过简单的matlab运算,实现了序列的加、减、乘、除和乘方运算。通过figure, plot, subplot, stem, xlabel, ylabel, stem等命令,实现了对matlab编程工具的了解和认识。

编程实现了指数序列,cos和sin序列,并通过绘图直观的理解了这些图形的特点和规律。

通过编写stepshift函数,实现阶跃序列在规定范围内的移位运算,并显示出来。通过编写sigshift函数实现序列在n轴上左右任意移位,而函数sigadd实现了任意三个序列的叠加运算。其中需要注意的是stepshift函数和sigshift函数实现移位运算的功能区别。

本次实验实现了对matlab界面,运算,函数的了解和认识。

数字信号处理期末实验-语音信号分析与处理

语音信号分析与处理 摘要 用MATLAB对语音信号进行分析与处理,采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。 数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测和参数估计等处理。IIR数字滤波器最大的优点是给定一组指标时,它的阶数要比相同组的FIR滤波器的低的多。信号处理中和频谱分析最为密切的理论基础是傅立叶变换(FT)。离散傅立叶变换(DFT)和数字滤波是数字信号处理的最基本内容。 关键词:MATLAB;语音信号;加入噪声;滤波器;滤波 1. 设计目的与要求 (1)待处理的语音信号是一个在20Hz~20kHz频段的低频信号。 (2)要求MATLAB对语音信号进行分析和处理,采集语音信号后,在MATLAB平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器进行滤除噪声,恢复原信号。

2. 设计步骤 (1)选择一个语音信号或者自己录制一段语音文件作为分析对象; (2)对语音信号进行采样,并对语音信号进行FFT频谱分析,画出信号的时域波形图和频谱图; (3)利用MATLAB自带的随机函数产生噪声加入到语音信号中,对语音信号进行回放,对其进行FFT频谱分析; (4)设计合适滤波器,对带有噪声的语音信号进行滤波,画出滤波前后的时域波形图和频谱图,比较加噪前后的语音信号,分析发生的变化; (5)对语音信号进行回放,感觉声音变化。 3. 设计原理及内容 3.1 理论依据 (1)采样频率:采样频率(也称采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率只能用于周期性采样的采样器,对于非周期采样的采样器没有规则限制。通俗的讲,采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位之间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。 (2)采样位数:即采样值或取样值,用来衡量声音波动变化的参数。 (3)采样定理:在进行模拟/数字信号的的转换过程中,当采样频率f s.max大于信号中,最高频率f max的2倍时,即:f s.max>=2f max,则采样之后的数字信号完整的保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样频率又称乃奎斯特定理。 (4)时域信号的FFT分析:信号的频谱分析就是计算信号的傅立叶变换。连续信号与系统的傅立叶分析显然不便于直接用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值计算,成为用计算机分析离

数字信号处理实验一

一、实验目的 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;

数字信号处理实验一

实验一 离散时间信号分析 班级 信息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. 实验目的 (1)掌握用卷积求系统响应及卷积定理的验证; (2)掌握连续信号经理想采样前后的频谱变化关系, 加深对时域采样定理的理解。 (3)掌握频域采样引起时域周期化概念, 加深对频域采样定理的理解。 (4) 掌握序列傅里叶变换的计算机实现方法, 利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。 3. 实验内容及步骤 (1) 认真复习卷积定理、 时域采样和频域采样理论。 (2) 编制实验用主程序及相应子程序。 ①系统单位脉冲响应序列产生子程序。 有限长序列线性卷积子程序, 用于完成两个给定长度的序列的卷积。 可以直接调用MATLAB 语言中的卷积函数conv 。 conv 用于两个有限长度序列的卷积,它假定两个序列 都从n=0开始。调用格式如下: y=conv (x, h) ② 卷积定理的验证。 (3)时域采样定理的验证:信号产生子程序, 用于产生实验中要用到的下列信号序列: x a (t)=Ae -at sin(Ω0t)u(t) 进行采样, 可得到采样序列 x a (n)=x a (nT)=Ae -anT sin(Ω0nT)u(n), 0≤n<50 其中A 为幅度因子, a 为衰减因子, Ω0是模拟角频率, T 为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的x a (t)和x a (n)。 >> %1时域采样序列分析 A=400;a=200;w=200; n=0:50-1;fs=1000; xa=A*exp((-a)*n/fs).*sin(w*n/fs); k=-200:200;w=(pi/100)*k; Xk=fft(xa,length(k));magX=abs(Xk);angX=angle(Xk); subplot(2,1,1); stem(n,xa,'.');xlabel('n');ylabel('xa(n)'); title('信号的类型'); )()(10n R n h a =) 3()2(5.2)1(5.2)()(-+-+-+=n n n n n h b δδδδ1 ,,2,1,0,)()()(-==M k e H e X e Y k k k j j a j ωωω

数字信号处理实验教案剖析

数字信号处理实验教案 信息工程学院-通信工程教研室

数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼同学们的独立解决问题的能力。本讲义在第三版的基础上编写了五个实验,前2个实验属基础性的验证性实验,第3、4、5个实验属基本应用综合性实验。 实验一离散时间信号的MA TLAB实现 实验二线性卷积与循环卷积的原理及应用 实验三频率采样定理 实验四离散系统的因果性和稳定性及频率响应特性 实验五基于MATLAB的快速傅里叶变换 根据教学进度,理论课结束后进行相关实验。

实验一时域离散信号的产生 一实验目的 (1)了解常用的时域离散信号及其特点。 (2)掌握MATLAB产生常用时域离散信号的方法。 二实验内容 (1) 编写程序,产生下列离散序列: A.f(n)=δ(n) (-3> n1=-3;n2=4;n0=0; %在起点n1、终点n2的范围内,于n0处产生冲激 >> n=n1:n2; %生成离散信号的时间序列 >> x=[n==n0]; %生成离散信号x(n) >> stem(n,x,'filled'); %绘制杆状图,且圆心处用实心圆表示 >> title('单位脉冲序列'); >> xlabel('时间(n)');ylabel('幅度x(n)'); 在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=δ(n),(-3> n1=16;a=0.1;w=1.6*pi; >> n=0:n1; >> x=exp((a+j*w)*n); >>subplot(2,1,1),stem(n,real(x)); %在指定位置描绘图像 >> title('复指数序列的实部'); >> subplot(2,1,2),stem(n,imag(x)); >> title('复指数序列的虚部'); 在上述语句输入完成之后,敲击回车键,弹出图形窗口,显示出如下图形,即已经满足题干所述条件,产生了f(n)=e(0.1+j1.6π)n,(0> f=50;Um=1;nt=2; %输入信号频率、振幅、显示周期 >> N=16;T=1/f; %N为信号一个采样周期的采样点数,T为信号周期 >> dt=T/N; %采样时间间隔 >> n=0:nt*N-1; %建立离散时间的时间序列 >> tn=n*dt; %确定时间序列样点在时间轴上的位置 >> f=Um*sawtooth(2*f*pi*tn)+1;

数字信号处理实验

实验一 离散傅里叶变换(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、会用matlab 对功率谱进行仿真 二、实验原理 功率谱估计方法有很多种,一般分成两大类,一类是经典谱估计;另一类是现代谱估计。经典谱估计可以分成两种,一种是BT 法,另一种是周期法;BT 法是先估计自相关函数,然后将相关函数进行傅里叶变换得到功率谱函数。相应公式如下所示: ||1 *0 1 ?()()()(11) ??()(12) N m xx n jwn BT xx m r m x n x n m N P r m e --=∞ -=-∞ =+-=-∑ ∑ 周期图法是采用功率谱的另一种定义,但与BT 法是等价的,相应的功率谱估计如下所示: 2 1 1? ()()01 (13)N jw jwn xx n P e x n e n N N --==≤≤--∑ 其计算框图如下所示: ) (jw xx e ∧ 图1.1周期图法计算用功率谱框图

由于观测数据有限,所以周期图法估计分辨率低,估计误差大。针对经典谱估计的缺点,一般有三种改进方法:平均周期图法、窗函数法和修正的周期图平均法。 三、实验要求 信号是正弦波加正态零均值白噪声,信噪比为10dB,信号频率为2kHZ,取样频率为100kHZ。 四、实验程序与实验结果 (1)用周期图法进行谱估计 A、实验程序: %用周期法进行谱估计 clear all; N1=128;%数据长度 N2=256; N3=512; N4=1024; f=2;%正弦波频率,单位为kHZ fs=100;%抽样频率,单位为kHZ n1=0:N1-1; n2=0:N2-1; n3=0:N3-1; n4=0:N4-1; a=sqrt(20);%由信噪比为10dB计算正弦信号的幅度

数字信号处理实验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),绘出四个周期。

数字信号处理上机实验答案(全)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)给定一个低通滤波器的差分方程为

数字信号处理实验报告一

武汉工程大学 数字信号处理实验报告 姓名:周权 学号: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('随机序列');

数字信号处理实验三

实验三:离散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

数字信号处理实验教学大纲

《数字信号处理》实验教学大纲 一、大纲说明 课程名称(中文):数字信号处理实验 课程名称(英文):Experiment of Digital Signal Processing 适用专业:电子信息工程及电子信息科学与技术 课程属性:专业限选课 课程性质:非独立设课 课程学时:12 先修课程:高等数学、复变函数与积分变换、信号与系统等 二、实验课教学内容和要求 实验一:系统响应及系统稳定性 实验目的和教学要求 1)掌握求系统响应的方法 2)掌握时域离散系统的时域特性 3)分析、观察及检验系统的稳定性 实验二:时域采样与频域采样 实验目的和教学要求 1)掌握模拟信号采样前后频谱的变化 2)掌握如何选择采样频率才能使采样后的信号不丢失信息 3)掌握频率域采样会引起时域周期化的概念 4)掌握频率域采样定理及其对频率采样点数选择的指导作用 实验三:用FFT对信号作频谱分析 实验目的和教学要求 1)了解用FFT对连续信号和时域离散信号进行谱分析的方法 2)了解可能出现的分析误差及其原因,以便正确应用FFT 实验四:IIR数字滤波器设计及软件实现 实验目的和教学要求 1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法 2)熟悉调用MATLAB信号处理工具箱中滤波器设计函数设计各种IIR数字滤波器3)掌握根据滤波需求确定滤波器指标参数 4)掌握IIR数字滤波器的MATLAB实现方法

实验五:FIR数字滤波器设计及软件实现 实验目的和教学要求 1)掌握用窗函数法设计FIR数字滤波器的原理与方法 2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法 3)掌握FIR滤波器的快速卷积实现原理 4)熟悉调用MATLAB函数设计与实现FIR滤波器 实验六:数字信号处理在双音多频拨号系统中的应用 实验目的和教学要求 1)了解音频电话中的拨号信号--双音多频信号 2)了解小型信号处理系统,用数字方法产生模拟信号并进行传输 3)了解双音多频信号的产生方法和检测方法 三、主要仪器设备 微型计算机,MATLAB软件等 四、实验方式与要求 1)实验前,教师需向学生讲清实验的性质、任务、要求、实验守则及实验室安全制度等; 2)该课以验证性实验为主,指导书中给出实验内容与方法,也可由学生自主设计实验方法,实验前学生必需进行预习,设计报告经教师批阅后,方可进入实验室进行实验; 3)实验2~3人一组,在规定的时间内,由学生独立完成,出现问题,教师要引导学生独立分析、解决,不得包办替; 4)任课教师要认真上好每一堂课,实验前清点学生人数,实验中按要求做好学生实验情况及结果记录,实验后认真填写实验开出记录。 五、考核办法 实验部分不单独考试,实验成绩占课程总评的10%。 六、学时分配 本课程计划学时数为48学时,其中理论课36学时,实验课12学时。 实验教学学时分配表

数字信号处理实验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))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

matlab数字信号处理实验指导

电工电子实验中心实验指导书 数字信号处理 实验教程 二○○九年三月

高等学校电工电子实验系列 数字信号处理实验教程 主编石海霞周玉荣 攀枝花学院电气信息工程学院 电工电子实验中心

内容简介 数字信号处理是一门理论与实践紧密联系的课程,适当的上机实验有助于深入理解和巩固验证基本理论知识,了解并体会数字信号处理的CAD手段和方法,锻炼初学者用计算机和MATLAB语言及其工具箱函数解决数字信号处理算法的仿真和滤波器设计问题的能力。 本实验指导书结合数字信号处理的基本理论和基本内容设计了八个上机实验,每个实验对应一个主题内容,包括常见离散信号的MATLAB产生和图形显示、离散时间系统的时域分析、离散时间信号的DTFT、离散时间信号的Z变换、离散傅立叶变换DFT、快速傅立叶变换FFT及其应用、基于MATLAB的IIR和FIR数字滤波器设计等。此外,在附录中,还简单介绍了MATLAB的基本用法。每个实验中,均给出了实验方法和步骤,还有部分的MATLAB程序,通过实验可以使学生掌握数字信号处理的基本原理和方法。

目录 绪论 (1) 实验一常见离散信号的MATLAB产生和图形显示 (2) 实验二离散时间系统的时域分析 (6) 实验三离散时间信号的DTFT (9) 实验四离散时间信号的Z变换 (14) 实验五离散傅立叶变换DFT (18) 实验六快速傅立叶变换FFT及其应用 (24) 实验七基于MATLAB的IIR数字滤波器设计 (30) 实验八基于MATLAB的FIR数字滤波器设计 (33) 附录 (37) 参考文献 (40)

绪论 绪论 随着电子技术迅速地向数字化发展,《数字信号处理》越来越成为广大理工科,特别是IT领域的学生和技术人员的必修内容。 数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。数字信号处理的理论和技术一出现就受到人们的极大关注,发展非常迅速。而且随着各种电子技术及计算机技术的飞速发展,数字信号处理的理论和技术还在不断丰富和完善,新的理论和技术层出不穷。目前数字信号处理已广泛地应用在语音、雷达、声纳、地震、图象、通信、控制、生物医学、遥感遥测、地质勘探、航空航天、故障检测、自动化仪表等领域。 数字信号处理是一门理论和实践、原理和应用结合紧密的课程,由于信号处理涉及大量的运算,可以说离开了计算机及相应的软件,就不可能解决任何稍微复杂的实际应用问题。Matlab是1984年美国Math Works公司的产品,MATLAB 语言具备高效、可视化及推理能力强等特点,它的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,是目前工程界流行最广的科学计算语言。早在20世纪90年代中期,MATLAB就己成为国际公认的信号处理的标准软件和开发平台。从1996年后,美国新出版的信号处理教材就没有一本是不用MATLAB的。 本实验指导书结合数字信号处理的基本理论和基本内容,用科学计算语言MATLAB实现数字信号处理的方法和实践,通过实验用所学理论来分析解释程序的运行结果,进一步验证、理解和巩固学到的理论知识,从而达到掌握数字信号处理的基本原理和方法的目的。

_数字信号处理实验一.

姓名:罗格学号:2012302530084 班级:信安3班日期:2014.3.15 实验1基本离散信号的MATLAB产生和图形显示 实验前言: MATLAB 是一套功能强大的工程计算及数据处理软件,在众多领域得到广泛应用。它是一种面向对象的,交互式程序设计语言,其结构完整有优良的可移植性。它在矩阵运算,数字信号处理方面有强大的功能。另外,MATLAB提供了方便的绘图功能,便于用户直观地输出处理结果。 本课程实验要求学生运用MATLAB编程完成一些数字信号处理的基本功能,加深对教学内容的理解。 实验目的: 1.熟悉掌握MATLAB的基本操作 2.通过使用来熟悉常用离散信号; 实验内容: 1.1 G ENERATION OF SEQUENCES Project 1.1 Unit sample and unit step sequences A copy of Program P1_1 is given below. % Program P1_1 % Generation of a Unit Sample Sequence clf; % Generate a vector from -10 to 20 n = -10:20; % Generate the unit sample sequence u = [zeros(1,10) 1 zeros(1,20)]; % Plot the unit sample sequence stem(n,u); xlabel('Time index n');ylabel('Amplitude'); title('Unit Sample Sequence'); axis([-10 20 0 1.2]); < Insert program code here. Copy from m-file(s) and paste. > Answers: Q1.1The unit sample sequence u[n] generated by running Program P1_1 is shown below: < Insert MATLAB figure(s) here. Copy from figure window(s) and paste. > Q1.2The purpose of clf command is–清除当前窗口图形 The purpose of axis command is–设定坐标轴最大值最小值和

数字信号处理实验报告(实验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;

数字信号处理实验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)’);

相关文档
相关文档 最新文档