简易数字信号传输分析仪Word格式文档下载.docx

上传人:b****6 文档编号:17626941 上传时间:2022-12-07 格式:DOCX 页数:26 大小:1.34MB
下载 相关 举报
简易数字信号传输分析仪Word格式文档下载.docx_第1页
第1页 / 共26页
简易数字信号传输分析仪Word格式文档下载.docx_第2页
第2页 / 共26页
简易数字信号传输分析仪Word格式文档下载.docx_第3页
第3页 / 共26页
简易数字信号传输分析仪Word格式文档下载.docx_第4页
第4页 / 共26页
简易数字信号传输分析仪Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

简易数字信号传输分析仪Word格式文档下载.docx

《简易数字信号传输分析仪Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《简易数字信号传输分析仪Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

简易数字信号传输分析仪Word格式文档下载.docx

1.系统框图

图2传输框图

2.M序列信号发生方案

M序列是一种伪随机序列,具有结构简单、实现方便的特点,在现代工业实践中应用广泛。

产生M序列的方法很多,如利用通用数字器件构成、利用软件方式构和利用FPGA构成等方式,各有利弊。

方案一:

本方案采用74LS194移位寄存器级连成N级移位寄存器。

用通用数字器件构成的特点是速度可以很快,但硬件电路不便于修改,只能产生单一N级的M序列伪随机信号。

方案二:

本方案采用单片机软件构成的方式产生M序列伪随机信号。

软件构成的特点是采用灵活的数据查询方式,可以获得任意级数N的本原多项式系数,从而实现m序列的产生,但速度受到单片机工作速度的限制。

方案三:

此方案采用FPGA产生M序列伪随机信号。

FPGA具有丰富的I/O口、内部逻辑线和连线资源,运行速度快。

该方案使用FPGA产生信号,因而即具有硬件电路的各项优点,又具有设计上的灵活性——可获得任意级数n的M序列本原多项式系数,级数切换速度快。

对于本题来说,需要生成两种M序列伪随机信号。

采用方案三则只需改动程序参数,即可通过同一块FPGA系统板产生所需的数字传输信号和伪随机信号,避免了硬件实现方式需要重新设计电路的麻烦。

为了很好的完成题目的基本要求及发挥部分,经综合考虑采用此种方案三。

3.低通滤波器方案

对于本题来说,可采用有源滤波和无源滤波两种方案。

采用无源滤波器。

无源滤波器由无源元件(电阻、电容、电感)组成,具有高频性能好、电路简单、功能可靠、无需直流供电,能够输出高压大电流等优点。

但无源滤波器带负载能力较差,功耗大,不但通带放大倍数会因负载电阻而减小,而且通带截至频率也会因负载电阻而增大。

同时无源滤波器的体积和重量也比较大,其电感还会引起电磁干扰。

采用有源滤波器。

有源滤波器由电阻、电容和有源器件(如集成运放)组成,具有电路体积小重量轻、通带内信号可放大、精度高、性能稳定、易于调试、负载效应小、可多级相连构成高阶滤波器等诸多优点。

但由于集成运放所限,有源滤波电路不适于高电压大电流负载,而只适用于信号处理。

根据可用的芯片资源,最终使用LM318高速运放实现二阶巴特沃斯滤波器。

根据题目具体要求,系统只需对弱电信号进行处理,且对于信号处理的精确性要求较为苛刻,因此方案二更为适合。

4.数字分析电路方案

题目要求数字分析电路从输入码元序列中提取同步信号,故采用通信原理中的位同步技术。

采用自同步法中的滤波法,但滤波法要求收端滤波器性能精确和稳定,否则将出现为同步信号的相位抖动。

特别是当全0和全1时的时间持续更长,相位抖动更大。

采用自同步法中的锁相环方法。

用数字锁相环提取同步信号,由于采用了数字电路个实际应用是方便、可靠、易于实现集成化的。

综上所述,选择方案二。

5.加法器方案

题目要求使用加法器使信号和模拟出来的噪声信号叠加。

采用同相加法器电路,使用AD8056芯片,但由于此芯片不适合做加法器,所以放弃了此方案。

采用同相加法器电路,使用LM358芯片,并在同相端加一个对地电阻。

实际效果不错。

故使用此电路。

三、理论分析与计算

1.低通二阶巴特沃斯低通滤波电路图及电路原理

巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。

在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。

巴特沃斯滤波器的振幅对角频率单调下降,并且也是唯一的无论阶数,振幅对角频率曲线都保持同样的形状的滤波器。

只不过滤波器阶数越高,在阻频带振幅衰减速度越快。

根据实验参数要求,本方案选择二阶低通滤波器。

