北邮dsp软件实验报告
北邮-DSP数字信号处理 实验-实验报告

北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: 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点亮→延时。
北京邮电大学_dsp_matlab实验报告

数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
北邮DSP Matlab仿真实验

《数字信号处理》Matlab 实验一. 离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=+。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=+;WN=exp(-2*pi*1i/32); Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0); end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0n N-1()0 n 0, n Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(k k1nk1-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n NN n Λ,2.假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
北邮电子DSP硬件报告

DSP硬件课程实验报告学院:电子工程学院班级: 2011211203学号: 2011210876姓名:孙月鹏班内序号: 04实验一:常规指令实验一、 实验目的1.熟悉DSP 开发系统的连接2.了解DSP 开发系统的组成和结构和应用系统构成3.熟悉常用C54X 系列指令的用法(程序寻址,寄存器,I/O 口,定时器,中断控制)。
二、 实验设备计算机,CCS 2.0版软件,DSP 仿真器,实验箱。
三、 实验操作方法1、系统连接进行DSP 实验之前,先必须连接好仿真器、实验箱及计算机,连接方法如下所示:在硬件安装完成后,接通仿真器电源或启动计算机,此时,仿真盒上的“红色小灯”应点亮,否则DSP 开发系统与计算机连接有问题。
2、运行CCS 程序先实验箱上电,然后启动CCS ,此时仿真器上的“绿色小灯”应点亮,并且CCS 正常启动,表明系统连接正常;否则仿真器的连接、JTAG 接口或CCS 相关设置存在问题,掉电,检查仿真器的连接、JTAG 接口连接,或检查CCS 相关设置是否正确。
四、代码注释与实验结果1)简单指令程序运行实验①代码及注释.mmregs ;定义储存器映像寄存器.global _main ;全局符号_main:stm #3000h,sp ;3000h 放入堆栈指针寄存器的首地址中 ssbx xf ;将对外接口XF 置1,此时灯亮call delay ;调用延时子程序,延时rsbx xf ;将XF 置0,call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nop ;无任何操作nop;延时子程序delay:PCI/USB/EPP 接口 JTAG 接口 计 算 机 仿 真 器 用户 开发板;2*16*16*16+7*16*16+15=9999loop1: ;循环1stm 0f9h,ar4 ;将ar4的值赋为15*16+9=249loop2: ;循环2banz loop2,*ar4- ;指针地址每次减1,ar4不为0时重复执行loop2 banz loop1,*ar3- ;同上ret ;可选择延迟的返回nop ;无操作nop②程序运行原理:此程序为灯闪烁程序。
北邮 DSP 实验二实验报告

实验二:数字信号的 FFT 分析题目1假设信号 x(n) 由下述信号组成:()0.001*cos(0.45)sin(0.3)cos(0.302)4x n n n n ππππ=+-- 这个信号有两根主谱线 0.3pi 和 0.302pi 靠的非常近,而另一根谱线 0.45pi 的幅度很小,请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
步骤:1.编写离散傅里叶变换DFT 函数:function [Xk] = dft(xn,N)% Computes Discrete Fourier Transform Coefficients% [Xk] = dft(xn,N)% Xk = DFT coeff. array over 0 <= k <= N-1% xn = input signal% N = length of DFTn = [0:1:N-1]; % row vector for nk = [0:1:N-1]; % row vecor for kWN = exp(-j*2*pi/N); % Wn factornk = n'*k; % creates a N by N matrix of nk valuesWNnk = WN .^ nk; % DFT matrixXk = xn * WNnk; % row vector for DFT coefficients2.代码实现:n=0:1:999;x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-0.25*pi);stem(n,x);title('signal x(n), 0<=n<=999');xlabel('n');X=dft(x,1000);% 计算1000点DFT magX=abs(X(1:1:501));% 镜像对称,只画出一半 k=0:1:500;w=2*pi*k/1000;stem(w/pi,magX);title('DTFT Magnitude');xlabel('frequency in pi units');axis([0.29,0.31,0,500]);xlabel('frequency between 0.29pi and 0.31pi');axis([0.44,0.46,0,0.5]);xlabel('frequency between 0.44pi and 0.46pi');3.图片:4.分析:x(n)由3个正弦函数叠加而成,周期分别是40, 20, 1000。
北邮信号与信息处理DSP实验二

