视频YUV422转420的TI DSP源代码

视频YUV422转420的TI DSP源代码
视频YUV422转420的TI DSP源代码

视频YUV4:2:2转4:2:0的TI DSP源代码

网络上有很多有关YUV4:2:2转YUV4:2:0的描述,但大多数都是讲解原理,没有实际性的做法,本文把自己在TI DAVINCI DM6446 端的测试过的代码奉献出来,供大家参考和学习,同时抛砖引玉,希望得到大家的指点。本方法适合TI DM642,DM643x,DM644x等DSP系列,前段图像采集格式一般都是YCbCr 4:2:2(YUV 4:2:2),但很多视频应用都需要对YUV4:2:2进行转化成YUV4:2:0的格式,比如jpeg,MPEG4,H.264等,在DM643x,DM644x上,TI 采用EDMA3的方式实现转换,那是另外的方法,这里专门介绍通用的做法,在DM6 441(513MHz)上处理640x480只需要7.5ms,而且还可以再优化,这个大家可以试试。

/***********************************************/

以PAL制为例,这里的YCbCr 4:2:2(YUV4:2:2)像素排列方式是:

U0,0 Y0,0 V0,0 Y 0,1 U0,1 Y0,2 V0,1 Y 0,3......U0,359 Y0,718 V0,359 Y 0,719 ..............................

U575,0 Y575,0 V575,0 Y 575,1 ...........U575,359 Y575,718 V575,359 Y 575,719

我们要转化成YUV4:2:0的格式:

/*视频输入格式定义*/

#define PAL 1 /*PAL制CCD摄像头图像采集*/

#define NTSC 0 /*NTSC制CCD摄像头图像采集*/

#define CMOS 0 /*CMOS摄像头图像采集*/

#if (1== PAL)

#define ORG_IMG_WIDTH 720 /*D1 格式*/

#define ORG_IMG_HEIGHT 576

#elif (1==NTSC )

#define ORG_IMG_WIDTH 720 /*D1 格式*/

#define ORG_IMG_HEIGHT 480

#elif (1==CMOS)

#define ORG_IMG_WIDTH 640 /*VGA 格式*/

#define ORG_IMG_HEIGHT 480

#endif

yuv422to420(const *unsigned char YCbCr_buf) /*YCbCr_buf指向YUV4:2:2的空间*/

{

unsigned int m0,m1,m2,m3,x,y;

unsigned int tmp,tmp0,tmp1,tmp2;

tmp = (unsigned int)YCbCr_buf;/*对于D1,CIF,QCIF,VGA,QVGA的BUF肯定是4字节对齐,所以这里定义unsigned int也是可以的,当然你也可以使用指针*/

tmp0 = (unsigned int)Y_buf;

for(y=0;y

{

for(x=0;x<(ORG_IMG_WIDTH>>1);x+=4)

{

m0 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<1) + (x<<2)); /

m1 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<1) + ((x+1)<<2));

m2 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<1) + ((x+2)<<2));

m3 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<1) + ((x+3)<<2));

*(unsigned short*)(tmp0+y*ORG_IMG_WIDTH + (x<<1))=(unsigned short)(((m0>>16) &0xFF00)|((m0>>8)&0x00FF));

*(unsigned short*)(tmp0+y*ORG_IMG_WIDTH + ((x+1)<<1))=(unsigned short)(((m 1>>16)&0xFF00)|((m1>>8)&0x00FF));

*(unsigned short*)(tmp0+y*ORG_IMG_WIDTH + ((x+2)<<1))=(unsigned short)(((m 2>>16)&0xFF00)|((m2>>8)&0x00FF));

*(unsigned short*)(tmp0+y*RG_IMG_WIDTH + ((x+3)<<1))=(unsigned short)(((m 3>>16)&0xFF00)|((m3>>8)&0x00FF));

}

}

tmp1=(unsigned int)U_buf;

tmp2=(unsigned int)V_buf;

for(y=0;y<(ORG_IMG_HEIGHT>>1);y++)

{

for(x=0;x<(ORG_IMG_WIDTH>>1);x+=4)

{

m0 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<2) + (x<<2));

m1 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<2) + ((x+1)<<2));

m2 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<2) + ((x+2)<<2));

m3 = *(unsigned int*)(tmp+y*(ORG_IMG_WIDTH<<2) + ((x+3)<<2));

*(unsigned char*)(tmp1+y*(ORG_IMG_WIDTH>>1) + x)=(unsigned char)m0;

*(unsigned char*)(tmp2+y*(ORG_IMG_WIDTH>>1) + x)=(unsigned char)(m0>>16);

*(unsigned char*)(tmp1+y*(ORG_IMG_WIDTH>>1) + x + 1)=(unsigned char)m1;

*(unsigned char*)(tmp2+y*(ORG_IMG_WIDTH>>1) + x + 1)=(unsigned char)(m1>>16); *(unsigned char*)(tmp1+y*(ORG_IMG_WIDTH>>1) + x + 2)=(unsigned char)m2;

*(unsigned char*)(tmp2+y*(ORG_IMG_WIDTH>>1) + x + 2)=(unsigned char)(m2>>16); *(unsigned char*)(tmp1+y*(ORG_IMG_WIDTH>>1) + x + 3)=(unsigned char)m3;

*(unsigned char*)(tmp2+y*(ORG_IMG_WIDTH>>1) + x + 3)=(unsigned char)(m3>>16);

}

}

}

