载波同步算法程序

载波同步算法程序
载波同步算法程序

5.2.1 载波频偏的捕获 A .前导序列估计

由于发送端和接收端载波频率的不同,每一个采样信号在时间t 时包含一个未知的相位因素t f j c e ?π2,这里c f ?指的是未知的载波频偏。这个未知的相位因素在接收端必须被估计和补偿,否则子载波的正交性将会被破坏。例如,当载波频率为5GHz 时,那么100ppm 的晶振偏移相对应的频率偏移为50kHz 。若符号的间隔时期为6.12.3=?=T f us T c ,那么。

前面对IEEE802.11a 的分析,我们知道在它的帧结构中包含10个完全相同的短前导序列和两个相同的背靠背的长前导序列。其中短前导序列主要用于自动增益控制、分集选择、定时估计以及粗频率估计,而长前导序列主要用于信道估计和精确的频率估计。故结合这两个序列可以较精确的估计出载波的频偏,其中具体算法主要是利用它们良好的相关性[21]。首先设T f c ?=ρ,则两个长前导字的相关值为:

∑∑-=-=-=+=

1

2

10

2*

|

)(|)()(N l N l j l y e N l y l y J πρ

(39)

因此我们可以估计出??

????

=||arg 21*J J πρ,这里的)(l y 指的是接收信号。 然而我们知道实际ρ的值会比1大(如前面提到的100ppm 的晶振偏移对应

的ρ为1.6),而长前导对其估计只能限制在5.0±内,故必须使用短前导字对其进行粗频率估计。短前导字的相关值为:

∑∑-=--==+=

14/0

2

4

/21

4/0

*

|

)(|)4/()(N l j N l l y e

N l y l y K πρ (40)

故可以得到?

?

????=||arg 214

*K K π

ρ,可见短前导字的估计范围扩大到长前导字估计范围的4倍,也就是说精频偏估计的精度为粗频偏估计的4倍。结合上面提到的粗估

计和精确估计,可以得到

??

?

?

????????+??????=||24||arg 21

**K K J J π

πρ (41) 这里??指的是向下取整的意思。通过仿真结果表明此算法在理想状态下可估计的最大范围为0.2±(归一化值)。 B .载波频偏综合估计算法[12]

对于复杂的无线信道来说,上述算法0.2±的频偏估计范围偏小了一些。因此在文献[12]中提出了载波频偏估计算法,它的主要思想上在捕获阶段利用报头中长短训练符号的特殊结构,在频域和时域上分别实现整数载波频偏和分数载波频偏的捕获。

载波频差Δf 可以分为整数载波频差Δf I 部分和分数载波频差Δf F 部分,见下式

()()u F I F I T 1f'n f f f ?+=?+?=? (42)

()F I u 'f n 1/f 'f ?+=?=? (43)

整数载波频差Δf I 是子载波频宽1/Tu 的整数倍,I n 、F f'?和F f ?分别为Δf I 、Δf F 和Δf 相对于子载波频宽1/Tu 的归一化值。频偏捕获阶段的任务是在尽可能短的时间内准确地建立子载波间的正交关系,即要求能够同时较快地估计出I n 和

F f'?。本文提出的捕获算法同样是基于IEEE802.11aPreamble 结构分两步,首先

利用报头Preamble 中长训练符号已知和FFT 变换的频域移位特性在频域上捕获整数载波频偏I n ,然后利用长短训练符号的结构特性在时域内捕获分数载波频偏F f'?。

(1) 整数频偏估计

设()n ,m r s )

