西电DSP大作业报告.docx

上传人:b****0 文档编号:8989737 上传时间:2023-05-16 格式:DOCX 页数:23 大小:3.67MB
下载 相关 举报
西电DSP大作业报告.docx_第1页
第1页 / 共23页
西电DSP大作业报告.docx_第2页
第2页 / 共23页
西电DSP大作业报告.docx_第3页
第3页 / 共23页
西电DSP大作业报告.docx_第4页
第4页 / 共23页
西电DSP大作业报告.docx_第5页
第5页 / 共23页
西电DSP大作业报告.docx_第6页
第6页 / 共23页
西电DSP大作业报告.docx_第7页
第7页 / 共23页
西电DSP大作业报告.docx_第8页
第8页 / 共23页
西电DSP大作业报告.docx_第9页
第9页 / 共23页
西电DSP大作业报告.docx_第10页
第10页 / 共23页
西电DSP大作业报告.docx_第11页
第11页 / 共23页
西电DSP大作业报告.docx_第12页
第12页 / 共23页
西电DSP大作业报告.docx_第13页
第13页 / 共23页
西电DSP大作业报告.docx_第14页
第14页 / 共23页
西电DSP大作业报告.docx_第15页
第15页 / 共23页
西电DSP大作业报告.docx_第16页
第16页 / 共23页
西电DSP大作业报告.docx_第17页
第17页 / 共23页
西电DSP大作业报告.docx_第18页
第18页 / 共23页
西电DSP大作业报告.docx_第19页
第19页 / 共23页
西电DSP大作业报告.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西电DSP大作业报告.docx

《西电DSP大作业报告.docx》由会员分享,可在线阅读,更多相关《西电DSP大作业报告.docx(23页珍藏版)》请在冰点文库上搜索。

西电DSP大作业报告.docx

西电DSP大作业报告

DSP实验课程序设计报告

 

学院:

电子工程学院

学号:

1202121013

姓名:

赵海霞

指导教师:

苏涛

 

DSP实验课大作业设计

一实验目的

在DSP上实现线性调频信号的脉冲压缩、动目标显示(MTI)和动目标检测(MTD),并将结果与MATLAB上的结果进行误差仿真。

二实验内容

2.1MATLAB仿真

设定带宽、脉宽、采样率、脉冲重复频率,用MATLAB产生16个脉冲的LFM,每个脉冲有4个目标(静止,低速,高速),依次做

2.1.1脉压

2.1.2相邻2脉冲做MTI,产生15个脉冲

2.1.316个脉冲到齐后,做MTD,输出16个多普勒通道

2.2DSP实现

将MATLAB产生的信号,在visualdsp中做脉压,MTI、MTD,并将结果与MATLAB作比较。

三实验原理

3.1线性调频

线性调频脉冲压缩体制的发射信号其载频在脉冲宽度内按线性规律变化即用对载频进行调制(线性调频)的方法展宽发射信号的频谱,在大时宽的前提下扩展了信号的带宽。

若线性调频信号中心频率为

,脉宽为

,带宽为

,幅度为

为调频斜率,则其表达式如下:

在相参雷达中,线性调频信号可以用复数形式表示,即

在脉冲宽度内,信号的角频率由

变化到

3.2脉冲压缩原理

脉冲雷达信号发射时,脉冲宽度

决定着雷达的发射能量,发射能量越大,作用距离越远;在传统的脉冲雷达信号中,脉冲宽度同时还决定着信号的频率宽度

,即带宽与时宽是一种近似倒数的关系。

脉冲越宽,频域带宽越窄,距离分辨率越低。

脉冲压缩的主要目的是为了解决信号的作用距离和信号的距离分辨率之间的矛盾。

为了提高信号的作用距离,我们就需要提高信号的发射功率,因此,必须提高发射信号的脉冲宽度,而为了提高信号的距离分辨率,又要求降低信号的脉冲宽度。

脉冲压缩网络实际上就是一个匹配滤波器网络,在接收机中设置一个与发射信号频率相匹配的压缩网络,使经过调制的宽脉冲的发射信号变成窄脉冲,因此保持了良好的距离分辨力。

