电子信息系统综合实验_第1页
电子信息系统综合实验_第2页
电子信息系统综合实验_第3页
电子信息系统综合实验_第4页
电子信息系统综合实验_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子信息系统综合实验报告班级:021215 学号:02121419 姓名:一、实验目的本实验是对本科期间所学课程的综合应用,对FPGA设计流程MATLAB、DSP等工具进行充分的学习,通过实际实验操作,掌握FPGA、DPS电路板的使用,增强自我动手能力,以及团队协作能力。学习如何产生正弦信号、噪声信号、单频信号、线性调频信号等,并对其实现匹配滤波等操作。掌握MATLAB在其中的应用。要求学生理解脉冲压缩与匹配滤波的基本原理。是对所学知识的一次综合考核。二、实验内容 1. FPGA实验流水灯 用Quartus II 软件编写流水灯程序,学会使用VHDL/Verilog HDL语言,掌握

2、FPGA设计流程,完成流水灯设计。 2. MATLAB实验复杂噪声产生实验 用MATLAB软件分别产生高斯分布、均匀分布、指数分布、瑞利分布的热噪声。 3. FPGA实验噪声产生及正弦信号产生 用Quartus II软件自带元件库实现噪声和正弦信号产生。 4. MATLAB实验数字下变频及匹配滤波 学习FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用MATLAB实现对模拟I、Q两回路回波信号的匹配滤波,并对实验结果进行分析。 5. DSP实验匹配滤波 本实验要求学生掌握脉冲压缩与匹配滤波的基本原理,理解雷达系统的距离分辨率、作用距离、平均功率、峰值功率、多普勒频率、信号

3、时宽带宽积等概念。学习FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用DSP实现对模拟I、Q两路回波信号的匹配滤波,并对实验结果进行分析。 6 DSP实验中端闪灯 利用波形产生信号板,结合FPGA编程技术和程序编程器,编写测试ADSP21065L和FPGA之间硬件连接的应用程序,同时完成应用程序的加载和脱机操作,在信号指示灯HL2上产生可调周期的脉冲信号,点亮与熄灯指示灯HL2。 7. DSP实验单频信号产生 产生一重频周期为1ms,频率为10MHz,脉冲宽度为5us的单频正弦脉冲信号,并掌握利用AD9854实现单频正弦脉冲的产生;掌握AD9854模式控制字和频率控制字的设计方法

4、;利用FPGA控制电路,在DSP的IRQ2终端输入引脚上产生1ms的周期中断信号。 8. DSP实验二相编码信号产生 本实验要求学生掌握用AD9854模式控制字、频率控制字和相位寄存器的设置方法,利用信号产生板产生一个由13位巴克码调制的二相脉冲信号,脉冲信号的重频周期为1ms,频率为10MHZ,码片宽度1us,脉冲信号的宽度为13us,并用示波器对波形进行观察分析。 9. DSP实验线性调频信号产生 学会利用DPS软件产生线性调频信号,掌握线性调频原理。 10. FPGA实验数字下变频实验 本实验要求学生掌握脉冲压缩与匹配滤波的基本原理,理解雷达系统的距离分辨率、作用距离、平均功率、峰值功率

5、、多普勒频率、信号时宽带宽积等概念。学习FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用FPGA实现对模拟I、Q两路回波信号的匹配滤波,并对实验结果进行分析。 11. DSP实验链路口测试实验 在DSP1的数据存储区放置一些数,通过链路口将其传送到DSP2。三、实验步骤 1. FPGA实验流水灯 新建工厂文件:分配引脚:根据相关原理图,对管脚进行分配,详细分配如下表所示:属性连接到FPGA上的管脚实际电路led3OutputPIN_126连接到HL5led2OutputPIN_127连接到HL4led1OutputPIN_128连接到HL3led0OutputPIN_129连接到