,(S S N ...2,1n M ...1,2m ==和()n ,m r l ),(l l N ...2,1n M ...1,2m ==分别表

示接收端FFT 变换之前preamble 中第m 个短(长)符号的第n 个采样点,假设经过高斯白噪声信道,由于存在频偏,对于接收到的2个长训练符号中的任何一个都可以写成:

()()()n ,m n n ,m s e n ,m r l 'f i2l +=?π )

,(l

l

N ...2,1n M ...1,2m == (44) 假设小数部分频偏已经得到补偿,(5-12)式可以改写成:

()()()n ,m n n ,m s e n ,m r l n i2l I +=π )

,(l

l

N ...2,1n M ...1,2m == (45) 式中n(m,n)为高斯白噪声项。对上式两边同时做FFT 变换,由于FFT 变换频域移位特性可知,时域上的整数频率偏差经过FFT 变换以后成为频域上的圆周移位。

()()()()n ,m N n n ,m X n ,m Z I N I l l +-=

),(l l N ...2,1n M ...1,2m == (46) 其中()n ,m Z l 是()n ,m r l 经过FFT 变换解调子载波后在频域上的表示, ()n ,m X l 是发射端preamble 中长训练符号()n ,m s l 在FFT 调制子载波前在频域的表达式,

()()I

N I l n n ,m X -表示()n ,m X l 长度为l

N 的圆周移位,()n ,m N 是噪声项在频域的表达

式。由于()n ,m X l 对接收端来说是已经信号,对任何一个经过FFT 解调子载波的长训练符号,我们都用一个带偏移量i 的本地长训练符号与之相关,并逐步改变i 值,由(46)性质可知,最大相关时刻对应的i 值就是所求的整数载波频偏。

()()i n ,m X n ,m Z max n ?l N 1n i i

I l

+=*=∑ 12/N ...1,0,1..2/N i l l ---= (47)

文献指出此算法估计范围为(-32,31)(归一化值),下面将进行仿真来验证,并将两者进行比较。 C .两种算法的仿真比较

在给定相同条件下,即相同的一帧数据、信道和频偏,改变信道和频偏参数对两种算进行比较。

通常设信噪比(SNR )为25~30,这里给定为25:

5.2.2 载波频偏的跟踪

前面对频偏捕获之后,我们认为残余的频偏足够小,可以使用跟踪模式进行补偿,而为了使得跟踪算法的可靠性,捕获后残余的频偏精度必须在0.5个子载波的空间范围内。到目前为止,可使用的频偏跟踪算法总共可以分为以下三种[36]:基于导频的算法(pilot tone-aided PTA ),基于循环前缀的算法(cyclic prefix-based CPB )以及直接判决法(decision-directed DD)。PTA 算法估计频偏主要通过在特定的子载波位置插入导频以及把接收到的符号和已知的导频符号相关,而对于IEEE802.11a 协议来说,插入导频这是没有必要的,因为它的帧结构中已经含有导频。CPB 算法一般是基于一个OFDM 符号内循环前缀的周期性的特性来实施的。而DD 算法大部分和PTA 算法是相同的,除了一点以外,DD 算法是把接收到的符号和假设符号相关,而PTA 是和已知的符号相关。然而一般不推荐使用DD 算法,因为在时延和错误传播的环境下,它的操作性能会大大的下降。因此接下去主要讲解PTA 和CPB 两种算法。

先大概的讨论两种算法,然后把这两种算法放在相同的环境下比较它们的性能。这种比较有利于决定在特定的应用下选用哪一种算法。

首先我们假设当存在频偏时接收端OFDM 信号可以表示成:

k N

k j k k

f e

r z ωπδ+=/2 (48)

这里f

f ?=

ε

δ是信道的相关频偏(即频偏ε和子载波间隔f ?的比值),而ω是白

色高斯噪声。而数据和噪声被假设为非相关,且他们的随机方差值分别为

22n s σσ和。在接收端,相对应于循环前缀的采样值被去除,余下的N 个采样值

被用于解调。经过FFT 之后,第n 个子载波上的符号可表示成:

,110

2∑-=-=N k N

kn

j k n e z N Z π 10-≤≤N n (49) 前人已研究表明循环前缀和导频符号可以用来跟踪频偏。接下来先回顾一下这两种算法并对其作一定的修改。为了能较好的估计频偏的影响,我们这里假设帧和

符号定时是完全正确的,且信道被假设为慢衰落,在下面的讨论中,信噪比被定义为2

2

/n s SNR σσ=。 A .基于导频的频偏跟踪法

假设一个OFDM 符号含有N 个子载波,其中p N 个子载波被导频符号调制。让P 表示p N 个导频符号对应的索引值,在IEEE802.11a 协议中,即为[12,26,40,54]。则基于导频的算法表达式如下[25][36]:

()()

?

??????=??+∑∈++P n n D m n m n D m n m f g

C C Z Z

D N

N N ,,*

,*,arg 21πδ (50)

这里D m m +和分别代表第D m m +和个OFDM 符号,在这里我们取D 为1。而

{}{}n

D m n

m C

C ,,+和指的是在第

D m m +和个OFDM 符号的第n 个子载波上传输的导频

符号。然而经研究发现其实{}{}n D m n m C C ,,+和可以不用乘,因为我们只要取对应的幅角,而{}{}n D m n m C C ,,+和是一个常数。

由于PTA 算法包括解调过程,即它经过FFT 的转换过程,这势必要受到ICI (载波间的干扰)。因此我们把(48)式重新写成如下式:

10,110/)(2-≤≤+???

???=∑-=+N k e H X N z k N n N n k j n n k f ωδπ (51)

这里n H 是第n 个载波频率上对应的信道转换函数,相应的(49)式可改写为:

n n N

N j f f n n n W I e

N N H X Z f ++??

=-/)1()

/sin()sin()(πδπδπδ (52)

可见,这里的n Z 包括三个部分,第一部分是经过信道转换函数修改过的n X ,从上面的式子可见这部分由于受频偏的影响经历了幅度的衰减和相位的偏移。第二部分是由频偏引起的ICI ,具体表达式为: ()N n l j N

N j f

f N n

l l l

l

n e e

N n l N H X I f /)(/)1(1

,0)

/)(sin()

sin(----≠=??+-=

∑ππδδ

ππδ (53)

假设这里用到的数据具有零均值和互不相关的特性,Moose 已证明了下面性质

0}{=n I E 以及.5.0||),(sin ||||5947.0||2222≤≤f f n H X I E δπδ可见,n I 和频偏成一定的比例,随着频偏的增大,PTA 算法的性能逐渐下降。 B .基于循环前缀的频偏跟踪法

从公式(48)中可见,载波频率偏差f δ的存在导致了接收采样值)(k z 的相位偏差)(k p ,

N

k k p f πδ2)(= (54)

因此两个采样值)()(21k z k z 和之间相位误差的差值其实是一个有关它们频率偏差和时延差的函数。如果在)()(21k z k z 和之间最初的相位差值是已知的,而且所有其他的相位失真都不存在,则我们就可以从相位误差的差值中得到相对频偏f δ。

我们知道循环前缀在时域的采样值其实就是OFDM 符号最后g N 数据采样值的复制值,当OFDM 符号通过一个长度为L 的信道时,接收到的1+-L N g 采样值依然是原样,只是相位发生了f πδ2的偏差。因此频偏可以通过使用1+-L N g 个采样值中的每一个去估计,为了提高估计的精度,可以把1+-L N g 个估计值取平均。

当然在很多文献中是使用g N 个估计值的平均值去估计频偏的,然而我们注意到接收到的OFDM 符号最前面的1-L 个采样值通常受到前面一个OFDM 符号的干扰,也就是我们说的符号间的干扰(ISI )。已经证实了使用1+-L N g 个采样值更能可靠的估计频偏。

下面给出根据循环前缀相关性的频偏跟踪算法:

))()(arg(

)(0

*

∑-=--?-=L

N m g N m k z m k z k p (55)

其中k 是最近输入采样值的索引,针对IEEE802.11a 协议,这里取16=g N ,

8=L ,64=N 。若定时正确,则

∑-=--?-L

N m g N m k z m k z 0

*

)

()(的相关峰值可以达到,则其

对应的相位可以记为max )(k p ,它就等于保护间隔内的采样值和对应的OFDM 数据采样值之间的平均相位偏移。由于相关的一对采样值被N 个采样值隔开,从而可以得到精确的频偏估计:

π

δ2)(max

k p f = (56) C .PTA 和CPB 两种算法的比较

在给定相同的条件下比较它们的性能。这种比较有利于决定在特定的应用下选用哪一种算法。下面设定剩余微小的频偏为0.02,用红线表示CPB 算法的跟踪曲线,由用蓝线表示PTA 算法的跟踪曲线图。

图19 两种算法跟踪结果的比较图

由仿真结果可以看出,CPB 算法实现了快速准确地跟踪目的。然而PTA 算法却没有实现预想的效果。从两者的图可以比较和分析两种算法。可以看出PTA 的这种算法不适合用于IEEE802.11a 协议,首先因为基于导频的算法多用于信道估计,其次该协议的规定中只是插入了四个的导频,如果增加插入的导频点数该算法也

是同样有效。相比较而言CPB算法更适用于该协议的载波同步。

附录(一)载波同步算法仿真程序

程序一:前导序列算法

function fre_offset=carry_acq(input,channel_fre_offset)

input_1(1:160)=fft(input(1:160));

input_1(161:320)=fft(input(161:320));

figure(2)

title('前导序列算法比较图')

subplot(311)

plot(abs(input_1))

xlabel('发送端的前导序列的频谱');

in=AWAG_channel_backup(input,25,channel_fre_offset);

in_1(1:160)=fft(in(1:160));

in_1(161:320)=fft(in(161:320));

subplot(312)

plot(abs(in_1))

xlabel('经过信道前导序列的频谱');

start_time=321;

corr1=0;

for i=1:16

corr1=corr1+in(start_time-160-i)*conj(in(start_time-160-i-16)); end

phase1=angle(corr1);

corr2=0;

for i=1:64

corr2=corr2+in(start_time-i)*conj(in(start_time-i-64));

end

phase2=angle(corr2);

phase=round(phase1*4/pi/2)*2*pi+phase2;

fre_offset=phase/2.0/pi;

v=fre_offset-channel_fre_offset;

temp1=AWAG_channel_backup(input(1:320),1000,v);

temp2(1:160)=fft(temp1(1:160));

temp2(161:320)=fft(temp1(161:320));

subplot(313)

plot(abs(temp2))

xlabel('经过频偏补偿后的前导序列频谱');

程序二:频偏综合估计算法

function fre_offset=carry_acq_improve(in,input,freoffset)

in_1(1:160)=fft(in(1:160));

in_1(161:320)=fft(in(161:320));

subplot(311)

plot(abs(in_1))

xlabel('发送端的前导序列的频谱');

z_stream=AWAG_channel_backup(in,25,freoffset);

z_stream_1(1:160)=fft(z_stream(1:160));

z_stream_1(161:320)=fft(z_stream(161:320));

subplot(312)

plot(abs(z_stream_1))

xlabel('经过信道后前导序列的频谱');

Z_temp(1:64)=z_stream(193:256);

Z_stream=b_fft(Z_temp); % 将接收到的信号的长前导字序列变换到频域,以便在频域上捕获大频偏

X_stream=input;

Z_stream_double(1:64)=Z_stream(1:64);

Z_stream_double(65:128)=Z_stream(1:64);

Z_stream_double(129:192)=Z_stream(1:64);

spot=0;

max=0;

i=0;

for i=-32:31

corr1(i+33)=sum(conj(X_stream(1:64)).*Z_stream_double(i+65:128+i)); % 通过计算本地前导序列和接收到信号的前导序列的相关性来找出最大的n值 spot_temp(i+33)=abs(corr1(i+33));

if spot_temp(i+33)>max

max=spot_temp(i+33);

n=i;

end

end

fre_offset_int=n; % 最大的n值就是频偏的整数部分

N=64;

L=16;

length_temp=size(in);

length=length_temp(2);

for i=1:length

z_stream_c(i)= z_stream(i)*exp(-j*2*pi*fre_offset_int*i/N); %将捕获到的整数部分先补偿回去再进行小数部分的估计

end

start_time=321;

corr2=0;

for i=1:16

corr2=corr2+z_stream_c(start_time-160-i)*conj(z_stream_c(start_time-1 60-i-16));

end

phase1=angle(corr2);

corr3=0;

for i=1:64

corr3=corr3+z_stream_c(start_time-i)*conj(z_stream_c(start_time-i-64) );

end

phase2=angle(corr3);

phase=round(phase1*4/pi/2)*2*pi+phase2;

fre_offset=phase/2.0/pi+fre_offset_int;

v=freoffset-fre_offset;

temp1=AWAG_channel_backup(in(1:320),1000,v);

temp2(1:160)=fft(temp1(1:160));

temp2(161:320)=fft(temp1(161:320));

subplot(313)

plot(abs(temp2))

xlabel('经过频偏补偿后的前导序列频谱');

程序(三):基于循环前缀算法

function final1(frameout, offset)

N=64;

L=16;

length_temp=size(frameout);

length=length_temp(2);

frameout_data=frameout(401:length);

for i=1:length-400

in(i)=frameout_data(i)*exp(j*2*pi*offset*i/N);

end

num_sym=length/80-5;

ri=in;

T=4; % symble period (us)

T_fft=T*N/(L+N); % T_fft=3.2 (us)

Kd=1; % awgn

Ko=1;

K=Kd*Ko; % K=Kd*Ko , assuming any value , but it is determined by loop BL=0.033/T;

kesai=0.707;

C1=(2*kesai/K)*(2*BL*T/(kesai+1/4/kesai));

C2=(2*BL*T/(kesai+1/4/kesai))^2/K;

fai=0;

deltafai(1)=0;

for n=1:num_sym

if n==1

fo(1)=0; % (C1+C2)*deltafai(1)

else

fo(n)=fo(n-1)+(C1+C2)*deltafai(n)-C1*deltafai(n-1); end

for m=1:L+N

if n==1

rio(m)=ri(m)*exp(-j*fai);

%out(n,m)=rio(m);

else

rio(m)=ri((L+N)*(n-1)+m)*exp(-j*fai);

%out(n,m)=rio(m);

fai=Ko*2*pi*T_fft/N*fo(n-1)+fai;

end

end

est(n)=sum(conj(rio(4:L)).*rio(4+N:L+N));

if n==1

deltafai(n+1)=imag(est(n));

else

deltafai(n+1)=deltafai(n)+imag(est(n));

end

end

hold on

n=1:num_sym-1-1;

plot(Ko*fo(n)*T_fft,'r')

xlabel('OFDM符号数');

ylabel('频率误差');

程序(四):基于导频算法

function pta(in,offset)

a1=AWAG_channel_backup(in,25,offset);

length1=length(a1);

a2=a1(193:length1);

length2=fix((length(a2)-128)/80);

a3(1:64)=b_fft(a2(1:64));

a3(65:128)=b_fft(a2(65:128));

for i=1:length2

a3(128+(i-1)*64+1:128+(i-1)*64+64)=b_fft(a2((i-1)*80+1+128+16:(i-1)*8 0+80+128));

end

Bl=0.00008;

kesai=0.707;

k=1;

C1=(4*kesai*Bl/(kesai+0.25/kesai));

C2=((2*Bl/(kesai+0.25/kesai))^2);

e1(1:length2+1)=0;

e2(1:length2+1)=0;

e3=0;

sum_angle(1:length2+1)=0;

for i=3:length2;

e3=0;

for n=1:64

e3=mod(i*e2(i-1)+e3,2*pi);

a3((i)*64+n)=(a3((i)*64+n)*(exp(-j*((e3)))));

end

R1(i)=(a3((i)*64+12))*(conj(a3((i-1)*64+12)));

R2(i)=(a3((i)*64+26))*(conj(a3((i-1)*64+26)));

R3(i)=(a3((i)*64+40))*(conj(a3((i-1)*64+40)));

R4(i)=(a3((i)*64+54))*(conj(a3((i-1)*64+54)));

sum_angle(i)=(((imag(R1(i))+imag(R2(i))+imag(R3(i))+imag(R4(i)))))+ sum_angle(i-1);

e3(i)=(C2*sum_angle(i));%这个值很小可以忽略不计

e1(i)=(C1+C2)*sum_angle(i)-C1*sum_angle(i-1)+e1(i-1);

e2(i)=(e1(i))+e2(i-1);

end

plot(e2/(2*pi));

xlabel('OFDM符号数');

ylabel('频率误差');

程序(五):加噪

function [gsrv1, gsrv2]=gngauss(m, sgma)

if nargin==0,

m=0;

sgma=1;

elseif nargin==1,

sgma=m;

m=0;

end;

u=rand;

z=sgma*(sqrt(2*log(1/(1-u))));

u=rand;

gsrv1=m+z*cos(2*pi*u);

gsrv2=m+z*sin(2*pi*u);

程序(六):信道

function

[channel_out]=AWAG_channel_backup(in,snr_in_dB,channel_fre_offset) echo off

%snr_in_dB = 60;

a=size(in);

len=a(2);

%--------------Channel------------

% Only BPSK

Eb = 0.0125;

SNR = 10^(snr_in_dB/10);

sgma=sqrt(Eb/(2*SNR));

for i=1:len

[ni,nq]=gngauss(sgma);

channel_out(i)=in(i)*exp(sqrt(-1)*2*pi*channel_fre_offset*i/64)+ni+sq rt(-1)*nq;

end

程序(七):64点FFT变换

function out=b_fft(in)

for n=1:1:64

out(n)=0;

for k=-32:1:31

out(n)=out(n)+in(k+33)*exp(-1*sqrt(-1)*2*pi*k*(n-33)/64);

end

end

程序(八):64点IFFT变换

function out=b_ifft(in)

for n=1:1:64

out(n)=0;

for k=-32:1:31

out(n)=out(n)+in(k+33)*exp(sqrt(-1)*2*pi*k*(n-33)/64); end

out(n)=out(n)/64;

end

实验二(1)进程同步

实验二(2)进程同步 一、实验目的 1、生产者-消费者问题是很经典很具有代表性的进程同步问题,计算机中的很多同步问题都可抽象为生产者-消费者问题,通过本实验的练习,希望能加深学生对进程同步问题的认识与理解。 2、熟悉VC的使用,培养和提高学生的分析问题、解决问题的能力。 二、实验内容及其要求 1.实验内容 以生产者/消费者模型为依据,创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。 2.实验要求 学习并理解生产者/消费者模型及其同步/互斥规则;设计程序,实现生产者/消费者进程(线程)的同步与互斥; 三、实验算法分析 1、实验程序的结构图(流程图); 2、数据结构及信号量定义的说明; (1) CreateThread ●功能——创建一个在调用进程的地址空间中执行的线程 ●格式 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize,

LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParamiter, DWORD dwCreationFlags, Lpdword lpThread ); ●参数说明 lpThreadAttributes——指向一个LPSECURITY_ATTRIBUTES(新线程的安全性描述符)。dwStackSize——定义原始堆栈大小。 lpStartAddress——指向使用LPTHRAED_START_ROUTINE类型定义的函数。 lpParamiter——定义一个给进程传递参数的指针。 dwCreationFlags——定义控制线程创建的附加标志。 lpThread——保存线程标志符(32位) (2) CreateMutex ●功能——创建一个命名或匿名的互斥量对象 ●格式 HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName); bInitialOwner——指示当前线程是否马上拥有该互斥量(即马 ●参数说明 lpMutexAttributes——必须取值NULL。上加锁)。 lpName——互斥量名称。 (3) CreateSemaphore ●功能——创建一个命名或匿名的信号量对象 ●格式 HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName ); ●参数说明 lpSemaphoreAttributes——必须取值NULL。