根据匹配滤波理论,脉压可以在频域与时域中进行。

频域脉压即对回波信号进行FFT变换,在频域中实现回波信号与脉压系数相乘,最后将结果进行IFFT转换为时域信号。

时域脉压即直接对将回波信号与脉压信号进行线性卷积,去掉暂态点后的数据就是脉压的结果。

3.3MTI(动目标显示)原理

动目标显示(MTI)本质含义是:

基于回波多普勒信道的提取而区分运动目标和固定目标(包括低速运动的杂波等)。

从应用上讲,该技术是利用MTI滤波器滤除相应杂波,从而提高目标检测性能。

雷达辐射的高频脉冲能量被各种地形地物等固定物体和飞机等运动物体反射时,由于前者回波信号相对于发射信号的相位差是固定的,而后者的回波信号相对于发射信号的相位差是变化的,于是经相位检波后,固定目标视频信号的幅度不变,而运动目标视频信号的幅度按多普勒频率的余弦关系变化,把视频信号延时一个重复周期后,和未延时信号加以对消,就可以消除固定目标而只选择运动目标。

因此,若将同一距离单元在相邻重复周期内的相检输出作相减运算,则固定目标的回波将被完全对消,慢速杂波也将得到很大程度衰减,只有运动目标回波得以保留。

显然这样便可将固定目标,慢速杂波与运动目标区别开来,这就是动目标显示(MTI)的基本原理。

最常用的MTI滤波器是抑制地物杂波的滤波器。

因为地物杂波多普勒频移为零或很小,主要集中在0频附近。

在频率为0处,滤波器频率响应应有凹口。

所以地物杂波在通过MTI滤波器后将受到很大的抑制。

零频杂波(地杂波)的MTI滤波器应在零频及其周期出现点处形成凹口。

最常用的零频MTI滤波器是二项式滤波器,其中最为典型的是一次和二次相消器。

一次相消器(二脉冲对消)输入数据是一个基带复数样本,这些是同一个距离单元由顺序脉冲返回的,形成一个有效的采样间隔

的离散时间序列

其时域方程为:

,传输函数为:

,它是一个单零点系统,零点的位置在

,频率响应为:

其在零频有一凹口,可用来抑制噪声,但同时把静态目标也给对消掉,因此用MTI一次相消器检测不出静目标。

3.4MTD(动目标检测)原理

仅对雷达回波信号进行动目标显示(MTI)是不够的,气象杂波(如云雨等)和箔条杂波受气流和风力的影响,会相对雷达而动,其频谱中心不是固定在0频附近,而是在某个频率区间内变化的,抑制此类杂波用普通的MTI滤波器是不行的,而MTD滤波器则可以抑制此类杂波。

如图1所示:

图1动目标显示滤波器和多普勒滤波器组的特性

根据最佳线性滤波理论,在杂波背景下检测运动目标回波,除了杂波抑制滤波器外,还应串接有对脉冲串信号匹配的滤波器。

实际工作中,采用一组相邻且部分重叠的滤波器组覆盖整个多普勒频率范围,这就是窄带多普勒滤波器组。

N个相邻的多普勒滤波器组的实现是由N个输出的横向滤波器(N个脉冲和N-1根迟延线)经过各脉冲不同的加权并求和后形成的。

该滤波器的频率覆盖范围为0到

为雷达工作重复频率。

MTD就是用窄带多普勒滤波器组实现脉冲串信号匹配的一种技术。

下图给出MTD的实现方法。

图2横向滤波器

横向滤波器有N-1根延迟线,每根延迟线的延迟时间为

,设加在第

个横向滤波器的第

个抽头的加权值为

假设输入序列为

个横向滤波器完成的运算是

上式就是DFT的表述式,当

是2的乘方的时候,便可以使用FFT算法来快速实现。

用FFT实现N个滤波器组,FFT算法运算量大约在

个乘法,而使用横向滤波器N组横向抽头的分别加权的方法,需要