北邮信号与信息处理DSP实验二信号与信息综合处理实验报告学院:班级:姓名:学号:实验二 FFT 实现1. 实验目的进一步熟悉CCS v5的开发环境,掌握调试的要素,并理解FFT 的过程。
2. 实验原理2.1FFT 变换(1) FFT 算法:[]122()()(/2)0,1,...,1()()(/2)N n Nx n x n x n N n x n x n x n N W =++⎧⎪=-⎨=-+⎪⎩,/2111/20/2122/20()(2)()()(21)()N nr N n N nr N n X k X r x n W X k X r x n W -=-=⎧==⎪⎪⎨⎪=+=⎪⎩∑∑(2) 蝶形运算图:(3) 实现函数:DSP_fft(w, N, x, y)。
2.2IFFT变换(1)算法实现:(2)实现流程:2.3SDRAM(1)EMIFA_Config:在csl_emifa.h中声明了一个结构体EMIFA_Config,用来配置EMIFA。
结构体中声明的12个32位无符号整形变量为EMIFA总线的12个接口寄存器;(2)指定SDRAM数据空间:#pragmaDATA_SECTION(sdram_data,".off_ram");unsigned int sdram_data[0x10000];上述代码含义为定义一个全局变量sdram_data[0x10000],将它指定到自定义的数据空间段off_ram中,其中函数具体用法为#pragma DATA_SECTION(函数名或全局变量名,"用户自定义在数据空间的段名";(3)CMD文件:DSP系统中存在大量的存储器,CMD文件描述物理存储器的管理、分配和使用情况,用于DSP 代码的定位。
3.程序功能3.1FFT变换通过给定的旋转因子,利用DSP_fft (w, N, x, y ) 函数,对给定64点序列进行FFT变换,其中N 为变换点数,具体说明如下:(1)w[64]为64点FFT的旋转因子,由tw_fft16x16.exe生成;(2)x[128]内存放原序列,即输入时域信号的实部虚部按顺序排列;(3)y[128]内存放FFT变换后的序列,实部虚部按顺序排列;(4)m[64]内存放FFT变换后64点模值的平方。
北邮信号与信息处理DSP实验三剖析

信号与信息综合处理实验报告学院:信息与通信工程学院班级:2013211124姓名:王丹頔学号:2013210659实验三FIR滤波器实现1.实验目的进一步熟悉CCS v5的开发环境,掌握调试的要素,并理解FIR的过程。
2.实验原理2.1AIC23(1)AIC23相关介绍图1 AIC23结构图图2 AIC23编码器控制寄存器图3 AIC23寄存器集合图4 采样速率设置图5 采样率可配参数(2)void DSK6416_init()-设置所有的CPLD寄存器到上电状态,初始化内部BSL数据结构;-在使用任何BSL函数之前都必须调用。
(3)DSK6416_AIC23_openCodec函数-DSK6416_AIC23_CodecHandle DSK6416_AIC23_openCodec (int id, DSK6416_AIC23_Config *Config);-id:指定使用哪个编码器,DSK6416上为id=0;-Config:指向包含编码器寄存器值的结构,以该结构中的值初始化寄存器;-调用成功:返回编码器句柄;失败:返回INV常数(-1)。
(4)DSK6416_AIC23_write函数-Int16 DSK6416_AIC23_write(DSK6416_AIC23_CodecHandle hCodec, Int32 val);-hCodec, Val:编码器句柄,写入编码器的值;- 返回TRUE :数据成功写入; - 返回FALSE :数据端口忙。
(5) DSK6416_AIC23_closeCodec 函数- DSK6416_AIC23_closeCodec(DSK6416_AIC23_CodecHandle hCodec); - 关闭编码器。
2.2 FIR 滤波器实现(1) FIR 滤波器介绍滤波器就是在时间域或频域内,对已知激励产生规定响应的网络,使其能够从信号中提取有用的信号,抑制并衰减不需要的信号。
北邮信号与信息处理DSP实验三剖析

图 2 AIC23 编码器控制寄存器
图 3 AIC23 寄存器集合
图 4 采样速率设置
图 5 采样率可配参数
(2) void DSK6416_init()
- 设置所有的 CPLD 寄存器到上电状态,初始化内部 BSL 数据结构;
- 在使用任何 BSL 函数之前都必须调用。 (3) DSK6416_AIC23_openCodec 函数
从而更好地优
_nassert 语句
C6416 可以在每个时钟周期加载两个 64 位比特数, 对于 short 类型数据则可以 实现一个周期加载两对 short 数据并行进行运算;
为了能够使两个 short 数据并行运算,数据的存储地址必须按字地址对齐,这 样存取时才不会出错;
_nassert 可以告诉编译器数据的对齐信息,编译器便可进行数据优化。
- DSK6416_AIC23_CodecHandle DSK6416_AIC23_openCodec (int id, DSK6416_
AIC23_Config *Config) ; - id:指定使用哪个编码器, DSK6416 上为 id=0 ;
- Config :指向包含编码器寄存器值的结构,以该结构中的值初始化寄存器;
(4) (5)
关键字 restrict
关键字 restrict 是对指针、引用或数组的一种限定;
使用 restrict 关键字是为了确保其限定的指针在声明的范围内,
是指向一个特定
对象的唯一指针,即这个指针不会和其它指针指向存储器的同一地址;
使用 restrict 关键字可以使使编译器更容易确定是否有别名信息, 化代码。
L=M+N-1 。即为:
【精品】DSP实验报告