理解载波恢复

理解载波恢复 简介 在数字通信系统中,信息可以通过载波基本特性的变化来进行传输。这些特性,如相位、频率、和幅度,在发射端被修改并且必须在接收端被检测到。因此,对于接收端来说,恢复载波的频率、相位、和符号时序是绝对必需的。这一过程就被称作载波恢复并且可以通过各种技术得以实现。在本演示(或文档)中,我们将探讨频率偏移的影响以及载波恢复中存在的通道噪声。 ASCII 码文本的QAM 调制(带噪声) 幅度 瞬时正弦波状态:M(t)<Φ(t) 载波恢复基础知识

In-Class Demos 一个QAM 发送端使用特定的相位和幅度来调制载波信号,而另一方面,如果接收器能够确定原始信号的相位和频率,那它就能准确地检测到这个信号。因此,两者之间的同步是必需的。在理想情况下,发送端和接收端将会完美地同步工作。换句话说,两者将会以同样的方式解释信号的相位和频率。然而,实际的硬件并不是完美的,而且即使利用某种纠错机制,接收端也不可能精确地锁定到与发送端完全相同的相位和频率。为了弥补这些不尽完美的特性,采用锁相环或PLL 来匹配接收端和发送端之间的频率(1)。 利用星座图,我们可以表示出每个符号的 幅度和相位。此外,每个符号覆盖在另一 个符号之上是为了说明与我们所能恢复载 波的相位和幅度之间的一致性。理想情况 下,当接收端的PLL 能够恢复载波,那么 每个符号就会在星座图上清楚地分布。然 而,当载波由于通道噪声或频率误差的原 因而无法恢复时,星座图也能表示来了。 在右边,我们示出了一幅符号出现在正确 幅度处,但其相位正持续变化的星座图。 因为: Frequency = d Θ / dt 频率= d Θ / dt 所以,当星座图的相位持续变化时,我们能够确定频率估计是错误的。 在这个特定的实例中,我们已经通过在系统中引入足够的噪声来仿真频率误差,从而得以干扰PLL ,甚至将噪声去除之后,PLL 仍然可能无法锁定正确的频率。 载波恢复步骤 解决这个载波恢复问题的方法有两个部分,它们可以粗略地分为以下两个部分:频率恢复和符号时序(相位)恢复。第一个部分需要频率估计以便于接收端精确地锁定至发射端频率,第二 个部分,符号时序恢复需要接收端精确地锁定发射端相位。符号时序恢复使得接收端通过精确