6、HL2rst_nInput接高电平sw1InputPIN_47连接到拨码开关sys_clkInputPIN_16接40M时钟按照如上所示的连接:编译程序,连接下载器到电路板,将程序烧写进FPGA中。 2. MATLAB实验复杂噪声产生实验1.服从高斯(Guass)分布的热噪声(随机序列)Matlab7.0本身自带了标准高斯分布的内部函数randn,调用格式如下:Y = randn(n)Y = randn(m,n)Y = randn(m n)Y = randn(size(A)s = randn('state')randn函数产生的随机序列服从均值为m=0,方差21的高斯分布。Y

7、= randn(n)产生的是一个n×n的随机序列矩阵,而Y = randn(m,n) 和Y = randn(m n)产生的m×n的随机序列矩阵,Y = randn(size(A)产生的是大小与矩阵A同样大小的随机序列矩阵。s = randn('state') 返回的是一个具有两个元素的向量,该向量显示的是当前正态随机数产生器的状态。randn('state',s) 指令可以将产生器的状态设置到s,而randn('state',0) 则可以将正态随机数产生器的状态恢复到初始状态。2. 服从均匀分布的热噪声(随机序列)可以先产生一

8、个服从(0-1)单位均匀分布的信号,然后再将其经过上式的变换,就可以得到一个服从(a-b)均匀分布的信号了。同样Matlab本身也自带了(0-1)单位均匀分布的内部函数rand,格式如下:Y = rand(n)Y = rand(m,n)Y = rand(m n)Y = rand(size(A)s = rand('state')rand函数产生的随机序列服从(0-1)单位均匀分布。Y = rand(n)产生的是一个n×n的随机序列矩阵,而Y = rand(m,n) 和Y = rand(m n)产生的m×n的随机序列矩阵,Y = rand(size(A)产生的是

9、大小与矩阵A同样大小的随机序列矩阵。s = rand('state') 返回的是一个具有两个元素的向量,该向量显示的是当前(0-1)单位均匀随机数产生器的状态。rand('state',s) 指令可以将产生器的状态设置到s,而rand('state',0) 则可以将(0-1)单位均匀分布随机数产生器的状态恢复到初始状态。可以写出服从(a-b)均匀分布的随机序列的产生程序,如下:a=2;%(a-b)均匀分布下限b=3;%(a-b)均匀分布上限fs=1e7;%采样率,单位:Hzt=1e-3;%随机序列长度,单位:sn=t*fs;rand('s

10、tate',0); %把均匀分布伪随机发生器置为0状态u=rand(1,n); %产生(0-1)单位均匀信号x=(b-a)*u+a; %广义均匀分布与单位均匀分布之间的关系subplot(2,1,1),plot(x),title('均匀分布信号'); %输出信号图subplot(2,1,2),hist(x,a:0.02:b),title('均匀分布信号直方图'); %输出信号的直方图3. 服从指数分布的热噪声(随机序列)先产生一个服从(0-1)单位分布的信号,然后再将其经过指数变换,就可以得到一个服从参数为的指数分布的信号了。 4. 服从瑞利(Rayle

11、igh)分布的热噪声(随机序列)先产生一个服从(0-1)分布的信号,然后再经过变换,可以得到一个服从瑞利(Rayleigh)分布的信号了。产生瑞利分布的热噪声实现程序如下sigma=2;%瑞利分布参数sigma;t=1e-3;%杂波时间长度fs=1e7;%采样率t1=0:1/fs:t-1/fs;n=length(t1);rand('state',0); %把均匀分布伪随机发生器置为0状态u=rand(1,n); x=sqrt(2*log2(1./u)*sigma; %产生瑞利分布信号1 subplot(2,1,1),plot(x),title('瑞利分布噪声')

12、,xlabel('t(单位:s)');%输出信号图subplot(2,1,2),hist(x,0:0.1:10),title('瑞利分布信号直方图'); %输出信号的直方图 3. FPGA实验噪声产生及正弦信号产生管脚在FPGA上的分配FPGA上的连接管脚说明clkPIN_1640M2系统时钟40Mda_clkPIN_79DACLKDA的工作时钟一般为60Mout0PIN_69DATA0需DA转换的10位数字信号的第0位out1PIN_70DATA1需DA转换的10位数字信号的第1位out2PIN_71DATA2需DA转换的10位数字信号的第2位out3PIN_

13、72DATA3需DA转换的10位数字信号的第3位out4PIN_73DATA4需DA转换的10位数字信号的第4位out5PIN_74DATA5需DA转换的10位数字信号的第5位out6PIN_75DATA6需DA转换的10位数字信号的第6位out7PIN_76DATA7需DA转换的10位数字信号的第7位out8PIN_77DATA8需DA转换的10位数字信号的第8位out9PIN_78DATA9需DA转换的10位数字信号的第9位计数器模块: Rom模块:选中信号q,右击鼠标,弹出下拉列表Display Format->Analog Waveform选中后,弹出对话框:将其值改为5后即可得

14、到下图 4. MATLAB实验数字下变频及匹配滤波1. 用波形产生板产生一个重频周期为1ms,中心频率为10M,带宽为200k2M,时宽为60us的线性调频脉冲信号;2.用MATLAB语言产生高斯白噪声信号;3.利用信号处理板对波形产生板产生的信号进行实时采集,并与前面产生的噪声数据进行叠加后,用数字信号处理算法进行处理,并将处理结果实时输出到D/A,在示波器上查看处理结果;4.调解波形产生电路板所产生信号的幅度,连续运行,利用示波器查看不同输入信噪比情况下系统的输出用MATLAB中产生适当的的线性调频信号,并对其进行数字正交解调,得到I,Q两路数据,同时生成匹配滤波器系数、FFT和IFFT蝶

15、形运算系数,并将这些数据和系数保存为dat数据文件。在DSP程序中加载I,Q两路数据,并对其进行匹配滤波,利用集成开发环境提供的画图功能观察匹配滤波的结果。具体实验步骤如下:(1) 用MATLAB产生中心频率为10MHz,带宽为200KHz,脉冲宽度为60us的线性调频信号,对其进行正交解调,采样频率为8MHz,得到I,Q两路数据,并将数据保存为idata.dat和qdata.dat;(2) 利用MATLAB生成FFT和IFFT的蝶形运算系数,分别保存为twid1k.dat和itwid1k.dat;(3) 由I,Q两路数据生成复信号,在MATLAB中对其进行Fourier变换,再进行共轭和数据

16、反转,得到匹配滤波器系数并保存为LFM_para.dat;(4) 按照图5.22所示匹配滤波器实现方案,在MATLAB中对上述信号进行匹配滤波,并对结果进行分析; 5. DSP实验匹配滤波 本实验要求学生掌握脉冲压缩与匹配滤波的基本原理,理解雷达系统的距离分辨率、作用距离、平均功率、峰值功率、多普勒频率、信号时宽带宽积等概念。学习FFT、滤波器设计、匹配滤波等数字信号处理流程和设计方法,利用DSP实现对模拟I、Q两路回波信号的匹配滤波,并对实验结果进行分析。具体目标:(1) 结合实验,对雷达回波的匹配滤波算法原理有进一步的了解和认识;(2) 掌握数字滤波器、FFT、相关处理、匹配滤波等数字信号

17、处理的DSP实现方法。特别是通过实验,掌握FFT算法是如何实时快速,加强对蝶形结构的理解。并利用DSP平台,用ADSP-TS101汇编语言实现这些处理算法;(3) 通过实验,进一步加强对这些常用的数字信号处理算法的理解和认识,并与数字信号处理理论课程的讲解进行对比,从感性上进一步熟悉这些算法的本质和对不同信号的处理结果;(4) 通过实验,进一步熟悉DSP(TS101)的DMA数据传输和链路口通信方式,并能有效的对其外部接口进行控制设计;(5) 进一步熟悉TS101的指令系统,能对处理算法进行修改。匹配滤波器是指滤波器的性能与信号的频率特性相一致,使滤波器输出端的信号瞬时功率与噪声平均功率的比值

18、最大。即当信号与噪声同时进入滤波器时,它使信号成分在某一瞬间出现尖峰值,而噪声成分受到抑制。假设雷达发射信号(基带信号)为,其频谱为,那么匹配滤波器的频率响应和冲激响应分别可表示为:可见,匹配滤波器只与发射信号本身有关,可以最大程度地提高信噪比。匹配滤波的实现方案如图5.23所示。输入信号为模拟I,Q两路复信号,对其进行FFT,得到频率复信号,再与匹配滤波器系统相乘,最后进行IFFT,得到匹配滤波结果。图5.23 匹配滤波的实现方案用MATLAB中产生适当的的线性调频信号,并对其进行数字正交解调,得到I,Q两路数据,同时生成匹配滤波器系数、FFT和IFFT蝶形运算系数,并将这些数据和系数保存为

19、dat数据文件。在DSP程序中加载I,Q两路数据,并对其进行匹配滤波,利用集成开发环境提供的画图功能观察匹配滤波的结果。具体实验步骤如下:(1) 用MATLAB产生中心频率为10MHz,带宽为200KHz,脉冲宽度为60us的线性调频信号,对其进行正交解调,采样频率为8MHz,得到I,Q两路数据,并将数据保存为idata.dat和qdata.dat;(2) 利用MATLAB生成FFT和IFFT的蝶形运算系数,分别保存为twid1k.dat和itwid1k.dat;(3) 由I,Q两路数据生成复信号,在MATLAB中对其进行Fourier变换,再进行共轭和数据反转,得到匹配滤波器系数并保存为LF

20、M_para.dat;(4) 按照图5.22所示匹配滤波器实现方案,在MATLAB中对上述信号进行匹配滤波,并对结果进行分析;(5) 编写FPGA程序,配置DSP工作所需的信号,参考5.3节图5.18;(6) 在Visual DSP+中,新建工程TSdsp1,选择session:ADSP-TS101 TigherSharc Cycle accurate Simulator platform,编写DSP1程序:开辟存储区加载滤波器系数和蝶形系数(例如加载蝶形系数.var twidik1024=”twid1k.dat”),注意各子程序的入口及出口寄存器。主程序的流程为:先把I,Q两路信号组成一个复

21、信号,进行FFT变换,然后与匹配滤波系数相乘,然后进行IFFT变换,最后对匹配滤波结果求模。(7) 编译工程文件,在idle处设置断点,运行至断点处,观察匹配滤波的结果。在Visual DSP+中,新建工程TSdsp1,编写DSP程序,并将上述五个dat数据文件保存在工程TSdsp1的根目录下。 6. DSP实验中端闪灯利用波形产生信号板,结合FPGA编程技术和程序编程器,编写测试ADSP21065L和FPGA之间硬件连接的应用程序,同时完成应用程序的加载和脱机操作,在信号指示灯“HL2”上产生可调周期的脉冲信号,“点亮”与“熄灭”指示灯HL2。实验步骤:1熟悉电路图,清楚波形产生电路板ADS

22、P21065L与可编程FPGA器件之间的连接关系。2编写FPGA程序(内部已编好)。在FPGA内部将ADSP21065L的标志引脚FLAG11(引脚号26)设置为输出,作为FPGA的输入信号,在FPGA内部编程将该信号直接输出在发FPGA的37引脚号上,设置37引脚为输出信号,驱动板上的HL2 LED指示灯;3启动VisualDsp+4.5,选择project工程选项菜单,创建一个名称为Test.dpj的工程文件,选择处理器的型号为ADSP-21065L;4新建一个源文件,将程序复制进去,然后保存,文件的后缀名为.asm。5添加刚刚保存的源文件。点击Add File(s) to Folder.

23、,将.asm文件添加进去。6产生链接文件。之后会出现下面的窗口:7点击编译按钮进行编译。发现编译失败,通过修改程序使得最后编译成功。8编译成功后,进行编程器设置。点击session里的new session,出来下图的窗口:Processor类型为SHARC,处理器为ADSP-21065L。然后next选择Emulator硬件仿真,next,下面要特别注意:如果你的编程器接口是usb类型的请选择HPUSB-ICE如果你的编程器接口是pci类型的请选择HPPCI-ICE选完后完成。此时Select Session会出现ADSP-21065L via HPUSB-ICE的选择项。9将编程器与板子连

24、接,进行加电。给板子加电,打开电源。然后将编程器选通,如果编程器是usb的,则选择Session-Select Session- ADSP-21065L via HPUSB-ICE的选择项。然后进行编译,编译完成后运行,会发现HL2灯的闪动。10实验完成后,应该先将仿真模式切换成软件仿真,如图,然后再将编程器的接口拔出板子。 7. DSP实验单频信号产生实验要求:1 产生一重频周期为1ms,频率为10MHz,脉冲宽度为5us的单频正弦脉冲信号,并掌握利用AD9854实现单频正弦脉冲的产生;2 掌握AD9854模式控制字和频率控制字的设置方法;3 利用FPGA控制电路,在DSP的IRQ2中断输入

25、引脚上产生1ms的周期中断信号;实验步骤:1步骤如第一个实验(指示灯的产生),编译成功后。运行!利用示波器测量波形发生板右上角的R19测试点,可以观测所产生的波形,如图9.3所示。说明:利用DSP程序设置AD9854的模式控制字和频率字,此处的模式选择为单频模式(000),模式字保存在寄存器r0中,所占用的外部地址为0x100001f。频率字的计算方法为:频率字希望输出频率 × 248/系统时钟,得到12位十六进制的频率字码,分别保存到寄存器r1r6中,分别输出到AD9854寄存器地址0x1000004,0x1000005,0x1000006,0x1000007,0x1000008,

26、0x1000009中。本系统的系统时钟为200MHz。 8. DSP实验二相编码信号产生本实验要求学生掌握用AD9854模式控制字、频率控制字和相位寄存器的设置方法,利用信号产生板产生一个由13位巴克码调制的二相脉冲信号,脉冲信号的重频周期为1ms,频率为10MHZ,码片宽度1us,脉冲信号的宽度为13us,并用示波器对波形进行观察分析。实验中需要编程设置AD9854的模式字、频率字、相位调节字等。(1) 用FPGA产生周期为1ms的信号,控制输出信号的脉冲重复周期;(2) 用FPGA产生ADSP和AD9854的复位信号,以及其他时钟和控制信号;(3) 利用DSP程序设置AD9854的模式控制

27、字和频率字,此处的模式选择二相编码模式,模式值为0x08,所占用的外部地址为0x100001F;频率字设置方法为:频率字(FTW)希望输出频率 × 248/系统时钟,得到12位十六进制的频率字码,分6段分别设置到AD9854寄存器偏移地址0x0000004,0x0000005,0x0000006,0x0000007,0x0000008,0x0000009中。需要注意的是,这里的频率指的是线性调频信号的起始频率。AD9854系统时钟设为200M。(4) 设置相位调节字:相位调节字1为0°,相位调节字2为180°,地址分别为0x0000000和0x0000002。(5

28、) 程序编译成功后,点击运行,利用示波器观测所产生的波形。 9. DSP实验线性调频信号产生本实验的解决思路如下:(1) 用FPGA产生周期为1ms的周期信号,输出到FPGA的11引脚上,作为ADSP的外部中断2中断信号,控制脉冲重复周期;(2) 设计FPGA程序,产生ADSP和AD9854的复位信号,以及其他信号产生板所需的时钟和控制信号;注意:信号处理板上电后,由EPC2LC20加载烧写在其中的FPGA程序,产生需要的各种时序和控制信号。(3) 利用DSP程序设置AD9854的模式控制字和频率字,此处的模式选择线性调频脉冲模式(011),模式值为0x06,所占用的外部地址为0x100001

29、F;频率字设置方法为:频率字(FTW)希望输出频率 × 248/系统时钟,得到12位十六进制的频率字码,分6段分别设置到AD9854寄存器偏移地址0x0000004,0x0000005,0x0000006,0x0000007,0x0000008,0x0000009中。需要注意的是,这里的频率指的是线性调频信号的起始频率。AD9854系统时钟设为200M,对输入40M信号进行5倍增频。(4) 设置频率频率增量字(DFW),其计算方法为:频率字(FTW) 希望输出频率 × 248/系统时钟,需要注意此处希望增长的频率不是一般理解的(11MHz-9MHz),而是通过公式:(11M

30、Hz-9MHz)/脉冲宽度 = 希望的增长频率/(步长*时钟周期),此处步长的值为40。占用AD9854的寄存器地址偏移量为0x0000010,0x0000011,0x0000012,0x0000013,0x0000014,0x0000015。其中0x0000010为频率增量字的高位地址;(5) 程序编译成功后,点击运行,利用示波器观测所产生的波形。对于AD9854产生线性调频信号的ADSP程序设计,AD21065L的寄存器、中断、初始化等设置,以及AD9854初始化等均与单频信号产生均与单频信号产生相同,这里仅给出AD9854产生线性调频脉冲信号的频率字、频率增量等、脉冲宽度等参数设计程序。

31、 10. FPGA实验数字下变频实验实验中,在模拟中频信号输入的基础上,需要分别设计实现FPGA和DSP两种数字正交解调方法。实验步骤如下:(1) 利用MATLAB仿真产生10MHz中频信号,信号调制方式采用调幅或线性调频,通过RAM输入到FPGA内存中。(2) 设计FPGA程序模块,配置模拟数据读取时钟,即信号采样速率;(3) 设计FGPA程序模块,为EP1C3T144配置工作时钟,实现基于4阶Bessel插值的正交解调算法,将结果通过D/A输出,由示波器观察结果;(4) 设计FPGA程序,为DSP101配置工作时钟、复位、读写信号等,将需要处理信号据通过RAM发送到DSP101;数字正交解

32、调实现电路组成框图(虚线部分)首先,设计FPGA程序模块,产生处理系统所需各种时钟信号。输入时钟为40MHz,需要产生100MHz(D/A时钟)、8MHz(A/D采样时钟)、2MHz和4MHz时钟信号。时钟模块的原理图如图5.15所示。图5.15 时钟模块设计原理图模拟数据输入模块接着,按照图所示的数字正交解调实现流程,设计FPGA程序模块。该模块包括符号修正、正交两路分离、时间对齐、Bessel插值等功能。正交解调模块结果锁存及输出模块最后,对上述工程进行编译,编译通过后进行功能仿真与时序仿真,观察波形输出是否正确。仿真正确后将程序下载到FPGA中进行测试,用示波器观察AD9750输出点的波

33、形。需要注意的是,在QUARTUS II 9.0中进行程序设计时,需要将上述多个模块放在一个工程下,并注意在器件与管脚选项中,设置Configuration scheme为Passive Serial方式。 11. DSP实验链路口测试实验1 了解数字信号处理电路的链路口连接,链路口2->链路口0,链路口1->链路口3。2 根据参考程序编写DSP1程序,即发送程序;根据参考程序编写DSP2程序,即接收程序,在session:ADSP-TS101 TigherSharc Cycle accurate Simulator platform下编译通过。3. 选择session:TS101

34、 Emulator,即选择硬件仿真平台。加载link_tran.dpj到DSP1中,加载link_rec.dpj到DSP2中,在两程序的idle处分别设置断点,然后同时运行两程序至断点,观察DSP2中数据接收区的结果。四、程序设计1. FPGA实验流水灯module liushuideng(sw1,sys_clk,rst_n,led); /接口定义input sys_clk,rst_n;/系统时钟50MHz,复位输入input sw1; /拨码开关用来控制流水灯的方向;output 3:0 led; /输出:4个led产生流水现象,轮流点亮reg 25:0 count; /系统时钟频率过高,需

35、要产生延时,使led保持状态一段时间reg 3:0 led; /led低电平点亮reg 2:0 flag; /状态转换的入口,发生变化的时候,点亮另外一个ledalways (posedge sys_clk)beginif(!rst_n) /复位,给寄存器赋初值beginflag <= 3'b0;count <= 26'b0;endif( count = 26'd67108800)begin count <= 26'd0; if(flag = 3'b011)flag <= 3'b000;else flag <= fl

36、ag+3'b001; endelsecount <= count + 26'd1; /当count没计数到指定值是,count执行加一操作endalways (posedge sys_clk)if(sw1=1'b1)begincase(flag) /由于flag会不断变化,并且flag在从一个值变成另一个值的时候,会保持一段很长的时间,我们利用它来产生流水灯现象3'b000: led <= 4'b0111; /点亮第一个灯 低电平点亮3'b001: led <= 4'b1011; /点亮第一个灯 低电平点亮3'b

37、010: led <= 4'b1101; /点亮第一个灯 低电平点亮3'b011: led <= 4'b1110; /点亮第一个灯 低电平点亮default:led <= 4'b1111; /一般要设置一个缺省状态,三个led全部灭endcaseendelsebegincase(flag) /由于flag会不断变化,并且flag在从一个值变成另一个值的时候,会保持一段很长的时间,我们利用它来产生流水灯现象3'b000: led <= 4'b1110; /点亮第一个灯 低电平点亮3'b001: led <= 4

38、'b1101; /点亮第一个灯 低电平点亮3'b010: led <= 4'b1011; /点亮第一个灯 低电平点亮3'b011: led <= 4'b0111; /点亮第一个灯 低电平点亮default:led <= 4'b1111; /一般要设置一个缺省状态,三个led全部灭endcaseendendmodule2. MATLAB实验复杂噪声产生实验服从(a-b)均匀分布的随机序列的产生程序,如下:a=2;%(a-b)均匀分布下限b=3;%(a-b)均匀分布上限fs=1e7;%采样率,单位:Hzt=1e-3;%随机序列长度,

39、单位:sn=t*fs;rand('state',0); %把均匀分布伪随机发生器置为0状态u=rand(1,n); %产生(0-1)单位均匀信号x=(b-a)*u+a; %广义均匀分布与单位均匀分布之间的关系subplot(2,1,1),plot(x),title('均匀分布信号'); %输出信号图subplot(2,1,2),hist(x,a:0.02:b),title('均匀分布信号直方图'); %输出信号的直方图服从参数为的指数分布的信号了。实现程序如下:lambda=2.5;%指数分布参数fs=1e7;%采样频率t=1e-3;%时间长度n

40、=t*fs;rand('state',0); %把均匀分布伪随机发生器置为0状态u=rand(1,n) %产生单位均匀信号x=log2(1-u)/(-lambda); %指数分布与单位均匀分布之间的关系subplot(2,1,1),plot(0:1/fs:t-1/fs,x),xlabel('t(s)'), ylabel('x(V)')title('指数分布信号');subplot(2,1,2),hist(x,0:0.05:4),title('指数分布信号直方图');产生瑞利分布的热噪声实现程序如下sigma=2;%

41、瑞利分布参数sigma;t=1e-3;%杂波时间长度fs=1e7;%采样率t1=0:1/fs:t-1/fs;n=length(t1);rand('state',0); %把均匀分布伪随机发生器置为0状态u=rand(1,n); x=sqrt(2*log2(1./u)*sigma; %产生瑞利分布信号1 subplot(2,1,1),plot(x),title('瑞利分布噪声'),xlabel('t(单位:s)');%输出信号图subplot(2,1,2),hist(x,0:0.1:10),title('瑞利分布信号直方图'); %

42、输出信号的直方图3. FPGA实验噪声产生及正弦信号产生根据3.3的实施步骤,利用quartus ii软件自带元件库完成整个结构构成,不需要自己编写代码。4. MATLAB实验数字下变频及匹配滤波利用MATLAB实现对中频信号的正交解调和匹配滤波器,参考程序如下:clear all;close all;fs=8000000;t0=0.00006;t2=0:1/fs:t0-1/fs;f0=9900000;f1=200000;k=3300000000;N=1024; x1=cos(2*pi*(f0*t2+k*t2.2);x=x1 zeros(1,N-length(t2);figure(1); pl

43、ot(x);for i=1:length(x)/2 y1(i)=x(2*i-1)*(-1)(i); y2(i)=x(2*i)*(-1)(i);endfor k=3:i-4 z1(k)=9*(y1(k-1)+y1(k+1)/16-(y1(k-2)+y1(k+2)/16; z2(k)=9*(y2(k-1)+y2(k+1)/16-(y2(k-2)+y2(k+2)/16;endfigure(2)x1=1:length(y1);y=1:length(z1);subplot(2,1,1),plot(x1,y1,'r-',x1,y2,'b-');subplot(2,1,2),

44、plot(y,z1,'r-',y,z2,'b-');save idata.dat z1 -ascii;save qdata.dat z2 -ascii;j=sqrt(-1);z=z1+j*z2;fz=fft(z,N);figure(3); plot(real(fz)m=z(1:480); %z为IQ两路信号组成的复信号,48060us ×8Mh=fliplr(conj(m);H=fft(h,N);fid=fopen('LFM_para.dat','wt');for k=1:N fprintf(fid,'%en%e

45、n',real(H(k),imag(H(k);endfclose(fid);a=H.*fz;figure(4); plot(real(a);b=ifft(a,N);figure(5); plot(abs(b);上述MATLAB程序同时也生成了后续DSP实验需要正交两路数据idata.dat和qdata.dat,以及匹配滤波器系数LFM_para.dat。还需要生成蝶形运算系数twid1k.dat和itwid1k.dat,参考程序如下:clear all;close all;N=1024; /FFT点数for k=1:N twid(k)=complex(cos(2*pi*(k-1)/N)

46、, -sin(2*pi*(k-1)/N); end; fin = fopen('twid1k.dat', 'wt'); fh=fopen('itwid1k.dat','wt'); for k=1:N/2 fprintf(fin, '%en%en', real(twid(k), imag(twid(k); fprintf(fh, '%en%en', real(twid(k), -imag(twid(k); end; fclose(fin);fclose(fh);5. DSP实验匹配滤波DSP参考程序如

47、下:#include "MYts101def.h"#define BUFFER_N 1024/INPUT BUFFER#defineFFT_N 1024#define L 72 / number of fir filter coefficients/*-M1 data-*/.section data1;.align 4;.var buf_in1BUFFER_N="idata.dat"/I,Q data input buffer.var buf_in2BUFFER_N="qdata.dat".align 4;.var para2*BUF

48、FER_N="LFM_para.dat".align 4;.var twid1kBUFFER_N="twid1k.dat".align 4;.var itwid1kBUFFER_N="itwid1k.dat"/-M2 data-/.section data2;.align 4;.var fft_data2*BUFFER_N;.align 4;.var fft_result2*BUFFER_N;/fft result buffer.align 4;.var para_mult_result2*BUFFER_N;/parament mul

49、iply result.align 4;.var ifft_result2*BUFFER_N;.align 4;.var TR_data2*BUFFER_N;.align 4;.var qiumo_resultBUFFER_N;.align 4;.var reg_stack; /function stack/-M0 program-/.section program;start:IMASKH=0X80000000;IMASKL=0;xr0 = 0x21861;syscon = xr0;J30 = RESERVED_INTERPUT;ivsw = J30; ivhw = J30; ivtimer

50、1hp = J30; ivtimer0hp = J30; ivbuslk = J30; virpt = J30; ivirq3 = J30; ivirq2 = J30; ivirq1 = J30; ivirq0 = J30; ivdma13 = J30;ivdma12 = J30;ivdma11 = J30; ivdma10 = J30; ivdma9 = J30; ivdma8 = J30; ivdma7 = J30; ivdma6 = J30; ivdma5 = J30; ivdma4 = J30; ivdma3 = J30; ivdma2 = J30; ivdma1 = J30; ivd

51、ma0 = J30; ivlink3 = J30;ivlink2 = J30;ivlink1 = J30;ivlink0 = J30; ivtimer1lp = J30; ivtimer0lp = J30; /-INITIATE Ureg-/J0 = 0;J1 = 0;J2 = 0;J3 = 0;J4 = 0;J5 = 0;J6 = 0;J7 = 0;J8 = 0;J9 = 0;J10= 0;J11= 0;J12 = 0;J13 = 0;J14 = 0;J15 = 0;J16 = 0;J17 = 0;J18 = 0;J19 = 0;J20 = 0;J21 = 0;J22 = 0;J23 = 0

52、;J24 = 0;J25 = 0;J26 = 0;J27 = 0;J28 = 0;J29 = 0;K0 = 0;K1 = 0;K2 = 0;K3 = 0;K4 = 0;K5 = 0;K6 = 0;K7 = 0;K8 = 0;K9 = 0;K10 = 0;K11 = 0;K12 = 0;K13 = 0;K14 = 0;K15 = 0;K16 = 0;K17 = 0;K18 = 0;K19 = 0;K20 = 0;K21 = 0;K22 = 0;K23 = 0;K24 = 0;K25 = 0;K26 = 0;K27 = 0;K28 = 0;K29 = 0;JB0 = 0; JB1 = 0; JB2 = 0; JB3 = 0;JL0 = 0; JL1 = 0; JL2 = 0; JL3 = 0; KB0 = 0; KB1 = 0; KB2 = 0; KB3 = 0;KL0 = 0; KL1 = 0; KL2 = 0; KL2 = 0;XR0 = 0;XR1 = 0;XR2 = 0;XR3 = 0;XR4 = 0;XR5 = 0;XR6 = 0;XR7 = 0;XR8 = 0;XR9 = 0;XR10 = 0;XR11 = 0;XR12 = 0;XR13 = 0;XR14 = 0;XR15 = 0;XR16 = 0;XR17

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论