对上面的代码点评:DSP的优化原则,能移位,就不要乘除;能int 读内存,就不要用char读内存,因为C64,C64+的DSP 读内存指令需要4个时钟周期;循环能成4的倍数,最好拆4次操作,形成管道流水线操作,当然循环内部不能有if, break等语句。

另外,DM642或DM643有自己的效率更高的程序,这里也奉献给大家。

#include

#include

#include

#pragma DATA_SECTION(int_mem_temp, ".img_buf");/*可以把.img_buf定义到L2RAM*/

#pragma DATA_ALIGN(int_mem_temp, 128);

unsigned char int_mem_temp[720];

void yuv422to420( char *frameIn[], char *frm_out[],

int width, int height)

{

char *pSrcY = frameIn[0];

char *pSrcU = frameIn[1];

char *pSrcV = frameIn[2];

char *pDestY = frm_out[0];

char *pDestU = frm_out[1];

char *pDestV = frm_out[2];

unsigned int id;

unsigned int i;

for( i = 0; i < height; i++)

{

id = DAT_copy(pSrcY + (i * 720), int_mem_temp, 720);

id = DAT_copy(int_mem_temp, pDestY + (i * 720), 720);

DAT_wait(id);

}

for( i = 0; i < (height >> 1); i++)

{

id = DAT_copy(pSrcU + (i * 720), int_mem_temp, 360);

id = DAT_copy(int_mem_temp, pDestU + (i * 360), 360);

DAT_wait(id);

}

for( i = 0; i < (height >> 1); i++)

{

id = DAT_copy(pSrcV + (i * 720), int_mem_temp, 360);

id = DAT_copy(int_mem_temp, pDestV + (i * 360), 360);

DAT_wait(id);

}

return ;

}

void yuv420to422( char *frameIn[], char *frm_out[],

int width, int height)

{

char *pSrcY = frameIn[0];

char *pSrcU = frameIn[1];

char *pSrcV = frameIn[2];

char *pDestY = frm_out[0];

char *pDestU = frm_out[1];

char *pDestV = frm_out[2];

unsigned int id;

unsigned int i;

for( i = 0; i < height; i++)

{

id = DAT_copy(pSrcY + (i * 720), int_mem_temp, 720);

id = DAT_copy(int_mem_temp, pDestY + (i * 720), 720);

DAT_wait(id);

}

for( i = 0; i < (height >> 1); i++)

{

id = DAT_copy(pSrcU + (i * 360), int_mem_temp, 360);

id = DAT_copy(int_mem_temp, pDestU + ((2 * i) * 360), 360); id = DAT_copy(int_mem_temp, pDestU + ((2*i + 1)* 360), 360); DAT_wait(id);

}

for( i = 0; i < (height >> 1); i++)

{

id = DAT_copy(pSrcV + (i * 360), int_mem_temp, 360);

id = DAT_copy(int_mem_temp, pDestV + ((2*i) * 360), 360); id = DAT_copy(int_mem_temp, pDestV + ((2*i+1) * 360), 360); DAT_wait(id);

}

return ;

}

DSP实验报告

实验0 实验设备安装才CCS调试环境 实验目的: 按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。 实验步骤: 以演示实验一为例: 1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源; 2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out; 3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示; 4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框 5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1; DSP Data Type设置成16-bit signed integer,如下图所示; 6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察 7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果: 心得体会: 通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。熟悉了DSP实验箱基本模块。让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

DSP课程设计总结报告

课程设计总结报告课程名称DSP控制器及其应用 设计题目万年历设计 业专电子信息工程 班级 姓名 学号

指导教师 报告成绩 信息工程学院 年六月十三日二〇一四 录目 言前 (3) 设计要求第一章4.....................................................................................基本要求1.14.....................................................................................

系统的组成和工作原理第二章5............................................................. 芯片的工作原理VC5509APGE2.1DSPTMS3205.............................. 液晶显示器的工作原理2.2LCD16026..............................................主电路图及程序流程图第三章.. (7) 主电路图3.17...................................................................................... 程序总流程图3.27.............................................................................. 程序分块流程图3.38..........................................................................软件程序设计第四章9.............................................................................

数字信号处理知识点总结

《数字信号处理》辅导 一、离散时间信号和系统的时域分析 (一) 离散时间信号 (1)基本概念 信号:信号传递信息的函数也是独立变量的函数,这个变量可以是时间、空间位置等。 连续信号:在某个时间区间,除有限间断点外所有瞬时均有确定值。 模拟信号:是连续信号的特例。时间和幅度均连续。 离散信号:时间上不连续,幅度连续。常见离散信号——序列。 数字信号:幅度量化,时间和幅度均不连续。 (2)基本序列(课本第7——10页) 1)单位脉冲序列 1,0()0,0n n n δ=?=?≠? 2)单位阶跃序列 1,0 ()0,0n u n n ≥?=?≤? 3)矩形序列 1,01 ()0,0,N n N R n n n N ≤≤-?=?<≥? 4)实指数序列 ()n a u n 5)正弦序列 0()sin()x n A n ωθ=+ 6)复指数序列 ()j n n x n e e ωσ= (3)周期序列 1)定义:对于序列()x n ,若存在正整数N 使()(),x n x n N n =+-∞<<∞ 则称()x n 为周期序列,记为()x n ,N 为其周期。 注意正弦周期序列周期性的判定(课本第10页) 2)周期序列的表示方法: a.主值区间表示法 b.模N 表示法 3)周期延拓 设()x n 为N 点非周期序列,以周期序列L 对作()x n 无限次移位相加,即可得到周期序列()x n ,即 ()()i x n x n iL ∞ =-∞ = -∑ 当L N ≥时,()()()N x n x n R n = 当L N <时,()()()N x n x n R n ≠ (4)序列的分解 序列共轭对称分解定理:对于任意给定的整数M ,任何序列()x n 都可以分解成关于/2c M =共轭对称的序列()e x n 和共轭反对称的序列()o x n 之和,即