实时仿真系统介绍

ADPSS-LAB 电力电子、电力系统实时仿真方案 中国电力科学研究院 2012年10月 目录 1 系统综述- 0 - 2 系统组成- 0 - 3 电力电子、电力系统实时仿真存在的问题- 1 - 4 解决方法- 2 - 5 ADPSS-LAB实时仿真系统的功能- 7 -

电力电子系统实时仿真方案 1 系统综述 实时仿真是研究电力电子、电力系统复杂的工作过程、优化系统与运行的重要手段。电力电子、电力系统实时仿真经历了从第一代模拟分析系统,到第二代模拟/数字混合仿真系统,再到第三代数字实时仿真系统的发展过程。ADPSS-LAB正是第三代数字实时仿真系统的代表产品。 ADPSS-LAB是一种基于并行计算技术、采用模块化设计的电力电子、电力系统实时仿真系统。它既可以在普通PC机上进行离线仿真,也可通过并行计算机与实际的电力电子器件联接而进行实时在线仿真。与前两代仿真系统相比,ADPSS-LAB具有以下优势:1)既可以对电力电子、电力系统机电和电磁暂态分别进行实时仿真,同时也可以对机电和电磁暂态混合系统进行实时仿真。 2)仿真精度高;ADPSS-LAB在实时仿真过程中采用32位双精度浮点数运算,其仿真的精度与公认的离线分析软件MATLAB的仿真精度相当。 3)良好的升级和扩充性;ADPSS-LAB由于直接采用商用的基于PC Cluster的连接方式,当仿真的系统规模增大时,只需增加CPU数目和增大内存容量即可,从系统的升级和扩展灵活性等方面有很好的发展前景。 2 系统组成 软件部分:

实时操作系统:QNX 建模软件:MATLAB/simulink,SimPowerSystem 电力电子、电力系统实时仿真包 电力电子模型库 硬件部分: 并行处理系统(12-core INTEL CPU) I/O接口模块 信号调理模块 3 电力电子、电力系统实时仿真存在的问题 1)建模的问题 仿真系统能够提供友好的图形用户界面,丰富的电力电子、电力系统元件库且模型精度满足仿真要求,同时还要允许用户方便的添加自己的模型。 2)仿真的实时性问题 电力电子、电力系统往往在一个小范围内包含了十几个到几十个器件,相应的模型求解过程中包含了大量的矩阵计算(如:矩阵相乘,矩阵求逆等运算),如此大的计算量无法在给定的一个几十个微秒的仿真步长内由一个CPU结算出结果。因此,为了实现实时仿真的目标,必须将大的电力电子系统解耦成几个小的子系统,每个子系统分别运行在不同的CPU上,达到降低每个CPU的计算量,实现整个系统实时仿真的目的。 3)实时PWM信号的捕捉和产生问题

二进程同步算法模拟

实验二进程同步算法模拟 一、实验目的 1、模拟设计一种进程调度过程:FCFS、短作业优先、高响应比优 先(任选其一)。 2、算法代码实现,模拟数据演示,模拟结果验证。 二、实验学时 4课时 三、实验环境与平台 Windows 2000, C/C++程序开发集成环境(开发语言可自选) 四、实验内容及要求 1、实验内容:(1)自定义PCB的数据结构;(2)针对资源分配 中出现的问题,选择适合的算法,实现资源的合理分配。 2、实验要求:(1)完成规定的实验内容;(2)在实验之前,利 用课外时间浏览帮助文件的相关主题内容;(3)实验时保存程序代码;(4)写出实验报告.(实验目的、实验时间、实验设备和实验环境平台、完成的实验内容、实验结果和结论)。 五、完成的实验内容 下例是用C语言编写,用TC2.0调试结果 六、实现代码如下: #include "stdio.h" #define getjcb(type) (type*)malloc(sizeof(type)) #define NULL 0 int n=0,time=0;float eti,ewi; struct jcb{ char name[10]; /* 作业名 */ char state; /* 作业状态 */ int ts; /* 提交时间 */ float super; /* 优先权 */ int tb; /* 开始运行时间 */ int tc; /* 完成时间 */