【精品】DSP实验报告一、实验目的1.探究数字信号处理器(DSP)的功能和应用。
2.熟悉DSP软件、硬件设计实验环境。
3.掌握DSP的基本编程方法。
4.实现数字信号的变换。
二、实验原理DSP是一种基于数字信号处理器的技术,是数码信号处理器技术和信号处理技术的一种应用。
DSP硬件处理器可以对数字信号进行滤波、基带处理和解调等。
DSP软件编程极为常见,可以设计各种数字信号处理算法、信号处理系统和软件运行环境。
使用DSP软件,我们可以过滤和处理模拟信号,包括声音和图像等。
三、实验器材和器件1.TMS320C5416数字信号处理器。
2.折标器。
3.信号源和信号处理器。
4.电器安全器材。
5.计算机和开发环境工具包。
四、实验步骤1.安装开发工具包,启动环境配置,并初始化DSP开发板和相关环境工具。
2.编写程序,加入滤波、处理和变换算法,提取有用信号和滤除噪声信号。
3.建立计算机接口和控制模块,并调试程序,验证结果。
五、实验结果本次实验结果如下:1.对于模拟信号输入,DSP通过滤波、变换等算法,进行信号分析和处理,有效提取信号,并消除噪声信号。
2.DSP的数字信号处理使得信号的提取和分析更加精确和高效,可以用于音频、视频、遥感等领域的处理。
3.当信号处理效果不佳时,需要调整算法和变换参数,重新调整信号滤波、变换和输出的参数,以获得更好的处理效果。
六、问题和分析在实验中,我们遇到了一些问题。
例如,信号处理的时候,出现了滤波不足,噪声信号无法完全滤除的情况。
我们通过调整算法和参数,进行重新优化,并在重新调整参数之后再次进行了测试,发现信号处理效果显著提高。
七、实验心得体会数字信号处理在现代信息技术领域是非常重要的,因此我们必须掌握DSP的理论原理和编程方法。
本次实验中,我们实际操作了DSP平台,并编写程序艇筏和优化算法,有效地提取信号,其结果是很有收获的。
通过本次实验,我们不仅学习了DSP的基本特性,还成功应用该技术处理信号数据,建立了初步的实践能力。
北邮dsp实验一

信号与信息处理综合实验DSP实验一:HELLO和LED实验报告学院:信息与通信工程学院班级:姓名:学号:实验一HELLO和LED一、实验目的:熟悉CCS v5的开发流程,了解各个菜单功能。
二、程序功能:1、在控制台中显示Hello World。
在运行程序后,在控制台显示Hello World。
2、控制LED灯的亮灭情况。
三、程序基本信息:1、基本语句:DSK6416_init() 初始化板子的库DSK6416_LED_init() 初始化板子的LED情况DSK6416_DIP_init() 初始化DIP开关DSK6416_rest(DSK6416_USER_REG,0xFF) 调用寄存器及赋值DSK6416_waitusec(100000) 程序延时2、具体程序:#include "dsk6416.h"#include "dsk6416_led.h"#include "dsk6416_dip.h"void main(){DSK6416_init();DSK6416_LED_init();DSK6416_DIP_init();while(1){if (DSK6416_DIP_get(0)==1){DSK6416_LED_off(3);DSK6416_LED_off(2);DSK6416_LED_off(1);DSK6416_LED_off(0);}else if (DSK6416_DIP_get(3)==0){{DSK6416_rset(DSK6416_USER_REG, 0x0f);DSK6416_waitusec(50000);DSK6416_rset(DSK6416_USER_REG, 0x00);DSK6416_waitusec(150000);}if (DSK6416_DIP_get(3)==1){DSK6416_rset(DSK6416_USER_REG, 0xf1);DSK6416_waitusec(50000);DSK6416_rset(DSK6416_USER_REG, 0xf2);DSK6416_waitusec(50000);DSK6416_rset(DSK6416_USER_REG, 0xf4);DSK6416_waitusec(50000);DSK6416_rset(DSK6416_USER_REG, 0xf8);DSK6416_waitusec(50000);}}四、功能测试记录:1、Hello World:2、LED:运行结果是:按下键3LED不工作,再按下键0LED进入闪烁功能,再抬起键3LED 进入跑马灯功能。
北邮DSP实验报告2012210917丁禹江电子四班