次乘法,在N比较大时,可以明显节省运算量。

利用MTD可分辨不同速度的目标,其速度分辨力为

其中

为多普勒频率分辨力。

若信号的多普勒频率满足:

,其中

则会出现多普勒频率模糊现象,即速度模糊。

四实验步骤

以下是该实验中设定的几个参数

BandWidth=2.0e6----------------------------------------------带宽

TimeWidth=42.0e-6--------------------------------------------脉宽

Fs=2.0e6---------------------------------------------------采样率

PRT=240e-6-------------------------------------------脉冲重复周期

TargetDistance=[30008025802511600]-------------------目标距离

TargetVelocity=[500-120213]---------------------------目标速度

假设接收到的回波数是16个,噪声为高斯随机噪声。

4.1在MATLAB中产生线性调频信号。

4.2根据目标距离得出目标回波在时域的延迟量,根据目标速度得出多普勒相移,从而在MATLAB中产生4个目标的16个回波串(接收到的回波含噪声)。

4.3由匹配滤波理论产生对应于目标回波的滤波系数(脉压系数),在时域中做线性卷积,实现匹配滤波(时域脉压);在频域中做回波信号和脉压系数的FFT,点乘后作逆FFT,实现频域脉压。

两者进行比较,讨论其差别。

4.4对16个去暂态点后的脉冲串按接收顺序进行排列,用一次相消器(一种滤波方式)实现MTI。

4.5做16通道的FFT,实现MTD。

4.6在DSP中对MATLAB产生的回波数据和脉压系数进行处理,实现频域脉压。

导入DSP的回波数据为时域数据,而脉压系数为频域数据。

将导入DSP的时域回波数据进行一次FFT变换到频域,然后将其与频域脉压系数进行点积,得到频域脉压结果。

对该结果再做一次逆FFT,将频域转换成时域。

在这一步中需要调用库函数fft_flp32.asm。

该子程序可实现8192点复数的FFT功能。

由于C语言中无法实现复数运算,因此,对8192个复数按照实部虚部交替的顺序进行重排列,用长度为16384的数组来存放时域回波数据。

频域相乘后,做乘积结果的逆FFT,得到脉压结果。

做逆FFT,仍需调用库函数fft_flp32.asm,此时要通过FFT子程序实现逆FFT的功能,要对频域的数据进行处理,才能达到这一目的。

4.7对脉压后的数据按照脉冲号重排,相邻序列的数据相减(滑动对消),实现MTI。

4.8调用子程序fft_16.asm,做16通道FFT,实现MTD。

入口参数为16通道的脉压数据。

五实验结果及讨论

5.1脉压、MTI、MTD结果分析:

5.1.1脉压结果及其分析:

由于雷达在发射时不能接收,故最大无遮挡距离(闭锁期)为:

,而第一个目标的距离为3000m,因此在闭锁区内,被遮挡一部分,所以在目标功率相同的情况下,第一个目标的回波功率明显小于另两个,第一个脉冲的幅度远小于另二个脉冲的幅度。

第二个脉冲的幅度一直在变化,是因为第二个脉冲是两个在同一个距离门的两个回波信号的矢量叠加。

第二个脉冲为功率为1的定目标与功率为0.25多普勒频移为雷达发射频率的0.25倍的运动信号的叠加,所以可以看到第二个脉冲的幅度以雷达发射周期的四倍为周期变化。

从图中可以看出,时频域脉压结果差别很小,相对误差停留在10

量级上。

理论上两者计算结果应该是一样的,之所以存在误差主要是由于VisualDSP和MATLAB两种处理工具的精度不同也导致误差出现。

5.1.2MTI结果及其分析

雷达的距离分辨力为

以第一个目标为例,对应的横坐标为41,由于MATLAB的坐标是从1开始的,因此,第一个目标对应的距离为