float ti; /* 周转时间 */ float wi; /* 带权周转时间 */ int ntime; /* 作业所需运行时间 */ char resource[10]; /* 所需资源 */ struct jcb *link; /* 结构体指针 */ } *p,*q,*head=NULL; typedef struct jcb JCB; inital(){ int i; printf("\nInput jcb num\n"); scanf("%d",&n); printf("Input\nname\tts\tntime\tresource\n"); for(i=0;iname,&p->ts,&p->ntime,&p->resou rce); p->state='W'; p->link=NULL; if(head==NULL) head=q=p; else{ q->link=p; q=p; } } } fileinput(){ FILE *fp; int i; if((fp=fopen("os2.txt","r"))==NULL) printf(" open error!") ; fscanf(fp,"%d\n",&n); for(i=0;iname,&p->ts,&p->ntime,&p->resource ); p->state='W'; p->link=NULL; if(head==NULL) head=q=p;

载波同步

载波同步 实验目的 1、掌握用科斯塔斯(Costas)环提取相干载波的原理与实现方法。 2、了解相干载波相位模糊现象的产生原因。 实验内容 1、观察科斯塔斯环提取相干载波的过程。 2、观察科斯塔斯环提取的相干载波,并做分析。 实验模块 1、通信原理0 号模块一块 2、通信原理3 号模块一块 3、通信原理7 号模块一块 4、示波器一台 实验原理 1、基本原理 同步是通信系统中一个重要的实际问题。当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波。这个相干载波的获取方法就称为载波提取,或称为载波同步。 提取载波的方法一般分为两类:一类是在发送有用信号的同时,在适当的频率位置上,插入一个(或多个)称为导频的正弦波,接收端就由导频提取出载波,这类方法称为导频插入法;另一类就是不专门发送导频,而在接收端直接从发送信号中提取载波,这类方法称为直接法。下面就重点介绍直接法的两种方法。 1)平方变换法和平方环法 设调制信号为,中无直流分量,则抑制载波的双边带信号为 接收端将该信号进行平方变换,即经过一个平方律部件后就得到 (17-1) 由式(17-1)看出,虽然前面假设了中无直流分量,但中却有直流分量,而表示式的第二项中包含有2ωc频率的分量。若用一窄带滤波器将2ωc频率分量滤出,再进行二分频,就获得所需的载波。根据这种分析所得出的平方变换法

提取载波的方框图如图17-1所示。若调制信号=±1,该抑制载波的双边带信号就成为二相移相信号,这时 (17-2) 图17-1 平方变换提取载波 因而,用图17-1所示的方框图同样可以提取出载波。 由于提取载波的方框图中用了一个二分频电路,故提取出的载波存在180°的相位模糊问题。对移相信号而言,解决这个问题的常用方法是采用相对移相。 平方交换法提取载波方框图中的窄带滤波器若用锁相环代替,构成如图17-2所示的方框图,就称为平方环法提取载波。由于锁相环具有良好的跟踪、窄带滤波和记忆性能,平方环法比一般的平方变换法具有更好的性能。因此,平方环法提取载波应用较为广泛。 图17-2 平方环法提取载波 2)科斯塔斯环法 科斯塔斯环又称同相正交环,其原理框图如下: 图17-3 科斯塔斯环原理框图 在科斯塔斯环环路中,误差信号V7是由低通滤波器及两路相乘提供的。压控振荡器输出信号直接供给一路相乘器,供给另一路的则是压控振荡器输出经90o移相后的信号。两路相乘器的输出均包含有调制信号,两者相乘以后可以消除调制信号的影响,经环路滤波器得到仅与压控振荡器输出和理想载波之间相位差有关的控制电压,从而准确地对压控振荡器进行调整,恢复出原始的载波信号。 现在从理论上对科斯塔斯环的工作过程加以说明。设输入调制信号为,则(17-3) (17-4) 经低通滤波器后的输出分别为: 将v5和v6在相乘器中相乘,得, (17-5) (17-5)中θ是压控振荡器输出信号与输入信号载波之间的相位误差,当θ较小时, (17-6) (17-6)中的v7大小与相位误差θ成正比,它就相当于一个鉴相器的输出。用v7去调整压控振荡器输出信号的相位,最后使稳定相位误差减小到很小的数值。这样压控振荡器的输出就是所需提取的载波。 载波同步系统的主要性能指标是高效率和高精度。所谓高效率就是为了获得载波信号而尽量少消耗发送功率。用直接法提取载波时,发端不专门发送导频,因而效率高;而用插入导频法时,由于插入导频要消耗一部分功率,因而系统的效率降低。所谓高精度,就是提取出的载波应是相位尽量准确的相干载波,也就是相位误差应该尽量小。相位误差通常由稳态相差和随机相差组成。稳态相差主要是指载波信号通过同步信号提取电路一后,在稳态下所引起的相差;随机相差是由于随机噪声的影响而引起同步信号的相位误差。相位误差对双边带信号解调

自适应载波同步及其Matlab仿真

成都理工大学工程技术学院本科毕业论文 自适应载波同步及其Matlab仿真 作者姓名: 专业名称: 指导老师: 年月日

摘要 自适应滤波算法的研究是现在社会自适应信号处理中最为活跃的研究课题之一。找寻收敛速度快,计算简单,数值稳定性好的自适应滤波算法是研究人员不断努力追求的目标。本设计在论述自适应滤波基本原理的基础上,说明了几种当前几种典型的自适应滤波算法和应用。并对这几种典型自适应滤波算法的性能特点进行简单的比较,给出了算法性能的综合评价。 载波同步是无线通信接收机的主要功能之一,其对通信系统质量的提高至关重要。随着新算法涌现和芯片处理速度的提高,不同的解决方案不断的提出。自适应载波同步是一种依据自适应算法的同步方法,内容新颖。本课题在介绍自适应算法和载波同步问题的基础上,详细讨论了平方差分环路法和锁相环路法,具体包括代价函数、代价函数的导数、迭代公式和原理图等,并在论文的第三部分给出了这两种方法的Matlab仿真。仿真结果验证了这两种方法在跟踪载波相位方面是满足要求的,且收敛速度较快。 关键词:自适应滤波载波同步平方差分环路锁相环路法

Abstact The research of adaptive filtering algorithm is one of the most activity tasks, the goal that researchers want to pursue is to find an adaptive filtering algorithm that converge fast and compute simplely. Based on the basis adaptive filtering principle, this paper introduces several typical adaptive algorithms and applications, then compares those algorithm's characters and gives the orithm performance evaluation. Carrier synchronization is one of the main functions of Wireless communications receiver,it is essential for the improvement in the quality of the communication system. With the emergence of new algorithms and the speed improvement of chip processing, different solutions is proposed continuously. Adaptive carrier synchronization is a synchronization method based on adaptive algorithms, and its content is innovative. Based on the introducing of adaptive algorithm and carrier synchronization, this issue has a detailed discussion of the square difference method and the PLL loop method, including its cost function, cost function derivative, iterative formula and schematic, etc. And the third part of the paper gives two methods of Matlab simulation.Simulation results show the two methods with tracking the carrier phase is to meet the requirements, and convergence speedly. Keywords:adaptive filter, carrier synchronization, differential circle square , phase-locked loop method

实验三 进程同步的经典算法