dsp学习心得体会

dsp学习心得体会 篇一:DSP学习总结 DSP学习总结 摘要:本总结介绍了数字信号技术(DSP)的基本结构,特点,发展及应用现状。通过分析与观察,寄予了DSP 美好发展前景的希望。 关键字:数字信号处理器,DSP,特点,应用 1 DSP介绍 数字信号处理简称DSP,是进行数字信号处理的专用芯片,是伴随着微电子学、数字信号处理技术、计算机技术的发展而产生的新器件,是对信号和图像实现实时处理的一类高性能的CPU。所谓“实时实现”,是指一个实际的系统能在人们听觉、视觉或按要求所允许的时间范围内对输入信号进行处理,并输出处理结果。 数字信号是利用计算机或专用的处理设备,以数值计算的方式对信号进行采集、变换、综合、估计与识别等加工处理,从而达到提取信息和方便应用的目的。数字信号处理的实现是以数字信号处理理论和计算技术为基础的。 2 结构

32位的C28xDSP整合了DSP和微控制器的最佳特性,能够在一个周期内完成32*32位的乘法累加运算。 所有的C28x芯片都含一个CPU、仿真逻辑以及内存和片内外设备的接口信号(具体结构图见有关书籍)。CPU的主要组成部分有: 程序和数据控制逻辑。该逻辑用来从程序存储器取回的一串指令。实时和可视性的仿真逻辑。 地址寄存器算数单元(ARAU)。ARAU为从数据存储器取回的数据分配地址。算术逻辑单元(ALU)。32位的ALU执行二进制的补码布尔运算。 预取对列和指令译码。 为程序和数据而设的地址发生器。 定点MPY/ALU。乘法器执行32位*32位的二进制补码乘法,并产生64位的计算结果。中断处理。 3 特点 采用哈佛结构。传统的冯·诺曼结构的数据总线和指令总线是公用的,因此在高运算时在传输通道上会出拥堵现象。而采用哈佛结构的DSP 芯片片内至少有4 套总线:程序的地址总线与数据总线,数据的地址总线与数据总线。由于这

dsp课程设计实验报告