图中一个脉冲第一个是速度50,功率是1,但是第一个脉冲有一部分功率损失在闭锁期了,故幅度较小;第二个目标被对消,因为第二个目标的速度为零,而其它目标的相减结果不为零,这是因为运动目标回波信号是以普勒频率为频率的余弦信号,因此相同功率下速度大的目标在MTI处理后的结果幅度较大。

第三个是速度120,功率是0.25;第四个是学号产生的速度213,功率是1。

因此,第四个脉冲的幅度最大,其次是第三个脉冲,其次是第一脉冲。

5.1.3MTD结果及其分析

X轴代表多普勒通道,Y轴代表距离单元,Z轴代表做MTD后的幅度信息。

由图可算出各目标速度,以第一个目标为例:

对应的纵坐标为2,在第二个多普勒通道上,而每个多普勒通道代表的速度是24.888,因此,第一个目标对应的速度为:

2*24.88=49.76。

第四个目标产生了速度模糊。

这是由于其速度为213,大于临界速度199,故产生速度模糊

5.2模糊分析,改变重频

因为窄带多普勒滤波器组的频率覆盖范围为0到

,所以当

时,将产生速度模糊,对应的多普勒通道将和多普勒频移为

对应的多普勒通道相同,因此分辨不清目标的真实速度。

这时,只要将PRF变大,由

其中

为多普勒频率分辨力,即可计算出合适的PRF。

经计算,只需将雷达脉冲重复周期PRT由240改为196即可解除模糊。

5.3DSP结果与Matlab结果对比,误差分析。

5.3.1MATLAB和DSP脉冲压缩的结果分别如下图所示

由上图可知,DSP和MATLAB脉压结果基本一样。

DSP和MATLAB的脉冲压缩结果的误差(绝对值)数量级为

,脉冲压缩相对误差的数量级为

,结果是正确的,且满足精度要求

5.1.2MATLAB和DSP做MTI的结果分别如下图所示

由图可知,MATLAB和DSP做MTI的结果基本一致DSP做MTI结果的误差(绝对值)数量级为

,误差(相对值)数量级为

,可见DSP做MTI的结果是正确的,且满足精度要求。

5.1.3MATLAB和DSP做MTD的结果如下图所示

MTD绝对误差在数量级

上,相对误差在

数量级上。

MATLAB和DSP的MTD结果稍有差别是由于两种工具处理数据的精度不一样,MATLAB用CPU处理数据,DSP则用DSP核处理数据。

六实验思考题及心得

6.1MTI结果中看不到静止目标

从时域角度分析,静止目标在任何时刻产生的多普勒相移都是一样的,用脉压串进行相减,自然会消掉静止目标;从频域角度来看,一次相消器会抑制零频响应,而静态目标频率为0,所以经MTI滤波后会消失。

所以MTI结果中看不到静止目标。

6.2速度模糊

由于多普勒相移以

产生周期变化,所以由于雷达发射脉冲串频率较低,间隔较大而测得的同一目标相移变化超过

时,雷达无法通过目标回波的相移计算准确的目标多普勒速度,产生的速度不定性称作速度模糊。

根据多普勒速度与相移关系可算得试验中雷达可测的有效的最大速度为

=

398米/秒<400米/秒,将程序中第四个目标速度设置为400米/秒,则在MTI动目标显示图中,没有该目标,就是产生了速度模糊,而且目标在两个目标回波中产生的相移正好为

的倍数,则使得雷达误认为该目标为静止目标。

6.3MTD速度/多普勒通道的含义

MTD的核心是线性MTI加窄带多普勒滤波器组,对雷达回波的处理包括杂波处理和脉冲串信号匹配。

MTI实现的功能即是使杂波得到抑制而让各种速度的运动目标信号通过,而MTD滤波器则要实现回波脉冲串的相位特性相参积累。

而此滤波器应为梳齿行滤波器,齿的间隔为脉冲重复频率,齿的位置取决于回波信号的多普勒频移。

实际情况中,多普勒频移不能预知,因此采用一组相邻且部分重叠的滤波器组,覆盖整个多普勒频率范围,这就是窄带多普勒滤波器组,多普勒通道数目即为该窄带多普勒滤波器组数目。