实验三进程同步的经典算法 背景知识 Windows提供的常用对象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据、临界段、事件、互斥体和信号等。 多线程编程中关键的一步是保护所有的共享资源,工具主要有互锁函数、临界段和互斥体等;另一个实质性部分是协调线程使其完成应用程序的任务,为此,可利用内核中的事件对象和信号。 在进程内或进程间实现线程同步的最方便的方法是使用事件对象,这一组内核对象允许一个线程对其受信状态进行直接控制(见表3-1) 。 而互斥体则是另一个可命名且安全的内核对象,其主要目的是引导对共享资源的访问。拥有单一访问资源的线程创建互斥体,所有想要访问该资源的线程应该在实际执行操作之前获得互斥体,而在访问结束时立即释放互斥体,以允许下一个等待线程获得互斥体,然后接着进行下去。 与事件对象类似,互斥体容易创建、打开、使用并清除。利用CreateMutex() API可创建互斥体,创建时还可以指定一个初始的拥有权标志,通过使用这个标志,只有当线程完成了资源的所有的初始化工作时,才允许创建线程释放互斥体。 为了获得互斥体,首先,想要访问调用的线程可使用OpenMutex() API来获得指向对象的句柄;然后,线程将这个句柄提供给一个等待函数。当内核将互斥体对象发送给等待线程时,就表明该线程获得了互斥体的拥有权。当线程获得拥有权时,线程控制了对共享资源的访问——必须设法尽快地放弃互斥体。放弃共享资源时需要在该对象上调用ReleaseMute() API。然后系统负责将互斥体拥有权传递给下一个等待着的线程(由到达时间决定顺序) 。

控制系统实时仿真解决方案.docx

dSpace控制系统实时仿真解决方案 c 利用MATLAB与Dspace开发平台,控制系统仿真平台的开发测试流程步骤如下: 被控对象的理论分析及数学描述 这是离线仿真的第一步,用线性或非线性方程建立控制系统数学模型,该方程应能用MATLAB的m-file格式或Simulink方框图方式表示,以便于用 MATLAB/Simulink进行动态分析。当部分被控对象难于用理论方法描述时,可以结合MATLAB的系统辨识工具箱和Simulink参数估计模型库来辅助进行系统建模。控制系统建模 当被控对象的模型搭建完毕之后,可以用MATLAB的控制系统工具箱等工具分析被控对象的响应特性,然后根据这些响应特性为其设计控制器。离线仿真与优化 模型建立之后,可以通过离线仿真查看控制系统的时域频域性能指标,通过对离线仿真结果的分析来优化控制系统仿真平台的算法或被控对象的模型,使系统的输出特性尽可能的好。当这一步完成之后,就要将离线仿真过渡到实时仿真了。 用真实的硬件接口关系代替Simulink中的逻辑联接关系 由于实时仿真中需要与硬件通讯,所以需要在Simulink方框图中,从RTI库用拖放指令指定实时测试所需的I/O(A/D转换器,增量编码器接口等),并对I/O参数(如A/D电压范围等)进行设置。自动代码生成与下载 这是从离线仿真到实时仿真的关键,当用户用传统的方法进行开发的时候,从控制算法到代码实现需要手工编程,这一步会耗去很长时间,但当用户采用 MATLAB+dSPACE这一整体解决方案时,只需用鼠标选择RTW Build,就可以自动完成目标系统的实时C代码生成、编译、连接和下载。即使是复杂的大型控制系统该过程一般也只需几分钟左右。实验过程的全程自动化管理 用ControlDesk试验工具软件包与实时仿真系统进行交互操作,如调整参数,显示系统的状态,跟踪过程响应曲线等。通过实时测试可以确定系统的一些重要特性。与MATLAB结合进行参数优化 如果需要,利用MLIB/MTRACE从实时闭环系统获得数据,并将该数据回传给用于建模和设计的软件环境(如:MATLAB),由MATLAB根据一定的算法计算下一步控制参数并通过MLIB/MTRACE将参数送给实时系统,实现参数的自动寻优过程。循环

第四章载波恢复技术的算法解析

第四章 载波恢复技术及其相关算法 4.1 载波恢复的基本原理 在数字传输系统中,接收端解调部分通常采用相干解调(同步解调)的方法,因为相干解调无论在误码率、检测门限还是在输出信噪比等方面较非相干解调都具有明显优势。相干解调要求在接收端必须产生一个与载波同频同相的相干载波。从接收信号中产生相干载波就称为载波恢复。 相干解调的优越性是以接收端拥有准确相位的参考载波为前提的,如果频率有误差,解调就不能正常工作,如果相位有误差,解调的性能就会下降。因为星座点数多的QAM(如64QAM,256QAM)对载波相位抖动非常敏感,所以对DVB-C 系统的QAM 调制方式来说,在接收端取得精确频率和相位的相关载波尤为重要。 在数字传输系统中,由于收发端的本振时钟不精确相等或者信道特性的快速变化使得信号偏离中心频谱,都会导致下变频后的基带信号中心频率偏离零点,从而产生一个变化的频偏,同时,信号的相位在传输中也会受到影响,引起信号的相位抖动。为了消除因此产生的载波频偏Δf 和相偏Δθ,在数字传输系统接收端的QAM 解调器中需要通过载波恢复(Carrier recovery)环路来计算出信号中载波频偏与相偏,并将载波频偏与相偏的值反馈回混频器来消除载波频偏与相偏。 本文论述采用特殊的锁相环来获得相干载波的方法,其基本思想是:对于经过了下变频、滤波器、定时恢复和均衡之后的信号,应用盲载波恢复,通过利用锁相环,提取出频偏并且跟踪相偏。 4.2 载波恢复的具体方法 以下介绍从抑制载波的己调信号中恢复相干载波的常用的方法:四次方环法、同相正交环法、逆调制环法、判决反馈环法。 4.2.1 四次方环 四次方环[6]的基本方法是将接收信号进行四次方运算,然后用选频回路选出4c f 分量,再进行四分频,取得频率为c f 的相干载波。具体的四次方环载波恢复框图如图4-1所示。 图4-1中接收到的射频信号与本地振荡器混频,在中频处理阶段进行滤波和自动增益控制后,升为四次幂,送入锁相环。锁相环的作用是提取出载波的4倍频分量,并滤除其它随机分量。因此它可以输出所需频率。然后载波频率乘以四,如图中×4方框所示。这一步可以通过求输入信号的四次幂实现。将接收信号通过一个四方律器件得到接收信号的四次幂,同时相位角也变成原来的四倍。然后将四方律器件输出的四倍载频除以四就可以恢复出载波了。

同步技术

同步技术 一、同步技术的定义: 同步技术即调整通信网中的各种信号使之协同工作的技术。诸信号协同工作是通信网正常传输信息的基础。 二、同步技术的分类: 按照同步的功能来分,同步可以分为载波同步、位同步(码元同步)、群同步(帧同步)和网同步(通信网中用)等四种。 (一)载波同步 1、定义 当采用同步解调(相干检测,它的基本功能就是完成频谱的线性搬移,但为了防止失真,同步检波电路中都必须输入与载波同步的解调载波。)时,接收端需要提供一个与接收信号载波同频同相的相干载波,而这个相干载波的获取就称为载波提取,或称为载波同步。 2-1 2、提取方法 载波同步一般有两类方法:一类是直接提取法(自同步法),一类是插入倒频法(外同步法)。 (1)直接提取法(自同步法) 定义: 是从接收到的有用信号中直接(或经变换)提取相干载波,而不需要另外传送载波或其它倒频信号。 基本原理: 有些信号(如DSB信号、2PSK信号等)虽然本身不包含载波分量,但却包含载波信息,对该信号进行某些非线性变换以后,就可以直接从中提取出载波分量来。 提取方法: 平方变换法和平方环法、同相正交环法(科斯塔斯环) ①平方变换法和平方环法