DSP 课程设计实验 一、语音信号的频谱分析: 要求首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在MATLAB 中,可以利用函数fft 对信号进行快速傅立叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。 其程序为: >> [y,fs,bits]=wavread('I:\',[1024 5120]); >> sound(y,fs,bits); >> Y=fft(y,4096); >> subplot(221);plot(y);title('原始信号波形'); | >> subplot(212);plot(abs(Y));title('原始信号频谱'); 程序运行结果为: 二、设计数字滤波器和画出频率响应: 根据语音信号的特点给出有关滤波器的性能指标: 低通滤波器性能指标,p f =1000Hz ,c f =1200Hz ,s A =100dB ,p A =1dB ; 高通滤波器性能指标,c f =4800Hz ,p f =5000Hz ,s A =100dB ,p A =1dB ; 带通滤波器性能指标,1p f =1200Hz ,2p f =3000Hz ,1c f =1000Hz ,2c f =3200Hz ,s A =100dB , p A =1dB ;

】 要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数firl 设计FIR滤波器;然后再用双线性变换法设计上面要求的三种滤波器,在MATLAB中,可以利用函数butte、cheby1和ellip设计IIR滤波器;最后,利用MATLAB中的函数freqz画出各种滤波器的频率响应,这里以低通滤波器为例来说明设计过程。 低通: 用窗函数法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; >> N=ceil(/*(wc-wp)/2))+1; >> beta=*; >> Win=Kaiser(N+1,beta); 、 >>b=firl(N,wc,Win); >>freqz(b,1,512,fs); 程序运行结果: 这里选用凯泽窗设计,滤波器的幅度和相位响应满足设计指标,但滤波器长度(N=708)太长,实现起来很困难,主要原因是滤波器指标太苛刻,因此,一般不用窗函数法设计这种类型的滤波器。 用双线性变换法设计的低通滤波器的程序如下: >> fp=1000;fc=1200;As=100;Ap=1;fs=22050; >> wc=2*fc/fs;wp=2*fp/fs; 》 >> [n,wn]=ellipord(wp,wc,Ap,As); >> [b,a]=ellip(n,Ap,As,wn); >> freqz(b,a,512,fs); ^

数字信号处理学习心得

数字信号处理报告 数学与信息科学学院 信息与计算科学 学号:41312261 姓名:高萌瑶

数字信号处理 信号处理的问题在各个领域都非常普遍,信号的表现形式也多种多样。若将信号看作自变量时间影响的因变量,则也可细分为如下几种:信号的自变量和函数值均取连续值,称之为模拟信号或时域离散信号;若自变量取离散值,而函数值取连续值,则称此信号为时域离散信号;若自变量和函数值均取离散值,则称为数字信号。 1.模拟信号数字处理方法 在现实生活中及工程技术领域中涉及的信号一般都是模拟信号,即在时域与频域均连续的信号。对模拟信号的处理是通过一些模拟器件,如:晶体管、电阻、电容等,完成对信号的处理。模拟信号处理时改变参数时不具备一些灵活性,而且在计算精度方面也不能得到较高的精度,故处理模拟信号时我们更倾向于将其经过采样和量化编码形成数字信号,再采用数字信号处理技术进行处理。最后,如果需要,则可以将数字信号再转换为模拟信号,进行恢复。 图1 模拟信号数字处理框图 1.1采样间隔与采样信号表示 对模拟信号进行采样可以看作一个模拟信号通过一个电子开关S 。假设电子开关每隔周期T 合上一次,每次合上的时间为T τ<<,在电子开关输出端得到其 采样信号^()a x t 。该电子开关的作用等效成一宽度为τ,周期为T 的矩形脉冲串()P t τ相乘的结果。 如果电子开关合上的时间0τ→,则形成理想采样,此时上面的脉冲串变成单位冲激串,用()P t δ表示。()P t δ中每个单位冲激处在采样点上,强度为1。理想采样则是()a x t 与()P t δ相乘的结果。 用公式表示为: ^()() ()()()()()n a a a n P t t nT x t x t P t x t t nT δδδδ∞=-∞∞ =-∞= -=?=-∑∑ 其中上式中()t δ是单位冲激信号,在上式中只有当t nT =时,才可能有非零值,因此将采样信号表示为下式: ^ ()()()a a n x t x nT t nT δ∞ =-∞=-∑ 1.2采样速率与模拟信号最高频率的关系 为了使采样信号不失真的恢复原模拟信号,需寻找速率s f 与模拟信号最高频率c f 之间的关系。在傅里叶变换中,两个信号在时域相乘的傅里叶变换等于两个信号分别的傅里叶变换的卷积,因此: ()FT[(t)] ()FT[(t)]()FT[P (t)]a a a a X j x X j x P j δδ∧∧ Ω=Ω=Ω=

DSP实验二

实验三 IIR 滤波器设计 一、实验目的: 1.认真复习滤波器幅度平方函数的特性,模拟低通滤波器的巴特沃思逼近、切比雪夫型逼近方法;复习从模拟低通到模拟高通、带通、带阻的频率变换法;从模拟滤波器到数字滤波器的脉冲响应不变法、双线性变换法的基本概念、基本理论和基本方法。 2掌握巴特沃思、切比雪夫模拟低通滤波器的设计方法;利用模拟域频率变换设计模拟高通、带通、带阻滤波器的方法.。 3.掌握利用脉冲响应不变法、双线性变换法设计数字滤波器的基本方法;能熟练设计巴特沃思、切比雪夫低通、带通、高通、带阻数字滤波器。 4.熟悉利用MATLAB 直接进行各类数字滤波器的设计方法。 二、实验内容 a. 设计模拟低通滤波器,通带截止频率为10KHz,阻带截止频率为16KHz,通带最大衰减1dB,阻带最小衰减20dB。 (1) 分别用巴特沃思、切比雪夫I、切比雪夫II 型、椭圆型滤波器分别进行设计,并绘制所设计滤波器的幅频和相频特性图。 (2) 在通带截止频率不变的情况下,分别用n=3,4,5,6 阶贝塞尔滤波器设计所需的低通滤波器,并绘制其相应的幅频响应和相频响应图。 %%%%%%%%%----巴特沃思-----%%%%%%% clc;clear all; omegap=10000*2*pi;omegas=16*10^3*2*pi; Rp=1;As=20; [N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次 [b,a]=butter(N,omegac,'s'); [H,w]=freqs(b,a); %设计滤波器的幅频和相频特性图 subplot(211) plot(w/2*pi/1000,20*log10(abs(H)))

DSP课程设计报告

共享知识分享快乐 盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 数据采集处理和控制系统设计 一课程设计要求 1.基本DSP硬件系统设计要求 ①基本DSP硬件系统以TMS320C54x系列为核心处理器,包括最小系统、存储器扩展、显示器、键盘、AD、DA等电路模块; ②硬件设计画出主要芯片及电路模块之间的连接即可,重点考查电路模块方案设计与系统地址分配; ③设计方案以电路示意图为主,辅以必要的文字说明。 2.基本软件设计要求 ①看懂所给例程,画出例程输出波形示意图; ②修改例程程序,使之输出其它波形,如方波、三角波、锯齿波等均可; ③设计方案以程序实现为主,辅以必要的文字说明。 3.课程设计报告要求 ①硬件系统设计:设计思路、设计系统功能、主要芯片选型及使用方法、设计方案说明、电路示意图 ②软件系统设计:示例程序功能解读及输出波形示意图、设计软件功能、设计思路、实现源码(带程序注释) ③报告总结 二系统分析 利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。在DSP 中采集信号,并且对信号进行频谱分析,滤波等。通过键盘或者串口命令选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD 上显示。主要功能如下: (1)对外部输入的模拟信号采集到DSP 内存,会用CCS 软件显示采集的数据波形。 (2)对采集的数据进行如下算法分析: ①频谱分析:使用fft 算法计算信号的频率。 ②对信号进行IIR 滤波或FIR 滤波,并且计算滤波前后信号的频率。 ③外部键盘或者从计算机来的串口命令选择算法功能,并且将结果在 LCD 上显示。 绘制出DSP系统的功能框图、使用AD(Altium Designer)绘制出系统的原理图和PCB 版图。 在 DSP 中采集信号,用CCS 软件显示采集的数据波形,以及对采集的数据进行算法分析。 三硬件设计 3.1 硬件总体结构

数字信号处理课程设计心得体会

竭诚为您提供优质文档/双击可除数字信号处理课程设计心得体会 篇一:数字信号处理课程设计 青岛科技大学 数字信号分析及数字滤波器设计题目 __________________________________ ______________________________________ 张淑军指导教师__________________________刘云生学生姓名__________________________1108020310学生学号__________________________ 信息与科学技术学_______________________________ 院 信息工程113院(部)____________________________专业________________班 __20XX____年_1__月14___日 1.目的与要求 1.进一步巩固数字信号处理中的基本原理与方法,提高分析、解决实际问题的能力。

2.熟练掌握一门计算机语言,进行数字信号处理应用的开发设计,训练基本技能,如查阅设计资料和手册、程序的设计、调试等。 《数字信号分析及数字滤波器设计》 1.用以下方式产生三个不同频段的信号:(1)自己录制一段正常的语音文件;(2)录制一段环境噪声文件;(3)利用mATLAb产生一个不同于以上频段的信号。 2.对上述三个信号,进行频谱分析,画出三路信号的时域波形和频谱图,对进行对比分析。 3.根据三路信号的频谱特点得到性能指标,由性能指标设计三个滤波 器,并画出各滤波器的频域响应。4.将三路信号叠加为一路信号。 5.用自己设计的滤波器对合成的信号进行滤波,分析得到信号的频谱,并画出滤波后信号的时域波形和频谱。 2.主要技术和原理 2.1语音采集、记录、读取以及播放的matlab实现 利用matlab的音频信号处理工具箱,可以实现声音的录制和播放。录音函数wavrecord语法为: y=wavrecord(n,fs,channel,dataType);其中 n为采样点数,fs为采样频率,ch(:数字信号处理课程设计心得体会)annel(通常取1或者2)为录音通道数,

管路阻力计算和水泵选型

2.1水系统管路阻力估算、管路及水泵选择 a)确定管径 一般情况下,按5℃温差来确定水流量(或按主机参数表中的额定水流量),主管道按主机最大能力的总和估算,分支管道按末端名义能力估算。根据能力查下面《能力比摩阻速查估算表》,选定管型。 b)沿程阻力计算 根据公式沿程阻力=比摩阻×管长,即H y=R×L,pa,计算时应选取最不利管路来计算:第一步:采用插值法计算具体的适用比摩阻,比如能力为,范围属于“6<Q≤11”能力段,K r=,进行插值计算。 R=104+()×= pa/m 第二步:根据所需管长计算沿程阻力,假设管长L=28m,则 H y= R×L=×28= pa= kpa c)局部阻力计算 作为估算,一般地,把局部阻力估算为沿程阻力的30-50%,当阀门、弯头、三通等管件较多的时候,取大值。实际计算采用如下公式: Hj=ξ*ρv2/2,ξ---局部阻力系数,ρv2/2---动压 ρv2/2动压查表插值计算,ξ局部阻力系数参考下表取值:

d)水路总阻力计算及水泵选型 水路总阻力包括:所有管道的沿程阻力、阀门、弯头、三通等管件的局部阻力、室外主机的换热器阻力(损失)、室内末端阻力(损失),后面两项与不同的主机型号和末端相关。计算式为: H q=H y+H j+H z+H m+H f H z——室外主机换热器阻力,一般取7m水柱 H m——室内末端阻力 H f——水系统余量,一般取5m水柱; 总阻力计算完成后,就可以根据总阻力选取流量满足要求的情况下能提供不小于总阻力扬程的水泵来匹配水系统。选取水泵时要根据“流量——扬程曲线”来确定,但扬程和流量不能超出所需太大(一般不超过20%),避免导致出现水力失调和运行耗能较高。 水系统的沿程阻力和局部阻力与系统水流量和所采用的管径相关,流量、管径及所使用各种配件的多少决定总阻力,流量取决于主机能力(负荷)及送回水温差,流量确定的情况下,管径越大,总阻力越小,水泵的耗能越小,但管路初投资会增大。 PE-RT地暖管的规格(参考)(红色字的为推荐使用规格、计算基准) ?计算例 现有项目系统图如下:

dsp实验报告5

一、实验原理: 1、无限冲击响数字滤波器的基础理论; 2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3、双线性变换的设计原理。 二、实验内容: 1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:CPU2; 2)“A/D转换单元”的拨码开关设置: JP3 3)检查:计算机、DSP仿真器、实验箱是否正确连接,系统上电; 4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出; 三、程序分析: cpu_init(); //CPU初始化 fs = 25000; //设置采样频率为2500HZ nlpass = 0.18; //设置通带上限频率归一化参数为0.18 nlstop = 0.29; //设置阻带下限截止频率归一化参数为0.29 biir2lpdes(fs,nlpass,nlstop,a,b); 根据双线性变换法求滤波器的系数a和b set_int(); //调用低通滤波器子程序对信号进行滤波 中断程序注释: interrupt void int1()

{ in_x[m] = port8002; //读取port8002端口的数值 in_x[m] &= 0x00FF; //取后八位送入X[m] m++; //每取一个数字m加1 intnum = m; if (intnum == Len) //当取到128个字节时,重新读取port8002端口的数值 { intnum = 0; xmean = 0.0; for (i=0; i

dsp课程设计实验报告总结

DSP课程设计总结(2013-2014学年第2学期) 题目: 专业班级:电子1103 学生姓名:万蒙 学号:11052304 指导教师: 设计成绩: 2014 年6 月

目录 一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计 3.1 硬件总体结构-----------------------------------------------------------3 3.2 DSP模块设计-----------------------------------------------------------4 3.3 电源模块设计----------------------------------------------------------4 3.4 时钟模块设计----------------------------------------------------------5 3.5 存储器模块设计--------------------------------------------------------6 3.6 复位模块设计----------------------------------------------------------6 3.7 JTAG模块设计--------------------------------------------------------7 四软件设计 4.1 软件总体流程-----------------------------------------------------7 4.2 核心模块及实现代码---------------------------------------8 五课程设计总结-----------------------------------------------------14

数字信号处理学习心得体会

数字信号处理学习心得 体会

数字信号处理学习心得 一、课程认识和内容理解 《数字信号处理》是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当的数学分析处理,来展示这些理论和方法的实际应用。 数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科:它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。信息科学是研究信息的获取、传输、处理和利用的一门科学,信息要用一定形式的信号来表示,才能被传输、处理、存储、显示和利用,可以说,信号是信息的表现形式。这学期数字信号处理所含有的具体内容如下: 第一单元的课程我们深刻理解到时域离散信号和时域离散系统性质和特点;时域离散信号和时域离散系统时域分析方法;模拟信号的数字处理方法。 第二单元的课程我们理解了时域离散信号(序列)的傅立叶变换,时域离散信号Z变换,时域离散系统的频域分析。 第三单元的课程我们学习了离散傅立叶变换定义和性质,离散傅立叶变换应用——快速卷积,频谱分析。 第四单元的课程我们重点理解基 2 FFT算法——时域抽取法﹑频域抽取法,FFT的编程方法,分裂基FFT算法。 第五单元的课程我们学了网络结构的表示方法——信号流图,无限脉冲响

应基本网络结构,有限脉冲响应基本网络结构,时域离散系统状态变量分析法。 第六单元的课程我们理解数字滤波器的基本概念,模拟滤波器的设计,巴特沃斯滤波器的设计,切比雪夫滤波器的设计,脉冲响应不变法设计无限脉冲响应字数字滤波器,双线性变换法设计无限脉冲响应字数字滤波器,数字高通﹑带通﹑带阻滤波器的设计。 第七单元的课程我们学习了线性相位有限脉冲响应(FIR)数字滤波器,窗函数法设计有限脉冲响应(FIR)数字滤波器,频率采样法设计有限脉冲响应(FIR)数字滤波器 二、专业认识和未来规划 通信工程是一门工程学科,主要是在掌握通信基本理论的基础上,运用各种工程方法对通信中的一些实际问题进行处理。通过该专业的学习,可以掌握电话网、广播电视网、互联网等各种通信系统的原理,研究提高信息传送速度的技术,根据实际需要设计新的通信系统,开发可迅速准确地传送各种信息的通信工具等。 对于我们通信专业,我觉得是个很好的专业,现在这个专业很热门,这个专业以后就业的方向也很多,就业面很广。我们毕业以后工作,可以进入设备制造商、运营商、专有服务提供商以及银行等领域工作。当然,就业形势每年都会变化,所以关键还是要看自己。可以从事硬件方面,比如说PCB,别小看这门技术,平时我们在试验时制作的简单,这一技术难点就在于板的层数越多,要做的越稳定就越难,这可是非常有难度的,如果学好了学精了,也是非常好找工作的。也可以从事软件方面,这实际上要我们具备比较好的模电和数电的

DSP实验报告

学校代码学号分类号密级 DSP实验报告 院系名称 专业名称 年级 学生姓名 指导老师 年月日

实验一数据存储实验 一、实验目的 1. 掌握 TMS320C54X 程序空间的分配; 2. 掌握 TMS320C54X 数据空间的分配; 3. 能够熟练运用TMS320C54X 数据空间的指令。 二、实验设备 计算机,CCS 3.1版软件,DSP仿真器,E300实验箱,DSP-54XP CPU板。 三、实验系统相关资源介绍 1. 本实验指导书是以TMS320VC5416为例,介绍其相关的内部和外部存储器资源。对于其他类型的CPU请参考查阅相关的数据手册。) 下面给出TMS320VC5416的存储器分配表: 对于数据存储空间而言,映射表相对固定。值得注意的是内部寄存器都映射到数据存储器空间内。因此在编程时这些特定的空间不能作其他用途。 对于程序空间而言,其映射表和CPU 的工作模式有关。当MP/MC 引脚为高电平时,CPU 工作在微处理器模式;当MP/MC引脚为低电平时,CPU工作在微计算机模式。具体的MP和MC模式下的程序和数据映射关系如上图所示。 2. 样例程序实验操作简单说明: 本实验程序将对0x1000 开始的8 个地址空间,填写入0xAAAA 的数据,然后读出,并存储到以0x1008开始的8个地址空间,在CCS中可以观察DATA存储器空间地址0x1000~0x100F 值的变化。 四、实验步骤与内容 1. 在进行 DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示: 2. E300 底板的开关SW4 的第1位置ON,其余位置OFF,SW5全部置ON,其余开关不做设置要求。 3. 上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则DSP开发系统与计算机连接存

DSP语音信号处理课程设计(精)

DSP语音信号处理课程设计报告书 语音信号处理GUI工具箱设计 指导老师:专业:电子信息工程 班级: 姓名:学号: 设计时间: 2011年10月12日至 地点: 摘要 语音信号处理是研究数字信号处理技术和语音信号进行处理的一门学科,是一门新型的学科,是在多门学科基础上发展起来的综合性技术,它涉及到数字信号处理、模式识别、语言学。语音信号处理是研究用数字信号处理技术对语音信号处理的一门学科。处理的目的是要得到一些语音参数以便高效的传输或存储;或者是通过处理的某种运算以达到某种用途的要求。语音信号处理又是一门边缘学科。如上所诉,它是“语言语音学”与“数字信号处理”两个学科相结合的产物。 语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展。在数字音频技术和多媒体技术迅速发展的今天,传统的磁带语音录放系统因体积大、使用不便、放音不清晰而受到了巨大挑战。本次课程设计提出的体积小巧,功耗低的数字化语音存储与回放系统,可以有效的解决传统的语音录放系统在电子与信息处理的使用中受到的限制。 本文提出了语音信号处理课程建设的实验环节中的一些考虑,作为专业课程的学习,实验内容不能仅仅停留在验证性实验上,还应增加实验延伸的设计要求,是学生加深对理论分析认识的同时,强调培养学生的实际动手能力和知识综合运用能力。从而提高语音信号的教学和实验的质量。实验内容采用MATLAB编程实现,不仅易于语音信号处理的实现,更易引导学生完成实验延伸的设计。 目录 第一章绪论 (1) 1.1课程设计的目的及意义 (1) 1.2设计要求 (1) 1.3 研究内容 (1) 第二章语音信号处理理论基础 (3) 第三章系统方案论证 (4) 2.1 设计方案 (4) 2.2 GUI界面功能介绍 (4) 2.3 GUI界面的具体操作 (5)

数字信号处理复习总结-最终版

绪论:本章介绍数字信号处理课程的基本概念。 0.1信号、系统与信号处理 1.信号及其分类 信号是信息的载体,以某种函数的形式传递信息。这个函数可以是时间域、频率域或其它域,但最基础的域是时域。 分类: 周期信号/非周期信号 确定信号/随机信号 能量信号/功率信号 连续时间信号/离散时间信号/数字信号 按自变量与函数值的取值形式不同分类: 2.系统 系统定义为处理(或变换)信号的物理设备,或者说,凡是能将信号加以变换以达到人们要求的各种设备都称为系统。 3.信号处理 信号处理即是用系统对信号进行某种加工。包括:滤波、分析、变换、综合、压缩、估计、识别等等。所谓“数字信号处理”,就是用数值计算的方法,完成对信号的处理。 0.2 数字信号处理系统的基本组成 数字信号处理就是用数值计算的方法对信号进行变换和处理。不仅应用于数字化信号的处理,而且

也可应用于模拟信号的处理。以下讨论模拟信号数字化处理系统框图。 (1)前置滤波器 将输入信号x a(t)中高于某一频率(称折叠频率,等于抽样频率的一半)的分量加以滤除。 (2)A/D变换器 在A/D变换器中每隔T秒(抽样周期)取出一次x a(t)的幅度,抽样后的信号称为离散信号。在A/D 变换器中的保持电路中进一步变换为若干位码。 (3)数字信号处理器(DSP) (4)D/A变换器 按照预定要求,在处理器中将信号序列x(n)进行加工处理得到输出信号y(n)。由一个二进制码流产生一个阶梯波形,是形成模拟信号的第一步。 (5)模拟滤波器 把阶梯波形平滑成预期的模拟信号;以滤除掉不需要的高频分量,生成所需的模拟信号y a(t)。 0.3 数字信号处理的特点 (1)灵活性。(2)高精度和高稳定性。(3)便于大规模集成。(4)对数字信号可以存储、运算、系统可以获得高性能指标。 0.4 数字信号处理基本学科分支 数字信号处理(DSP)一般有两层含义,一层是广义的理解,为数字信号处理技术——DigitalSignalProcessing,另一层是狭义的理解,为数字信号处理器——DigitalSignalProcessor。 0.5 课程内容 该课程在本科阶段主要介绍以傅里叶变换为基础的“经典”处理方法,包括:(1)离散傅里叶变换及其快速算法。(2)滤波理论(线性时不变离散时间系统,用于分离相加性组合的信号,要求信号频谱占据不同的频段)。 在研究生阶段相应课程为“现代信号处理”(AdvancedSignalProcessing)。信号对象主要是随机信号,主要内容是自适应滤波(用于分离相加性组合的信号,但频谱占据同一频段)和现代谱估计。 简答题: 1.按自变量与函数值的取值形式是否连续信号可以分成哪四种类型? 2.相对模拟信号处理,数字信号处理主要有哪些优点? 3.数字信号处理系统的基本组成有哪些?

管道设计计算公式(流速规定、泵的选用)

1流速与管径计算公式 水流速度取0.7 m/s,则管径计算值如下: D= 4×Q 3600×π×V = 4×6000 3600×3.14×0.7 =174 mm 空气管道的流速,一般规定为:干、支管为10~15m/s,通向空气扩散装置的竖管、小支管为4~5m/s。 2泵的选型 水管管路的水头损失=沿程水头损失+局部水头损失 沿途水头损失=(λL/d)*V^2/(2g)------------P150(层流、紊流均适用) 局部水头损失=ζ*V^2/(2g) 水管管路的水头损失=沿程水头损失+局部水头损失=(λL/d+ζ)*V^2/(2g) 式中:λ—管道沿途阻力系数;L—管道长度;ζ——局部阻力系数,有多个局部阻力系数,则要相加;d—管道内径, g—重力加速度,V—管内断面平均流速。沿途阻力系数λ和局部阻力系数ζ都可查水力学手册。 λ=64/Re 仅适用于圆管层流。对于紊流,由于运动的复杂性,其规律主要由试验确定,但可在理论上给以某些阐述。P171

沿程水头损失 (1)层流区Re<2320(即lgRe<3.36)λ=64/Re (2)层流转变为紊流过渡区2320<Re<4000(即3.36<lgRe<3.6),试验点散乱,流动情况比较复杂且范围不大,一般不作详细分析。 (3)紊流区Re>4000(即lgRe>3.6)分为紊流光滑区、紊流过渡区、紊流粗糙区。 ①紊流光滑区:不同相对粗糙度△/d试验点均落在直线cd上,说明λ与△/d无关。和层流情况相类似,λ值也仅仅与Re有关。可表示为λ=(Re),但与层流区所遵循的函数关系不同。

②紊流粗糙区:分界线ef右方,λ与Re无关,仅与△/d有关,可表示为λ=(△/d) ③紊流过度粗糙区λ=(△/d,Re)

DSP实验报告

数字信号处理课程实验报告 题目:P30-2-6和P63-3-22-d 信道编码 专业:xxx 学号:xxx 姓名:xx

一、书上习题运算 一、实验内容 2.6一个特定的线性和时不变系统,描述它的差分方程如下:y(n)+0.1y(n-1)-0.06y(n-2) = x(n)-2x(n-1)求系统脉冲响应的前10个样本。 如果此系统输入为x(n)=[5+3cos(0.2πn)+4sin(0.6πn)]μ(n),在0≤n≤20求出y(n)的响应。 3.22计算下列序列的N点循环卷积z(n)。 D x1(n)=nR N(n);x2=(N-n)R N(n);N=10 二、实验程序代码 2.6程序: function[x,n]=impseq(np,ns,nf) if ns>np|ns>nf|np>nf error('输入位置参数不满足ns<=np<=nf') else n=[ns:nf]; x=[(n-np)==0]; end a=[1,0.1,0.06];b=[1-2]; x=impseq(0,0,20); h=filter(b,a,x); n=0:20; x=5+3*cos(0.2*pi*n)+4*sin(0.6*pi*n); y=conv(h,x) stem(y) 3.22程序: function y=circonvt(x1,x2,N) x1=[x1,zeros(1,N-length(x1))]; x2=[x2,zeros(1,N-length(x2))]; m=[0:N-1]; x2m=x2(mod(-m,N)+1); H=toeplitz(x2m,[0,x2(2:N)]); y=x1*H; n=0:9; x1=n; x2=10-n; y=circonvt(x1,x2,10) stem(y) 三、实验结果 2.6

课程设计的总结报告

课程设计的总结报告 ----WORD文档,下载后可编辑修改---- 下面是小编收集整理的范本,欢迎您借鉴参考阅读和下载,侵删。您的努力学习是为了更美好的未来! 课程设计的总结报告篇一首先我们由衷的感谢老师提供给我们这样一个锻炼自己的机会,经过这四周的学习,本次课程设计即将结束,总的来说,经过这门课的学习收获还是相当大的。回顾这段时间的课程设计,至今我仍感慨万分。的确,从选材到开始制作,从理论到实践,在四周的实训日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我们都更加懂得并亲身体会到了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到很多问题,可以说是困难重重,并且在设计的过程中发现了自己的很多不足之处,发现自己对之前所学过的知识理解得不够深刻,掌握得不够牢固,有待加强。 生活就是这样,汗水预示着结果但是也见证着收获,劳动是人类生存、生活永恒不变的话题,通过实训,我才真正领略到“艰苦奋斗”这一词的真正含义。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以。而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少欢乐在这里洒下。我想说,之前的时间确实很累,但当我们看到自己所做的劳动成果时,心中也不免产生兴奋。也许有人不喜欢这类的工作,也许有人认为编程的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就够了,而且这也是最主要的,社会需要我们,我们也可以为社会而工作。 我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神,某个人的离群都可能导致整项工作的失败。实训中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个项目失败,团结协作是我们实训成功的一项非常重要的保证。而这次实

DSP课设论文

课程设计说明书(2011/2012学年第一学期) 课程名称:DSP控制器及其应用 题目:分频发生器 专业班级:通信工程 学生姓名: 学号: 指导教师: 设计周数:2周 设计成绩: 2012年1月5日

一、课程设计目的 通过本次的课程设计使学生增进对DSP的认识,加深对单DSP理论方面的理解, 使学生掌握DSP在实际生活中的应用。使学生了解和掌握用DSP实现分频发生器的设计方法、过程,为以后更多的设计打下良好基础,并且通过这次设计使我们对DSP应用的基本操作方法有了一定的了解,对于以后的发展打下了基础,所以本次课程设计对于学生的动手能力的提高有着很大的帮助并达到以下目的: (1)使学生增进对DSP F2812电路的感性认识,加深对理论方面的理解。 (2)使学生掌握软硬件的有关知识等。 (3)让同学们认识分频器器的工作原理和方法 (4)使学生了解和掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。 (5)通过简单课题的设计练习,可使学生了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。 二、课程设计正文 2.1系统分析 2.1.1设计任务 本次设计名为分频发生器,也可以称为键盘输入分频输出装置,要求用9个按键,组成3行3列键盘,采用扫描按键的方法控制蜂鸣器发出对应的声音从而实现按键控制蜂鸣器发出不同频率的声音。 2.1.2性能指标 硬件部分: 1、按照系统设计要求绘制(3行3列按键及分明器)电路图。 2、按照电路图统筹安排各元器件在电路板上的分布,并焊接电路板。 3、了解各引脚功能,将电路板与TMS320F2812相关引脚相连接。 软件部分: 1、搞清楚各个引脚功能,调入引脚头文件。 2、了解了各引脚控制的行列后,编写键盘扫描程序。 3、编写延时程序,实现按键去抖。 最终实现键盘输入分频输出,并由蜂鸣器发出不同频率的响声。 2.2系统整体设计 2.2.1硬件设计组成框图

相关文档
最新文档