数字信号处理实验4
- 格式:doc
- 大小:476.91 KB
- 文档页数:6
一、 实验目的和要求:(1)进一步掌握线性卷积的计算机编程方法,利用卷积的方法观察系统响应的时域特性。
(2)掌握循环卷积的计算机编程方法,并比较与线性卷积的差别,验证二者之间的关系。
利用循环卷积的方法观察、分析系统响应的时域特性。
二、 实验内容与原理:1.实验原理:(1)线性卷积:线性时不变系统(Linear Time-Invariant System, or L. T. I 系统)输入、输出间的关系为:当系统输入序列为)(n x ,系统的单位脉冲响应为)(n h ,输出序列为)(n y ,则系统输出为:∑∞-∞=-=*=m m n h m x n h n x n y )()()()()(;上式称为线性卷积。
(2)循环卷积设两个有限长序列)(1n x 和)(2n x ,长度分别为1N 和2N ,)()(11k X n x D FTN −−−→←点 )()(22k X n x D F T N −−−→←点。
如果)()()(21k X k X k X ⋅=,则∑---==121)())(()()]([)(N m N N n R m n x m x k X IDFT n x上式称为)(1n x 和)(2n x 的循环卷积。
(3)两个有限长序列的线性卷积序列)(1n x 和)(2n x ,长度分别为L 点和P 点,)(3n x 为这两个序列的线性卷积,则)(3n x 为∑∞-∞=-=*=m m n xm x n x n x n x )()()()()(21213且线性卷积)(3n x 的非零值长度为1-+P L 点。
(4)循环卷积与线性卷积的关系序列)(1n x 为L 点长,序列)(2n x 为P 点长,若序列)(1n x 和)(2n x 进行N 点的循环卷积)(n x c ,其结果是否等于该两序列的线性卷积)(n x l ,完全取决于循环卷积的长度。
由教材相关推导,得∑∞-∞=+=q Nlc n RqN n x n x )()()(,也就是说,循环卷积是线性卷积的周期延拓序列再取主值区间。
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
《数字信号处理》实验报告实验名称数字信号处理实验(民航无线电监测关键技术研究)实验时间一、实验目的:通过实验,理解和掌握民航无线电监测关键技术中调制解调、FIR 数字滤波器、多采样率数字信号处理、FFT、语音数字信号处理、静噪等技术,培养学生对数字信号处理技术的兴趣,并提高学生基于数字信号处理技术的工程应用能力。
二、实验环境:Matlab三、实验原理、内容与分析(包括实验内容、MATLAB程序、实验结果与分析)实验总体框图如上图所示,主要实现民航无线电监测关键技术中调制解调、FIR 数字滤波器、多采样率数字信号处理、FFT、语音数字信号处理、静噪等技术。
1.有限长单位脉冲(FIR)滤波器的设计FIR 数字滤波器是一种非递归系统,其冲激响应h(n)是有限长序列,其差分方程表达式为:系统传递函数可表达为:N-1 为FIR 滤波器的阶数。
在数字信号处理应用中往往需要设计线性相位的滤波器,FIR 滤波器在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性。
为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n)。
这样,当N 为偶数时,偶对称线性相位FIR 滤波器的差分方程表达式为:由上可见FIR 滤波器不断地对输入样本x(n)延时后,再做乘法累加算法,将滤波器结果y(n)输出,因此,FIR 实际上是一种乘法累加运算。
而对于线性相位FIR 而言,利用线性相位FIR 滤波器系数的对称特性,可以采用结构精简的FIR 结构将乘法器数目减少一半。
2.AM 调制解调AM 调制解调过程如下:3.多采样率数字信号处理一般认为,在满足采样定理的前提下,首先将以采样率F1 采集的数字信号进行D/A 转换, 变成模拟信号,再按采样率F2 进行A/D 变换,从而实现从F1 到F2 的采样率转换。
但这样较麻烦,且易使信号受到损伤,所以实际上改变采样率是在数字域实现的。
第四章常规实验指导实验一常用指令实验一、实验目的1、了解DSP开发系统的组成和结构;2、熟悉DSP开发系统的连接;3、熟悉CCS的开发界面;4、熟悉C54X系列的寻址系统;5、熟悉常用C54X系列指令的用法。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,实验箱。
三、实验步骤与内容1、系统连接进行DSP实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:2、上电复位在硬件安装完成后,确认安装正确、各实验部件及电源连接正常后,接通仿真器电源,启动计算机,此时,仿真器上的“红色小灯”应点亮,否则DSP开发系统有问题。
3、运行CCS程序待计算机启动成功后,实验箱后面220V输入电源开关置“ON”,实验箱上电,启动CCS,此时仿真器上的“绿色小灯”应点亮,并且CCS正常启动,表明系统连接正常;否则仿真器的连接、JTAG接口或CCS相关设置存在问题,掉电,检查仿真器的连接、JTAG 接口连接,或检查CCS相关设置是否正确。
注:如在此出现问题,可能是系统没有正常复位或连接错误,应重新检查系统硬件并复位;也可能是软件安装或设置有问题,应尝试调整软件系统设置,具体仿真器和仿真软件CCS的应用方法参见第三章。
●成功运行程序后,首先应熟悉CCS的用户界面●学会CCS环境下程序编写、调试、编译、装载,学习如何使用观察窗口等。
4、修改样例程序,尝试DSP其他的指令。
注:实验系统连接及CCS相关设置是以后所有实验的基础,在以下实验中这部分内容将不再复述。
5、填写实验报告。
6、样例程序实验操作说明仿真口选择开关K9拨到右侧,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project Open菜单打开exp01_cpu2目录下面的工程文件“exp01.pjt”注意:实验程序所在的目录不能包含中文,目录不能过深,如果想重新编译程序,去掉所有文件的只读属性。
用下拉菜单中Project/Open,打开“exp01.pjt”,双击“Source”,可查看源程序在File Load Program菜单下加载exp01_cpu2\debug目录下的exp01.out文件:加载完毕,单击“Run”运行程序;实验结果:可见指示灯D1定频率闪烁;单击“Halt”暂停程序运行,则指示灯停止闪烁,如再单击“Run”,则指示灯D1又开始闪烁;注:指示灯D1在CPLD单元的右上方关闭所有窗口,本实验完毕。
实验4 离散时间系统的频域分析一、实验目的(1)了解离散系统的零极点与系统因果性和稳定性的关系; (2)加深对离散系统的频率响应特性基本概念的理解; (3)熟悉MATLAB 中进行离散系统零极点分析的常用子函数; (4)掌握离散系统幅频响应和相频响应的求解方法。
二、知识点提示本章节的主要知识点是频率响应的概念、系统零极点对系统特性的影响;重点是频率响应的求解方法;难点是MATLAB 相关子函数的使用。
三、实验原理1.离散时间系统的零极点及零极点分布图设离散时间系统系统函数为NMz N a z a a z M b z b b z A z B z H ----++++++++==)1()2()1()1()2()1()()()(11 (4-1) MATLAB 提供了专门用于绘制离散时间系统零极点图的zplane 函数: ①zplane 函数 格式一:zplane(z, p)功能:绘制出列向量z 中的零点(以符号"○" 表示)和列向量p 中的极点(以符号"×"表示),同时画出参考单位圆,并在多阶零点和极点的右上角标出其阶数。
如果z 和p 为矩阵,则zplane 以不同的颜色分别绘出z 和p 各列中的零点和极点。
格式二:zplane(B, A)功能:绘制出系统函数H(z)的零极点图。
其中B 和A 为系统函数)(z H (4-1)式的分子和分母多项式系数向量。
zplane(B, A) 输入的是传递函数模型,函数首先调用root 函数以求出它们的零极点。
②roots 函数。
用于求多项式的根,调用格式:roots(C),其中C 为多项式的系数向量,降幂排列。
2.离散系统的频率特性MATLAB 提供了专门用于求离散系统频响特性的freqz 函数,调用格式如下: ①H = freqz(B,A,W)功能:计算由向量W (rad )指定的数字频率点上(通常指[0,π]范围的频率)离散系统)(z H 的频率响应)e (j ωH ,结果存于H 向量中。
实验一:DFS 、DFT 与FFT一、实验内容2、已知某周期序列的主值序列为x(n)=[0,1,2,3,2,1,0],编程显示2个周期的序列波形。
要求:① 用傅里叶级数求信号的幅度谱和相位谱,并画出图形 ② 求傅里叶级数逆变换的图形,并与原序列进行比较。
N=7;xn=[0,1,2,3,2,1,0]; xn=[xn,xn]; n=0:2*N-1; k=0:2*N-1;Xk=xn*exp(-j*2*pi/N).^(n'*k); x=(Xk*exp(j*2*pi/N).^(n'*k))/N; subplot(2,2,1);stem(n,xn);title('x(n)');axis([-1,2*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2);stem(n,abs(x));title('IDFS|X(k)|');axis([-1,2*N,1.1*min(x),1.1*max(x)]); subplot(2,2,3),stem(k,abs(Xk));title('|X(k)|');axis([-1,2*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk));title('arg|X(k)|');axis([-1,2*N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]);课程名称 数字信号 实验成绩 指导教师 王丽霞实 验 报 告院系 信息工程学院 班级 11专升本通信工程 学号 1103100068 姓名 周海霞日期 2011年10月17日12351051015|X (k)|510-2-1012arg|X (k)|3、已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0],要求: ① 求该序列的DFT 、IDFT 的图形;xn=[1,0.5,0,0.5,1,1,0.5,0]; N=length(xn); n=0:N-1; k=0:N-1;Xk=xn*exp(-1i*2*pi/N).^(n'*k); x=(Xk*exp(1i*2*pi/N).^(n'*k))/N; subplot(2,2,1);stem(n,xn);title('x(n)');axis([-1,N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2);stem(n,abs(x));title('IDFT|X(k)|');axis([-1,N,1.1*min(x),1.1*max(x)]); subplot(2,2,3),stem(k,abs(Xk));title('|X(k)|');axis([-1,N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk));title('arg|X(k)|');axis([-1,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]);0.510.5124681234|X (k)|2468-2-1012arg|X (k)|② 用FFT 算法求该序列的DFT 、IDFT 的图形;xn=[1,0.5,0,0.5,1,1,0.5,0]; N=length(xn);subplot(2,2,1);stem(n,xn); title('x(n)'); k=0:N-1; Xk=fft(xn,N);subplot(2,1,2);stem(k,abs(Xk)); title('Xk=DFT(xn)'); xn1=ifft(Xk,N);subplot(2,2,2);stem(n,xn1);title('x(n)=IDFT(Xk)');x(n)1234567X k=DFT(xn)x(n)=IDFT(X k)③ 假定采用频率Fs=20Hz ,序列长度N 分别取8、32和64,用FFT 计算其幅度谱和相位谱。
实验一 MATLAB 仿真软件的基本操作命令和使用方法实验容1、帮助命令使用 help 命令,查找 sqrt (开方)函数的使用方法;2、MATLAB 命令窗口(1)在MATLAB 命令窗口直接输入命令行计算31)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;t=0:pi/10:4*pi;y=10*sin(t);plot(t,y);plot(t,y,'-+r');grid>> xlabel('X'),ylabel('Y');>> title('Plot:y=10*sin(t)');>> text(14,10,'完整图形');实验二常见离散信号的MATLAB产生和图形显示实验容与步骤1. 写出延迟了np个单位的单位脉冲函数impseq,单位阶跃函数stepseq, n=ns:nf function [x,n]=impseq[np,ns,nf];function [x,n]=stepseq[np,ns,nf];2. 产生一个单位样本序列x1(n),起点为ns= -10, 终点为nf=20, 在n0=0时有一单位脉冲并显示它。
数字信号处理实验报告四IIR数字滤波器设计及软件实现实验目的:本实验的目的是了解IIR数字滤波器的设计原理和实现方法,通过MATLAB软件进行数字滤波器设计和信号处理实验。
一、实验原理IIR数字滤波器是一种使用有限数量的输入样本和前一次输出值的滤波器。
它通常由差分方程和差分方程的系数表示。
IIR滤波器的特点是递归结构,故其频率响应是无限长的,也就是说它的频率响应在整个频率范围内都是存在的,而不像FIR滤波器那样只有在截止频率处才有响应。
根据设计要求选择合适的滤波器类型和滤波器结构,然后通过对滤波器的模型进行参数化,设计出满足滤波要求的IIR滤波器。
常见的IIR滤波器设计方法有模拟滤波器设计方法和数字滤波器设计方法。
在本实验中,我们主要使用数字滤波器设计方法,即离散时间滤波器设计方法。
二、实验内容(一)设计IIR数字滤波器的步骤:1.确定滤波器类型:根据滤波要求选择合适的滤波器类型,如低通滤波器、高通滤波器、带通滤波器、带阻滤波器等。
2.确定滤波器的阶数:根据滤波要求确定滤波器的阶数。
阶数越高,滤波器的频率响应越陡峭,但计算复杂度也越高。
3. 设计滤波器原型:根据滤波要求,设计滤波器的原型。
可以选择Butterworth滤波器、Chebyshev滤波器、Elliptic滤波器等作为原型。
4.选择滤波器结构:根据计算机实现条件和算法复杂度,选择合适的滤波器结构。
常见的滤波器结构有直接形式I、直接形式II、级联形式等。
5.参数化滤波器模型:根据原型滤波器的差分方程,选择合适的参数化方法。
常见的参数化方法有差分方程法、极点/零点法、增益法等。
6.根据参数化的滤波器模型,计算出所有的滤波器系数。
(二)用MATLAB软件实现IIR数字滤波器设计:1.打开MATLAB软件,并创建新的脚本文件。
2. 在脚本文件中,使用MATLAB提供的滤波器设计函数,如butter、cheby1、ellip等,选择合适的滤波器类型进行设计。
电子科技大学
数字信号处理实现技术
实验报告
组员:
指导教师:
日期:2014-04-11
实验四:DFT
一、实验目的
1.了解DFT 的原理;
2.了解使用Matlab 语言实现DFT 的方法;
3.了解在DSP 中DFT 的设计及编程方法;
4.熟悉对FFT 的调试方法。
二、实验内容
1. DFT 的基本原理与结构
离散傅里叶变换(DFT ),是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT )频域的采样。
在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。
即使对有限长的离散信号作DFT ,也应当将其看作经过周期延拓成为周期信号再作变换。
1)主值区间与主值序列
我们知道周期序列实际上只有有限个序列值有意义,因此它的许多特性可推广到有限长序列上。
一个有限长序列 x(n),长为N ,
为了引用周期序列的概念,假定一个周期序列 ,它由长度为 N 的有限长序列 x(n) 延拓而成,它们的关系:
⎰
∑-∞-∞=-=
=π
πωωωω
ωπd e e X n x e n x e
X n j j n n j j )(21)()()(⎪⎪⎩
⎪⎪⎨⎧⎩⎨
⎧-≤≤=+=∑∞
-∞
=n N n n x n x rN n x n x r 其它01
0)(~)()()(~⎪⎪⎭⎫
⎝⎛-≤≤=n N n n x n x 其余010)()(~
)
(~
n x
2.实验主要内容
1)用C产生input信号,cosine和sine表,并存为数据文件。
2)编写汇编程序实现DFT,加载数据文件,通过plot观察结果modul。
三、实验结果及分析
1 采样点数为64的正弦信号分析
1.1由matlab产生的频率为23.87MHz,采样点数为64的正弦信号:
1.2频率为23.87MHz,采样点数为64的正弦信号经过DFT变化后的信号:
1.3 在DSP仿真软件上实现的DFT变换,plot图如下:
由上图可知,该程序较好的实现了DFT变换。
2 采样点数为128的正弦信号分析
2.1 由matlab 产生的采样点数为128 频率为2
3.87MHz的正弦信号:
2.2 频率为2
3.87MHz,采样点数为128的正弦信号经过DFT变化后的信号:
2.3 在DSP仿真软件上实现的DFT变换,polt图如下:
由上图可知,在visual DSP 上很好的实现了DFT变换。
3 采样点数为64的方波信号分析:
3.1 由matlab产生的采样点数为64,频率为23.87MHz的方波信号:
3.2 在visual DSP 中,方波信号经过DFT后的plot图:
由上图可以看出,频率为23.87MHz的方波信号实现了DFT。
四、实验心得与体会
本实验让我们更加深刻的理解了DFT算法,也对Matlab编程更加熟悉,对DSP软件也更加的熟悉。
开始做采样点数64的时候,由于64位程序改动不需要很大,还比较顺利,后面做采样点数为128的时候,需要自己重新编写产生信号的matlab程序,费了不少功夫,最后在老师的提醒下,成功的完成了实验。