数字信号处理实验报告学院:电子工程学院班级:2012211204学号:2012210917班内序号:16姓名:丁禹江第三章5402常规实验指导实验(一):简单指令程序运行实验1.程序代码注释;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs.global _main_main:stm #3000h,sp ;堆栈指针的首地址设为#3000hssbx xf ;状态寄存器位置位,灯亮call delay ;调用delay函数延时rsbx xf ;状态寄存器位复位,灯灭call delay ;调用delay函数延时b _main ;可选择延迟的无条件转移,循环执行nop ;无任何操作nop;delay .5 seconddelay: ;演示0.5秒stm 270fh,ar3 ;把地址存放到存储器映射寄存器中loop1:stm 0f9h,ar4 ;把地址存放到存储器映射寄存器中loop2:banz loop2,*ar4- ;AR4不为0时转移,指针地址减一banz loop1,*ar3- ;若不为0,ar3减1,共进行10000*250次跳转ret ;return,返回nop ;no operationnop;stm 2 cycles;banz when TRUE 4 cycles; FALSE 2 cycles;0f9h=>249d;270fh=>9999d.end2.实验现象可以看到实验箱上的XF灯以一定的频率闪烁,当单击“Halt”时程序暂定,XF灯停止闪烁,当再次单击RUN时,XF灯又开始闪烁。
实验(二):资料存储实验1.程序代码注释*File Name:exp02.asm;get some knowledge of the cmd file;the program is compiled at no autoinitialization mode.mmregs.global _main_main: ;主函数;store data ;存储数据stm 1000h,ar1 ;ar1映射到内存1000h位;stm 5000h,ar1 ;address of exterior memoryrpt #07h ;循环执行下一条指令7次st 0aaaah,*ar1+ ;data 存储寄存器的值;read data then re-storestm 7h,ar3 ;设置ar3;stm 5000h,ar1 ;address of exterior memory;stm 5008h,ar2 ;address of exterior memorystm 1000h,ar1 ;设置ar1为1000hstm 1008h,ar2 ;设置ar2为1008hloop:ld *ar1+,t ;把单数据存储操作数装入T寄存器中st t,*ar2+ ;存储T寄存器的值banz loop,*ar3- ;循环7次here:b here ;可选择延迟的无条件转移,循环执行.end2.实验现象在CCS的“View”下拉菜单中的Memory窗口中查找C5410各个区段的数据存储器地址,在可以改变的存储器内容的地方,选定地址随意改变其中内容并观察结果;本实验要查看0x1000H~0x100FH单元的数值变化,输入地址0x1000H;查看0x1000H~0x100FH单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Halt”暂停程序运行。
北邮软件实验报告

北邮软件实验报告北邮软件实验报告一、引言软件实验是计算机科学与技术专业的重要课程之一,旨在培养学生的软件开发能力和解决问题的能力。
本次实验是北邮软件实验的一部分,通过实践操作和理论学习,掌握软件开发的基本原理和技巧。
本报告将对实验过程进行整理和总结,以便更好地理解和应用所学知识。
二、实验背景本次实验的主题是软件开发,通过一个具体的项目,学生需要完成一个小型软件的设计、开发和测试。
这个项目涉及到数据库管理、用户界面设计和算法实现等多个方面的知识和技能。
通过实践操作,学生可以更好地理解软件开发的流程和方法,提高自己的编程能力和问题解决能力。
三、实验目标本次实验的目标是培养学生的软件开发能力和解决问题的能力。
通过实践操作,学生需要掌握以下技能:1. 熟悉软件开发的基本流程,包括需求分析、设计、编码、测试和维护等阶段;2. 掌握数据库管理的基本原理和技巧,能够设计和操作数据库;3. 理解用户界面设计的基本原则和方法,能够设计和实现用户友好的界面;4. 学会使用编程语言和工具进行软件开发,能够编写高质量的代码;5. 培养团队合作和沟通能力,能够与他人协作完成一个项目。
四、实验过程本次实验的实践操作包括以下几个步骤:1. 需求分析:根据实验要求和项目需求,分析用户需求,明确软件功能和性能要求;2. 设计:根据需求分析结果,设计软件的系统架构、数据库结构和用户界面;3. 编码:使用编程语言和工具,根据设计文档编写代码,实现软件功能;4. 测试:对编写的代码进行测试,确保软件功能正常运行,修复bug;5. 维护:根据用户反馈和需求变化,对软件进行维护和更新。
在实验过程中,我们遇到了一些问题和挑战。
例如,需求分析阶段需要与用户进行沟通和交流,确保理解用户需求的准确性;编码阶段需要仔细编写代码,避免出现错误和漏洞;测试阶段需要充分测试软件的各种功能,确保软件的质量和稳定性。
通过克服这些问题和挑战,我们逐渐掌握了软件开发的技巧和方法。
北邮dsp实验报告