图2-2平方变换法提取载波 图2-2即为平方变换法提取载波,为了改善性能,可以在平方变换法大的基础上,把窄带滤波器用锁相环替代,构成如图2-3所示的方框图,这就是平方环法提取载波。 图2-3平方环法提取载波 由于锁相环具有良好的跟踪、窄带滤波性能,因此平方环法比一般的平方变换法具有更好的性能,因而得到广泛的应用。 ②同相正交环法(科斯塔斯环) 图2-4同相正交环法提取载波 同相正交环法(科斯塔斯环)是利用锁相环提取载波的另一种常用方法,由于加到上下两个相乘器的本地信号分别为压控振荡器的输出信号和它的正交信号,因此常称这种环路为同相正交环,有时也被称为科斯塔斯环(Costas)环。如图2-4所示。 (2)插入倒频法(外同步法) 定义: 是在发端发送信息码元的同时,再发送一个(或多个)包含载波信息的倒频信号,并且要求这个倒频信号不随传播的信息变换,在接收端根据倒频信号提取载波。即发端除了发送有用信号外,还在适当的位置上插入一个供接收端恢复相干载波之用的正弦波信号(这个信号通常称为导频信号)。

[操作系统]经典进程同步问题题库

1、测量控制系统中的数据采集任务把所采集的数据送一单缓冲区;计算任务则从该缓冲区中取出数据并进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。 Var Sempty,Sfull: semaphore:= 1,0 Begin Parbegin Collection:begin repeat 采集一个数据; wait(Sempty); 数据放入缓冲区; signal(Sfull); untill false; end; Compute:begin repeat wait(Sfull); 从缓冲区取出数据; signal(Sempty); 计算; ` until false; end; Parend End 2、有一阅览室,共有100个座位。读者进入时必须先在一种登记表上登记,该表为每一座位列一个表目,包括座号和读者姓名。读者离开时要注销掉登记内容。试用wait和signal原语描述读者进程的同步问题。 var mutex, readcount :semaphore := 1,100; Begin Parbegin Process Reader:begin repeat wait(readcount); wait(mutex); <填入座号和姓名完成登记>; signal(mutex); <阅读> wait(mutex) <删除登记表中的相关表项,完成注销> signal(mutex); signal(readcount); until false; end; parend; End; 1)、桌上有一空盘,只允许放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子;女儿专吃盘中的苹果,儿子专吃盘中的桔子;试用wait 和signal原语实现爸爸、妈妈、女儿、儿子之间的同步问题。 var Sempty, Sapple, Sorange,: semaphore:= 1,0,0; begin parbegin Father: begin repeat wait(Sempty); ; signal(Sapple); until false; end; Mother: begin repeat wait(Sempty); ; signal(Sorange); until false; end; Son: begin repeat wait(Sorange); ; signal(Sempty); until false; end; Daughter: begin repeat wait(Sapple); ; signal(Sempty); until false; end; parend; end; 1、在4×100米接力赛中,4个运动员之间存在如下关系,运动员1跑到终点把接力棒交给运动员2;运动员2一开始处于等待状态,在接到运动员1传来的接力棒后才能往前跑,他跑完100米后交给运动员3,运动员3也只有在接到运动员2传来的棒后才能跑,他跑完100米后交给运动员4,运动员4接到棒后跑完全程。请试用信号量机制对其上过程进行分析。 var s1,s2,s3:semaphpre:=0,0,0; begin parbegin Athlete1: begin Run 100m; signal(s1); end; Athlete2: begin wait(s1); Run 100m; signal(s2); end; Athlete3: begin wait(s2); Run 100m; signal(s3); end; Athlete4: begin wait(s3); Run 100m; end; parend; end 2、在公共汽车上,司机和售票员各行其职,司机负责开车和到站停车;售票员负责售票和开、关车门;当售票员关好车门后驾驶员才能开车行驶。试用wait和signal操作实现司机和售票员的同步。

相干检测载波恢复算法的概述

相干检测载波恢复算法的概述 摘要:随着互联网流量的日益增长,部署更高数据速率和大容量的光传输系统已成为势在必行。然而,偏振模色散和信道内的非线性效应使信号质量明显变差,基于直接检测系统将不再满足高质量的接收性能要求。前瞻性的研究进展明确指出,与数字信号处理(DSP)技术的结合将使相干检测技术更加具有吸引力。在相干检测DSP算法中,载波恢复是必不可少的。对调相信号,载波与本振间的频率和相位偏移会使信号产生较大的相位失真,为了保证信息的可靠传输,对载波频率偏移和相位偏移估计方法的研究与改进具有重要意义。 关键词:偏振模色散;光传输;相干检测;DSP;载波恢复 1、前言 在当今的信息化、网络化时代,随着社会科技水平的进步和人们生活水平的提高,人们对通信业务的需求及通信质量的要求越来越高。第四代移动通信系统(4G)在全球范围内已经广泛应用,它是一种能够提供多种类型、高质量的多媒体业务,可以实现全球无缝隙覆盖,具有全球漫游能力,并且与固定网络相互兼容,用终端设备可以在任何时候、任何地点与任何人进行任何形式通信的移动通信系统。然而随着技术的不断发展和用户对新业务的需求的不断提升,更高速、更高质量和超大容量成为了通信领域发展所追求的主要目标。 目前,电信正以惊人的速度在发展,而光纤通信是电信中发展最快、最具有活力的部分之一。在当前的通信网络构架中,光通信系统,特别是光纤通信系统在容量、速率和传输距离方面表现出强大的优势,使其逐渐占据了通信舞台的主角地位。在20世纪80年代末期和90年代初期,相干系统曾经是重要的技术,但在20世纪90年代末期,由于光放大器的出现,对相干系统的研究出现了停滞。近年来,随着数字信号处理(Digital Signal Processing,DSP)技术的发展和低成本器件的出现,使得相干接收技术的研究又开始火热起来,这主要是因为相干系统可在高数据速率条件下降低对接收机的要求以及相干接收所具有的一些独特优势。在相干检测中对于瞬时相位信息的保留使得在电域中对色散进行自适应补偿成为可能。此外,相干系统的有利之处还在于,光域的所有信息都可以在电域获得,因此,可以避免使用辅助的光调制与干涉方法进行检测,而在直接检测系统中必须使用这种方法,于是光域的复杂度就被转移到了电域。正由于相干检测的各种优势,特别是具备补偿光传输中多种损伤的能力,相干光研究曾活跃于上世纪九十年代。然后,由于缺乏相应的高速数字信号处理芯片的支持,

载波同步的设计与实现

目录 摘要 (1) 一、设计要求 (2) 二.设计目的 (2) 三.设计原理 (2) 3.1二进制移相键控(2PSK)原理 (2) 3.2载波同步原理 (3) 3.2.1直接法(自同步法) (4) 3.2.2插入导频法 (6) 四.各模块及总体电路设计 (7) 4.1调制模块的设计 (7) 4.2调制模块的设计 (10) 4.3载波同步系统总电路图 (12) 五.仿真结果 (13) 六.心得体会 (15) 参考文献 (16)

摘要 载波同步又称载波恢复(carrier restoration),即在接收设备中产生一个和接 收信号的载波同频同相的本地振荡(local oscillation),供给解调器作相干解调用。当接收信号中包含离散的载频分量时,在接收端需要从信号中分离出信号载波作为本地相干载波;这样分离出的本地相干载波频率必然与接收信号载波频率相同,但为了使相位也相同,可能需要对分离出的载波相位作适当的调整。若接收信号中没有离散载波分量,例如在2PSK信号中(“1”和“0”以等概率出现时),则接收端 需要用较复杂的方法从信号中提取载波。因此,在这些接收设备中需要有载波同步电路,以提供相干解调所需要的相干载波;相干载波必须与接收信号的载波严格地同频同相。 电路设计特点:载波提取电路采用直接法,即直接从发送信号中提取载波,电路 连线简单,易实现,成本低。 关键字:载波同步,EWB仿真,2PSK信号

?? 发送概率为 1-P

-cosω 180°, 号 2PSK 当恢复的相干载波产生180°倒相时,解调出的数字基带信号将与发送的数字基带信

载波同步算法程序

5.2.1 载波频偏的捕获 A .前导序列估计 由于发送端和接收端载波频率的不同,每一个采样信号在时间t 时包含一个未知的相位因素t f j c e ?π2,这里c f ?指的是未知的载波频偏。这个未知的相位因素在接收端必须被估计和补偿,否则子载波的正交性将会被破坏。例如,当载波频率为5GHz 时,那么100ppm 的晶振偏移相对应的频率偏移为50kHz 。若符号的间隔时期为6.12.3=?=T f us T c ,那么。 前面对IEEE802.11a 的分析,我们知道在它的帧结构中包含10个完全相同的短前导序列和两个相同的背靠背的长前导序列。其中短前导序列主要用于自动增益控制、分集选择、定时估计以及粗频率估计,而长前导序列主要用于信道估计和精确的频率估计。故结合这两个序列可以较精确的估计出载波的频偏,其中具体算法主要是利用它们良好的相关性[21]。首先设T f c ?=ρ,则两个长前导字的相关值为: ∑∑-=-=-=+= 1 2 10 2* | )(|)()(N l N l j l y e N l y l y J πρ (39) 因此我们可以估计出?? ???? =||arg 21*J J πρ,这里的)(l y 指的是接收信号。 然而我们知道实际ρ的值会比1大(如前面提到的100ppm 的晶振偏移对应 的ρ为1.6),而长前导对其估计只能限制在5.0±内,故必须使用短前导字对其进行粗频率估计。短前导字的相关值为: ∑∑-=--==+= 14/0 2 4 /21 4/0 * | )(|)4/()(N l j N l l y e N l y l y K πρ (40) 故可以得到? ? ????=||arg 214 *K K π ρ,可见短前导字的估计范围扩大到长前导字估计范围的4倍,也就是说精频偏估计的精度为粗频偏估计的4倍。结合上面提到的粗估

Windows下进程同步与互斥

实验进程同步与互斥 一、实验目的 1.掌握基本的同步与互斥算法,理解生产者消费者模型。 2.学习使用Windows 2000/XP中基本的同步对象,掌握相关API的使用方法。 3.了解Windows 2000/XP中多线程的并发执行机制,实现进程的同步与互斥。 二、实验内容及要求 1.实验内容 以生产者/消费者模型为依据,在Windows 2000环境下创建一个控制台进程,在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。 2.实验要求 ●学习并理解生产者/消费者模型及其同步/互斥规则; ●学习了解Windows同步对象及其特性; ●熟悉实验环境,掌握相关API的使用方法; ●设计程序,实现生产者/消费者进程(线程)的同步与互斥; ●提交实验报告。 三、相关知识介绍 1.同步对象 同步对象是指Windows中用于实现同步与互斥的实体,包括信号量(Semaphore)、互斥量(Mutex)、临界区(Critical Section)和事件(Events)等。本实验中使用到信号量、互斥量和临界区三个同步对象。 同步对象的使用步骤: ●创建/初始化同步对象。 ●请求同步对象,进入临界区(互斥量上锁)。 ●释放同步对象(互斥量解锁)。 这些对象在一个线程中创建,在其他线程中都可以使用,实现同步与互斥。 2.相关API的功能及使用 我们利用Windows SDK提供的API编程实现实验题目要求,而VC中包含有Windows SDK的所有工具和定义。要使用这些API,需要包含堆这些函数进行说明的SDK头文件——最常见的是Windows.h(特殊的API调用还需要包含其他头文件)。 下面给出的是本实验使用到的API的功能和使用方法简单介绍。 (1) CreateThread ●功能——创建一个在调用进程的地址空间中执行的线程 ●格式 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress,

载波同步系统设计

课程设计任务书 学生姓名:陈德松专业班级:电信0901 指导教师:苏扬工作单位:信息工程学院 题目:载波同步系统设计 初始条件: 具备通信课程的理论知识;具备模拟与数字电路基本电路的设计能力;掌握通信电路的设计知识,掌握通信电路的基本调试方法;自选相关电子器件;可以使用实验室仪器调试。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1、从输入载波128KHz2PSK信号中提取载波信号; 2、对系统各个组成部分与模块进行设计,包括乘法器电路, 选频放大器,带通滤波器等; 3、安装和调试整个电路,并测试出结果; 4、进行系统仿真,调试并完成符合要求的课程设计书。 时间安排: 二十二周一周,其中3天硬件设计,2天硬件调试 指导教师签名:年月日系主任(或责任教师)签名:年月日

目录 摘要................................................................ I 1. 二进制移相键控(2PSK)原理.. (1) 2.载波同步原理 (3) 2.1直接法(自同步法) (3) 2.2插入导频法 (5) 3.各模块及总体电路设计 (7) 3.1 调制模块的设计 (7) 3.3载波提取电路 (11) 3.4载波同步系统总电路图 (13) 4.仿真结果 (14) 5.心得体会 (16) 参考文献 (17)

摘要 载波同步又称载波恢复(carrier restoration),即在接收设备中产生一个和接收信号的载波同频同相的本地振荡(local oscillation),供给解调器作相干解调用。当接收信号中包含离散的载频分量时,在接收端需要从信号中分离出信号载波作为本地相干载波;这样分离出的本地相干载波频率必然与接收信号载波频率相同,但为了使相位也相同,可能需要对分离出的载波相位作适当的调整。若接收信号中没有离散载波分量,例如在2PSK信号中(“1” 和“0” 以等概率出现时),则接收端需要用较复杂的方法从信号中提取载波。因此,在这些接收设备中需要有载波同步电路,以提供相干解调所需要的相干载波;相干载波必须与接收信号的载波严格地同频同相。 电路设计特点:载波提取电路采用直接法,即直接从发送信号中提取载波,电路连线简单,易实现,成本低。 关键字:载波同步,EWB仿真,2PSK信号

进程同步典型例题(操作系统)

进程同步练习题 1.在公共汽车上,司机和售票员的工作流程如图所示。为保证乘客的安全,司机和售票员应密切配合协调工作。请用信号量来实现司机与售票员之间的同步。 司机 售票员 图司机和售票员工作流程图 2.桌子上有一只盘子,盘子中只能放一只水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。用PV操作实现他们之间的同步机制。 3.a,b两点之间是一段东西向的单行车道,现要设计一个自动管理系统,管理规则如下:(1)当ab之间有车辆在行驶时同方向的车可以同时驶入ab段,但另一方向的车必须在ab 段外等待; (2)当ab之间无车辆在行驶时,到达a点(或b点)的车辆可以进入ab段,但不能从a 点和b点同时驶入; (3)当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进入ab段时,应让另一方向等待的车辆进入ab段行驶。 请用信号量为工具,对ab段实现正确管理以保证行驶安全。 4.将只读数据的进程称为“读者”进程,而写或修改数据的进程称为“写者”进程。允许多个“读者”同时读数据,但不允许“写者”与其他“读者”或“写者”同时访问数据。另外,要保证:一旦有“写者”等待时,新到达的“读者”必须等待,直到该“写者”完成数据访问为止。试用P、V操作正确实现“读者”与“写者”的同步。(第二类读者写者问题,信号量解决方法) 5.一条河上架设了由若干个桥墩组成的一座桥。若一个桥墩只能站一个人,过河的人只能沿着桥向前走而不能向后退。过河时,只要对岸无人过,就可以过。但不允许河对岸的两个人同时过,以防止出现死锁。请给出两个方向的人顺利过河的同步算法。

相关文档
最新文档