数字移相01

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.两个同频信号之间的移相与实现方式

所谓移相是指两路同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为是相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是3600,则相差的范围就在00∽3600之间。例如在图1中,以A信号为参考,B信号相对于A信号作滞后移相φ0,则称A超前Bφ0,或称B滞后Aφ0。

图1 移相示意

要实现B信号对A信号的移相,通常有两个途径:一是直接对模拟信号进行移相,如阻容移相,变压器移相等,早期的移相通常采用这种方式。采用这种方式制造的移相器有许多不足之处,如:输出波形受输入波形的影响,移相操作不方便,移相角度随所接负载和时间等因素的影响而产生漂移等.在此不予讨论.另一个是随电子技术的发展,特别是单片机技术的发展而发展起来的数字移相技术,是目前移相技术的潮流。数字移相技术的核心是:先将模拟信号或移相角数字化,经移相后再还原成模拟信号。

数字移相主要有两种形式:一种是先将正弦波信号数字化,并形成一张数据表存入ROM芯片中,此后可通过两片D/A转换芯片在单片机的控制下连续地循环输出该数据表,就可获得两路正弦波信号,当两片D/A转换芯片所获得的数据序列完全相同时,则转换所得到的两路正弦波信号无相位差,称为同相。当两片D/A转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。另一种是先将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种处理方式的实质是将延时的时间映射为信号间的相位值。

二.利用D/A转换实现移相

图2给出了一个设计实例。单片机为8031,D/A转换芯片采用两片8位字长的DAC0832,由于DAC0832的输出信号为电流型,故需加运算

放大器将电流型信号转换成电压型信号。该设计中运算放大器采用双极型双运放4558。转换所用的数据为256个8位字长的数据,随程序一起存入ROM存储器中,即一个信号周期有256个转换值。

图2 D/A转换移相框图

进行D/A转换的程序段及正弦波的数值表如下:

程序清单:

MOV R5,#00H;第一路正弦波起点地址的偏移量送R5

MOV R1,#08H;第二路正弦波起点地址的偏移量送R1

LOOP:MOV A, R5

MOV DPTR,#TAB;取数据表首地址

MOVC A,@DPTR;取第一路数据

MOV DPTR,#0DFFFH;选通第一路DAC0832

MOVX @DPTR,A;数据送第一路DAC0832

INC R5;修改第一路地址的偏移量

MOV A,R1;

MOV DPTR,#TAB:

MOVC A,@DPTR;取第二路数据

MOV DPTR,#0BFFFH:选通第二路DAC0832

MOVX @DPTR,A;数据送第二路DAc0832

INC R1:修改第二路地址的偏移量

MOV DPTR,#7FFFH;选通两片DAC0832的转换端

MOVX @DPIR,A;同时转换两路数据

AJMP LOOP

TAB:DB 80,83,86,89,90,93,96

DB 99,9C,9F,A2,A5,A8,AB,AE

DB B1,B4,B7,BA,BC,BF,C2,C5

DB C7,CA,CC,CP,D1,D4,D6,D8

DB DA,DD,DF,E1,E3,E5,E7,E9

DB EA,EC,EE,EF,F1,F2,F4,F5

DB F6,F7,F8,F9,FA,FB,FC,FD

DB FD,FE,FF,FF,FF,FF,FF,FF

DB FF,FF,FF,FF,FF,FF,FE,FD

DB FD,FC,FB,FA,F9,F8,F7,F6

DB F5,F4,F2,F1,EF,EE,EC,EA

DB E9,E7,E5,E3,E1,DF,DD,DA

DB D8,D6f D4,D1,CF,CC,CA,C7

DB C5,C2,BF,BC,BA,B7,B4,B1

DB AE,AB,A8,A5,A2,9F,9C,99

DB 96,93,90,8D,89,86,83,8O

DB 80,7C,79,76,72,6F,6C,69

DB 66,63,60,5D,5A,57,55,51

DB 4E,4C,48,45,43,40,3D,3A

DB 38,35,33,30,2E,2B,29,27

DB 25,22,20,1E,1C,1A,18,16

DB 15,13,11,10,0E,0D,0B,0A

DB 09,08,07,06,05,04,03,02

DB 02,01,00,00,00,00,00,00

DB 00,00,00,00,00,00,01,02

DB 02,03,04,05,06,07,08,09

DB 0A,0B,0D,0E,10,11,13,15

DB 16,18,1A,1C,1E,20,22,25

DB 27,29,2B,2E,30,33,35,38

DB 3A,3D,40,43,45,48,4C,4E

DB 51,55,57,5A,5D,60,63,66

DB 69,6C,6F,72,76,79,7C,80

此例中,数据表中数据共有256个,每两个相邻数据之间的相位差为3600÷256=1.40。我们只需改变R1中的值就可改变两路正弦波的相位差。程序中R1=8,故第一路正弦波滞后第二路正弦波1.40×8=11.20。 现将以这种方式实现移相的几个技术指标作如下分析:

 1.波形失真度;正弦波的转换精度若不加其它的处理,则取决于D/A转换芯片的位数和数据表中数据的准确度。8位的D/A转换芯片其输入数据的范围是0-255,也就是说最多可将模拟量分为256级。在双级型的转换中,正、负半波被分为128级。

相关文档
最新文档