实现的功能即是实现回波信号的相参积累,进一步滤除气象杂波等MTI滤波器不能消除的杂波部分。

实验心得

通过这次试验,我对雷达信号处理的基本过程和相关理论以及线性调频,匹配滤波,MTI,MTD,多普勒频移,快、慢时间采样有了一定程度的理解。

对FFT,采样,频谱泄露等数字信号处理技术有了更感性的认识,收获颇丰。

最后非常感谢老师在实验中的耐心指导,让我顺利完成每个实验,充实度过每个实验课。

大作业提示:

在DSP环境下编程实现对回波信号的脉压,MTI和MTD处理。

MATLAB程序内容:

提供了脉压,MTI,MTD的实现方法,同时生成数据文件以供DSP程序中使用。

流程说明:

做脉压处理时,导入DSP的回波数据应为时域数据,脉压系数为频域数据。

这些数据是在MATLAB程序中生成的。

在DSP中,对回波数据进行FFT处理将其变换到频域后,将其与频域系数进行点积,对点乘结果再做一次逆FFT,将频域结果转换到时域,在这一步中需要调用函数fft_flp32.asm,其功能是实现输入数据的FFT变换。

这里要求同学们利用FFT程序实现IFFT的功能。

具体方法请大家自己查找。

这个库函数的入口参数包括(输入数据,缓存区1,缓存区2,输出结果)(说明:

原库函数中的入口参数比是6个而不是现在的四个,为了方便同学们调用,所以库函数调用的时候稍做了修改,希望你们以后再调库函数的时候注意)。

所谓缓存就是在程序中再开辟一个存储空间,和输入数据的大小一样。

所需的程序和旋转因子表都和这个文档放在同一个文件夹内了。

在做MTD的时候调用的函数是fft_16.asm。

程序中的参数由个人学号末三位来定,具体说明见matlab程序注释。

可以自由改变参数,观察结果有何不同。

本实验雷达的距离分辨率为

该雷达的多普勒分辨率为

对应的径向速度为:

在MATLAB中通过fftshift将零频移到中间,同时调整坐标,使得X轴从0到480,Y轴从-8到8,通道0对应速度为0。

 

练习五实验报告

一、实验目的

编写C语言,练习读写数据

二、实验内容

编写C程序,产生1000个随机浮点数(随机类型和参数自行确定),建立一个磁盘文件,把所有随机数依序、按照相应格式写入文件;关闭文件。

再打开此文件,从文件中把数据读入,计算其均值、方差,并写入另一个文件中

三、实验过程

3.1C语言函数产生1000个随机浮点数

3.2建立磁盘文件并将随机浮点数依次写入文件rand.dat,并关闭文件

3.3打开rand.dat文件,并把数据读入

3.4计算所读入数据的均值及方差

3.5建立新的磁盘文件result.dat并将将所计算均值和方差写入该文件,关闭文件。

四、试验程序如下

#include

#include

#include

#include

#defineN1000

inti;

floatmean=0.0;

floatvar=0.0;

intdata[N];

intdata1[N];

FILE*fp;

voidmain()