其电路图如图3所示。

图3二阶巴特沃斯低通滤波电路

对于二阶低通滤波器其归一化函数:

将此式与2阶归一化的巴特沃斯低通滤波器传递函数的分母多项式:

,比较得

通带内的电压放大倍数为

滤波器的截至角频率为:

故由以上各式可得出电路参数为:

验证:

由于

,将三组R,C值分别代入

,得到的值

时,经计算

得到的实际计算值

值得注意的是,实际电路中,由于题目要求通带增益可调,而低通滤波器的增益需通过重新设定RC值进行调整,较为麻烦。

因此本设计中采用无增益低通滤波器,后接增益可变的同相放大器以实现系统增益的快速、灵活调节。

2衰减器

无线系统测试中常常需要对从一个设备到另一个设备的信号进行衰减。

例如,射频发射机测试中,涉及的功率等级常常从几瓦到几百瓦甚至上千瓦,这么大功率的信号必须得经过衰减以后才可以连接到大部分的测试设备中,否则会对测试设备有损害。

一种叫做衰减器的简单电路常常能用来减少信号幅度,而且衰减器不但可以把信号电压衰减到一定值还可以对阻抗值进行变换。

实现此功能的电路常常被称作π型或T型衰减网络。

采用π型衰减器,伪随机信号在FPGA输出后要对V3信号幅度衰减到100mv,本方案使用π型衰减器,纯阻抗网络对信号的频率和波形没有影响。

电路图如图4所示

图4π型衰减器

如图7所示电路为π型网络电路。

由于受引线和焊点的影响,阻值过小,很难保证其精度,从而影响衰减的准确度。

所以,当要求衰减较大时用π型衰减器较合适。

π型衰减器计算公式为:

其中

z为输入阻抗。

经计算衰减倍数为33时,当

时,经推导计算得π型衰减器中输入输出阻抗

代入得

3.加法器

利用运放中虚短、虚段的概念,做加法比例系数为1的同相求和电路。

作为数字信号的输入,我们要将V3信号和V2信号求和。

如图5所示。

图5加法器电路

其中,

=

=

=1K,将电路中的阻值取同一阻值带入到电路中,得

4.比较器

电压比较器是对两个模拟电压比较其大小,并判断出其中哪一个电压高。

本方案需要用到任意点评的比较器,在曼彻斯特编码经过加法器之后,要进入第二块FPGA做解码之前,需要将信号整波成波形较好的50%占空比的方波。

如图6所示

图6lm311比较器电路

输入信号ui加到反向输入端,在同相输入端加一个参考电压UREF,当ui输入电压小于参考电压UREF时,输出为+UOM当输入电压ui大于参考电压UREF时,输出为-UOM。

,本题目中

为1.6V左右,输出+

为3.28v

四、软件部分

本系统使用Verilog语言编程,利用FGPA实现M序列信号的产生及对传输信号的分析提取操作。

软件设计分为基础部分和拓展部分两个部分。

1基础部分

基础要求的软件设计包括M序列随机信号发生和伪随机

1.1M序列随机信号发生

M序列随机发生部分的软件设计能够使FGPA生成作为传输信号和噪声的两种M序列伪随机信号。

M序列发生器:

使用matlab产生生成一个M序列码表,在FGPA内部生成一个ROM表,采用查表法实现M序列发生器。

调整查表频率实现M序列从10khz~100khz的10khz步进。

生成M序列码表:

在matlab中编写生成M序列的代码,根据M序列的函数确定各项系数,输入系数成码表。

根据码表确定ROM表位地址数。

生成的部分码表

CONTENTBEGIN

0:

1;

[1..7]:

0;

8:

9:

[10..11]:

[12..14]:

[15..18]:

19:

20:

[21..24]:

[25..32]:

[33..34]:

35:

[36..39]:

40:

41:

42:

[43..44]:

[45..49]:

……

END;

FGPA部分主要代码如下所示:

moduleacc(RSTn,clock,result);

inputRSTn,clock;

//输入输出端口说明

output[7:

0]result;

reg[7:

always@(posedgeclockorposedgeRSTn)//功能实现

begin

if(RSTn)

result<

=8'

b00000000;

//地址清零

elseif(result==8'

b11111110)

else

=result+1'

b1;

//地址加1

end

Endmodule

步进频率分频的代码如下:

modulepinlu(clk,clk1,clk2,code);

//--分频模块

inputclk;

input[3:

0]code;

outputclk1;

outputclk2;

fenpinu1(clk,clk1,clk2,code);

endmodule

modulefenpin(clkin,clk1,clk2,code);

inputclkin;

regclk1;

regclk2;

reg[12:

0]TEMP;

0]TEMP1;