北邮dsp实验报告北邮DSP实验报告一、引言数字信号处理(Digital Signal Processing,简称DSP)是一门研究如何对数字信号进行分析、处理和合成的学科。
作为一门重要的电子信息科学与技术专业的实验课程,北邮DSP实验旨在让学生通过实践掌握DSP的基本理论和实际应用。
本实验报告将对北邮DSP实验进行详细介绍和总结。
二、实验目的北邮DSP实验的主要目的是让学生通过实际操作,深入理解数字信号处理的基本概念和方法,并掌握DSP实验的基本流程和技巧。
具体目标包括:1. 熟悉DSP实验平台的硬件结构和软件环境;2. 掌握数字信号的采样、量化和编码方法;3. 学习常见的数字滤波器设计和实现方法;4. 理解信号频谱分析和频域滤波的原理和应用;5. 实现音频信号的处理和效果增强。
三、实验内容北邮DSP实验主要包括以下内容:1. DSP实验平台的介绍:包括硬件结构和软件环境的说明,学生需要了解DSP实验平台的基本构成和使用方法。
2. 数字信号的采样与重构:学生需要通过实际操作,了解采样定理的原理和应用,以及数字信号的重构方法。
3. 数字信号的量化与编码:学生需要学习数字信号的量化误差和编码方法,并通过实验验证量化误差的影响。
4. FIR数字滤波器设计与实现:学生需要学习FIR滤波器的设计原理和方法,并通过实验实现低通、高通和带通滤波器。
5. IIR数字滤波器设计与实现:学生需要学习IIR滤波器的设计原理和方法,并通过实验实现巴特沃斯和切比雪夫滤波器。
6. 音频信号的处理与效果增强:学生需要学习音频信号的基本特性和处理方法,包括均衡器、混响器和压缩器等效果器的实现。
四、实验过程北邮DSP实验的具体过程如下:1. 实验准备:学生需要提前熟悉实验平台的硬件结构和软件环境,并准备好实验所需的音频信号和滤波器设计参数。
2. 实验操作:学生按照实验指导书的步骤进行实验操作,包括采样与重构、量化与编码、滤波器设计与实现等。
北邮DSP第三次实验

北京邮电大学信号与信息处理综合实验报告(DSP部分)实验二报告学院:信息与通信工程学院班级:姓名:学号:联系方式:题目三 FIR滤波器实现一实验目的进一步熟悉CCS v5的开发环境,掌握调试的要素,并理解FIR滤波的过程。
二程序功能本程序的基本要求是:对所给工程进行优化,提高运行速度,输出结果。
三具体技术1.建立工程2.建立目标系统的配置3.程序运行和调试4.单步运行5.显示中间运行结果6.功能扩展除了基本功能,鼓励进行以下扩展或改进:有创意的设计采用改进程序性能的其他方法(如执行效率、内存占用量、灵活性、可移植性等)功能扩展如改变滤波器的系数、改变信源数据等;如自定义不同带宽的滤波器系数等;使用音频输入输出端口进行测试本次的实验我们的组的扩展功能为设计一个高通滤波器。
四程序基本信息void DSK6416_init()设置所有的CPLD寄存器到上电状态,初始化内部BSL数据结构,在使用任何BSL函数之前都必须调用。
DSK6416_AIC23_openCodec函数DSK6416_AIC23_CodecHandle DSK6416_AIC23_openCodec (int id,DSK6416_AIC23_Config *Config)id:指定使用哪个编码器,DSK6416上为id=0Config:指向包含编码器寄存器值的结构,该函数将以该结构中的值初始化寄存器。
调用成功:返回编码器句柄;失败:返回INV常数(-1)。
当McBSP在使用中,才会出现失败。
DSK6416_AIC23_write函数Int16 DSK6416_AIC23_write(DSK6416_AIC23_CodecHandle hCodec, Int32 val) hCodec, Val:编码器句柄,写入编码器的值返回TRUE:数据成功写入返回FALSE:数据端口忙DSK6416_AIC23_closeCodec 函数:关闭编码器DSK6416_AIC23_closeCodec(DSK6416_AIC23_CodecHandle hCodec)添加所需文件(1)头文件:csl 和dsk6416文件夹中的include(2) 添加所需库文件:csl6416.lib, dsk6416bsl.lib五 FIR 滤波器实现设计FIR 滤波器,在原工程的基础上添加滤波功能,新工程命名为tone_fir 。
北邮信息工程信号与信息处理综合实验DSP实验二报告(FFT实现)