{

for(i=0;i

{

data[i]=rand();

}

fp=fopen("rand.dat","rb");

fread(data1,4,N,fp);

fclose(fp);

for(i=0;i

{

mean+=data1[i];

}

mean=mean/N;

for(i=0;i

{

var+=(data1[i]-mean)*(data1[i]-mean);

}

var=var/N;

fp=fopen("result.dat","w");

fprint(fp,"mean=%f\nvar=%f\n",mean,var);

fclose(fp);

}

五、问题讨论

此练习中,计算机和DSP各自起什么作用?

如果DSP脱离计算机,此程序还能运行吗?

答:

在DSP中进行了文件建立、读写操作和数学计算,并将数据处理结果送到计算机终端。

对于DSP来说,它并不具备通用微机的强大的文件系统和人机界面,所以DSP将数据传回了通用微机所在的调试平台,并在Debug文件建立数据文件。

所有的文件操作都是有DSP来完成,但是数据文件却是建在微机上。

如果DSP脱离了计算机,DSP创建的文件将没有终端存放,那么这个程序将无法运行。

 

练习六实验报告

一、实验目的

调试器和EZ-KIT板的性能比较

二、实验内容

把练习二改为执行5次、10次,在软仿真环境下运行,并用记录执行的时间;然后,再在EZKIT板上执行此程序,记录执行时间。

三、实验过程

3.1在练习二程序中主程序加for循环函数,循环次数5次,编译、运行、记录执行时间;

3.2将循环次数改为10次,编译、运行、记录执行时间;

3.3连接EKKIT板,设置运行环境,程序循环次数分别设置5、10次,编译后运行,分别记录执行时间(通过CycleCounters);

3.4比较数据

四、实验结果

软件调试器时间:

程序运行5次:

22s

程序运行10次:

41s

EKKIT硬件调试时间(CycleCounters):

程序运行5次:

程序运行前1855393473

程序运行后1855899752

程序运行10次:

程序运行前1793396145

程序运行后1794408256

五、时间差异比较及原因

5.1EKKIT硬件调试时间运算

运行5次(1855899752-1855393473)*1.67ns=0.85ms

运行10次(1794408256-1793396145)*1.67ns=1.69ms

5.2从运行时间比较来看,DSP运行硬件环境EKKIT板子运行时间比较软件调试器运行时间有大幅度减少,节省了大量时间。

5.3之所以EKKIT比较软件调试器速度有这么大的提高,是因为DSP硬件板子是专门用于数字信号处理的工具,采用数据总线、程序总线分离的结构方式,采用流水技术,大大提高了指令的执行速度和效率。

总之,DSP硬件较之计算机有更利于指令加快运算速度的结构和技术设计,所以才有更快的运算速度。

 

实验九中断响应、标志查询

一、实验概述

VisualDSPDebug中提供了Interrupts来模仿在程序的执行过程中产生随机外部中断。

Interrupts模仿在程序的执行过程中产生随机外部中断(IRQ0~3)和可编程I/O(Flag0~3),这对调试中断服务程序、执行条件指令非常有用。

对于外部中断IRQ0~3采取中断服务程序方式,对于可编程I/O采取查询方式。

二、实验步骤

1.编写C语言程序调试外部中断

#include

#include

#include

#include

#pragmaalign4

section("data2a")

floatdata1[10]={

#include"data1.dat"//读取文件data1.dat

};

#pragmaalign4

section("data2a")

floatdata2[10]={

#include"data2.dat"//读取文件data2.dat

};

#pragmaalign4

section("data2a")

floatresult[10];//为计算结果分配内存

intn=0;

inten_flag=0;

voidinitial(void);//声明函数

voidirq0_isr(void);//声明函数

voidmain(void)

{

initial();//初始化寄存器函数

//irq0_isr()外部IRQ0中断服务子程序,在子程序中断中置en标志位

interrupt(SIGIRQ0,irq0_isr);

//intR0的中断使能

__builtin_sysreg_write(__IMASKH,0x00000200);

//打开全局中断使能

__builtin_sysreg_write(__SQCTLST,SQCTL_GIE);

while

(1)

{

while(en_flag==1)//当检测到标志位为1时

{

en_flag=0;//标志位清0

result[n]=data1[n]+data2[n];//两数组按顺序相加

n++;//数组下标指向下一个数

}

if(n==10)

{break;}//跳出while循环

}

}

voidinitial()

{

//配置系统配置寄存器SYSCON外部总线接口寄存器

__builtin_sysreg_write(__SYSCON,0x279e7);

//设置外部中断触发方式为边沿触发,关闭定时

__builtin_sysreg_write(__INTCTL,0x0);

}

voidirq0_isr()

{

en_flag=1;//标志位置1

}

2.添加外部中断IRQ0

3.设置断点在while(en_flag==1)内

4.运行程序,记录数据

5.编写C语言程序调试可编程I/O

#include

#include

#include

#include

voidinitial(void);//声明函数

intfl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2