0]TEMP2;

always@(code)//键控分频值

case(code)

4'

h1:

TEMP2=13'

b1_0011_1000_0111;

h2:

b0_1001_1100_0011;

h3:

b0_0110_1000_0010;

h4:

b0_0100_1110_0001;

h5:

b0_0011_1110_0111;

h6:

b0_0011_0100_0001;

h7:

b0_0010_1100_1010;

h8:

b0_0010_0111_0000;

h9:

b0_0010_0010_1011;

ha:

b0_0001_1111_0011;

default:

endcase

always@(posedgeclkin)//分频计数器

begin

TEMP<

=TEMP+1;

if(TEMP==TEMP2)

clk2<

=~clk2;

//时钟信号输出

TEMP<

=0;

end

在QuartusII工具栏中点击Tools选择NetlistViewers选项再选择RTLviewer生成RTL图

图11M序列的RTL图

图12M序列的逻辑仿真图

1.2伪随机信号发生器

生成的信号同样为M序列,频率为10M。

方法同M序列发生器一致。

其主要程序为:

Begin//分频计数器

TEMP1<

=TEMP1+1;

if(TEMP1==13'

b0_0000_0000_0100)//--4

clk1<

=~clk1;

TEMP1<

End

图13伪随机信号的逻辑仿真图

1.3扩展部分

曼彻斯特信号发生器。

曼彻斯特编码:

在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;

从低到高跳变表示"

1"

,从高到低跳变表示"

0"

还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"

或"

,有跳变为"

,无跳变为"

图14曼彻斯特编码图

编程代码如下:

modulemcst//曼彻斯特模块

CLK,m_in,Out_mcst

);

inputCLK;

inputm_in;

outputOut_mcst;

regOut_mcst;

always@(CLK)//功能实现

if(CLK==1'

b0)

Out_mcst<

=m_in;

elseif(CLK==1'

b1)

=~m_in;

图15曼彻斯特仿真图

1.4曼彻斯特码的解码

曼彻斯特信号解码:

曼彻斯特信号解码是把曼彻斯特信号中的时钟信号提取出来,再利用时钟信号进行解码。

解码代码:

modulejie(inclk0,clk,sgin,RESET,clkout,mtjiema,mcccc,mcccc2,sgout,kout);

//曼彻斯特解码电路

always@(posedgeclkornegedgeRESET)

if(!

RESET)

begin

sgin0<

=1'

b0;

sgin1<

sgin2<

end

else

=sgin;

=sgin0;

=sgin1;

assignsgout=(~sgin2)&

sgin1|sgin2&

(~sgin1);

always@(posedgeclkornegedgeRESET)

begin

counter<

=16'

b0000_0000_0000_0000;

tem1<

tem2<

end

if(sgout)

begin

=tem1;

=counter+1'

=counter;

end

tem3<

tem4<

if(tem3<

tem2)

tem3<

=tem2;

else

tem4=tem3>

>

1;

counter2<

if(sgout)

begin

counter2<

kout<

tem5<

=2'

b10;

end

else

if(counter2==(tem4-tem5))

begin

kout<

counter2<

end

tem5<

b00;

=counter2+1'

assignmcccc=kout|sgout;

//完整脉冲信号

always@(inclk0)

if(inclk0==1'

b1)

mcccc2<

=mcccc;

elseif(inclk0==1'

b0)

=1'

always@(posedgeclkornegedgeRESET)//根据脉冲信号解出时钟信号

clkout<

if((counter-2'

b10)>

(tem4+4'

b1000))

if(mcccc)

clkout<

else

=clkout;

if(mcccc)

=~clkout;

always@(posedgeclkornegedgeRESET)//曼彻斯特解码

mtjiema<

if(clkout)

mtjiema<

=~sgin2;

=sgin2;

图16曼彻斯特的RTL图

图17解码仿真图

五、测试方案与测试结果

1.测试方法与仪器

1.1测试仪器

RIGOL-DS1102CA示波器、

YB4320A模拟示波器、

RIGOL-DG1022信号源、

DY2105多功能数字万用表、

FPGA_Cyclone_II_EP2C5/EP2C8下载板

1.2测试方法

硬件测试:

1、制作出低通滤波器,将一正弦信号作为测试信号输入低通滤波器,通过调节输入信号,观察对应输出信号波形的方法,即可测得滤波器各项性能指标。

2、制作π行衰减器使输入信号衰减40dB。

3、制作加法器,将通过滤波器的数字信号与通过衰减器的噪声信号相加,测量示波器眼图。

关键问题解决:

(1)示波器

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

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1