北邮信息工程信号与信息处理综合实验DSP实验二报告(FFT实现)信息与通信工程学院信号与信息处理综合实验报告(DSP部分)班级:姓名:学号:序号:日期:信号与信息处理综合实验报告实验二 FFT实现一、实验目的进一步熟悉CCS v5的开发环境,掌握调试的要素,并理解FFT的过程。
二、程序功能1、基本功能本程序的基本要求是:将FFT结果写入SDRAM后,并读取出来。
2、拓展功能(1)其他点数的FFT;(2)FFT后再进行IFFT,验证是否与原数据一致。
三、程序基本信息(一)、程序模块描述:1、FFT程序(实现基本功能):(1)FFT部分:1?主函数(main):初始化输入序列、旋转因子、FFT点数,负责其它功能函数的调用,并完成一些基本操作。
2?void DSP_radix2(int n, short *restrict xy, const short *restrict w):完成FFT运算(基2频域抽选)。
参数说明:n是输入序列的长度,short xy是输入序列(复数),const short w为旋转因子。
3? void bitrev_index(short *index, int n):计算得到重新排序表,n 为序列长度。
4? void DSP_bitrev_cplx(int *x, short *index, int nx):根据bitrev_index计算的排序表,把FFT输出的复数序列x重新排序为自然顺序。
DSP_bitrev_cplx:(2)SDRAM配置与写入部分:主函数(main):负责其它功能的调用,执行SDRAM写入、读取和检测,并点亮对应的LED。
EMIFA_config(&MyEmifaConfig):实现对EMIFA总线的12个接口寄存器的配置。
具体配置信息在MyEmifaConfig结构体中。
第1页信号与信息处理综合实验报告 #pragmaDATA_SECTION(sdram_data,".off_ram");数据段定义,定义要写入的数据位置,需要在CMD文件中建立对应的section。
北邮dsp软件实验报告

Matlab仿真实验实验报告学院:电子工程学院专业:电子信息科学与技术班级:学号:姓名:时间:2015年12月23日实验一:数字信号的FFT分析1.实验目的通过本次试验,应该掌握:(a)用傅里叶变换进行信号分析时基本参数的选择(b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。
(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。
2.实验内容、要求及结果。
(1)离散信号的频谱分析:设信号x(n)=0.001*cos(0.45nπ)+sin(0.3nπ)-cos(0.302nπ-π)4此信号的0.3π和0.302π两根谱线相距很近,谱线0.45π的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。
【实验代码】:k=2000;n=[1:1:k];x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);subplot(2,1,1);stem(n,x,'.');title(‘时域序列');xlabel('n');ylabel('x(n)');xk=fft(x,k);w=2*pi/k*[0:1:k-1];subplot(2,1,2);stem(w/pi,abs(xk));axis([0 0.5 0 2]);title('1000点DFT');xlabel('数字频率');ylabel('|xk(k)|');【实验结果图】:(2)DTMF信号频谱分析用计算机声卡采集一段通信系统中电话双音多频(DTMF)拨号数字0~9的数据,采用快速傅里叶变换(FFT)分析这10个号码DTMF拨号时的频谱。
北邮 DSP 实验一

6.1
使用printf语句输出 。
6.2
首先初始化板子初始函数以及LED及DIP,然后设置while循环,在循环之中读取CPLD寄存器的八比特数值。若检测到数值为0XE0,即表示只有DIP0按下,则设置CPLD寄存器八比特数值为0XEF,即表示四盏灯全亮,延迟一段时间之后,设置CPLD寄存器八比特数值为0XE0,即表示四盏灯全灭,并延迟相同时间;否则设置CPLD寄存器八比特数值为0XE0,即表示四盏灯全灭。
3)跑马灯顺序亮灭
只按下DIP1并如上图所示设置断点,单步运行后查看寄存器的值,低八位的值为D1,与所赋的值相同,此时第一盏灯亮,如下图所示:
4)跑马灯加速亮灭
同时按下DIP1及DIP2并如上图所示设置断点,单步运行后查看寄存器的值,低八位的值为90,与所赋的值相同,此时四盏灯全灭,如下图所示:
九.
十.心得体会
总体来说第一次DSP实验比较简单,主要是学习DSP芯片的基本知识,熟悉DSK开发板以及Code Composer Studio v5集成开发环境,掌握利用CPLD的USER_REG寄存器配置LED和DIP开关的方法,了解程序优化的原理和基本操作。感觉编程能力方面要求不高,在原来的编程基础上需要掌握DSK6416相关函数、LED相关函数和4DIP开关相关函数的使用就可以。除了在熟悉软件和开发板上遇到了一些问题以外,实验的其他方面进行得非常顺利,在基本功能实现后我们很快就完成了其他扩展功能,比如实现了LED全亮全灭,跑马灯及变速等功能。另外根据实验课件教程,我们进行了多次的断点调试,使用软件更加熟练,为之后的实验做充足的准备。
DSK6416_waitusec(delay1);
}
else
{
DSK6416_rset(DSK6416_USER_REG,0XE0);
北邮dsp实验一报告

DSP实验报告
1.实验要求
●(1) 常用数字信号序列的产生:
●熟悉 Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够
用 Matlab 产生和绘制出一些常用离散信号序列。
请用Matlab画出下列序列的波形(-10<n<10):
●a) δ(n)
●b) 单位阶跃序列 2 u(n-5)
●c) 矩形序列 R(n)
●d)y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)
●(2)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将
上述基本序列进行这些基本运算,得到多个序列构成的组合序列。
●(3)请用您的计算机声卡采用一段您自己的声音 x(n),长度为 45秒,单声道,
取样频率 44.1kHz,16bit/样值,然后与给定的一段背景音乐 y(n) 按下式叠加为一个声音信号 z(n):z(n) = 0.7x(n) + 0.3y(n)
●要求在同一个 Figure 中,画出采集声音 x(n)、背景音乐 y(n)和混音 z(n) 的时域波
形;
2.实验代码
实验图像见文件夹中的JPG图片。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab仿真实验实验报告学院:电子工程学院专业:电子信息科学与技术班级:学号:姓名:时间:2015年12月23日实验一:数字信号的FFT分析1.实验目的通过本次试验,应该掌握:(a)用傅里叶变换进行信号分析时基本参数的选择(b)经过离散时间傅里叶变换和有限长度离散傅里叶变换后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。
(c)离散傅里叶变化的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
(d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e)建立DFT从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用时数字音频压缩中的分析滤波器,例如DVD AC3和MPEG Audio。
2.实验内容、要求及结果。
(1)离散信号的频谱分析:设信号x(n)=0.001*cos(0.45nπ)+sin(0.3nπ)-cos(0.302nπ-π)4此信号的0.3π和0.302π两根谱线相距很近,谱线0.45π的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。
【实验代码】:k=2000;n=[1:1:k];x=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);subplot(2,1,1);stem(n,x,'.');title(‘时域序列');xlabel('n');ylabel('x(n)');xk=fft(x,k);w=2*pi/k*[0:1:k-1];subplot(2,1,2);stem(w/pi,abs(xk));axis([0 0.5 0 2]);title('1000点DFT');xlabel('数字频率');ylabel('|xk(k)|');【实验结果图】:(2)DTMF信号频谱分析用计算机声卡采集一段通信系统中电话双音多频(DTMF)拨号数字0~9的数据,采用快速傅里叶变换(FFT)分析这10个号码DTMF拨号时的频谱。
【实验代码】及【实验结果图】见实验二(2);实验二:DTMF信号的编码1.实验目的:(a)复习和巩固IIR数字滤波器的基本概念;(b)掌握IIR数字滤波器的设计方法;(c)掌握IIR数字滤波器的实现结构;(d)能够由滤波器的实现结构分析滤波器的性能(字长效应);(e)了解通信系统电话DTMF拨号的基本原理和IIR数字滤波器的实现方法。
2.实验内容、要求及结果:1)把你的联系电话号码通过DTMF编码生成一个.wav文件。
✧技术指标:➢根据ITU Q.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。
➢每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms 的其余时间是静音。
➢在每个频率点上允许有不超过±1.5%的频率误差。
任何超过给定频率±3.5%的信号,均被认为是无效的,拒绝接收。
(其中关键是不同频率的正弦波的产生。
可以使用查表方式模拟产生两个不同频率的正弦波。
正弦表的制定要保证合成信号的频率误差在±1.5%以内,同时是取样点数尽量少)【实验代码】:N=800;total_x=[];tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68];n=1:N;fs=8000;lf=[697 770 852];hf=[1209 1336 1477];x1=sin(2*pi*lf(1)*n/fs)+sin(2*pi*hf(1)*n/fs);%1x2=sin(2*pi*lf(1)*n/fs)+sin(2*pi*hf(3)*n/fs);%3x3=sin(2*pi*lf(1)*n/fs)+sin(2*pi*hf(2)*n/fs);%2x4=sin(2*pi*lf(2)*n/fs)+sin(2*pi*hf(3)*n/fs);%6x5=sin(2*pi*lf(3)*n/fs)+sin(2*pi*hf(3)*n/fs);%9x6=sin(2*pi*lf(2)*n/fs)+sin(2*pi*hf(3)*n/fs);%6x7=sin(2*pi*lf(1)*n/fs)+sin(2*pi*hf(2)*n/fs);%2x8=sin(2*pi*lf(3)*n/fs)+sin(2*pi*hf(2)*n/fs);%8x9=sin(2*pi*lf(3)*n/fs)+sin(2*pi*hf(3)*n/fs);%9xa=sin(2*pi*lf(3)*n/fs)+sin(2*pi*hf(3)*n/fs);%9xb=sin(2*pi*lf(2)*n/fs)+sin(2*pi*hf(2)*n/fs);%5total_x=[x1,x2,x3,x4,x5,x6,x7,x8,x9,xa,xb];x11=[x1,zeros(1,800)];x22=[x2,zeros(1,800)];x33=[x3,zeros(1,800)];x44=[x4,zeros(1,800)];x55=[x5,zeros(1,800)];x66=[x6,zeros(1,800)];x77=[x7,zeros(1,800)];x88=[x8,zeros(1,800)];x99=[x9,zeros(1,800)];xaa=[xa,zeros(1,800)];xbb=[xb,zeros(1,800)];x=[x11,x22,x33,x44,x55,x66,x77,x88,x99,xaa,xbb];x=x/max(abs(x));plot(x);sound(x);wavwrite(x,fs,'tel.wav');【实验结果图】:2)对所生成的DTMF 文件进行解码。
DTMF 信号解码可以采用FFT 计算N 点频率处的频谱值,然后估计出所拨号码。
但FFT 计算了许多不需要的值,计算量太大,而且为保证频率分辨率,FFT 的点数较大,不利于实时实现。
因此,FFT 不适合于DTMF 信号解码的应用。
由于只需要知道8个特定点的频谱值,因此采用一种称为Goertzel 算法的IIR滤波器可以有效的提高计算效率。
其传递函数为:H k (z)=1−e −j2πk N Z −11−2cos(2πk N )Z −1+Z −2【实验代码】: k=[18 20 22 24 31 34 38 42];N=205; disp(['接收端检测到的号码为:'])for nn=1:11m=800*(nn-1);X=goertzel(total_x(m+1:m+N),k+1);val=abs(X);stem(k,val,'.');grid;xlabel('k');ylabel('|x(k)|')set(gcf,'color','w')shg;pause();limit=80;for s=5:8;if val(s)>limit,break,endendfor r=1:4;if val(r)>limit,break,endenddisp([setstr(tm(r,s-4))])end【实验结果图】:1 3 26 9 62 8 99 5实验三:FIR数字滤波器的设计和实现1.实验目的:✧通过本次试验,掌握一下知识:➢FIR数字滤波器窗口设计法的原理和设计步骤;➢Gibbs效应发生的原因和影响;➢不同类型的窗函数对滤波效果的影响,以及窗函数和长度N的选择。
(效果,耳机听前后声音,或者看前后的频谱图)2.实验内容、要求及结果:✧录制一段自己的声音,长度为十几秒,取样频率32khz,然后叠加一个高斯白噪声,(知道噪声分布,知道噪声功率,只要知道输入信号功率),使得信噪比为20db。
请采用窗口法,设计一个FIR带通滤波器,滤除噪声提高质量。
提示:✧滤波器指标参考:通带边缘频率为4khz,阻带边缘频率为4.5khz,阻带衰减大于50db;✧Matlab函数y=awgn(x,snr,’measured’),首先测量输入信号x的功率,然后对其叠加高斯白噪声。
【实验代码】:clear;close all;[x,fs,nbits]=wavread('st.wav');snr=20;x2=awgn(x,snr,'measured');wavwrite(x2,fs,16,'add_noise.wav');t=0:1/fs:(size(x2)-1)/fs;wp=8000*pi/32000;ws=9000*pi/32000;wdelta=ws-wp;N=ceil(11*pi/wdelta);%取整wn=(ws+wp)/2;b=fir1(N,wn/pi,blackman(N+1));figure(1)freqz(b,1,512)f2=filter(b,1,x2);figure(2)subplot(2,1,1)plot(t,x2)title(‘加噪声后时域波形');subplot(2,1,2)plot(t,f2)title('滤波后时域波形');F0=fft(f2,1024);f=fs*(0:511)/1024;figure(3)y2=fft(x2,1024);subplot(2,1,1);plot(f,abs(y2(1:512)));title('加噪声后频谱');xlabel('Hz');ylabel('幅度');subplot(2,1,2);F2=plot(f,abs(F0(1:512)));title('滤波后频谱');xlabel('Hz');ylabel('幅度');wavwrite(f2,fs,16,'afterfilter.wav');【实验结果图】:实验问题及总结:对于matlab这个软件或许确实不陌生,但是上一次使用也就是大一下学期了,当时学matlab也仅限于照葫芦画瓢,没有什么特别的理解,也觉得matlab是不是只能画画图而已。
不过这次实验使我对于matlab有了更深刻的认识!同时,这次实验的重点是DSP这门课程,这是DSP软件实验。