数字通信原理-基于Matlab仿真计算

Citation preview

数字通信原理 -基于 Matlab 仿真计算

曾峰 [email protected]

You can distribute this document freely, please DO NOT change it in any way.

February 07

前言 2007 雄关漫道真如铁,而今迈步从头越。 从头越,苍山如海,残阳如血。 毛泽东 《忆秦娥•娄山关》 时间又过一年,现在已是 07 年了。在过去的一年,本书完善了两个章节,分别是第二 章信道、噪声与干扰、第五章解调-白高斯噪声信道。这两章与去年推出的三章共同构成了 本书的基础部分,也是本书的第一部分。在这五章内,希望读者能够对通信的基本知识有所 了解,当然,如果写得错漏之处,欢迎读者来信批评指正。 在以后的时间内,将开始第二部分的编写工作,第二部分将主要讲解同步技术与信道估 计技术。在第一部分讲解 AWGN 信道下的解调时,假设接收机已完成同步。那么第二部分 将把这个假设变成现实,同时信道估计是时变信道环境下接收机必须具备的功能,所以也将 讨论信道估计技术。 1930 年,为了克服教条主义倾向,毛主席在《反对本本主义》开篇写到“没有调查, 没有发言权” ,这句话我想同样适用于通信系统的接收机的构造。 既然调查就要找准调查的对象,这个过程在通信系统的解调过程中就是通过同步过程找 到正确的输入信号,这个过程包括载波同步、符号同步过程,否则南辕北辙是不可能解调出 正确的信号。 在同步之后,也就是建立了正确的调查基础之后,开始执行调查过程,这个过程在通信 系统的解调过程中就是通过信道估计来判断信道对输入信号的影响,为以后解调过程提供必 要的参考依据。 调查之后,就是获得发言权的过程。在这个过程中,利用信道估计的输出参数做为后续 的解调过程的输入参数,这样解调器可以充分利用信道状态信息来提高正确判断发射机的输 出信号概率。 所以在本书的第三部分,将讲解如何利用信道估计做自适应均衡,自适应匹配滤波、自 适应调制等。 这样本书将淘汰关于信道编解码过程的讨论,原先三部分的结构变成现在的三部分结 构,这样的三部分依然可以看成是一个完整的体系。 通信系统正在向多载波、自适应方向发展,追求更高的流量、更智能的平衡、更稳定的 质量。这个过程中,信道估计是智能化、稳定化的基石,所以对信道估计必须有所了解。 本书的创作过程也是对通信系统更深入理解的过程,本书之所以这样变动是基于以往的 认识,也是基于时间、精力的限制。对个人而言,这样的创作过程也是一个挑战,所以在本 文开头引用毛主席的诗词表达个人感想,希望能更加努力来完成本书的创作,也希望能与同 好相互交流同步、信道估计技术,共同进步。

If you have any suggestion or criticism, please email to [email protected]

I

前言 2006 写书动机 本书前言我也不知道该说些什么,先说说为啥写这本书吧。写这本书的创作冲动源于用 Verilog 写完卷积码编解码以后,那时想不来用 Verilog 再做些什么?Verilog 功能强劲,但是 面对庞大复杂的通信系统,用它也只能做其中某些的事情。所以放下 Verilog,还是想读些 通信书籍,温故而知新,所谓拳不离手,曲不离口。可读书不练,难以学得深入,然后想到 仿真,而在读研时,也学过 Matlab 仿真课程,这就是就是本书的由来。 长期学习通信类书籍或许源于心底的愿望。原毕业于通信专业院校,在校期间学过通信 原理、数字信号处理等通信专业课程。可现在回顾以往的工作经历,在通信行业工作多年却 始终未能从事通信信号处理有关的研发。愿望与现实的失配让人难受,我想这种感受的很多 人都会有,做自己想做的事情是一种幸福。既然难以在工作中实现个人愿望,那只好在通信 理论、仿真软件中实现,这也就是写这本书的动机之一。 写这本书的另外一个动机或许是因为身为人父,这种感觉给我坚持写完这本书的动力。 很难说清楚这种感觉,可能潜意识里希望孩子是个有毅力的人,那我首先希望自己是个有毅 力的人。白天在公司上班,晚上在家写书,但只能用部分业余时间写书。如果我还是单身, 我也许会选择晚上看电视,早上睡到将要迟到才起床,做事只有两三天的热情,这样生活很 是懒散惬意,可惜离我很远了。 这就是我写这本书的两个动机。如果读者觉得本书写得还可以,那么请写信给我些建议、 工作机会。如果觉得写得不行,那么请写信给我些批评。我在这里先谢谢了。 本书将分为三部分上载,第一部分主要讲解调制技术,第二部分主要讲解解调技术,第 三部分主要讲解信道信源编解码技术。现在上载的是第一部分,其余部分以后写完也会上载。 本书说明: 为了节省篇幅,本书中的代码都不提供参数解释,但是代码会提供英文注释(Matlab 不支持中文注释) 。也希望读者能使用 Matlab 运行程序,切实体会一下,多查帮助文档。 本书也将尽量使用 Matlab 的基本语法来实现算法,这样可以避免将所要实现的功能隐 藏在函数之下,而让读者不知道是如何实现的。当然某些不是很重要的内容,例如随机数的 生成等,还是使用 Matlab 已提供的函数。 学习本书最好以前使用过 Matlab,如果没有使用过,推荐学习张智勇老师编写的 《Matlab6.5》 。另外最好也学习过概率论、随机过程、数字信号处理等内容。 本书读者对象: 希望本书适合做为在校学习通信专业的本科生、研究生的教学辅导资料,也适合做为在 职工程师学习、掌握通信处理技术的辅导资料。 本书特色: 本书将通信处理技术用代码的形式表现出来,这样学习本书的读者可以通过代码来加深 对理论知识的理解。避免学习通信理论知识,却无法在实践中应用。通信技术是在实践中不 断发展完善起来的,也应该在实践中学习使用。只是没有人能够有如此幸运,能够在工程实 践中接触到通信技术的所有方面。现在 Matlab 提供了强劲的运算平台,可以在这个平台上 进行仿真运算。 此外,从事工程应用的工程师可以将代码转换成 C、Verilog 等语言,以运行于不同的 环境下。目前 Matlab 也在加强对其它语言的支持,能够将 Matlab 的语言自动翻译成 C 或者 Verilog。 联系方式: 关于本书,有任何建议、批评,欢迎写信到 [email protected],谢谢!

If you have any suggestion or criticism, please email to [email protected]

I

目录 第一章 基础知识............................................................................................................................. 1 1.1 概率论............................................................................................................................... 1 1.1.1 样本空间与概率............................................................................................................. 1 1.1.1.1 概率基本运算...................................................................................................... 2 1.1.2 随机变量及其统计特性................................................................................................. 3 1.1.2.1 随机变量的统计特征.......................................................................................... 5 1.1.2.2 常用分布函数...................................................................................................... 6 1.2 随机过程......................................................................................................................... 12 1.2.1 随机过程定义及其统计特征....................................................................................... 13 1.2.2 高斯随机过程............................................................................................................... 14 1.2.3 平稳随机过程............................................................................................................... 16 1.2.4 马尔可夫随机过程....................................................................................................... 17 1.3 信号与系统..................................................................................................................... 19 1.3.1 信号分类、运算与系统描述....................................................................................... 19 1.3.2 离散系统时域分析....................................................................................................... 25 1.3.3 离散系统频域分析....................................................................................................... 27 第二章 信道、噪声与干扰........................................................................................................... 35 2.1 AWGN 信道.............................................................................................................................. 35 2.2 带限信道 ................................................................................................................................. 39 2.3 衰落信道 ................................................................................................................................. 41 第三章 通信信号设计................................................................................................................... 50 3.1 信号交织 ................................................................................................................................. 50 3.1.1 分组交织器................................................................................................................... 50 3.1.2 卷积交织器................................................................................................................... 52 3.2 脉冲成型 ................................................................................................................................. 53 3.2.1 奈奎斯特准则............................................................................................................... 54 3.2.2 升余弦滤波器............................................................................................................... 57 3.2.3 部分响应....................................................................................................................... 61 3.3 扩频序列 ................................................................................................................................. 64 3.3.1 m 序列 ........................................................................................................................... 67 第四章 调制技术........................................................................................................................... 69 4.1 幅度调制 ................................................................................................................................. 69 4.1.1 BASK............................................................................................................................. 69 4.1.2 MASK............................................................................................................................ 74 4.1.3 QAM .............................................................................................................................. 76 4.2 相位调制 ................................................................................................................................. 78 4.2.1 PSK ................................................................................................................................ 78 4.2.2 OQPSK .......................................................................................................................... 80 4.3 频率调制 ................................................................................................................................. 81 4.3.1 BFSK ............................................................................................................................. 81 4.3.2 MFSK............................................................................................................................. 84 4.3.3 CPM ............................................................................................................................... 86 4.3.3.1 CPM .................................................................................................................... 86 If you have any suggestion or criticism, please email to [email protected]

I

4.3.3.2 CPFSK ................................................................................................................ 86 4.3.3.3 MSK.................................................................................................................... 88 4.4.4 OFDM............................................................................................................................ 91 第五章 解调-白高斯噪声信道................................................................................................... 94 5.1 解调器 ..................................................................................................................................... 94 5.1.1 相关解调器................................................................................................................... 94 5.1.2 匹配滤波器................................................................................................................... 96 5.2 检测器 ................................................................................................................................... 100 5.2.1 最大似然准则............................................................................................................. 100 5.2.2 最大后验概率准则..................................................................................................... 101 5.2.3 最大似然序列判决..................................................................................................... 102 5.3 幅度调制解调........................................................................................................................ 105 5.3.1 BASK........................................................................................................................... 105 5.3.2 MASK.......................................................................................................................... 107 5.3.3 QAM ............................................................................................................................ 108 5.4 相位调制解调........................................................................................................................ 110 5.4.1 PSK .............................................................................................................................. 110 5.4.1.1 相干解调.......................................................................................................... 110 5.4.1.2 非相干解调...................................................................................................... 112 5.4.2 OQPSK ........................................................................................................................ 115 5.5 频率调制解调........................................................................................................................ 116 5.5.1 BFSK ........................................................................................................................... 116 5.5.1.1 相干解调........................................................................................................... 116 5.5.1.2 非相干解调...................................................................................................... 119 5.5.2 MFSK........................................................................................................................... 123 5.5.3 CPM ............................................................................................................................. 127

If you have any suggestion or criticism, please email to [email protected]

II

第一章 基础知识 本书主要讨论基本的数字通信技术,但在讨论数字通信技术之前,有必要回顾一下有关 的基础知识。对基础知识的回顾将非常有助于对数字通信技术的理解,我们从第二章开始讨 论数字通信技术。 本章主要讨论数字通信中需要使用的基础知识,这包括概率论、随机过程、信号与系统 等基础知识。如果以前学习过上述基础知识,可以跳过本章。 概率论是信号判决的基础理论知识,例如似然判决,MAP 算法等都需要使用概率论知 识。随机过程会在通信信号处理中遇到,例如传输信号的发送,加性高斯白噪声都是随机过 程,又例如 Viterbi 解码可以认为是马尔可夫随机过程。信号与系统是可以用于对接收的信 号进行滤波,信道估计、均衡、频率分析等方面。 另外,本章也将介绍一些常用的 Matlab 函数,利用这些函数可以生成随机数,并对这 些随机数做一阶、二阶统计分析。 1.1 概率论 本节分为两部分,第一部分简要介绍概率及其运算,第二部分讨论随机变量及其统计特 性。 1.1.1 样本空间与概率 我们能接触到的各种事件,可以分为两类,一类是事先就可以预知的,会确定发生的, 例如四季更替,春种秋收;另一类是无法事先预知的,随机发生的,例如掷骰子、抛硬币等。 我们把前一类称为确定事件,后一类称为随机事件。一个随机事件的所有可能取值集合称为 样本空间。例如掷骰子,可能得到从 1 到 6 点,那么其样本空间用集合表示就是[1, 6], 具体是那个数值,则无法事先知道。通信也是一个随机性事件,因为不可能预知送到发射机 的下一比特是 0 还是 1。如果能预知,那么各种复杂而又昂贵的通信设备就不需要了。既然 样本空间可以用集合表示,那么集合的运算也适用于样本空间,这些运算包括求和运算,交 集运算,包含关系等。 虽然无法事先确定掷骰子所得到的点数,但是取其中某个值的可能性却是可以知道的, 为 1/6,我们称这个为概率。用 Ω = [1, 6 ] 表示掷骰子所有取值的集合,A 表示其中一个取 值,则 P ( A ) = 1 6 , P ( A ) 就是概率,以下就是概率的古典定义。 如果一个随机事件由有限个基本事件组成,每个事件的发生是等可能的,那么基本事件 的全体就记为 Ω ,如果随机事件重复 n 次,其中 k 次为相同的基本事件,用 A 代表,则事 件 A 的概率,记作 P ( A ) 。当重复次数 n 足够大,则 P ( A ) = k n 。 %Sample Space omega = [1, 6]; %Generate 1 row, 100 column random number for sample space number = 100; s = randint(1, number, omega); %Get the sum of random number equals to 6 total = sum(s == 6); %Calculate the Probability P1 = total/number; %Same as the previous, but 1 row, 1000 column If you have any suggestion or criticism, please email to [email protected]

1

number = 1000; s = randint(1, number, omega); total = sum(s == 6); P2 = total/number; 概率有如下性质 1. 0 ≤ P ( A ) ≤ 1 随机事件 A 发生的概率介于 0 与 1 之间,如果等于 0,表示不可能事件;如果等于 1,表示必然事件 2.

若 A ⊆ B ,则 P ( A) ≤ P (B )

3.

如果随机事件 A 包含在随机事件 B 中,即随机事件 B 发生,则随机事件 A 必然发 生,但是随机事件 A 发生,随机事件 B 不一定发生。那么随机事件 A 发生的概率 必然小于随机事件 B 发生的概率 P ( A U B ) = P ( A ) + P (B ) − P ( A I B ) 两个随机事件 A、B 发生的概率等于 A 发生的概率加上 B 发生的概率减去 A、B 同 时发生的概率。如果 A、B 不可能同时发生,则 P ( A U B ) = P ( A ) + P (B )

1.1.1.1 概率基本运算 条件概率 在已知随机事件 B 发生的情况下,求随机事件 A 发生的概率称为条件概率。 P (A B ) =

P( A I B ) P(B )

(P(B ) > 0)

P (A B ) = 0

(P(B ) = 0)

由上述公式可以看出,如果 P(B)大于零,则 P(A|B)等于 A、B 都发生的概率除以 B 发 生的概率。 独立性公式 P ( A I B ) = P ( A )P (B )

如果,随机事件 A、B 同时发生的概率等于 A 发生的概率乘以 B 发生的概率,则称随 机事件 A、B 相互独立。 全概率公式 P (A ) =

  Bi I B j = φ , i ≠ j; 

∑ P (A B )P (B ) n

i

i

i =1

n  U Bi = Ω  i =1 

如果已知随机事件 A 与 Bi 的条件概率,随机事件 Bi 的概率,则可以通过求和运算得到 随机事件 A 的概率。 贝叶斯公式 P (B i A ) =

P (B i )P ( A B i )

n

∑ P (A B )P (B ) i

  Bi I B j = φ , i ≠ j; 

n  U Bi = Ω  i =1 

i

i =1

由上式可以看出其分母使用全概率公式计算出 P(A),分子是条件概率的变形求出 A、B 同时发生的概率。 在数字通信中,可以将 P(A)理解为在接收端观察到的某个信号发生概率。如果已知某 个信号在接收端的概率,则可以通过上式求出 P(Bi|A),这里称 P(Bi|A)为后验概率,因为这 个概率是通过接收端的信号发生概率反推出发送端的信号发生概率,取概率最大的信号认为 是在发送端输出的信号。 If you have any suggestion or criticism, please email to [email protected]

2

上式中概率 P(A|Bi),称为似然概率,表示如果在发送端发送信号 Bi,通过信道干扰后, 在接收端收到信号 A 的概率。如果 P(A|Bi)等于 1,表示接收端收到的信号 A 就是发送端发 送的信号 Bi,不过如此理想的似然概率在现实世界中很少存在,特别是在无线环境下。 另外,还有一个概率 P(Bi),称为先验概率,表示在发送端发送信号 Bi 的概率。通常在 接收端认为发送信号 Bi 是先验等概的。 现在举例来说明,设有下图所示的一个二进制对称信道,图左边圆圈代表发送端,右边 圆圈代表接收端,直线上的小数分别代表从发送端到接收端的似然概率。假设现在收到信号 A1,那么我们来求其后验概率。

图 1-1 PB1 = 0.5; %Probability of sending B1 PB2 = 0.5; %Probability of sending B2 PA1B1 PA2B2 PA2B1 PA1B2

= = = =

0.9; 0.9; 0.1; 0.1;

%Probability %Probability %Probability %Probability

of of of of

Send Send Send Send

B1, B2, B1, B2,

Receiving Receiving Receiving Receiving

A1 A2 A2 A1

%Calculate the Probability of Receiving PA1 denominator = PB1.*PA1B1 + PB2.*PA1B2; %Calculate the Post-Probability of B1 PB1A1 = PB1.*PA1B1/denominator; %Calculate the Post-Probability of B2 PB2A1 = PB2.*PA1B2/denominator; 运算后可以得到 PB1A1 要大于 PB2A1, 这说明在发送端发送 B1 的可能性要远大于 B2, 从而我们可以判决接收到的信号为 B1,恢复出信源发送的信息。 另外,观察对 PB1A1、PB2A1 的计算可以看出,由于 PB1、PB2 先验等概,分母都是 相同的,所以 PB1A1、PB2A1 是似然函数 PA1B1、PA1B2 的等比例缩放。也就是说,在先 验等概的情况下,利用求最大后验概率做判决等价与使用最大似然概率做判决。 1.1.2 随机变量及其统计特性 上节所述都是从概率的角度来叙述的,本节我们引入随机变量的概念。 每次试验的结果都可以用一个变量ξ 来表示,这个变量的取值是随机变化的,但是又服 从一定的概率分布,这个变量就称为随机变量。例如上例中的二进制对称信道模型中 A1、 A2 都是随机变量,其取值可能是 B1 或 B2,但取 B1、B2 的可能性却不同。 在定义随机变量后,我们可以定义分布函数,进而定义概率密度。 给定随机变量,其取值小于 ξ 等于实数 x 的概率 P(ξ ≤ x ) 是关于 x 的函数,称为随机变 量 ξ 的分布函数,一般记作 F (x) , F ( x ) = P(ξ ≤ x)

(− ∞ < x < ∞) 。

分布函数具有如下性质: 1.

lim F (x ) = 1

x →∞

lim F ( x ) = 0

x →−∞

If you have any suggestion or criticism, please email to [email protected]

3

2.

P(a < ξ ≤ b ) = F (b ) − F (a )

3.

如果 x1 < x 2 ,则 F ( x1 ) ≤ F (x 2 )

分布函数可以分为两类,当随机变量ξ 是离散型随机变量时,这类分布函数被称为离散 分布函数;当随机变量ξ 是连续型随机变量式时,这类分布函数被称为连续分布函数。 当随机变量ξ 是离散型随机变量,设ξ 可能取值为 x k (k = 1,2,L) ,则 ξ 取其中某个值的 概率为 P(ξ = x k ) = p k 。 p k 被称为概率分布,它具有如下性质: 1.

pk ≥ 0

2.

∑p

k

=1

k

3.

F (x) =

∑p

k

xk < x

如果随机变量ξ 连续型随机变量,则其分布函数 F ( x ) =



x

−∞

p(t )dt ,其中 p(t ) 被称为概率

密度。概率密度具有如下性质: 1.

p(t ) ≥ 0

2.



3.

P{x1 < x ≤ x 2 } =

4.



−∞

p(t )dt = 1

p(t ) =



x2

x1

p(t )dt

dF (x ) dx

以上都是头论当随机变量只有一个的情况,当随机变量有两个或两个以上的时,就要引 入联合分布函数的概念。 每次试验的结果都可以用 n 个变量 ξ1 , ξ 2 ,L, ξ n (n ≥ 2) 来表示,每个变量的取值是随机 变化的,但是又服从一定的概率分布,这个变量就称为 n 维随机变量。 若 (x1 , x 2 , L, x n ) 是 n 维 样 本 空 间 中 的 一 点 , 且 ξ1 ≤ x1 , ξ 2 ≤ x 2 ,L, ξ n ≤ x n , 则 F ( x1 , x 2 , L, x n ) = P(ξ1 ≤ x1 , ξ 2 ≤ x 2 ,L, ξ n ≤ x n ) 称为联合分布函数。 如果 F ( x1 , x 2 , L, x n ) = P(ξ1 ≤ x1 , ξ 2 ≤ x 2 ,L, ξ n ≤ x n ) = P(ξ1 ≤ x1 ) P(ξ 2 ≤ x 2 )L P(ξ n ≤ x n ) , 则 ξ1 , ξ 2 ,L , ξ n 是相互独立的。 如果保留 m(m b )

其均值、方差分别为 a+b (b − a )2 , D(ξ ) = 2 12 下面的代码用于生成均匀分布随机变量,并求其均值、方差。 E (ξ ) =

%Parameters Setting a = 0; b = 1; % X axis x = -10:0.1:10; %Get Continuous uniform cumulative distribution and drawing cdf = unifcdf(x, a, b); subplot(2, 1, 1); plot(x, cdf); title('Continuous uniform cumulative distribution'); %Get Continuous uniform probability density and drawing If you have any suggestion or criticism, please email to [email protected]

7

pdf = unifpdf(x, a, b); subplot(2, 1, 2); plot(x, pdf); title('Continuous uniform probability density') %Generate the Random numbers from the continuous uniform distribution R = unifrnd(0, 1, 1, 1000); %Get the average value E = mean(R); %Get the Covariance value D = cov(R); 通过手工计算可以得到均值为 0.5,方差为 0.0833,这与运行结果很接近。

3 高斯分布 如果随机变量服从高斯分布,则随机变量在样本空间上主要分布于其均值附近,越远离 均值取值的可能性越小,则其分布具有如下的概率密度函数: p(ξ ) =

 − (ξ − u )2 exp 2 2π σ  2σ 1

   

其均值为 µ ,方差为 σ 2 。 下面的代码用于生成均匀分布随机变量,并求其均值、方差。 % Parameters Setting u = 0; sigma = sqrt(2); If you have any suggestion or criticism, please email to [email protected]

8

%Calculate the CDF & Drawing x = -10:0.1:10; cdf = normcdf(x, u, sigma); subplot(2, 1, 1); plot(x, cdf); %Calculate the PDF & Drawing title('Normal cumulative distribution'); pdf = normpdf(x, u, sigma); subplot(2, 1, 2); plot(x, pdf); title('Normal probability density') %Generate the randoms & Calculate the mean, covariance R = normrnd(u, sigma, 1, 1000); E = mean(R); D = cov(R); 此高斯分布的均值为 0,方差为 2,这与运行结果很接近。

4 χ 2 分布 如果 χ 服从高斯分布,那么 χ 的平方所服从的分布被称为 χ 2 分布。如果 χ 的均值为 0, 则被称为中心 χ 2 分布,如果如果 χ 的均值不为 0,则被称为非中心 χ 2 分布。其概率密度函 If you have any suggestion or criticism, please email to [email protected]

9

数如下:  n −1 − x  x2 e 2  n p x 2 (x ) =  2  n   2 Γ 2     0 

x>0 x≤0

其均值为 n ,方差为 2n 。 下面的代码用于生成中心 χ 2 分布随机变量,并求其均值、方差。 %Parameter Setting chi = 2; %X Axis x = -10:0.1:10; %Generate Chi-square cumulative distribution & Drawing cdf = chi2cdf(x, chi); subplot(2, 1, 1); plot(x, cdf); title('Chi-square cumulative distribution'); %Generate Chi-square probability density & Drawing pdf = chi2pdf(x, chi); subplot(2, 1, 2); plot(x, pdf); title('Chi-square probability density') %Generate the randoms & Calculate the mean, covariance R = chi2rnd(chi, 1, 1000); E = mean(R); D = cov(R); 此 χ 2 分布的均值为 2,方差为 4,这与运行结果很接近。

If you have any suggestion or criticism, please email to [email protected]

10

图中当 x 小于零时, x 的概率密度等于零,这与其定义相符合。 5 瑞利分布 如果随机变量等于两个中心 χ 2 随机变量和的平方根,即 ξ = χ12 + x 22 ,则该随机变量 的分布就是瑞利分布。其概率密度函数如下:  − ξ2  ξe 2 µ 2 p R (ξ ) =  2  µ  0

(ξ ≥ 0) (ξ < 0)

其均值、方差分别为: E (ξ ) =

π 4−π 2 µ , D(ξ ) = µ 2 2

下面的代码用于生成瑞利分布随机变量,并求其均值、方差。 %Program Setting mu = 2; %Calculate the CDF & Drawing x = -10:0.1:10; cdf = raylcdf(x, mu); subplot(2, 1, 1); plot(x, cdf); title('Rayleigh cumulative distribution ');

If you have any suggestion or criticism, please email to [email protected]

11

%Calculate the PDF & Drawing pdf = raylpdf(x, mu); subplot(2, 1, 2); plot(x, pdf); title('Rayleigh probability density') %Generate the rayleigh randoms & Calculate its mean, covariance R = raylrnd(mu, 1, 1000); E = mean(R); D = cov(R); 此分布的均值为 2.5,方差为 1.7, ,这与运行结果很接近。

6 莱斯分布 如果随机变量等于两个非中心 χ 2 随机变量和的平方根,即 ξ = χ12 + x 22 ,则该随机变 量的分布就是莱斯分布。其概率密度函数如下:  −ξ 2 + s2  ξe 2σ 2 I 0  ξs   σ 2  p R (ξ ) =   σ2  0

(ξ ≥ 0) (ξ < 0)

待补 1.2 随机过程 本节首先讨论随机过程及其统计特性,然后分类讨论常用的随机过程,包括高斯随机过 If you have any suggestion or criticism, please email to [email protected]

12

程、平稳随机过程以及 Markov 过程。 1.2.1 随机过程定义及其统计特征 前节讨论的对象都是随机变量,本节开始讨论随机过程,通信过程可以认为就是一个随 机过程。 所谓过程就是事物发展所经过的阶段,这自然是与时间是有关系的。从数学的观点来看, 如果在某个时刻 t,其结果是确定的,则这类过程被称为确定性过程。也就是可以找到一个 函数以时间 t 为自变量,来求得一个确定的因变量。例如,用一个阶跃信号冲激线性时不变 系统,所得到就是一个确定性过程。 如果在某个时刻 t,其结果不是确定的,则这类过程被称为随机过程。也就是说,重复 多次试验,在相同的时刻得到的结果是不同的。例如,收音机晚上收到的电台数目就可能比 白天收到的电台数目多,这并不是因为某些电台白天就不播音,而是由于无线信道的变化使 然,因为无线信道是个时变信道,其变化通常是随机的。 如果随机系统输出的随机变量是关于时刻 t 的函数,在时间范围 T 内,所有的输出都是 随机变量,则 {ξ (t ), t ∈ T } 是一个随机过程。 下面分别定义随机过程的均值、方差、自相关、协方差。 如果 ξ (t ) 是一个随机过程, f ( x, t ) 是其概率密度函数,则其均值为 µ (t ) =





−∞

xf ( x, t )dx

均值表示随机过程在时刻 t 的平均值。 方差为 σ 2 (t ) =





−∞

(x − µ (t ))2 f (x, t )dx

方差表示随机过程在时刻 t 与均值 µ (t ) 的偏离程度。 如果求参数 t1,t2 随机过程间的联系,可以定义自相关为 R(t1 , t 2 ) =



∫ ∫



−∞ −∞

x1 x 2 f ( x1 , x 2 ; t1 , t 2 )dx1dx 2

协方差为 C (t1 , t 2 ) =





∫ ∫ [x −∞ −∞

1

− µ (t1 )][x 2 − µ (t 2 )] f (x1 , x 2 ; t1 , t 2 )dx1 dx 2

下面的程序生成三个随机序列,并求其均值、方差 %Generate randoms t = 0:0.01:1; r = randint(3, length(t), 8); %Calculate the mean and covariance e = mean(r); tao = diag(cov(r))'; %Drawing hold plot(t, r(1,:)); If you have any suggestion or criticism, please email to [email protected]

13

plot(t, r(2,:)); plot(t, r(3,:)); plot(t, e, 'r'); plot(t, tao, 'y'); 1.2.2 高斯随机过程 如果随机过程 {ξ (t ), t ∈ T } 的有限维分布都服从正态分布,则称该随机过程为高斯随机过 程。 高斯随机过程的概率密度函数为 f ( x1 , x 2 , L, x n ; t1 , t 2 ,L, t n ) =

  1 t exp− (x − m) C −1 ( x − m ) 2   n

1

(2π ) 2 C 2

其中  mt1  m  t m= 2  M    mtn   C (t1 , t1 ) C (t1 , t 2 ) L C (t 2 , t n ) C (t , t ) C (t , t ) L C (t , t ) 2 1 2 2 2 n  C=   M M M   C (t n , t1 ) C (t n , t1 ) L C (t n , t n ) 例如下面的代码生成三个随机过程,然后求其均值、协方差。 %Generate randoms t = 0:0.01:1; r = randint(3, length(t), 8); %Calculate the mean and covariance m = mean(r); C = cov(r); 将运算结果带入到上面的概率密度函数公式中,就可以得到该随机过程的概率密度函 数。 设 X (t ) ,Y (t ) 是两个零均值的高斯随机变量,如果 X (t ) ,Y (t ) 独立同分布,则对任意的 t1 , t 2 ∈ T 有 E{X (t1 )Y (t 2 )} = 0 。反之,如果对任意的 t1 , t 2 ∈ T 有 E{X (t1 )Y (t 2 )} = 0 ,则 X (t ) ,Y (t ) 独立同分布。 此外,如果 X = ( X 1 , X 2 ,L, X n ) 表示 n 维高斯随机变量,则对任意不全为零的实数 λ1 , λ2 , L λn ,有 Y = λ1 X 1 + λ2 X 2 + L + λn X n 为一维高斯随机变量。 对于高斯随机过程,讨论两个常见的情况。第一种情况是接收机的输入为窄带平稳实随 If you have any suggestion or criticism, please email to [email protected]

14

机过程。设 ξ (t ) 为窄带平稳实随机过程,则该过程可以表示为: ξ (t ) = x c (t ) cos ω 0 t + x s (t ) sin ω 0 t 其中 xc (t ) = ξ (t ) cos ω 0 t + ξˆ(t ) sin ω 0 t , x s (t ) = ξ (t ) sin ω 0 t − ξˆ(t ) cos ω 0 t , ξˆ(t ) 是 ξ (t ) 的希尔 伯特变换。因为 xc (t ) , x s (t ) 都是 ξ (t ) 经过线性运算所得,根据前述可知, xc (t ) , x s (t ) 也是 高斯随机过程并且是相互统计独立的。如果 ξ (t ) 的均值为 0,方差为 σ 2 ,则 xc (t ) , x s (t ) 均 值为 0,方差为 σ 2 。 xc (t ) , x s (t ) 的联合概率密度函数为: f ( xc , x s ) = f (x c ) f (x s ) =

 xc2 + x s2 1 − exp  2πσ 2 2σ 2 

   

随机过程 ξ (t ) 也可以表示为 ξ (t ) = V (t ) cos (ω0 t + θ ) 其中 xc (t ) = V (t ) cos θ , x s (t ) = −V (t ) sin θ 。这样其概率密度函数也可以表示为: f (V , θ ) =

 V2 V − exp  2σ 2 2πσ 2 

   

则可以得到 f (V ) =





0

f (V ,θ )dθ =

f (θ ) =





−∞

 V2 V − exp  2σ 2 σ2 

   

f (V ,θ )dV = 1 2π

上式说明随机过程 ξ (t ) 的包络服从瑞利分布,而相位服从均匀分布。包络的均值为 π  2 π σ ,方差为  2 − σ 2 。另外 f (V , θ ) = f (V ) f (θ ) ,也就是包络与相位是相互统计独立的 2  随机变量。 第二种情况是接收机的输入为随机相位正弦信号与窄带平稳实高斯过程的叠加,即 η (t ) = A sin (ω 0 t + θ ) + ξ (t ) 同样,对该表达式分解可以得到 η (t ) = A sin (ω 0 t + θ ) + ξ (t )

= ( A sin θ + x c (t )) cos ω 0 t + ( A cos θ + x s (t )) sin ω 0 t = z c (t ) cos ω 0 t + z s (t )sin ω 0 t

其中, z c (t ) = A sin θ + xc (t ) , z s (t ) = A cos θ + x c (t ) 。由于 xc (t ) , x s (t ) ,θ 相互统计独立 If you have any suggestion or criticism, please email to [email protected]

15

的,所以可以得到其概率密度函数为 f ( xc , x s , θ ) =

 x c2 + x s2 1 1 − ⋅ exp  2π 2πσ 2 2σ 2 

   

代入 z c (t ) , z s (t ) 可以得到 f (z c , z s , θ ) =

 z c2 + z s2 + A 2 − 2 A(z c sin θ + z s cos θ )  1   exp   4π 2σ 2 2σ 2  

η (t ) 还可以表示为η (t ) = V (t ) cos(ω 0 t + ϕ (t )) ,其中 z c (t ) = V (t ) cos ϕ (t ) , z s (t ) = −V (t ) sin ϕ (t ) 。代入到 f ( z c , z s , θ ) 可以得到: f (V , ϕ ,θ ) =

 V 2 + A 2 − 2 AV sin (θ − ϕ )  V  − exp 2   4π 2σ 2 2 σ  

因此可以得到: f (V ) = =





0

0

∫ ∫ f (V ,ϕ ,θ )dϕdθ  V 2 + A2 V − exp  σ2 2σ 2 

  AV   ⋅ I0   σ 2  

其中 I 0 是零阶修正贝塞尔函数。上式所代表的包络概率密度函数就是莱斯密度函数, 也就是随机相位正弦信号与窄带平稳实高斯过程的叠加,其包络服从莱斯分布,其相位还是 服从均匀分布。 所以综合以上两种可以知道,如果接收机的输入信号近似平稳实高斯随机过程,则其包 络服从瑞利分布,如果有正弦信号的叠加,则其包络服从莱斯分布。 设想在无线通信环境下,如果所有从不同路径到达接收机的信号最终叠加在一起,各个 路径分量的信号强度相近,则接收机的输入信号近似为平稳实高斯过程,此时其包络服从瑞 利分布。如果有从基站到达接收机的直射信号,也就是存在较强的正弦信号波形到达接收机, 同时混合其它路径到达接收机的信号,则接收机的输入信号近似为正弦信号叠加平稳实高斯 随机过程,此时其包络服从莱斯分布。 1.2.3 平稳随机过程 平稳随机过程分为严平稳随机过程、宽平稳随机过程两类,通常情况下,平稳随机过程 都是宽平稳随机过程。 如果随机过程 {ξ (t ), t ∈ T } ,对于任意整数 n 与任意选定的时刻 t1 < t 2 < L < t n t i ∈ T 以及 t1 + τ < t 2 + τ < L < t n + τ t i + τ ∈ T ,都有 F ( x1 , x2 ,L, x n ; t1 , t 2 ,L, t n ) = F (x1 , x 2 , L, x n ; t1 + τ , t 2 + τ ,L, t n + τ ) 则该过程为严平稳随机过程。 如果随机过程 {ξ (t ), t ∈ T } 是一个二阶矩随机过程,且其均值为常数,相关函数是 If you have any suggestion or criticism, please email to [email protected]

16

τ = t1 − t 2 的函数,则该随机过程为宽平稳随机过程。 所谓二阶矩过程是均值、方差都存在的随机过程,例如前面描述的高斯随机过程就是二 阶矩过程。 常见的宽平稳随机过程有下面几种类型:

(

)

如果 {Z (t ), t ∈ T } 为复随机过程,且 E (Z (t )) = c , E Z (t )Z (t + τ ) = R(τ ) ,则该随机过程为 复平稳随机过程。 如果 {X (t ), t ∈ T } 、{Y (t ), t ∈ T }都是宽平稳随机过程,且互相关函数 R XY (t , t + τ ) = R XY (τ ) , 则 X (t ), Y (t ) 为联合平稳随机过程。 如果 {X (t ), t ∈ T } 为随机过程,且对于任意实数τ ,都有随机过程 Y (τ ) = X (t + τ ) − X (t ) 是 宽平稳随机过程,则 {X (t ), t ∈ T } 为平稳增量随机过程。 如果 {X (t ), t ∈ T } 为平稳随机过程,且满足 X (t ) = X (t + T ) ,T 是周期,则 {X (t ), t ∈ T } 为 周期平稳随机过程。 平稳随机过程的性质可以通过其均值、相关函数来表示。其相关函数具有如下性质:

(

)

1.

R(0) = E X 2 (t ) ≥ 0 ,这也是该随机过程的平均功率。

2.

R(− τ ) = R(τ )

3.

R(τ ) ≤ R(0)

4.

R(τ ) 是非负定的

5.

如果 X (t ) 是周期平稳随机过程,则 R(τ ) 是周期函数。

如果 {X (t ), t ∈ T } 是随机过程,且满足如下两个条件 X (t ) = E ( X (t )) = µ

X (t )X (t + τ ) = E ( X (t )X (t + τ )) = R(τ )

则 X (t ) 是具有各态历经性的随机过程。 这里 X (t ) = lim

T ←∞

1 2T



T

−T

X (t )dt , X (t )X (t + τ ) = lim

1 T ← ∞ 2T



T

−T

X (t )dt 。

1.2.4 马尔可夫随机过程 设有一个随机过程 {ξ (t ), t ∈ T } ,在 t1 , t 2 , L, t m , t m +1 时刻得到观测值 x1 , x 2 ,L, xm , x m+1 满足 如下条件: f ( x m+1 ; t m +1 x m ,L , x1 ; t m , L, t1 ) = f (x m +1 ; t m+1 x m ; t m ) If you have any suggestion or criticism, please email to [email protected]

17

则该过程为马尔可夫过程。马尔可夫过程表明将来发生的事情仅与当前的事情有关,而 与过去的事情无关。 如果随机过程 ξ (t ) 是离散状态,并且也满足马尔可夫过程定义,则称该随机过程为马尔 可夫链。对于马尔可夫链还可以用其概率来表示: P(ξ (n + 1) = j ξ (n ) = i , L, ξ (0 ) = i0 ) = P(ξ (n + 1) = j ξ (n ) = i ) = Pij(1) 这里 Pij(1) 被称为其一步转移概率。 如果马尔可夫链满足对于任意时刻 k 都有 P(ξ (k + 1) = j ξ (k ) = i ) = Pij(1) ,即转移概率与时 刻 k 是无关的,则称该马尔可夫链为齐次马尔可夫链。 对于齐次马尔可夫链可以有如下 等式存在: P(ξ (n ) = in , ξ (n − 1) = in −1 ,L,ξ (0 ) = i0 )

= P(ξ (n) = in ξ (n − 1) = in −1 ,L, ξ (0 ) = i0 )P(ξ (n − 1) = in −1 ,L, ξ (0) = i0 ) = P(ξ (n) = in ξ (n − 1) = in −1 )P(ξ (n − 1) = in −1 ,L, ξ (0) = i0 )

= P(ξ (n) = in ξ (n − 1) = in −1 )P(ξ (n − 1) = in −1 ξ (n − 2) = in − 2 )L P(ξ (0) = i0 ) 如果 P(ξ (n ) = i n , ξ (n − 1) = i n −1 , L , ξ (0) = i0 ) 为常量,则该齐次马尔可夫链为平稳马尔可 夫链。 马尔可夫链的状态分类 如果存在 n ≥ 0 ,使得 Pij(n ) > 0 ,则称从状态 i 到状态 j 是可达的。如果从状态 j 也可以 到状态 i,则称状态 i,j 是互达的。 如果一个马尔可夫链中所有状态都是互达的,则称该马尔可夫链为不可约的,反之则称 为可约的。 如果从状态 i 经过 n 步转移后,首次到达状态 j 的概率被称为首次到达概率。如果 n 可 以取任意值,则从状态 i 到达状态 j 的概率被称为迟早到达概率。 设 fij (n ) = P( X n + k = j , X n + k −1 ≠ j ,L, X k +1 ≠ j X k = i ) 表示首次到达概率,则迟早到达概 率可以表示为 fij =



∑f

ij

(n ) 。

n =1

如果 f ii = 1 ,则称状态 i 是常返的,否则 f ii < 1 ,则称状态 i 是非常返的。如果状态 i 是常返的,则从状态 i 出发,可以无限次返回到状态 i。如果状态 i 是非常返的,则从状态 i 出发,只能有限次返回到状态 i。 如果状态 i 是常返的,且 lim Pii(n ) = 0 ,则称状态 i 是零常返的。如果 lim Pii(n ) > 0 ,则称 n→ ∞

n→ ∞

状态 i 是正常返的。 马尔可夫链的状态空间分解 设 C 是马尔可夫链状态空间 S 的一个子集,对于任意状态 i 属于 C,状态 j 不属于 C, 都有 Pij(1) = 0 ,则称状态 C 为闭集。 If you have any suggestion or criticism, please email to [email protected]

18

所有常返态构成闭集,因为常返态必然是互达的,否则不可能是常返态。状态空间 S 可以分解为 S = N U C1 U C 2 U L U C n ,其中 N 为非常返态,Ci 为常返态。 马尔可夫链的周期与遍历 如果存在正整数 d(d>1),使得只有当 n = d ,2 d ,3d ,L 时,才有 Pii( n ) > 0 ,则称状态 i 为周 期性的状态。如果状态 i,j 是互达的,则状态 i,j 有相同的周期。 非周期的正常返状态都是遍历的。一个不可约的、非周期的、有限状态的马尔可夫链一 定是遍历的。 1.3 信号与系统 因为本书主要讨论数字通信原理,所以本节主要讨论离散时间下的信号与系统。本节分 别讨论离散时间信号与系统,离散系统的时域分析,离散系统的 Z 域分析,连续系统到离散 系统的映射。 1.3.1 信号分类、运算与系统描述 信号是随时间变化的某个物理量。例如载波信号 g (t ) cos (ωt + θ ) ,其幅度、频率、相位 都可以随时间变化而变化。 信号可以分为确定性信号与随机性信号。确定性信号是时间的确定性函数。能用来传递 信息的信号通常都是从发送端发送的确定性信号,也就是其幅度、频率或者相位可被控制来 表达信息,而在接收端去接收、检测、估计发送的是什么信号。随机性信号是时间的随机性 函数。例如雷达接收机收到的回波信号就是随机性信号。 信号可以分为连续信号与离散信号。如果信号在整个时域都有定义,则该信号是连续信 号,但该信号的值域并不一定是连续的。例如可以是正弦信号或者是方波信号。而离散信号 则不是在整个时域都有定义的,只是在离散的某些时刻有定义。 下面代码绘出连续信号与离散信号波形 %Time and Signal t = 0:0.01:1; s = sin(2*pi*t); %Draw continuous and discrete signal subplot(2, 1, 1); plot(t, s); title('Continuous Signal'); subplot(2, 1, 2); stem(t, s, '.'); title('Disrcete Signal'); 其波形如下:

If you have any suggestion or criticism, please email to [email protected]

19

信号可以分为周期信号与非周期信号。如果连续信号的变化满足 f (t ) = f (t + mT ) ,或者 离散信号的变化满足 f (k ) = f (k + mN ) ,则该信号是周期信号,其周期分别是 T、N。如果不 满足上述等式,则是非周期信号。 信号的能量可以用如下等式计算 E = lim

T → ∞



T

f

−T

2

(t )dt

2

(t )dt

平均功率为 1 T → ∞ 2T

P = lim

T



−T

f

如果一个信号的能量大于零,而其功率等于零,则该信号为能量信号。如果一个信号的 能量无穷大,但其功率为有限值,则该信号为功率信号。例如正弦信号就是一个功率信号。 下面来计算一下正弦信号的能量及其功率 %Time Setting T = 2; t = 0:0.01:T; %Generate sine signal and Calculate the Energy , Power s = sin(2*pi*t); e = trapz(t, s.*s); p = e/(2*T); 其能量 e 等于 1,功率 p 等于 0.25。当增大 T 时,可以看到 e 会增大,但是 p 却保持不 变。可以推测当 T 趋于无穷大时,则能量也趋于无穷大,但是功率却保持不变,这就是功率 If you have any suggestion or criticism, please email to [email protected]

20

信号的定义。 对信号可以做加法运算、乘法运算、反转、平移以及尺度变化。下面通过程序来演示这 些基本操作。 %Signal t = 0:0.01:1; s = sin(2*pi*t); c = cos(2*pi*t); %Add, Multiply, mirror, shift, scale operation add = s+c; multiply =s.*c; mirror = fliplr(s); t1 = 0:0.01:1.1; shift = [zeros(1, 10), s]; t2 = 0:0.01:2 scale = s(floor(t2*50)+1); %Drawing subplot(7, 1, 1); plot(t, s); subplot(7, 1, 2); plot(t, c); subplot(7, 1, 3); plot(t, add); subplot(7, 1, 4); plot(t, multiply); subplot(7, 1, 5); plot(t, mirror); subplot(7, 1, 6); plot(t1, shift); subplot(7, 1, 7); plot(t2, scale); 其相应的图示如下:

If you have any suggestion or criticism, please email to [email protected]

21

图中,第一、二行分别时正弦、余弦信号的波形图。第三行是正弦、余弦波形的和。第 四行是正弦、余弦波形的积。第五行是正弦信号的反转。第六行是正弦信号的平移,其开始 部分幅度等于零。第七行是正弦信号的扩展,原先正弦信号的周期为 1,现在周期为 2。 在这里介绍两个基本信号,分别是单位冲激信号与单位阶跃信号。这两个信号在系统分 析中起到非常重要的作用,利用这两个信号可以构成、表示其它信号。 对于离散时间信号,单位冲激信号的定义如下: 1 n = 0 δ [n] =  0 n ≠ 0 单位阶跃信号的定义如下: 1 n ≥ 0 µ [n] =  0 n < 0 由以上两式可以得到如下两个关系式: δ [n] = µ [n] − µ [n − 1] µ [n] =



∑ δ [n − k ] k =0

也就是冲激信号是单位阶跃信号的一次差分运算,单位阶跃信号是冲激信号的累加运 算。 对于连续时间信号,单位阶跃信号的定义如下:

If you have any suggestion or criticism, please email to [email protected]

22

0 t0  单位冲激信号的定义如下: δ (t ) =

dµ (t ) dt

也就是单位冲激信号是单位阶跃信号的一次微分运算。 冲激函数就有一些比较特殊的性质。当冲激函数与其它函数 h(t ) 相乘时,可以得到





−∞

δ (t )h(t )dt = h(0 )

也就是函数 h(t ) 在 t = 0 时的取样。





−∞

δ (t − τ )h(t )dt = h(τ )

当冲激信号移位到 t = τ 时,结果是 h(t ) 在 t = τ 时的取样。 下面的代码用于生成冲激信号、阶跃信号。 %Generate the Impulse, Step Signal impulse = [1, zeros(1, 19)]; step = ones(1, 20); %Pass the filter, where y[n] = x[n]+x[n-1] - y[n-1]; x = filter([1 1], [1 1], impulse); y = filter([1 1], [1 1], step); %Pass the filter, where y[n] = 3x[n]+2x[n-1]+x[n-1]; z = filter([3 2 1], 1, impulse); %Drawing subplot(2, 1, 1); stem([0:19], x); title('Impulse Response'); subplot(2, 1, 2); stem([0:19], y); title('Step Response'); subplot(3, 1, 3); stem([0:19], z); title('Filter Coefficient'); 上述代码中,第一个滤波器是个一阶全通滤波器,其功能非常简单,就是将输入值直接 输出。 所得到的波形如下图中 a、 b 所示。 图 c 表示冲激信号通过系统函数 H (z ) = 3 + 2 z −1 + z −2 的滤波器,可以看到其输出就是滤波器系数。通过这种方法,我们可以了解系统的构造。在 通信系统中,发送端可以发送一些引导序列,而接收端可以通过对引导序列的分析来了解信 If you have any suggestion or criticism, please email to [email protected]

23

道情况,并利用对信道的了解,在解调数据时,能够更好的还原被信道污染的数据。

系统可以分为连续时间系统,离散时间系统。当一个系统的输入是连续时间信号,输出 也是连续时间信号,则该系统为连续时间系统。当一个系统的输入是离散时间信号,输出也 是离散时间信号,则该系统为离散时间系统。当一个系统既有连续时间系统,又有离散时间 系统,则称该系统为混合时间系统。系统内各单元可以有不同的连接关系,通常划分为串联、 并联、混联三类,此外还有反馈连接。 系统有其基本特性,对其基本特性的理解,有助于认识、掌握系统功能。这些性质包括 (非)记忆性、 (不)可逆性、 (非)线性、时(不)变性、 (非)因果性、 (不)稳定性。这 里使用了括号,是因为每个特性都可以有其反面。 如果一个系统的输出不仅与当前输入有关,而且还与以前的输入有关,那么该系统就是 有记忆性的,否则就是非记忆性的。例如,一个系统的输出 y[n] = x[n] + x[n − 1] ,则该系统 就是有记忆的。通常,在无线环境中,无线信道环境可以被认为是有记忆特性的,因为信道 的输出可能是具有不同时延波形的叠加。 如果系统的每个输出,都有唯一的输入相对应,则该系统就是具有可逆性的,否则就是 不可逆的。例如,一个系统的输出是 y[n] = 2 x[n] ,对于每个输入都有唯一的输出相对应, 则其逆系统为 y[n] =

1 x[n] 。 2 如果一个系统具有如下两个性质,则称该系统是线性的。

1)可加性:设 y1 (t ) = F (x1 (t )) , y2 (t ) = F ( x2 (t )) ,则 y1 (t ) + y2 (t ) = F (x1 (t ) + x2 (t )) 。 2)齐次性:设 y (t ) = F (x (t )) ,则 ay (t ) = F (ax(t )) 。 If you have any suggestion or criticism, please email to [email protected]

24

不满足这两个特性的系统,就是非线性系统。例如,一个系统的输出是 y[n] = 2 x[n] ,当 输入是 x1[n] 时,输出是 y1 [n] = 2 x1[n] 。输入是 x2 [n] 时,输出是 y2 [n] = 2 x2 [n] 。则当输入是 x1[n] + x2 [n] 时, y[n] = 2(x1 [n] + x2 [n]) = 2 x1 [n] + 2 x2 [n] = y1 [n] + y2 [n] ,也就是满足可加性。齐 次性也是显而易见的。所以该系统就是线性系统。 如果一个系统的输出 y (t ) = F ( x(t )) ,并且 y (t − τ ) = F ( x(t − τ )) ,则该系统具有时不变性。 也就是,当输入信号有一定的延迟时,则输出信号也有相应的输出延迟。 如果系统同时满足线性、时不变性,则称该系统为线性时不变系统。 如果一个系统的输出仅取决于现在以及过去输入,则称该系统为具有因果性。如果一个 系统的输入是有界的,则其输出也是有界的,那么该系统就具有稳定性。 1.3.2 离散系统时域分析 对于离散系统,通常采用差分方程的形式来表示: N

M

∑ a y[n − k ] = ∑ b x[n − k ] k

k =0

k

k =0

这是一个线性时不变系统,对此变形可以得到: y[n] =

1 a0

N  M  [ ] b x n − k − a k y[n − k ]  k  k =0  k =1





如果 N = 0 ,则上式右边没有第二项,这时系统也被称为有限冲激响应(FIR)系统(Finite Impulse Response) ,因为当输入是有限的,输出也是有限的。如果 N ≠ 0 ,则该系统被称为 无限冲激响应(IIR)系统(Infinite Impulse Response),因为系统此时存在递归,以前的输 出会成为现在的输入,这种递归可以一直存在下去。对于有限冲激响应系统,如果输入 L 个值,则输出也是 L 个值 对于有限冲激响应系统,还可以采用求卷积和的方式来表示:

y[n] = x[n]∗ h[n] =



∑ x[k ]h[n − k ]

k = −∞

如果 x[k ] 有 L 个数值, h[n − k ] 有 M 个数值,而其余数值都为零,则 y[n] 有 L + M − 1 个 数值输出。 下面是完成卷积操作的的简单代码,x 有三个非零数值,h 有四个数值,则 y 有六个数 值输出。 h = ones(1, 4); x = [ones(1, 3), zeros(1, 3)]; y = filter(h, 1, x); stem((0:length(y)-1), y); 观察所生成的图形,可以看到输出六个数值。注意,x 三个有效值后面填充了 M-1 个 零,这样通过滤波得到的输出等价于卷积所得到的输出。

If you have any suggestion or criticism, please email to [email protected]

25

卷积运算有其基本性质,这些性质包括交换律、分配律、结合律。 交换律: x[n]* h[n] = h[n]* x[n] 分配律: x[n] ∗ (h1 [n] + h2 [n]) = x[n] ∗ h1 [n] + x[n] ∗ h2 [n] 结合律: x[n] ∗ (h1 [n] * h2 [n]) = (x[n] ∗ h1 [n]) * h2 [n] 结合律表明,如果一个系统的冲激响应是 h[n] ,那么输入 x[n] ,等价于一个系统的冲激 响应是 x[n] ,输入 h[n] 。用图表示就是:

分配律表明,如果一个系统的冲激响应是 h[n] = h1 [n] + h2 [n] ,那么输入 x[n] ,等价于 分别输入给 h1 [n], h2 [n] ,然后累加。

结合律表明,如果一个系统的冲激响应是 h[n] = h1 [n]* h2 [n] ,那么输入 x[n] ,等价于 先于 h1 [n] 卷积,其输出再与 h2 [n] 卷积。

利用此前的代码,并做稍些修改就可以验证以上三个定律。 前面讲过无记忆系统的特征,如果一个系统是无记忆系统,其输出 y[n] = x[n ]∗ h[n ] , 那么必然有 h[n] = 0, n ≠ 0 ,也就是系统输出仅与当前输入值有关,而与以前的输入值无关。 通常在无线环境下,由于存在多径效应,所以无线信道是个有记忆系统。 If you have any suggestion or criticism, please email to [email protected]

26

如 果 一 个 系 统 有 可 逆 系 统 存 在 , 则 当 系 统 的 输 出 是 y[n] = x[n ]∗ h1 [n] , 应 该 有

x[n] = y[n ] ∗ h2 [n] = x[n]∗ h1 [n ]∗ h2 [n ] ,也就是 h1 [n]∗ h2 [n] = δ [n] , h2 [n ] 就是逆系统。在 无线信道环境下,接收机可接收来自发射机的引导序列,并对无线信道进行估计,求出其逆 系统,从而尽可能恢复出发送信号。 如果一个系统具有因果性,则其输出只取决与现在和以前的输入,而与将来的输入无关。 系统的输出可以用卷积来表示 y[n] = x[n]∗ h[n] =



∑ x[k ]h[n − k ] 。如果当前输出为 y[n] ,

k = −∞

系统只能对 n 及其以前的输入有响应,而其后的没有响应,所以要求 n 0 时,要去掉无穷远处,当 ± m < 0 时,要去除原点。 序列反转 若

X ( z ) = Z ( x[n ]) ROC : R 则

( )

X z −1 = Z (x[− n]) ROC : 1 R 序列插值与抽取 若

X 1 ( z ) = Z ( x1 [n]) ROC : R1  x [n N ] nk = N x2 [n] =  1 nk ≠ N  0 则

( )

X 2 ( z ) = X 1 z N ROC : R1− k 序列加权 若

X ( z ) = Z ( x[n ]) ROC : R 则

−z

(

d X ( z ) = Z (nx[n ]) ROC : R dz

) (

)

X a −1 z = Z a n x[n] ROC : a R 复共轭序列 若

X ( z ) = Z ( x[n ]) ROC : R 则

( ) (

)

X * z * = Z x * [n] ROC : R 序列卷积 若

X 1 ( z ) = Z ( x1 [n]) ROC : R1 X 2 ( z ) = Z ( x 2 [n]) ROC : R 2 则 If you have any suggestion or criticism, please email to [email protected]

29

X 1 ( z ) X 2 ( z ) = Z ( x1 [n]* x 2 [n]) ROC : R1 I R2 N

利用以上的性质可以知道,对于离散系统



a k y[n − k ] =

k =0

N

∑a k =0

M

∑ b x[n − k ] ,其 Z 变换等于: k

k =0

M

k

z − k Y ( z ) = ∑ bk z − k X ( z ) k =0

所以 M

Y ( z ) = H ( z )X ( z ) =

∑b k =0 N

∑a

k

k

z −k z

−k

X (z )

k =0

H ( z ) 被称为系统函数或转移函数,是该离散时间系统的单位冲激响应 h[n ] 的 z 变换, ∞

−n 即 H ( z ) = ∑ h[n]z 。 n = −∞

前一章节,从时域的角度分析了系统的因果性、稳定性,现在从 Z 的角度来分析其因果 性,稳定性。 如果系统具有因果性,则当 n < 0 时, h[n] = 0 ,所以离散时间系统的单位冲激响应序 列必然是个右边序列,所以其收敛域是某个圆外的区域,并且包括无限远处。 ∞

如果系统是稳定的,则其单位冲激响应序列

∑ h[n] < ∞ 。当 h[n]的 z 变换

n = −∞ ∞



n = −∞

h[n]z − n =



∑ h[n] r

−n

< ∞ 时,若 r = 1 ,则系统就是稳定的。所以如果系统是稳定的,

n = −∞

则收敛域必然包含单位圆。对于因果稳定系统,系统函数的全部极点都必然在单位圆以内。 对于有限冲激响应滤波器(FIR Filter) ,由于没有极点存在,所以系统总是稳定的。对 于无限冲激响应滤波器(IIR Filter) ,因为有极点的存在,所以系统通常是不稳定的(零、 极点抵消除外) 。无论是有限冲激响应滤波器还是无限冲激响应滤波器都具有因果性,因为 当前的输出都与将来的输入无关。 现在假设有 FIR 滤波器

y[n] = x[n] + x[n − 1] IIR 滤波器

y[n ] − y[n − 1] = x[n] + x[n − 1] 利用以上 z 变换的性质可以得到,FIR 滤波器的系统函数:

H ( z ) = 1 + z −1 If you have any suggestion or criticism, please email to [email protected]

30

IIR 滤波器的系统函数:

H (z ) =

1 + z −1 1 − z −1

现在来分析一下,这两个滤波器的稳定性。 %Time & Impulse Sequence t = [0:60]; x = [1, zeros(1, 60)]; %FIR Coefficient b = [1 1]; a = [1]; %Draw Zero, Pole Diagram subplot(2, 2, 1); zplane(b, a); title('FIR Filter Zero-Pole Diagram'); %Get Output Sequence & Draw y = filter(b, a, x); subplot(2, 2, 2); stem(t, y); title('FIR Filter Output Sequence'); %IIR Coefficient b = [1 1]; a = [1 -1]; %Draw Zero, Pole Diagram subplot(2, 2, 3); zplane(b, a); title('IIR Zero-Pole Diagram'); %Get Output Sequence & Draw y = filter(b, a, x); subplot(2, 2, 4); stem(t, y); title('IIR Filter Output Sequence'); 得到的 z 平面图以及冲激响应输出序列如下:

If you have any suggestion or criticism, please email to [email protected]

31

零极点图中的圆圈代表零点所在位置,叉子代表极点所在位置。可以看到,FIR 滤波器 的零点在单位圆上,极点在原点,也就是在单位圆内,所以该 FIR 滤波器是稳定的。而 IIR 滤波器的零点、极点都在单位圆上,而且没有重合,所以该 IIR 滤波器是不稳定的。从 FIR 滤波器、IIR 滤波器的输出就可以看到,冲激信号作用于 FIR 滤波器后,FIR 滤波器输出的 冲激响应序列最终归于零,而冲激信号作用于 IIR 滤波器后,IIR 滤波器输出的冲激响应序 列却没有最终归于零,而是一直持续下去。 以上从因果性、稳定性来分析系统函数 H ( z ) 特性,现在从其幅度响应、相位响应来分

( ) 表明在各个

( )

析系统函数。令 z = e jw ,则 H e jw 是离散时间傅立叶变换。幅频响应 H e



( )

频率上系统的幅度变化。相频响应 ∠H e jω 表明在各个频率上系统的相位变化。且有如下 关系式存在:

( )

( ) ( )

( )

( )

Y e jω = H e jω X e jω

( )

∠Y e jω = ∠H e jω + ∠X e jω

即系统输出信号幅度等于幅度响应乘以输入信号幅度,输出信号相位等于相位响应乘以 输入信号相位。注意这里采用的是数字频率 ω , ω = (Ω ⋅ π ) f s ,其取值范围一般是

(− π , π ] , Ω 是模拟频率, f s 是抽样频率。 这里还是以 y[n] = x[n] + x[n − 1] 为例,来观察其幅度响应、相位响应。 If you have any suggestion or criticism, please email to [email protected]

32

%Filter Coefficient & Frequency Respond b = [1 1]; a = [1]; [H, f] = freqz(b, a); %Calculate the Magnitude Respond(dB) subplot(2, 1, 1); plot(f/pi, dB(abs(H))); title('Magnitude Respond(dB)'); grid; axis tight; %Calculate the Phase Respond subplot(2, 1, 2); plot(f/pi, angle(H)*180/pi); title('Angle Respond'); grid; axis tight; 可以得到幅度响应、相位响应图示如下:

观察以上图示可以知道,该滤波器的幅度响应不是恒定的,相位响应是线性的。幅度响 应说明当不同频率、相同幅度的信号通过该滤波器时,输出信号的幅度是不同的。相位响应 说明输出信号与输入信号之间有恒定的延时,因为 e

− jωt 0

( )

X e jωt = F ( x(t − t 0 )) 。

( )

与相位响应相关的还有相位延迟、群延迟。相位延迟定义为τ p (ω ) = − ∠H e jω ω ,

If you have any suggestion or criticism, please email to [email protected]

33

群延迟定义为τ g = −

( )

d∠H e jω dω

下面的代码演示相位延迟、群延迟。 %Filter Coefficient b = [1 1]; a = [1]; %Calculate the Phase Delay & Draw [phi, f] = phasedelay(b, a); subplot(2, 1, 1); plot(f/pi, phi*180/pi); title('Phase Delay'); grid; axis tight; %Calculate the Group Delay & Draw [gd, f] = grpdelay(b, a); subplot(2, 1, 2); plot(f/pi, gd*180/pi); title('Group Delay'); grid; axis tight; 其图示如下:

以上两图表明了系统有固定的延迟。另外还可以看到相位延迟与群延迟相同,这是因为 该滤波器是线性相位的。 If you have any suggestion or criticism, please email to [email protected]

34

第二章 信道、噪声与干扰 前一章简要回顾了数字通信技术需要具备的基础知识,从本章开始讨论数字通信技术。 通信的根本问题是设计这样一种通信系统,该系统能工作在特定的信道环境下且能满足用户 需求,所以对信道环境的理解是从事通信系统设计的根本。例如,移动通信工作在无线信道 环境下且能满足用户的语音、视频通话需求。 本章将讨论各类信道环境并且分析各类信道环境下的噪声、干扰。这里,噪声是指与信 号无关的破坏性因素,而干扰是指与信号有关的破坏性因素。正是因为信道存在噪声、干扰, 所以才促使各种通信技术的产生、演进。如果没有噪声、干扰,输入信号能够无失真的到达 接收端,那么通信就变得非常简单了,因为输出信号就是输入信号,只要对输出信号做简单 判决就可以了。 通常,信道环境通常可以分为三类,分别是 AWGN(Additiive White Gaussian Noise 缩 写)信道、带限信道、衰落信道。 AWGN 信道的输出 r (t ) 是输入信号 s (t ) 与加性白高斯噪声 n(t ) 的叠加,用数学公式表 达就是

r (t ) = s (t ) + n(t ) 带限信道的输出 r (t ) 是输入信号 s (t ) 与线性带通滤波器 c(t ) 的卷积再与加性白高斯噪 声 n(t ) 的叠加,用数学公式表达就是

r (t ) = ∫ c(τ )s (t − τ )dτ + n(t ) ∞

−∞

衰落信道的输出 r (t ) 是输入信号 s (t ) 与时变带通滤波器 c(τ , t ) 的卷积再与加性白高斯 噪声 n(t ) 的叠加,用数学公式表达就是

r (t ) = ∫ c(τ , t )s (t − τ )dτ + n(t ) ∞

−∞

观察以上的数学表达式可以看出 (1) 加性白高斯噪声是所有信道环境下都存在的。 (2) 这三类信道环境存在递进关系,AWGN 信道没有限定信道带宽,带限信道限定 信道带宽,衰落信道不仅限定信道带宽而且信道是时变的。 下面将分别讨论这三类信道环境。 2.1 AWGN 信道 AWGN 信道是加性白高斯噪声信道,可以从三个方面理解加性白高斯噪声信道。首先, 加性表明噪声与信号是相加的关系,也就是信道的输出是信号与噪声的叠加。其次, “白” 是指噪声具有平坦的功率谱密度在相当宽的频率范围内,这个频率范围远大于信号所占用的 频率范围。最后,高斯是指噪声取值服从与高斯分布,越靠近均值其取值的概率越大,越远 离均值其取值的概率越小。这就是 AWGN 信道的含义。 AWGN 信道噪声主要来源是自然噪声、内部噪声。自然噪声是自然环境中已存在的各 类噪声。内部噪声是通信系统内部的噪声,主要有热噪声、散弹噪声。热噪声是由于自由电 子的随机运动引起的噪声,散弹噪声是因为电流的不规则流动引起的噪声。 前面说过,通过 AWGN 信道的接收信号可以表示成 If you have any suggestion or criticism, please email to [email protected]

35

r (t ) = s (t ) + n(t ) 其中 s (t ) = A cos(ωt + ϕ ) ,n(t ) 服从高斯分布,现在求接收信号 r (t ) 的包络概率密度函 数。 令 n(t ) = n I (t ) cos ωt − n Q (t ) sin ωt ,则

r (t ) = s (t ) + n(t ) = A cos(ωt + ϕ ) + n I (t ) cos ωt − nQ (t ) sin ωt

[

]

= [A cos ϕ + n I (t )] cos ωt − A sin ϕ + nQ (t ) cos ωt = z I (t ) cos ωt − z Q (t ) sin ωt

这里 z I (t ) = A cos ϕ + n I (t ) , z Q (t ) = A sin ϕ + n Q (t ) ,所以,接收信号的包络

z (t ) = z I2 (t ) + z Q2 (t ) 接收信号的相位

θ = arctan

zQ zI

因为 z I (t ) , z Q (t ) 都服从高斯分布,均值分别为 A cos ϕ , A sin ϕ ,方差为 σ 2 ,则对 于任意给定的相位 ϕ ,其联合概率密度函数为

f (z I , z Q

 ( z I (t ) − A cos ϕ )2 + (z Q (t ) − A sin ϕ )2 1 ϕ)= exp −  2πσ 2 2σ 2 

   

利用雅可比变换可由上式得到

f (z, θ ϕ ) =

 z 2 + A 2 − 2 Ar cos(ϕ − θ )  z  −  exp 2πσ 2 2σ 2  

对相位 θ 做积分,可得概率密度函数

f (z ϕ ) = ∫



0

=

f ( z , θ ϕ )dθ

 z 2 + A2 z  − exp 2πσ 2 2σ 2 

 2π  2 Ar cos(ϕ − θ )   ∫ exp  dθ 2σ 2   0

利用零阶修正贝塞尔函数可得

f (z ϕ ) =

 z 2 + A2 z  − exp σ2 2σ 2 

  Az   I o  2   σ 

由于该表达式与发送信号相位 ϕ 无关,所以接收信号的包络概率密度函数就是

f (z ) =

 z 2 + A2 z  − exp σ2 2σ 2 

  Az   I o  2   σ 

If you have any suggestion or criticism, please email to [email protected]

36

这个密度函数也被称为莱斯密度函数,这说明接收信号的包络服从莱斯分布。 下面假设信号幅度值 A 等于 1,噪声为均值为 0,均值为 1,观察接收信号服从的概率 分布,代码如下: A = 1; zi = A + randn(1, 10000); zq = randn(1, 10000); z = sqrt(zi.^2 + zq.^2); zmax = max(z); z = z./zmax; z = round(z*100)/100; num = zeros(1, 101); for n = 1:10000 index = int32(z(n)*100+1); num(index) = num(index) + 1; end plot((0:0.01:1).*zmax, num, '--'); 得到的概率分布图如下

从图中可以看出包络从 0 到 1 有很快的上升,然后包络从 1 到 5 有相对缓慢的下降,这 正是莱斯分布的特征。从图中还可以看出在包络等于 1 附近有最大峰值,这也就说明接收信 号取值在发送信号幅值 A 附近的概率最大。 通常,加性白高斯噪声的均值等于 0,方差等于 N 0 2 , N 0 2 是噪声的双边带功率谱 If you have any suggestion or criticism, please email to [email protected]

37

密度。均值等于 0,是因为噪声是随机起伏的,无论自然噪声还是热噪声,其信号都是任意 随机的。设噪声的双边带功率谱密度等于 N 0 2 ,那么噪声的自相关函数

R(τ ) = ∫

(N 0 2 ) exp( j 2πfτ )df −∞ ∞

=

N0 δ (τ ) 2

而噪声的均值等于 0,所以可以有方差

{

}

σ 2 = E n 2 (t ) = R(0 ) 即 τ = 0 ,代入到 R (τ ) 得方差

σ 2 = N0 2 所以,加性白高斯噪声可以用 N (0, N 0 2 ) 来表示。 接收信号是发送信号与噪声信号的叠加,可以用信噪比反映发送信号与噪声的强弱关 系,即用噪声平均功率来归一化发送信号功率。定义信噪比为 S N ,这里 S 是发送信号功 率, S =



T

0

s 2 (t )dt T , N 是噪声功率, N = ∫

W

−W

N0 df 。 2

下面假设信噪比为 0dB,观察发送信号与接收信号的波形,代码如下: t = 0:0.001:1; s = sin(2*pi*t); r = awgn(s, 0); plot(t, s, t, r); 得到波形图如下:

If you have any suggestion or criticism, please email to [email protected]

38

从图中可以看到接收信号大致上与接收信号信号有相同的波动,但是在任意时刻取值都 是随机的。 2.2 带限信道 带限信道是允许信号在一定频率范围内通过的信道。带宽是指该频率范围内的正频率范 围。 通常,带限信道可以如下表示

H ( f ) = H ( f ) e − jθ ( f ) 如果

1 H(f ) =  0

fL ≤ f ≤ fH f ≤ fL, f ≥ fH

且 θ ( f ) = 2πft

则该信道被称为理想信道,这里 f H 、 f L 分别是带宽的上限、下限,带宽 B = f H − f L 。 为逼近该理想信道,通常采用 Butterworth 滤波器来模拟。采用 Butterworth 滤波器的原 因有两个:首先,Butterworth 滤波器是一个 IIR 滤波器,其次,该滤波器在通带、阻带内都 是平坦的。 下面的代码采用了 Butterworth 滤波器滤除带外信号。这里设定带宽为 200Hz,输入到 滤波器的信号是 100、300Hz 的余弦信号叠加,通过滤波器后仅剩余 100Hz 的余弦信号。这 是因为 300Hz 信号不在信道带宽范围内。这也说明为何需要采用调制技术发送信号,是因 为超出信道带宽外的信号会被信道滤除,所以要通过调制技术将信号加载到适当的频率以匹 配信道带宽。 %Duration t = 0:0.001:1; If you have any suggestion or criticism, please email to [email protected]

39

%Input signal s = cos(2*pi*100*t) + cos(2*pi*300*t); %Filter Design Fs = 1000; Fpass = 200; Fstop = 300; Apass = 1; Astop = 80; match = 'passband'; h = fdesign.lowpass(Fpass, Fstop, Apass, Astop, Fs); Hd = butter(h, 'MatchExactly', match); %Filter out = Hd.filter(s); %Drawing figure pwelch(s, [], [], [], 1000) figure; pwelch(out, [], [], [], 1000) 这里 Welch 法计算功率谱密度,输入到滤波器的信号功率谱密度如下: Power Spectral Density Estimate via Welch -10

-20

Power/frequency (dB/Hz)

-30

-40

-50

-60

-70

-80

0

0.05

0.1

0.15

0.2 0.25 0.3 Frequency (kHz)

0.35

0.4

0.45

If you have any suggestion or criticism, please email to [email protected]

0.5

40

从滤波器输出的信号功率谱密度如下: Power Spectral Density Estimate via Welch -10

-20

Power/frequency (dB/Hz)

-30

-40

-50

-60

-70

-80

0

0.05

0.1

0.15

0.2 0.25 0.3 Frequency (kHz)

0.35

0.4

0.45

0.5

对照以上图谱,可以看出 300Hz 出的信号在通过滤波器后不存在了。 加性白高斯噪声的双边带功率谱密度为 N 0 2 。通过理想信道后,加性白高斯噪声变成 带通白噪声。其功率谱密度可以如下表示

N 2 Φ( f ) =  0 0

fL ≤ f ≤ fH f ≤ fL, f ≥ fH

则其自相关函数等于

φ (τ ) =

N 0 sin πBτ 2 πτ

从上式可以看出当带宽趋于无穷大,白噪声的自相关函数近似于其在 AWGN 信道的自 相关函数。 2.3 衰落信道 在讨论衰落信道前,需要先了解无线电波传播的几种方式。正是这几种无线电波传播方 式构成了从发送端到接收端的无线链路,也是这几种传播方式造成了后续需要讨论的信道衰 落。 无线电波的传播方式通常可以分为四种类型:直射、反射、绕射、散射。 当无线电波某种媒介中沿直线从发送端传播到达接收端,这种传播方式称为直射。相对 于其它传播方式,由于直射具有最小的路径损耗,所以在接收端,通常直射的信号强度要大 于其它传播方式的信号强度。 当无线电波入射到另一种媒介表面时,部分射线会返回到原先媒介中,此时射入、射出 角度相同,这种传播方式称为反射。反射的形成条件是反射的媒介表面尺寸要远大于无线电 If you have any suggestion or criticism, please email to [email protected]

41

波波长。例如楼房墙面、道路地面都可以形成无线电波的反射。由于反射过程损耗部分能量, 所以相对于直射,反射的信号能量较小。 当无线电波入射到另一种媒介边缘时,部分射线会绕过媒介到达媒介的后面,这种传播 方式称为绕射,也被称为衍射。绕射的形成条件是绕射的媒介具有不规则的起伏表面。例如 山坡、屋脊都可以形成无线电波的绕射。由于反射过程损耗较多能量,所以相对于直射、反 射,绕射的信号能量更小。 当无线电波入射到另一种媒介表面时,如果射线在空间上弥散分布,具有任意方向性, 这种传播方式称为散射。散射的形成条件是散射的媒介表面尺寸小于无线电波波长。例如树 木、粗糙墙面都可以形成无线电波的散射。由于散射过程损失很多能量,所以相对于其它传 播方式,散射的信号能量最小。 根据波长与频率的关系, λ = c f ,可以算出不同频率的波长。例如,第三代移动通信 8 9 的频率范围主要在 2GHz 附近,所以 λ = 3 × 10 2 × 10 = 0.15m ,即小于 0.15 米以下的物

体都容易造成散射。 由于无线电波在不同观察范围上的主要表现并不相同,所以通常根据观察范围的不同可 以分为大尺度路径损耗、小尺度多径衰落。大尺度路径损耗说明在大尺度范围上主要以路径 损耗为主,小尺度多径衰落说明在小尺度范围上主要以多径衰落为主。大尺度的定义为数百 乃至数千米的距离,小尺度的定义为数个波长范围内。对于第三代移动通信,根据以上的计 算,可以定义小尺度在数米范围内。 路径损耗一般与传输距离成正比,传输路径越远,路径损耗也就越大。随着路径增大, 在接收端的接收功率就减小,而克服路径损耗的主要方法就是增加发射功率。 前面说到过无线电波的传播方式,路径损耗与直射可以有很好的对应关系。也就是从发 送端到接收端,无线信道是在视线范围内传播的,没有障碍物存在。如果接收端运动到障碍 物的后面,那么接收信号强度就会衰落,这种衰落被称为阴影衰落。阴影衰落与反射、绕射、 散射存在对应关系。直射的情况容易定量分析,而存在反射、绕射、散射的情况就很难定量 分析,所以人们根据实际测量的经验值总结出各种模型,例如 Okumura 模型、Hata 模型、 Walfisch 模型等。 由于路径损耗不是无线信道所特有的,有线信道同样存在路径损耗,所以不做主要讨论, 本节主要讨论小尺度多径衰落。 前面说过无线电波的传播方式主要有直射、反射、绕射、散射,从发送端发射的无线电 波可以以多种传播方式到达接收端。显然,同时发送的信号到达接收端的时间是不一样的, 这是因为不同的传播方式其传播路径不同(即多径传播) ,导致到达接收端的时间不同。根 据 τ = ∆l c 可以计算出多径时延,这里 ∆l 是不同路径的距离差。 设接收端以速度 v 运动,其运动方向与无线电波射入的夹角为 θ 。经过时间 ∆t ,接收 端相对于发送端运动的距离为 ∆d = v∆t cosθ ,那么相位变化为

∆φ = 2π∆d λ = 2πv∆t cosθ λ 利用频率与相位的相互关系可以算出多普勒频移为

f D = ∆φ 2π∆t = 2πv∆t cosθ / 2π∆tλ = v cosθ / λ 当接收端靠近发送端时,即 − π 2 < θ < π 2 ,多普勒频移为正;当接收端远离发送端 If you have any suggestion or criticism, please email to [email protected]

42

时,即 π 2 < θ < 3π 2 ,多普勒频移为负;当接收端沿发射端的切线运动时,即 θ = ± π 2 , 则多普勒频移为零。当接收端静止,此时多普勒频移也为零。 需要说明的是,这里发送端是直接到达接收端的反射点、绕射点或者散射点,如果存在 视距传播,那么还包括发射点。 现在来考虑存在多径时延、多普勒频移情况下的接收信号表达式。 设发送信号为

s (t ) = g (t )cos(2πft + φ )

[

= Re g (t )e j ( 2πft +φ )

]

[

]

令发送端的等效低通信号为 ~ s (t ) = g (t )e jφ ,则 s (t ) = Re ~ s (t )e j 2πft 。通过不同路径到达 接收端的信号为 N

[

j (2π ( f + f D ,n )(t −τ n )+ φ )

[

j (2πft + 2πf D ,n t − 2πf τ n − 2πf D ,nτ n + φ )

r (t ) = ∑ Re Cn g (t − τ n )e n =1 N

= ∑ Re Cn g (t − τ n )e n =1

令接收端的等效低通信号为 r~(t ) =

[

]

( ∑ C g (t − τ )e

]

j 2πf D , nt − 2πfτ n − 2πf D , nτ n +φ )

N

n =1

n

n

,则

]

r (t ) = Re ~ r (t )e j 2πft 。这里 Cn 是第 n 条路径的衰落因子,与路径损耗有关。τ n 是第 n 条路 径的多径时延。 f D , n 是第 n 条路径的多普勒频移。 因为 ~ r (t ) 是信道对等效低通信号 ~ s (t ) 的响应,所以信道可以表示为 N

h(t ) = ∑ C n e

j (2πf D , nt − 2πfτ n − 2πf D , nτ n )

n =1

δ (t − τ n )

N

= ∑ h(τ n , t ) n =1

这里 h(τ n , t ) = C n e

j (2πf D , nt − 2πf τ n − 2πf D , nτ n )

δ (t − τ n ) 。

对于如下最简单的双射线模型,其中包含直射射线与反射射线各一条。

设发送端天线的高度为 ht ,接收端天线的高度为 hr ,两端的距离为 d ,则直射路径长

If you have any suggestion or criticism, please email to [email protected]

43

度为 l1 =

d 2 + (ht − hr ) ,反射路径长度为 l 2 = d 2 + (ht + hr ) 。 2

2

令 C n = 1 , g (t − τ n ) = 1 , f D ,n = 0 , φ = 0 , t = 0 ,则 2

[

r (0 ) = ∑ Re e j (− 2πfτ n ) n =1

]

= cos(2πfτ 1 ) + cos(2πfτ 2 ) 8 这里τ 1 = l1 c ,τ 2 = l 2 c , c 代表光速,为 3× 10 米/秒。观察接收信号幅度随距离的

变化情况: %Parameter Setting c = 3*10^8; f = 1800*10^6; ht = 10; hr = 2; d = 1:1:100000; %Path L1 = sqrt(d.^2 + (ht-hr).^2); L2 = sqrt(d.^2 + (ht+hr).^2); %Phase theta1 = mod(f*L1/c, 1); theta2 = mod(f*L2/c, 1); %Delay taumax = max(L2/c - L1/c); taumin = min(L2/c - L1/c); %Received Signal r1 = cos(2*pi*theta1); r2 = cos(2*pi*theta2); r = r1 + r2; %Drawing subplot(2, 1, 1); semilogx(d,theta1, 'b', d, theta2, 'r'); subplot(2, 1, 2); semilogx(d, r); 可以得到如下波形:

If you have any suggestion or criticism, please email to [email protected]

44

上图中的第一幅图为发射信号相位随距离的变化图,蓝色曲线为直射路径上的信号相位 变化,红色曲线为反射路径上的信号相位变化。第二副图为接收信号幅度随距离的变化,随 着距离的变化,接收信号幅度的波动程度是不同的。从第一幅图中可以看到,反射信号相位 的变化是直射信号相位变化的延迟,但又不完全相同。当信号相位变化较快时,接收信号幅 度的变化也明显加快,这说明信号相位对信号幅度的影响,这也是多径衰落的主要成因之一。 另外,还有两个数值输出,分别对应最大的路径延迟与足小的路径延迟,分别为 1.32E+1 纳秒与 1.33E-3 纳秒。对于路径延迟,可以求出不同路径延迟下的功率分布,这个分布被称 为功率延迟分布,进而可以求出平均延迟、延迟扩展、相关带宽。平均延迟是路径延迟相对 于功率延迟分布的均值。延迟扩展是功率延迟分布二阶中心矩的均方根值。相关带宽是频域 范围内两个频域样值变得不再相关的频率间隔。 首先,定义不同路径延迟间的自相关函数为:

[

]

φ (τ i , τ j ; ∆t ) = E h * (τ i , t )h(τ j , t + ∆t ) 2 假设 ∆t = 0 ,且信道环境是 WSSUS(广义平稳不相关散射)的,则

[

]

φ (τ i , τ j ;0) = E h * (τ i , t )h(τ j , t ) 2 = φ (τ i ,0)δ (τ i − τ j ) ≡ φ (τ )

也就是当τ i = τ

j

= τ 时,自相关函数才可能不等于零。此时,φ (τ ) 就是功率延迟分布。

那么,可以求得平均延迟为:

∫ τφ (τ )dτ = ∫ φ (τ )dτ ∞

µτ

0



0

延迟扩展为: If you have any suggestion or criticism, please email to [email protected]

45

∫ (τ − µ ) φ (τ )dτ ∫ φ (τ )dτ ∞

στ =

2

τ

0



0

相关带宽为:

Bc ∝ 1 σ τ 根据信号带宽与相关带宽的相互关系,可以将信道分为两类。如果信号带宽大于相关带 宽,那么该信道就是频率选择性信道;如果信号带宽远小于相关带宽,那么该信道就是平坦 衰落信道。所以即使是相同的相关带宽,如果信号的带宽不同,所对应的信道类型也是不同 的。设信号带宽为 W ,则可以有如下表示。

W > Bc  W < Bc

频率选择性信道 平坦衰落信道

例如,COST207 模型是 GSM 系统的标准化模型,该模型定义了简化的典型城市的功率 延迟分布,该分布可以表达如下: (时间单位为微秒)

φ (τ ) = 0.189δ (τ ) + 0.379δ (τ − 0.2) + 0.239δ (τ − 0.5)

+ 0.095(τ − 1.6 ) + 0.061δ (τ − 2.3) + 0.037δ (τ − 5)

那么可以计算出相关带宽: (对于单位冲激响应的积分运算可以转化成求和运算) %Parameter Setting tau = [0, 0.2, 0.5, 1.6, 2.3, 5.0]; P = [0.189, 0.379, 0.239, 0.095, 0.061, 0.037]; %Calculate the delay mean mu = sum(tau.*P)/sum(P); % Calculate the spread delay sigma = sqrt(sum(((tau-mu).^2).*P)/sum(P)); %Calculate the Correlation Bandwith Bc = (1/sigma)*1E6; 通过计算可以得到,相关带宽为 947KHz。 对于多普勒频移,可以求出不同多普勒频移下的功率分布,这个分布被称为多普勒功率 谱,进而可以求出多普勒扩展、相关时间。多普勒扩展是多普勒功率谱上的非零功率谱所占 用的信号带宽。相关时间是是时域范围内两个时域样值变得不再相关的频率间隔。 依然使用下面的自相关函数

[

]

φ (τ i , τ j ; ∆t ) = E h * (τ i , t )h(τ j , t + ∆t ) 2 设信道环境是 WSSUS(广义平稳不相关散射)的,则

[

]

φ (τ i , τ j ; ∆t ) = E h * (τ i , t )h(τ j , t + ∆t ) 2 = φ (τ i , ∆t )δ (τ i − τ j ) ≡ φ (τ , ∆t ) 令 τ = 0 ,则

[

]

φ (∆t ) = φ (0, ∆t ) = E h * (0, t )h(0, t + ∆t ) 2 If you have any suggestion or criticism, please email to [email protected]

46

对该式做傅立叶变换可得多普勒功率谱

S ( f ) = ∫ φ (∆t )e − j 2πf∆t d∆t ∞

−∞

设多普勒扩展为 Bd ,如果 f − f c ≤ Bd 2 , f c 是中心频率,则有 S ( f ) > 0 。多普勒 扩展就是多普勒功率谱上的信号带宽。对于 Bd ,通常有 Bd = 2 f m , f m = v λ ,即多普勒 扩展是最大多普勒频移的两倍。 那么相关时间等于多普勒扩展的倒数,即

T c= 1 Bd 根据 Tc 是否趋于无穷大,可以将信道分为两类。如果 Tc 趋于无穷大,则该信道是时间 非选择性信道。如果 Tc 小于无穷大,则该信道是时间选择性信道。再根据信号周期 T 与 Tc 的 关系,又可以将时间选择性信道再分为两类。如果 T < Tc ,则该信道是慢衰落信道。如果

T < Tc ,则该信道是快衰落信道。可以归结如下:  T > Tc 快衰落信道 Tc ≠ ∞   T < Tc 慢衰落信道 T = ∞ 时间非选择性信道  c 至此,我们已讨论了多径延迟、多普勒频移对无线信道分类的影响。对于未调制信号, 在描述接收信号时,采用了指数形式,如果采用三角表达式,则接收信道可以表示成:

r (t ) = g i (t ) cos 2πf c t − g q (t ) sin 2πf c t 则其自相关函数

φ (τ ) = E[r (t )r (t + τ )] Ωp = J 0 (2πf mτ ) cos 2πf cτ 2 其多普勒功率谱等于

S( f ) =

Ωp 4πf m

1  f − fc 1 −   fm

  

2

f − fc < fm

1974 年,Jakes 在《Microwave mobile communications》一书中对该类型信号提出了仿 真模型,并在其后的几十年中,Jakes 仿真模型被广泛使用。 2003 年,Yahong Rosa Zheng 与 Chengshan Xiao 在 IEEE Transactions on Communications 上发表《Simulation Models with correct Statistical Properties for Rayleigh Fading Channels》 ,该 文章指出了以往 Jakes 仿真模型在统计特性上缺陷,并给出了相应的解决方案。 现给出其仿真代码,并绘出其信号包络,自相关函数、多普勒功率谱曲线。 If you have any suggestion or criticism, please email to [email protected]

47

%Timing t = 0:0.001:0.999; %Parameter Setting M = 8; phi = pi*(2*rand() -1); theta = pi*(2*rand() -1); psi = pi*(2*rand(1, M) -1); alpha = (2*pi*(1:M) - pi + theta)/(4*M); c = 3e8; v = 72e3/3600; fc = 2e9; fm = fc*v/c; fn = fm*cos(alpha); %In-Phase Component gi = 0; for n = 1:M gi = gi + cos(psi(n)).*cos(fn(n).*t + phi); end gi = 2*gi/sqrt(M); %Quadrature Component gq = 0; for n = 1:M gq = gq + sin(psi(n)).*cos(fn(n).*t + phi); end gq = 2*gq/sqrt(M); %The received singal g = gi+i*gq; % Autocorrelation gc = xcorr(g); %Doppler Spectrum f = 500*(0:512)/1024; Y = fft(gc(1000:end),1024); Pyy = Y.* conj(Y) / 1024; %Drawing subplot(3, 1, 1); If you have any suggestion or criticism, please email to [email protected]

48

plot(t, 20*log10(abs(g))); subplot(3, 1, 2); plot(t, abs(gc(1000:end))); subplot(3, 1, 3); plot(f, Pyy(1:513)); 得到相应的图示如下:

第一幅图为接收信号包络,第二副图为自相关函数,第三幅图为多普勒功率谱。

If you have any suggestion or criticism, please email to [email protected]

49

第三章 通信信号设计 本章主要讨论信号设计,讨论信号设计离不开对信道环境的理解。通常信道环境分为三 大类型,分别是加性白高斯噪声信道、带限信道、多径衰落信道。加性白高斯噪声信道是指 信道噪声服从高斯分布且在整个频域上都存在。带限信道是指信道仅允许在一定频率范围内 的信号通过,而在其余频率上信号有很大衰减或者被滤除掉。多径衰落信道是指信号可以从 多条路径到达接收机,信号不仅随距离衰减,而且有多径干扰存在。信号随距离衰减被称为 慢衰落,而因为多径干扰引起的衰落被称为快衰落。 对于加性白高斯噪声信道,如果在某段时间内有较强噪声存在,则可能对信号形成干扰。 除了采用信道编码,还可以使用交织技术,使突发干扰被分散,从而保证正确解码。 对于带限信道,如果输入一个方波信号,则在频域上被滤波,从而在时域上被扩展,从 而形成码间干扰。可以对信号做些改变,就可以避免码间干扰。 多径衰落信道由于多径的存在,使得信号彼此叠加,以致难以识别。但是如果对信号进 行扩频,使得信号时隙很小,且该时隙小于信号从不同路径到达接收机的时间差,则该信号 就可以被解调。 3.1 信号交织 交织器的作用就是让原先相关联的比特流变成无关联的比特流,从而达到时间分集的效 果。所以交织器要让原先有关联的比特流转变成尽量毫无关联的比特流,而且交织输出的比 特流越长就越能有效抵抗干扰。 交织器通常位于信道编码器与调制器之间,交织器可以分为分组交织器、卷积交织器两 大类。分组交织器是输入比特流,经过交织后再输出。分组交织器输入的比特流是定长的, 如果小于定长,一般可以补零来达到定长。而卷积交织器是在输入比特流的同时,交织、输 出比特流,输入的比特流可以是不定长的。 3.1.1 分组交织器 分组交织器可以分为通用分组交织器、代数交织器、螺旋扫描交织器、矩形交织器、随 机交织器等。分组交织器可以用如下图示表示:

当输入一定数量比特流到缓存后,按照预先设计的交织模式进行交织,然后输出比特流。 1 通用分组交织器 通用分组交织器可以将定长的输入比特流,按照一定的模式重新排列后再输出,所以要 指定比特流的排列模式。 %Generate the input stream s = randint(1, 10); %Generante a random rearrangement pattern pattern = randperm(10); %The result r = intrlv(s, pattern); %The recovery rs = deintrlv(r, pattern); 以上代码将输入比特流 s 按照排列模式 pattern 重新排列后输出到比特流 r。 2 代数交织器 代数交织器按照交不同交织算法的不同,可以分为 takeshita-costello 算法,welch-costas If you have any suggestion or criticism, please email to [email protected]

50

算法。 Takeshita-costello 算法通过如下算式来计算输出位置:

(k (n − 1)n 2 )mod num 式中,k 是输入比特位置,num 是输入比特总数且必须是 2 的幂级数,k 是小于 num 的 奇数。 welch-costas 算法通过如下算式来计算输出位置:

α k mod (num + 1) − 1 α 是介于 1 到 num 的本原数,num 是输入比特总数。 以下代码分别用以上两种算法得到交织后的比特流。 num = 16; s = randint(1, num); rtc = algintrlv(s, num, 'takeshita-costello', 3, 5); rwc = algintrlv(s, num, 'Welch-Costas', 14); rtcs = algdeintrlv(rtc, num, 'takeshita-costello', 3, 5); rwcs = algdeintrlv(rwc, num, 'Welch-Costas', 14); 3 螺旋扫描交织器 螺旋扫描交织器首先将比特流写入到 m 行 n 列的矩阵中,然后从矩阵的左上角开始往 右下角读取比特,其移动顺序遵循以下两个算式:

ri +1 = (ri + h ) mod m r0 = 1

ci +1 = (ci + 1) mod n c0 = 1

式中,h 表示前移行数,是大于 0 且小于行数 m 的整数。 num = 16; s = randint(1, num); r = helscanintrlv(s, 4, 4, 1); rs = helscandeintrlv(r, 4, 4, 1); 4 矩形交织器 矩形扫描交织器首先按行优先顺序将比特流写入到 m 行 n 列的矩阵中,然后按列优先 顺序将比特流输出。 num = 16; s = randint(1, num); r = matintrlv(s, 4, 4); rs = matdeintrlv(r, 4, 4); 5 随机交织器 随机交织器利用随机数发生器生成排列模式。这是一种伪随机方式,因为初始状态确定 后,整个随机序列就确定了。这个初始状态可以是任意数,只要解交织时使用相同初始状态, 就可以正确解交织。 num = 16; s = randint(1, num); r = randintrlv(s, 0); rs = randdeintrlv(r, 0);

If you have any suggestion or criticism, please email to [email protected]

51

3.1.2 卷积交织器 卷积交织器可以分为通用复用交织器、卷积交织器、螺旋交织器等三类。卷积交织器可 以采用如下图示表示:

图中输入比特流依次输入到各个缓存 D (i ) 中, D(i + 1) 总比 D (i ) 多一定数量的寄存器, 输出也是依次从各个缓存中输出。卷积交织器存在延迟,延迟对于不同的卷积方式是不同的。 1 通用复用交织器 通用复用交织器将输入比特依次输入到各行寄存器中,各行寄存器的宽度各不相同。每 输入一个比特,寄存器就先移一位,输出寄存器最右边的比特到输出比特流。 num = 16; s = randint(1, num); delay = [0 1 2]; r = muxintrlv(s, delay); rs = muxdeintrlv(r, delay); 由于延迟的存在,解交织器开始输出的比特并不是输入的比特,而是插入填充值,通常 是零。这段填充值长度可以通过如下算式得到:

padding = length(delay ) ⋅ max (delay ) 例如上述代码中 delay 的长度 3,delay 的最大值是 2,所以会填充 6 个零在解交织输出 的开始处。 2 卷积交织器 卷积交织器与上面的通用复用交织器实现方式基本相同,唯一的不同在于卷积交织器采 用了寄存器行数 R 与行间寄存器差值 D 来定义,第 k 行的寄存器数等于 (k − 1)D 。 num = 16; s = randint(1, num); r = convintrlv(s, 3, 1); rs = convdeintrlv(r, 3, 1); 以上的代码定义了三行寄存器,每行比前一行多一个寄存器单元。其填充值的长度等于:

padding = R ⋅ (R − 1) ⋅ D 计算可以得到上述填充值的长度为 6。 3 螺旋交织器 螺旋交织器 num = 16; s = randint(1, num); r = helintrlv(s, 4, 4, 1); rs = heldeintrlv(r, 4, 4, 1); If you have any suggestion or criticism, please email to [email protected]

52

螺旋交织器填充值的长度可以用如下算式得到:

padding = col ⋅ group ⋅ step ⋅ (col − 1) group  3.2 脉冲成型 由于矩形脉冲在频域上可以无限扩展,所以当通过带限信道而被滤波后,变成一个带限 信号,因而在时域上被扩展。当信号被扩展到相邻的码元时间内,就形成了码间干扰。既然 带限信道是造成码间干扰的直接原因,那么为避免码间干扰,可以通过增大信道带宽来实现。 然而信道带宽是有限而且宝贵的资源,所以只能在有限带宽下尽量避免码间干扰。奈奎斯特 准则证明,通过对信号进行设计就可以在抽样点上避免码间干扰。 常用的无限冲激响应滤波器有 Butterworth 滤波器、Chebyshev I 型滤波器、Chebyshev II 型滤波器、椭圆滤波器。Butterworth 滤波器的幅度响应曲线在通带、阻带内都是单调变化的。 Chebyshev I 型滤波器的幅度响应曲线在通带内是能波纹的,在阻带内是单调变化的。 Chebyshev II 型滤波器的幅度响应曲线在通带内单调变化的,在阻带内是等波纹的。椭圆滤 波器的幅度响应曲线在通带、阻带内都是等波纹变化的。而且在设计具有相同通带、阻带的 滤波器时,Butterworth 滤波器、Chebyshev 滤波器、椭圆滤波器所需要的阶数是递减的。 下面用 Chebyshev II 型滤波器做一个带限信道,对相同频率的方波、正弦信号进行滤波。 可以看到通过滤波器后,正弦信号波形没有明显改变,而方波波形却有很大的改变。 %The Sampling Frequency and Duration fs = 1000; t = 0:1/fs:1; %The sine waveform and rectangular waveform x = sin(2*pi*10*t); d = 0:0.1:1; y = 2*pulstran(t, d, 'rectpuls', 0.05)-1; %Design a chebysheve II filter %with pass band from 0 to 100 Hz, stop band form 200 Hz to infinite obj = fdesign.lowpass(0.1, 0.2, 1, 80); cf = cheby2(obj); [b, a] = sos2tf(cf.sosMatrix); %Filt the input data rx = filter(b, a, x); ry = filter(b, a, y); %Drawing subplot(4, 1, 1); plot(t, x) title('Sine Waveform Before filtering'); subplot(4, 1, 2); plot(t, y) title('Rectangular Waveform Before filtering'); subplot(4, 1, 3); If you have any suggestion or criticism, please email to [email protected]

53

plot(t, rx) title('Sine Waveform After filtering'); subplot(4, 1, 4); plot(t, ry) title('Rectangular Waveform After filtering'); 正弦、方波信号通过滤波器前后的波形如下:

读者可以尝试通过改变这个低通滤波器的通带带宽来观察带宽对波形的影响。可以发现 通带越窄,那么方波的畸变越厉害,也就说明通过增加带宽可以减轻码间干扰的影响。 3.2.1 奈奎斯特准则 通过前面的分析,已经清楚知道带限信道对发送信号的影响。奈奎斯特等研究带限信道 情况下的信号发送后,提出了相应的准则来避免码间干扰的影响。在带限信道的情况下,遵 循这些准则可以有效的避免码间干扰。 为得到奈奎斯特准则,首先需要建立一个简单的模型,其中包含发送滤波器、信道、接 收滤波器三部分。

假设滤波器 H (ω ) 是由以上三个滤波器级联而成,则这个滤波器可以用如下等式表示:

H (ω ) = S (ω )C (ω )R(ω ) 其时域的表达式用 h(t ) 表示,可以通过以上三个滤波器的卷积得到

h(t ) = s (t ) ∗ c(t ) * r (t ) If you have any suggestion or criticism, please email to [email protected]

54

也可以通过 H (ω ) 的傅立叶逆变换得到,其等式如下:

h(t ) =

1 2π





−∞

H (ω )e jωt dω

接收信号可以认为是发送信号通过这个滤波器而得到的。 假设发送的信号具有如下形式:

∑ a δ (t − nT ) n

s

n

则通过该发送滤波器后,其输出为

x(t ) = ∑ an s (t − nTs ) n

通过信道滤波器后,其输出为

y (t ) = ∑ an hcs (t − nTs ) n

其中

hcs (t ) = s (t ) ∗ c (t ) = ∫ s (τ )c(t − τ )dτ ∞

−∞

通过接收滤波器后,其输出为

z (t ) = ∑ a n h(t − nTs ) n

若在 t = kTs + τ 对 z(t)抽样,可得

z (kTs + τ ) = ∑ an h(kTs − nTs + τ ) n

其等价表示为

z k = ∑ a n hk −n = ak + ∑ a n hk −n n≠ k

n

ak 表示在第 k 个抽样时刻期望的输出,那么 ∑ a n hk − n 就是码间干扰。所以为避免码间 n≠ k

干扰,对于其中的任何信号 a n ,应该满足如下条件:

1 t = nT s h(t − nTs ) =  0 t ≠ nTs 即对于 h(t ) 应该有

1 n = 0 h(nTs ) =  0 n ≠ 0 而

h(nTs ) =

1 2π 1 = 2π





−∞

H (ω )e jωnTs dω ( 2 i +1)π

∑ ∫( i

Ts

2 i −1)π Ts

H (ω )e jωnTs dω

If you have any suggestion or criticism, please email to [email protected]

55

令 ω = ω ′ + 2iπ Ts

h(nTs ) =

1 2π 1 = 2π 1 = 2π T = s 2π

π Ts

∑∫ i

−π Ts π Ts

∑∫ i

−π Ts

H (ω ′ + 2iπ Ts )e jω nTs e j 2iπn dω ′ ′

H (ω ′ + 2iπ Ts )e jω nTs dω ′ ′

∫ ∑ H (ω ′ + 2iπ T )e π Ts

−π Ts

j ω ′nTs

s

dω ′

i

π Ts

1 ∫−π Ts Ts

∑ H (ω ′ + 2iπ T )e

j ω ′nTs

s

dω ′

i

利用傅立叶级数公式,并用 ω 代替 ω ′ 可得:

∑ H (ω + 2iπ T ) = T ∑ h(nT )e s

s

i

因为

− jωnTs

s

n

∑ h(nT ) = 1 ,代入上式可得: s

n

∑ H (ω + 2iπ

Ts ) = Ts

ω ≤ π Ts

i

这就是奈奎斯特准则,其含义是用宽度 2π Ts 等分 H (ω ) ,然后各个部分叠加到区间

[− π

Ts π Ts ] ,则在该区间应该得到个常量。如果 H (ω ) 是宽度为 1 Ts 的理想滤波器,显

然是满足该等式。因为 ω ≤ π Ts ,而 ω = 2πf ,所以可以得到 f ≤ 1 2Ts 。这里 1 2Ts 被 称为奈奎斯特带宽, Ts 被称为奈奎斯特间隔。 假设存在一个理想滤波器,则当以 Ts 抽样 M 进制输入信号时,发送该信号的带宽为

1 2Ts ,则频带利用率 log 2 ⋅ (1 Ts ) (1 2Ts ) = 2 log 2 b/s/Hz。这是在抽样无失真的情况下, M

M

系统所能达到的最高频带利用率。 下面假设方波通过一个理想滤波器,来观察一下在各个抽样点上,抽样值是否与输入值 相同,代码如下。 %Sampling Frequency & Time Duration fs = 1000; t = 0:1/fs:1; %Generate rectangular waveform d = 0:0.1:1; x = 2*pulstran(t, d, 'rectpuls', 0.05)-1; %Generate ideal filter tx = -1:1/fs:1; y = sinc(fs*tx); If you have any suggestion or criticism, please email to [email protected]

56

% Convolution r = conv(x, y); %Judge the input & output equivalency isequal(int8(x), int8(r(1001:2001))); %Drawing subplot(2, 1, 1); plot(t, x); title('Before Convolution'); subplot(2, 1, 2); plot(t, r(1001:2001)); title('After Convolution'); axis tight 通过运行以上代码,可以发现在通过理想滤波器前后,各个抽样点上的输入值与输出值 是完全一样的。其图示如下:

从图上可以看到卷积前后,波形几乎一样。 3.2.2 升余弦滤波器 由于理想滤波器是在频率上是有限带宽,而且过渡带宽为 0,那么在时域上无限延展的, 所以理想滤波器并不存在。在工程实践中广泛使用的升余弦滤波器,因为该滤波器不仅满足 奈奎斯特准则,而且可以通过改变滚降系数来逼近理想滤波器。因为该滤波器时域波形近似 与余弦信号,但是中心部分向上升起,所以被称为升余弦滤波器。 升余弦滤波器在时域的表达式如下: If you have any suggestion or criticism, please email to [email protected]

57

h(t ) =

sin (πt T s ) cos(απt Ts ) ⋅ 2 πt T s 1 − 4(αt Ts )

其频率表达式为:

 Ts  T H(f )=  s 2  0 

0≤ f ≤

1− α 2Ts

  π (2Ts f − 1 + α )  1 − α 1+ α ≤ f ≤ 1 + cos   2α 2Ts     2Ts 1+α f > Ts

这里 α = W1 W 2 ,α 被称为滚降系数,取值范围从 0 到 1。W1 是额外带宽,范围从奈 奎斯特频率到截止频率。 W 2 是奈奎斯特带宽,范围从 0 到奈奎斯特频率。 由前面的分析可以知道, H ( f ) 是发送滤波器、信道滤波器、接收滤波器频域相乘的结 果。如果信道是理想情况,即 C ( f ) = 1 ,那么发送滤波器、接收滤波器应该如何表示呢? 这 时 因 为 C ( f ) = 1 , 所 以 H ( f ) = S ( f )R ( f ) 。 如 果 S ( f ) 、 R ( f ) 是 复 共 轭 的 , 即

S ( f ) = G ( f ) e − j 2πft , R( f ) = S * ( f ) = G ( f ) e j 2πft ,则 S ( f )R( f ) = G ( f ) ,所以可以得 2

到 H ( f ) = G( f

) 2 ,那么 G( f ) =

H ( f ) e − j 2πft ,这里 G ( f ) 被称为平方根升余弦滤波器,

也就是发送滤波器的表达式。 例如,在 WCDMA 的 3GPP TS 25.213 协议就有如下图示:

这里的脉冲成型滤波器就是平方根升余弦滤波器。该滤波器滚降系数为 0.22,表达式为:

t  t   t  sin  π (1 − α ) + 4α cos π (1 + α ) T T   T  s (t ) =  2 t  t  π 1 −  4α   T   T   下面利用 Matlab 来仿真平方根升余弦滤波器,滚降系数为 0.22,其代码如下: %Parameters Delay = 3; Fs = 8; Fd = 1;

If you have any suggestion or criticism, please email to [email protected]

58

%Generate random data a = randsrc(20, 1, [], 1245); %Construct root-raised cosine filter with roll-off 0.22 [num, den] = rcosine(Fd, Fs, 'fir/sqrt', .22, Delay); %Transmitter filter [x, tx] = rcosflt(a, Fd, Fs, 'filter', num); %Receiver filter [z, tz] = rcosflt(x, Fd, Fs, 'filter/Fs', num); %Compensate the delay PropD = Delay * Fd; ta = [PropD: PropD + 20 - 1] ./ Fd; tx = tx + Delay .* Fd; ta = ta + Delay .* Fd; %Drawing stem(ta, a, 'kx'); hold on; plot(tx, x, 'm-',tz, z, 'b-'); hold off; axis([0 30 -1.6 1.6]); xlabel('Time'); ylabel('Amplitude'); 其图形如下,其中洋红色曲线是发送滤波器的输出波形,蓝色曲线是接收滤波器的输出 波形。

可以看到通过两个平方根滤波器后,输出数据在采样点上基本上没有失真,从而消除了 If you have any suggestion or criticism, please email to [email protected]

59

码间干扰的影响。 另外可以利用如下代码来观察平方根滤波器的时域、频域特性。 fvtool(num, den) 其幅频响应曲线如下:

冲激响应曲线如下:

为方便观察分析接收滤波器的输出信号,通常采用眼图来表示。例如对上面接收滤波器 的输出可以用如下代码来观察 eyediagram(z(49:188), 8) 其输出波形为

If you have any suggestion or criticism, please email to [email protected]

60

对于眼图需要做以下说明: 一:从抽样时间(横轴)上看,最优判决时刻应该是图中上下曲线间距最大的时刻,例 如上图中 0 时刻上下曲线有最大间距。 二:从抽样时间(横轴)上看,左右两边交汇点到 0 时刻的时间差值表明了对定时误差 的灵敏度,曲线越陡峭对定时误差越敏感。交汇点到边界的时间差值表明了过零点失真。例 如上图中对定时误差的灵敏度约为 0.4,过零点失真约为 0.1。 三:从幅度(纵轴)上看,上、下曲线到中心 0 点的距离称为噪声容限,也表明其抗噪 声能力。另外,上、下曲线在 0 时刻并没有交互成一个点,而是有多个取值,其中最小、最 大数值的差值被称为峰值失真。例如上图中噪声容约为 0.9,峰值失真约为 0.2。 3.2.3 部分响应 由前面的分析可以知道利用升余弦滤波器必须扩展带宽,扩展程度可以通过滚降系数来 衡量,带宽扩展意味着频带利用率下降。是否有方法可以提高频带利用率呢? 可以在相同的带宽下,引入可控的码间干扰来达到该目的,这就是奈奎斯特第二准则。 在某些码元抽样时刻引入码间干扰,而在其余码元抽样时刻无码间干扰,那么就可以提高频 带利用率。 假设信道是理想带限信道,并且存在这样的发送、接收滤波器,使得:

1 n = 0,1 h(nTs ) =  0 n ≠ 0,1 那么满足该条件的滤波器在时域可以认为是两个 sinc 波形组合而成。 t = 0:0.001:2; x1 x2 x3 x4

= = = =

sinc(10*(t-1)); sinc(10*(t-1.1)); sinc(10*(t-1.2)); sinc(10*(t-1.3));

If you have any suggestion or criticism, please email to [email protected]

61

plot(t, x1); hold on; plot(t, x2); plot(t, x3); plot(t, x4); plot(t, x1+x2, 'r'); plot(t, x2+x3, 'r'); plot(t, x3+x4, 'r'); hold off; grid 其图形如下,其中红色曲线是叠加后的波形,被称为双二进制信号,图中有三个双二进 制信号。

双二进制信号时域的表达式如下:

h(t ) =

sin πt Ts sin π (t − T s ) Ts + πt T s π (t − Ts ) Ts

其频域表达式如下:

 2Ts cos πfTs H(f )=   0 

1 2Ts 1 f > 2Ts f ≤

观察双二进制信号波形可以知道,其一旁瓣衰减很快,比 sinc 波形要快很多。其二在 抽样时刻,双二进制信号与前后波形存在码间干扰,但是与其它信号不存在码间干扰。 除了双二进制信号脉冲波形,还有以下这些波形可用: If you have any suggestion or criticism, please email to [email protected]

62

sin πt Ts sin π (t − Ts ) Ts sin π (t − 2Ts ) Ts +2 + π (t − 2Ts ) Ts πt Ts π (t − Ts ) Ts

1.

h(t ) =

2.

h(t ) = 2

3.

h(t ) =

sin πt Ts sin π (t − 2Ts ) Ts − πt Ts π (t − 2Ts ) Ts

4.

h(t ) =

sin πt Ts sin π (t − 2Ts ) Ts sin π (t − 4Ts ) Ts +2 − πt Ts π (t − 2Ts ) Ts π (t − 4Ts ) Ts

sin πt Ts sin π (t − Ts ) Ts sin π (t − 2Ts ) Ts + − πt Ts π (t − Ts ) Ts π (t − 2Ts ) Ts

由于相邻双二进制信号间存在码间干扰,假设在第 n 个抽样时刻抽样值为 Bn ,其取值 可以是 0,±2 。 Bn 该值可以认为等于 I n + I n −1 , I n = ±1 。 I n −1 对应在第 n − 1 个抽样时刻发 送的码元,那么就可以通过计算得到 I n = Bn − I n −1 对应当前时刻发送的码元,如此循环就 可以计算出发送序列。但是由于 I n 依赖与 I n −1 ,所以当 I n −1 计算错误后,这个错误就可以被 传播下去,从而导致整个译码序列错误。 为了避免这个错误传播,可以在发送端采用预编码方法。假设发送二进制码元序列 an , 令通过模 2 加法可以得到 an = bn ⊕ bn −1 ,也就是 bn = an ⊕ bn −1 。将 bn 映射成 I n ,当 bn = 0 时, I n 等于-1,当 bn = 1 时, I n 等于+1,即 I n = 2bn − 1 。由前面的叙述可以知道

Bn = I n + I n−1 = 2bn − 1 + 2bn−1 − 1 = 2(bn + bn−1 − 1)



= 2(a n −1)

所以

an =

Bn +1 2

这样就可以 I n 与 I n −1 的依赖关系。下面通过例子来说明: %define data length len = 100; %Generate the data a = randint(len, 1, 2); %Calculate the b If you have any suggestion or criticism, please email to [email protected]

63

b = zeros(len+1, 1); for n = 2 :len+1 b(n) = bitxor(b(n-1), a(n-1)); end %Calculate the I I = 2*b - 1; %Calculate the B B = zeros(10, 1); for n = 1 :len B(n) = I(n)+I(n+1); end %Decode ar = mod(B/2 + 1, 2); %Judge the equality isequal(a, ar) 其输出结果总是 true,所以表明通过该方法可以完成解码并且消除码元间判断的依赖关 系。 3.3 扩频序列 本节主要讨论多径衰落信道环境下的信号设计。由于无线信号传播方向可以是任意的, 同时发送的无线信号可以通过不同路径到达接收机,其到达的时刻是不同的。信号到达接收 机可以是直射路径、反射路径、衍射路径等。 假设发送的信号波形如下:

s (t ) = A cos(ωt + φ ) 其中 A 是信号幅度,这里假设信号幅度不变,通常信号幅度衰减与传输距离的平方成 正比。那么通过延时τ 到达接收机的信号波形为

r (t ) = A cos(ωt + φ ′), φ ′ = φ + ωτ 这里 φ ′ 是到达接收机的信号相位,可以看到 φ ′ 是延时 τ 的函数。由于信号通过不同路 径到达接收机,所以延时τ 是不同的。如果通过不同路径到达接收的两个信号具有相同相位, 那么在该时刻信号强度被增强;如果具有相反的相位,那么该时刻信号强度被衰减。同相位、 反相位的出现是随机的,所以多径干扰就是因为不同路径信号彼此随机干扰而形成的。 如果能让不同路径信号间彼此完全独立,那么就可以避免多径干扰的形成。分析一种最 简单的情况,假设有两个信号同时到达接收机

r1 (t ) = A cos(ωt + φ1 ), φ1 = φ + ωτ 1 r2 (t ) = A cos(ωt + φ 2 ), φ 2 = φ + ωτ 2 那么信号可以采用矢量法合成为一个信号,采用图示法表示信号合成如下: If you have any suggestion or criticism, please email to [email protected]

64

r1 (t ) φ2 −φ 1

r (t )

ϕ

r2 (t )

这里

r (t ) = A cos(ωt + ϕ ) A = A 2(1 + cos(φ 2 − φ1 )) 所以可以得到信号 r (t ) 的功率

P = A 2 = 2 A 2 (1 + cos(φ 2 − φ1 )) = 2 A 2 (1 + cos(ω (τ 2 − τ 1 )))

所以可以看到接收信号的功率与延时差值是有关系的。信号 r (t ) 的功率也可以表示成

[

] [

]

P = E[r1 (t ) + r2 (t )] = E r12 (t ) + E r22 (t ) + 2 E[r1 (t )r2 (t )] 2

 R(τ 2 − τ 1 )   = 2 A 2 1 + R(0)  

香农提出假设:在高斯信道上,最佳传输信号形式是具有白噪声统计特性的信号。对于 具有白噪声统计特性的信号其自相关函数有

R(τ ) ≠ 0, τ = 0  R(τ ) = 0, τ ≠ 0 代入功率计算公式,可得

4 A 2 τ = 0 P= 2 2 A τ ≠ 0 这样即使在多径环境下,依然可以解调,没有多径干扰存在。由于理想白噪声信号是不 可能在工程中用于传输信号,所以采用近似白噪声信号的伪噪声信号来模拟白噪声信号。伪 噪声信号可以在发送端生成,而在接收端被解码,实际上是可以被控制的,而生成的序列很 近似噪声序列。伪噪声信号应该具有如下的自相关函数

R PN

 2 τ  A 1 − =   T  0 

  τ f c 被称 为上边带,两个边带具有相同的信息,而且调制信号的频谱中不含有任何载波成分。 下面代码生成的波形就可以清楚看到矩形信号在频域是以 f c 为对称中心的 sinc 波形。 %Cosine & BASK waveform t = 0 : 1/1e3 : 0.999; a = 2*[1 0 1 0 1 0 1 0 1 0]-1; g = ones(1, 100); g = [g, g, g, g, g, g, g, g, g, g]; s1 = cos(2*pi*100*t); s2 = a(ceil(10*t+0.01)).*g.*cos(2*pi*100*t); %Calculate the power spectrum f = 1000*(0:256)/512; If you have any suggestion or criticism, please email to [email protected]

70

S1 = fft(s1,512); Pss1 = S1.* conj(S1) / 512; S2 = fft(s2,512); Pss2 = S2.* conj(S2) / 512; %Drawing subplot(2, 1, 1); plot(f,Pss1(1:257)); subplot(2, 1, 2); plot(f,Pss2(1:257)); 生成的对比波形如下:

可以看到余弦信号的最大值在中心频率 100Hz 处,然后迅速衰减,而二进制振幅调制 信号的最大值在中心频率 90Hz、110Hz 处,衰减按 sinc 波形波动的。这里二进制振幅调制 的输入比特流按 1、0 依次变化,从而得到上面的第二个波形。 因为双边带具有相同的信息,为了节约带宽,可以通过希尔伯特变化将带宽减少到双边 带调幅的一半,这种调幅方式被称为单边带调幅。 为了得到单边带调幅信号,最为直观的做法就是通过理想带通滤波器滤除上边带,或者 通过理想带阻滤波器滤除下边带。但是没有过渡带的理想滤波器是难以实现的,所以通常不 采用滤波器的方法来实现单边带滤波,而是采用移相的方法,也就是通过希尔伯特变换来实 现单边带调制。 希尔伯特在时域的表达式为:

h(t ) =

1 πt

If you have any suggestion or criticism, please email to [email protected]

71

频域表达式为:

H ( f ) = − j sgn ( f ) 由其频域表达式可知希尔伯特滤波器的幅度为常数 1,相位为 − π 2 当 f > 0 , π 2 当

f < 0。 令 gˆ (t ) = g (t ) ∗ h(t ) ,则上单边带调幅信号可以表示为:

s u (t ) = (a n g (t ) cos ωt − a n gˆ (t ) sin ωt ) 2 下边带调幅信号为

s l (t ) = (a n g (t ) cos ωt + a n gˆ (t ) sin ωt ) 2 可以看到上下边带调幅信号相加就是双边带信号。 单边带调幅信号的生成的框图如下: an g (t )

cos ωt

h(t )

m −π 2

sin ωt

如果是周期信号,那么希尔伯特变换可以用 − π 2 移相来代替,基于这个假设来观察如 下代码所得结果 %Time and random t = 0 : 1/1e3 : 0.999; a = 2*[1 0 1 0 1 0 1 0 1 0]-1; % random sequence & -pi/2 phase shift A = a(ceil(10*t+0.01)); A1 = [zeros(1, 5), A(1:995)]; %Generate Upper side band & lower side band g = ones(1, 100); g = [g, g, g, g, g, g, g, g, g, g]; su = (A.*g.*cos(2*pi*100*t) - A1.*g.*sin(2*pi*100*t))/2; sl = (A.*g.*cos(2*pi*100*t) + A1.*g.*sin(2*pi*100*t))/2; %Calculate the Power Spectrum f = 1000*(0:256)/512; Su = fft(su,512); If you have any suggestion or criticism, please email to [email protected]

72

Pssu = Su.* conj(Su) / 512; Sl = fft(sl,512); Pssl = Sl.* conj(Sl) / 512; %Drawing subplot(4, 1, 1); plot(t, A); axis([0, 1, -1.2, 1.2]); subplot(4, 1, 2); plot(t, su); axis([0, 1, -1, 1]); subplot(4, 1, 3); plot(f,Pssu(1:257)); axis tight subplot(4, 1, 4); plot(f,Pssl(1:257)); axis tight 所得图形如下:

图中第三幅图是上边带调制的功率谱密度图,第四幅图是下边带调制的功率谱密度图。 从第三、四张图可以看出,当上边带振幅调制时,上边带信号强度高于下边带而且上边带的 旁瓣存在,下边带旁瓣快速衰减;当下边带振幅调制时,下边带信号强度高于上边带而且下 边带的旁瓣存在,上边带旁瓣快速衰减。

If you have any suggestion or criticism, please email to [email protected]

73

BASK 调制信号是一维信号,设基函数ψ (t ) =

s (t ) = a n g (t ) cos ωt =

εg 2

2 g (t ) cos ωt ,那么 εg

an ⋅

2 g (t ) cos ωt = s nψ (t ) εg

所以

sn =

εg 2

n = 1,2

an

在矢量空间上可以用下图表示 s1

选择ψ (t ) =

s2

2 g (t ) cos ωt 做为基函数是因为 εg ε ψ = ∫ ψ 2 (t )dt = ∞

−∞

2 εg





−∞

g 2 (t ) cos 2 ωtdt

2 ∞ g (t ) cos 2ωt  2  ∞ g 2 (t ) + dt dt   ∫−∞ ∫ − ∞ 2 2 εg   2 εg 2 = ⋅ + ⋅0 =1 εg 2 εg

=

也就是因为该基函数是单位矢量。 4.1.2 MASK 以上分析了当输入是二进制比特流的情况,现在扩展成输入是 M 进制比特流的幅度调 制。这里 M = 2 ,N 是大于或等于 2 的自然数,N 代表同时被发送的比特数。例如 N = 2 N

表示将输入比特流按 2 个比特为一组同时发送,同一组比特被称为一个码元。将 M 进制比 特流映射成振幅值应该等于:

A = (2m + 1 − M )d

m = 0,L, M − 1

式中 d 用来控制幅度间的差值,该值等于幅度间差值的一半。 下面的代码说明了一个四进制比特流的映射过程以及波形 %M-ary M=4 %Amplitude gap d = 1; %Duration t = 0 : 1/1e3 : 0.999; If you have any suggestion or criticism, please email to [email protected]

74

%Generate bit stream a = randint(1, 20, 2); %Generate symbol for n = 0:9 sym(n+1) = a(2*n+1)*2 + a(2*n+2); end % MASK sym = (2*sym +1 - M)*d; g = ones(1, 100); g = [g, g, g, g, g, g, g, g, g, g]; s = sym(ceil(10*t+0.01)).*g.*cos(2*pi*100*t); %Drawing subplot(3, 1, 1); plot(t, a(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(3, 1, 2); plot(t, sym(ceil(10*ta+0.01))); subplot(3, 1, 3); plot(t, s); 相应的波形为

If you have any suggestion or criticism, please email to [email protected]

75

如果 M 进制振幅调制的输入码元与二进制振幅调制的输入码元具有相同速率,那么 M 进制振幅调制与二进制振幅调制具有相同的带宽,而 M 进制振幅调制具有更高的带宽利用 率,因为在单位时间内 M 进制振幅调制能传输更多的比特。虽然 M 进制振幅调制具有更高 的带宽利用率,但是在相同信噪比下,随着 M 增大,误码率也增大,也就是因为功率受限。 M 进制振幅调制也可以使用单边带调制等方式。 MASK 调制信号是一维信号,与 BASK 调制信号有相同的基函数,不同的是在一维信 号空间上 MASK 有更多的信号点,BASK 只有两个信号点。 4.1.3 QAM 以上讨论都是单个载波的情况,也就是在单载波的情况下输入 M 进制比特流,现在考 虑有两个载波分量的情况下的输入 M 进制比特流,称这种调制为 QAM 调制方式。 因为载波分量 cos ωt 与 sin ωt 是彼此正交的,也就是满足如下条件,在一个周期内有



T

0

cos ωt sin ωt = 0 ,所以该调制方式被称为正交幅度调制。其输出信号的表达式为: s (t ) = AI g (t ) cos ωt + AQ g (t ) sin ωt 式中 AI g (t ) cos ωt 被称为同相分量, AQ g (t ) sin ωt 被称为正交分量, AI , AQ 被称为同

相载波分量幅度、正交载波分量幅度。 下面代码演示 QAM 调制过程及其星座图。 %Duration t = 0 : 1/1e3 : 0.999; %Source a = randint(1, 20, 2); %Serial to Parallel Ai = 2*a(1:2:20) - 1; Aq = 2*a(2:2:20) - 1; %QAM Modulation g = ones(1, 100); g = [g, g, g, g, g, g, g, g, g, g]; s = Ai(ceil(10*t+0.01)).*g.*cos(2*pi*100*t) ... + Aq(ceil(10*t+0.01)).*g.*sin(2*pi*100*t); %Drawing plot(t, s); scatterplot(Ai+j*Aq); 其波形如下:

If you have any suggestion or criticism, please email to [email protected]

76

星座图如下,图中的圆点代表了发送信号矢量在信号空间中的位置。

QAM 调制信号是二维信号,那么基函数必须有两个。基函数分别是

ψ I (t ) =

2 g (t ) cos ωt εg

ψ Q (t ) =

2 g (t ) sin ωt εg

将基函数代入到 s (t ) 可得

s (t ) = AI g (t ) cos ωt + AQ g (t ) sin ωt = AI = AI

εg 2 εg 2



εg 2 2 cos ωt + AQ ⋅ sin ωt 2 εg εg

⋅ψ I (t ) + AQ

εg 2

⋅ψ Q (t )

所以在二维信号空间上 QAM 信号点的位置为

   A εg , A εg   I 2 Q 2   

If you have any suggestion or criticism, please email to [email protected]

77

4.2 相位调制 4.2.1 PSK 本节主要讨论相位调制技术,设发送信号表示成:

s (t ) =

2ε 2mπ   cos ωt +  m = 0, L , M − 1 T M  

这里 M 是可能的相位个数, M = 2 ,N 是每次被输入到调制器的比特数。当 M 等于 N

2,这时 PSK 通常被称为二进制相移键控(BPSK) ,当 M 等于 4,这时 PSK 通常被称为四 进制相移键控(QPSK) 。如果输入的比特流先经过差分编码然后输入到调制器,这时 PSK 通常被称为差分相移键控(DPSK) 。 下面代码采用 QPSK 调制方式 %Duration t = 0:0.001:0.999; %Input bit stream a = randint(1, 20, 2); m = a(1:2:20)*2+a(2:2:20); m = m(ceil(10*t+0.01)); %QPSK modulation s = cos(2*pi*100*t+m*pi/2); %Power Spectrum Density f = 1000*(0:256)/512; S = fft(s,512); Pss = S.* conj(S) / 512; %Drawing subplot(3, 1, 1); plot(t, a(ceil((100*t+0.1)/5))); axis([0 1 min(a)-0.2 max(a)+0.2]); subplot(3, 1, 2); plot(t, s); subplot(3, 1, 3); plot(f, Pss(1:257)) 波形图如下

If you have any suggestion or criticism, please email to [email protected]

78

上面的 PSK 调制信号表达式可以利用三角恒等式表示成

s (t ) =

2ε 2mπ 2ε 2mπ cos cos ωt − sin sin ωt T M T M

设正交基函数为ψ 1 (t ) =

m = 0,1,L, M − 1

2 2 cos ωt 、ψ 2 (t ) = − sin ωt ,则 PSK 在该矢量空间上可 T T

以表示成

2mπ 2mπ   , ε sin  ε cos  M M   对于 BPSK 调制信号,因为 M = 2 , sin

2mπ 恒等于 0,所以二维矢量空间上的 PSK M

信号可以被简化成一维矢量空间上的 BPSK 信号。此时

s (t ) = 设正交基函数为ψ 1 (t ) =

2ε 2mπ cos cos ωt T M

m = 0,1

2 cos ωt ,BPSK 在该矢量空间上可以表示成 T 2mπ    ε cos  M  

If you have any suggestion or criticism, please email to [email protected]

79

4.2.2 OQPSK 现在讨论的 PSK 调制方式是恒包络调制方式,这类调制方式可以在接收端采用限幅的 方式来消除干扰引起的幅度变化,从而获得更好的抗干扰性能。 假定 QPSK 调制的基带波形是矩形波形,那么在频域调制后的信号具有无限带宽。通常 信道都是带限的,当调制信号通过该信道后,输出信号不再是恒包络的。当 QPSK 调制在相 邻码元间发生 180 度相移时,带限后的包络甚至会出现包络为 0 的现象。通过非线性带限信 道后,在接收机由于功放的非线性,包络的起伏虽然可以被消减,但同时会使频谱扩展,从 而对临近信道的信号形成干扰。 为避免出现 180 度的相移,可以采用 OQPSK(Offset QPSK)调制方式。该调制方式首 先串并变换,将输入比特流分成 I、Q 两路比特流,原先周期为 T s 的一个比特流变成周期为

2Ts 的两个比特流,然后将 Q 路比特流偏移一个周期 T s ,按 QPSK 方式调制。这样由于在 每个周期 T s 只有某一路比特发生变化,而不会出现 I、Q 两路比特同时变化,所以就可以避 免出现 180 度的相移。当 I、Q 两路比特同时变化,QPSK 调制会出现 180 度的相移。 该调制方式发送信号可以表示成:

s (t ) = I (t ) cos(2πft ) + Q(t − Ts ) sin (2πft ) 下面的代码采用 OQPSK 调制方式: %Duration t = 0 : 1/1e3 : 0.999; %Source a = randint(1, 20, 2); m = 2*a -1; I = m(1:2:20); Q = m(2:2:20); I = [I(ceil((1000*t+1)/100)), ones(1, 50)]; Q = [ones(1, 50), Q(ceil((1000*t+1)/100))]; %QPSK t = 0 : 1/1e3 : 1.049; s = I.*cos(2*pi*100*t) - Q.*sin(2*pi*100*t); %Power Spectrum f = 1000*(0:256)/512; S = fft(s,512); Pss = S.* conj(S) / 512; %Drawing subplot(4, 1, 1); plot(t, I); If you have any suggestion or criticism, please email to [email protected]

80

axis([0, 1, -1.2, 1.2]); subplot(4, 1, 2); plot(t, Q); axis([0, 1, -1.2, 1.2]); subplot(4, 1, 3); plot(t, s); axis tight subplot(4, 1, 4); plot(f, Pss(1:257)); 得到的波形图如下:

从图中可以看到 OQPSK 调制方式占用较大的带宽。 由于相位的跳变导致通过带限信道后包络发生变化,所以如果采用连续相位变化就可以 尽量避免因为相位跳变导致的包络变化。这就是连续相位调制,在频率调制将讨论连续相位 调制方式,例如 CPFSK、MSK 调制方式。 4.3 频率调制 4.3.1 BFSK 本节主要讨论频率调制技术,从最简单的二进制频率调制开始。设发送信号表示成:

s (t ) =

2ε cos(2π ( f + m∆f )t ) m = 0,1 T

这里 ∆f 是相对于 f 的固定频率偏移。m 是输入比特流,通常由 0、1 组成。 下面代码生成 BFSK 信号并画出其功率谱 %Time If you have any suggestion or criticism, please email to [email protected]

81

t = 0 : 1/1e3 : 0.999; %Frequency Offset df = 20; %Source & BFSK signal a = randint(1, 10, 2); m = a(ceil(10*t+0.01)); s = cos(2*pi*(90+m*df).*t); %Calculate the Power Spectrum f = 1000*(0:256)/512; S = fft(s,512); Pss = S.* conj(S) / 512; %Drawing subplot(3, 1, 1); plot(t, a(ceil(10*t+0.01))); axis([0, 1, 0, 1.2]); subplot(3, 1, 2); plot(t, s); subplot(3, 1, 3); plot(f, Pss(1:257)); 其输出波形以及功率谱如下图

If you have any suggestion or criticism, please email to [email protected]

82

由图中可以看到输出信号的的中心频率为 100Hz,其两个峰值间隔为 20Hz。BFSK 信号 所占用的带宽为 B BFSK = ∆f + 2 B ,∆f 为固定频率偏移, B 为数字基带信号带宽。 图中 110Hz 处的功率明显高于 90Hz 处的功率,这是因为发送信号的不平衡造成的,也就是 0、1 比特 数量不相等造成的。因为比特 1 的数量多于比特 0,所以 110Hz 处的功率高于 90Hz 处的功 率。

∆f 是 BFSK 调制方式的重要参数,该参数决定了发送信号的相似程度,如果发送信号 彼此越不相似,那么发送信号就越容易被识别,所以需要给该参数定义约束条件。首先,用 相关系数来表示发送信号间的相似性,设

1 T 2ε cos(2πft ) cos(2π ( f + ∆f )t )dt ε ∫0 T 1 T 1 T = ∫ cos(2π∆ft )dt + ∫ cos(2π (2 f + ∆f )t )dt 0 T T 0 sin 2π∆fT = 2π∆fT

r=

所以当相关系数为零时, ∆f 必须是1 2T 的整数倍,表明发送信号间彼此正交。下面 的代码就看出相关系数 r 与固定频率偏移 ∆f 间的关系。 %Symbol duration T = 0.1; %Frequency offset df = 0:0.001:100; %Correlation coefficient r = sin(2*pi*df*T)./(2*pi*df*T); %Drawing plot(df, r); grid; 输出波形图如下

If you have any suggestion or criticism, please email to [email protected]

83

这里 T = 0.1 ,从图中可以看出当 ∆f = 1 2T = 5 的倍数时,相关系数等于零。当 T 单 调递减时, ∆f 就会单调递增,那么 BFSK 调制信号所需要的带宽就会增加。 设基函数ψ m (t ) =

2 cos(2π ( f + m∆f )t ) m = 0,1 ,那么 BFSK 信号可以用如下正交 T

矢量表示

( ε ,0 ) = (0, ε )

s0 = s1

4.3.2 MFSK 前面讨论的是每次仅输入单个比特到调制器,如果每次输入多个比特到调制器,那么称 为 M 进制频率调制,简称 MFSK。这里 M = 2 , N ≥ 1 ,N 是每次输入到调制器的比特数。 N

s (t ) =

2ε cos(2π ( f + m∆f )t ) m = 0,1, L , M − 1 T

假设 N 等于 2,那么 M 等于 4,现在对 4 进制 FSK 编写如下代码观察波形及其功率谱。 %Time t = 0 : 1/1e3 : 0.999; %Frequency offset If you have any suggestion or criticism, please email to [email protected]

84

df = 20; %Source & 4FSK a = randint(1, 20, 2); m = 2*a(1:2:20)+a(2:2:20); m = m(ceil(10*t+0.01)); s = cos(2*pi*(70+m*df).*t); %Power Spectrum f = 1000*(0:256)/512; S = fft(s,512); Pss = S.* conj(S) / 512; %Drawing subplot(3, 1, 1); plot(t, m); axis([0, 1, -0.2, 3.2]); subplot(3, 1, 2); plot(t, s); subplot(3, 1, 3); plot(f, Pss(1:257)); 生成波形如下

由图中可以看到输出信号的中心频率为 100Hz,相邻峰值间隔 20Hz,四个峰值分别出 现在 70Hz、90Hz、110Hz、130Hz。 If you have any suggestion or criticism, please email to [email protected]

85

设基函数ψ m (t ) =

2 cos(2π ( f + m∆f )t ) m = 0,1,L, M − 1 ,那么 MFSK 信号可以 T

用如下正交矢量表示

( ε ,0,L0) = (0, ε , L,0)

s0 = s1

(

M

s M −1 = 0,0, L , ε

)

4.3.3 CPM 4.3.3.1 CPM 4.3.3.2 CPFSK 以上两种频移键控调制方式,由于相位的非连续性导致谱扩展,有较大的频谱旁瓣产生。 为避免产生较大的频谱旁瓣,可以用调制信号调制单一频率载波,并且相位连续变化,称这 用频移键控为连续相位频移键控 CPFSK。其输出信号表达式为: t   s (t ) = cos 2πft + 4πTf d ∫ ∑ I n g (τ − nT )dτ  −∞ n  

这里 T 是基带信号的周期, f d 是峰值频率偏移。 I n 是要发送的数字信息, g (t ) 是基带 信号波形,通常可以采用矩形脉冲。虽然

∑ I g (t − nT ) 是不连续的,但是其积分却是连续 n

n

的,所以该调制方式具有连续相位。 令

φ (t ; I ) = 4πTf d ∫

t

−∞

= 2πf d T

∑ I g (τ − nT )dτ n

n

n −1

∑I

k = −∞

k

+ 2πf d I n (t − nT )

= θ n + 2πhI n q(t − nT ) 这里

h = 2 fdT n −1

θ n = πh ∑ I k k = −∞

 0  q(t ) = t / 2T  1/ 2 

t 0 output(n+1) = 1; else output(n+1) = 0; end end %Get the input bit stream input = (a+1)/2; %Drawing subplot(2, 1, 1); plot(t, input(ceil(10*t+0.01))); axis([0, 1, 0, 1.2]); subplot(2, 1, 2); plot(t, output(ceil(10*t+0.01))); axis([0, 1, 0, 1.2]); 所得波形图示如下

图中第一幅图为发送端的输入比特流波形图,第二副图是解调后输出的比特流波形图。 可见两幅图的波形是完全一致的,说明通过相关解调器、采用最大似然准则算法的检测器后, 发送端信号能够正确解调。 如果读者有兴趣可以不断降低信噪比,最终会看到输入比特流与输出比特流不一致。

If you have any suggestion or criticism, please email to [email protected]

106

5.3.2 MASK 由于 MASK 与 BASK 都是一维信号,所以两者可以采用相同的解调器。但是 MASK 在 一维信号空间上有多个信号点,而不是像 BASK 只有两个信号点,所以 MASK 信号的检测 器不能像 BASK 的检测器那样简单,而是需要通过计算距离度量来判决信号。 下面的代码演示 BASK 信号解调、检测过程(设信噪比为 0dB, M = 4 ) %The received signal r = awgn(s, 0); %The symbol duration T = 0:1/1e3:0.099; %The correlator signal correlator = cos(2*pi*100*T); %MSK demodulation for n = 0:9 result(n+1) = trapz(T, r(n*100+1:n*100+100).*correlator); end %Calculate the signal points in vector space s0 = trapz(T, -3*ones(1, 100).*cos(2*pi*100*T).*correlator); s1 = trapz(T, -1*ones(1,100).*cos(2*pi*100*T).*correlator); s2 = trapz(T, 1*ones(1,100).*cos(2*pi*100*T).*correlator); s3 = trapz(T, 3*ones(1,100).*cos(2*pi*100*T).*correlator); %Detection for n = 0:9 [C, I(n+1)] = min([abs(result(n+1)-s0), abs(result(n+1)-s1), ... abs(result(n+1)-s2), abs(result(n+1)-s3)]); end %The input symbol input = (sym./d + M - 1)/2; %The output symbol output = I -1; %Drawing subplot(2, 1, 1); plot(t, input(ceil(10*t+0.01))); axis([0, 1, min(input)-0.2, max(input)+0.2]); subplot(2, 1, 2); plot(t, output(ceil(10*t+0.01))); axis([0, 1, min(output)-0.2, max(output)+0.2]); If you have any suggestion or criticism, please email to [email protected]

107

这里接收信号与发送信号在矢量空间上的距离度量只是采用很简单的求绝对值计算方 法。这是因为 MASK 是一维信号,其信号点分布在一维信号空间,而一维空间上的距离计 算可以简化为求两点间差值的绝对值。 下图是输入比特流与输出比特流的波形

由图可知在接收端采用相关解调器与最大似然准则检测器,MASK 接收信号能够被正 确的解调与检测。 5.3.3 QAM QAM 信号是二维信号,所以其解调器与先前 BASK、MASK 信号的解调器有所不同。 由于是 QAM 是二维信号,所以其解调器必须包含两个相关解调器,分别解调 QAM 信号的 同相分量、正交分量。 设接收信号为

r (t ) = AI g (t ) cos ωt + AQ g (t ) sin ωt + n(t ) 通过相关解调器与基函数

ψ I (t ) =

2 g (t ) cos ωt εg

ψ Q (t ) =

2 g (t ) sin ωt εg

做相关运算可以得到如下输出

r1 = AI ε g + n r2 = AQ ε g + n If you have any suggestion or criticism, please email to [email protected]

108

检测器与先前 BASK、MASK 信号的检测器也有所不同,由于 QAM 是二维信号,其信 号点分布于二维信号空间,所以接收信号于发送信号的欧式距离计算不能够像先前一维信号 那样简化。需要用如下距离度量公式计算

D(r , s m ) = r − s

2

m = 0, L , M − 1

然后从中选取具有最小距离的 s m 做为输出。 下面的代码演示 BASK 信号解调、检测过程(设信噪比为 0dB) %The received signal r = awgn(s, 0); %Two correlators T = 0:1/1e3:0.099; Icorrelator = cos(2*pi*100*T); Qcorrelator = sin(2*pi*100*T); %QAM demodulation %The result is two dimensions variant for n = 0:9 result(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator), ... trapz(T, r(n*100+1:n*100+100).*Qcorrelator)]; end %Calculate the signal points in vector space %The s0, s1, s2, s3 are two dimensions variant s0 = [trapz(T, -1*ones(1, 100).*cos(2*pi*100*T).*Icorrelator), ... trapz(T, -1*ones(1, 100).*sin(2*pi*100*T).*Qcorrelator)]; s1 = [trapz(T, -1*ones(1, 100).*cos(2*pi*100*T).*Icorrelator), ... trapz(T, 1*ones(1, 100).*sin(2*pi*100*T).*Qcorrelator)]; s2 = [trapz(T, 1*ones(1, 100).*cos(2*pi*100*T).*Icorrelator), ... trapz(T, -1*ones(1, 100).*sin(2*pi*100*T).*Qcorrelator)]; s3 = [trapz(T, 1*ones(1, 100).*cos(2*pi*100*T).*Icorrelator), ... trapz(T, 1*ones(1, 100).*sin(2*pi*100*T).*Qcorrelator)]; %Detection for n = 0:9 [C, I(n+1)] = min([norm(result(n+1,:)-s0), ... norm(result(n+1,:)-s1), norm(result(n+1,:)-s2), ... norm(result(n+1,:)-s3)]); end %The input bit stream input = a;

If you have any suggestion or criticism, please email to [email protected]

109

%The ouput stream output(1:2:20) = floor((I-1)/2); output(2:2:20) = mod((I-1), 2); %Drawing subplot(2, 1, 1); plot(t, input(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

由图可知在接收端采用相关解调器与最大似然准则检测器,QAM 接收信号能够被正确 的解调与检测。 5.4 相位调制解调 5.4.1 PSK 5.4.1.1 相干解调 r = awgn(s, 0); T = 0:1/1e3:0.099; Icorrelator = cos(2*pi*100*T); Qcorrelator = -sin(2*pi*100*T); for n = 0:9 If you have any suggestion or criticism, please email to [email protected]

110

result(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator), ... trapz(T, r(n*100+1:n*100+100).*Qcorrelator)]; end s0 = [trapz(T, cos(2*pi*100*T).*Icorrelator), ... trapz(T, cos(2*pi*100*T).*Qcorrelator)]; s1 = [trapz(T, cos(2*pi*100*T+pi/2).*Icorrelator), ... trapz(T, cos(2*pi*100*T+pi/2).*Qcorrelator)]; s2 = [trapz(T, cos(2*pi*100*T+pi).*Icorrelator), ... trapz(T, cos(2*pi*100*T+pi).*Qcorrelator)]; s3 = [trapz(T, cos(2*pi*100*T+3*pi/2).*Icorrelator), ... trapz(T, cos(2*pi*100*T+3*pi/2).*Qcorrelator)]; for n = 0:9 [C, I(n+1)] = min([norm(result(n+1,:)-s0), ... norm(result(n+1,:)-s1), ... norm(result(n+1,:)-s2), ... norm(result(n+1,:)-s3)]); end input = a; output(1:2:20) = floor((I-1)/2); output(2:2:20) = mod(I-1, 2); subplot(2, 1, 1); plot(t, input(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]);

If you have any suggestion or criticism, please email to [email protected]

111

5.4.1.2 非相干解调 对于 PSK 调制,除非采用特殊的相位调制方式,否则一般情况下相位调制方式不存在 非相干解调方式。因为解调需要接收信号与接收端载波混频以消除高频信号获得基带信号, 而 PSK 调制是依靠相位信息来发送调制信息,所以采用非相干解调会引入相位噪声,从而 破坏了相位信息。下面来证明,设接收信号为

r (t ) =

2ε cos(2πft + φ ) + n(t ) T

这里 φ 含有调制信息。分别与ψ I (t ) =

(

)

(

)

2 2 cos 2πft + φˆ 、ψ Q (t ) = sin 2πft + φˆ 相 T T

乘并通过相关解调器,这里 φˆ 是相位噪声, φˆ 具有随机相位。可以得到

2 ε ∫ r (t )ψ (t )dt = T ∫ T

0

I

T

0

(

)

cos(2πft + φ ) cos 2πft + φˆ dt +

[ ( ( )

)

(

(

)

2 T n(t ) cos 2πft + φˆ dt ∫ 0 T

)]

ε T cos 4πft + φ + φˆ + cos φ − φˆ dt + n ∫ 0 T = ε cos φˆ − φ + n =

If you have any suggestion or criticism, please email to [email protected]

112



T

0

r (t )ψ Q (t )dt =

2 ε T



(

)

(

cos(2πft + φ ) sin 2πft + φˆ dt +

T

0

[ ( ( )

)

)

2 T n(t ) sin 2πft + φˆ dt T ∫0

)]

(

ε T sin 4πft + φ + φˆ + sin φˆ − φ dt + n T ∫0 = ε sin φˆ − φ + n

=

观察以上两式计算结果可以知道通过混频并消除高频后,所得到的基带信号是含有随机 相位噪声的信号,所以对 PSK 调制很难采用非相干解调方式。需要指出的是这里 φ 、 φˆ 都 是绝对相位,也就是相对于 ∠0 的相位。 DPSK 是个例外,是因为 DPSK 采用了相对相位来发送调制信号,并且接收机采用相邻 码元间相互比较来实现解调,从而抵消了 φˆ 的影响, φˆ 对所有码元的影响都是一致的。 相对相位是指当前相位相对于前一码元的相位变化。可以做如下规定: l 如果差分编码的输入是 0,则保持前一相位不变。 l 如果差分编码的输入是 1,则参考前一相位旋转 ∠π 。 差分编码可以用如下算式表达 c(k ) = c(k − 1) ⊕ m(k ) ,这里 m(k ) 是输入比特流, ⊕ 是 模 2 加, c(k ) 初始比特可以取 0 或者 1 都不会影响解调结果。 对于 DPSK,设相对相位 φ 的取值为 0、 π ,代入到前面的计算结果。当 φ 取值为 0 可 得

(

)

(

)

ε cos φˆ + n, ε sin φˆ + n ,或者当 φ 取值为 1 可得 − ε cos φˆ + n, − ε sin φˆ + n 。设

(

)

(

)

当前码元的 I/Q 解调输出为 rIi , rQi ,前一码元的 I/Q 解调输出为 rIi −1 , rQi −1 ,则利用如下不 等式

(r

i I

) + (r

i −1 2 I

+r

i Q

0

) (

i −1 2 Q

+r

> i rI − rIi −1
0 ,即相位保 )、 (r , r )取不同的值,那么有

如果 rIi , rQi 、 rIi −1 , rQi −1 取相同的值,那么有 rIi + rIi −1

(

持不变,根据前面规定可得输入比特为 0。如果 rIi , rQi

(

0 < rIi − rIi −1 1

) + (r 2

i Q

2

i −1 I

i Q

0 i −1 2 Q

i −1 Q

)

2

− rQi −1 ,即相位发生改变,根据前面规定可得输入比特为 1。

上面的不等式可以化简为 0

i i −1 I I

r r

i i −1 Q Q

+r r

> 0 < 1

下面以 DBPSK 为例说明其调制、解调过程: %Duration t = 0:0.001:1.099;

If you have any suggestion or criticism, please email to [email protected]

113

%Input bit stream a = randint(1, 10, 2); %Difference Coding m(1) = 1; for n = 1:10 m(n+1) = bitxor(a(n), m(n)); end tmp = m; m = m(ceil(10*t+0.01)); %BPSK modulation s = cos(2*pi*100*t+m*pi); r = awgn(s, 0); %Correlator T = 0:1/1e3:0.099; Icorrelator = cos(2*pi*100*T+pi); Qcorrelator = sin(2*pi*100*T+pi); %BPSK demodulation for n = 0:10 result(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator), ... trapz(T, r(n*100+1:n*100+100).*Qcorrelator)]; end %Detection for n = 1:10 if ((result(n,1)*result(n+1,1)+result(n,2)*result(n+1,2)) > 0) output(n) =0; else output(n) = 1; end end %The input bit stream input = a; %Drawing t = 0:0.001:0.999; subplot(2, 1, 1); plot(t, input(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); If you have any suggestion or criticism, please email to [email protected]

114

subplot(2, 1, 2); plot(t, output(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

5.4.2 OQPSK r = awgn(s, 0); T = 0:1/1e3:0.099; Icorrelator = cos(2*pi*100*T); Qcorrelator1 = -sin(2*pi*100*T); T= 0.05:0.001:0.149; Qcorrelator = -sin(2*pi*100*T); for n = 0:9 result(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator), ... trapz(T, r(n*100+51:n*100+150).*Qcorrelator)]; end s3 = [trapz(T, cos(2*pi*100*T+pi/4).*Icorrelator), ... trapz(T, cos(2*pi*100*T+pi/4).*Qcorrelator1)]; s1 = [trapz(T, cos(2*pi*100*T+3*pi/4).*Icorrelator), ... trapz(T, cos(2*pi*100*T+3*pi/4).*Qcorrelator1)]; s0 = [trapz(T, cos(2*pi*100*T+5*pi/4).*Icorrelator), ... trapz(T, cos(2*pi*100*T+5*pi/4).*Qcorrelator1)]; If you have any suggestion or criticism, please email to [email protected]

115

s2 = [trapz(T, cos(2*pi*100*T+7*pi/4).*Icorrelator), ... trapz(T, cos(2*pi*100*T+7*pi/4).*Qcorrelator1)]; for n = 0:9 [C, L(n+1)] = min([norm(result(n+1,:)-s0), ... norm(result(n+1,:)-s1), ... norm(result(n+1,:)-s2), ... norm(result(n+1,:)-s3)]); end input = a; output(1:2:20) = floor((L-1)/2); output(2:2:20) = mod(L-1, 2); t = 0 : 1/1e3 : 0.999; subplot(2, 1, 1); plot(t, input(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); 5.5 频率调制解调 5.5.1 BFSK 本节将讨论 BFSK 解调的相干解调与非相干解调方式。相干解调与非相干解调的主要差 别在于相干解调必须知道接收信号的相位并且在解调时采用该相位来完成解调,而非相干解 调不需要知道接收信号的相位就可以完成解调。由于这种根本上的差异,相干解调与非相干 解调的解调器、检测器也因此而不同。 5.5.1.1 相干解调 相干解调的实现框图如下

∫ ( )dt T

0

2 cos(2πft + φ ) T

r (t )

∫ ( )dt T

0

2 cos(2π ( f + ∆f )t + φ ) T

设接收信号

r (t ) =

2ε cos(2π ( f + m∆f )t + φ ) + n(t ) T

设基函数 If you have any suggestion or criticism, please email to [email protected]

116

ψ (t ) =

2 cos(2π ( f + m ′∆f )t + φ ) T

与接收信号有相同的相位,那么通过相关解调器后的输出为

∫ r (t )ψ (t )dt T

0

 2 T 2ε cos(2π ( f + m∆f )t + φ ) + n(t ) ⋅ cos(2π ( f + m ′∆f )t + φ )dt = ∫  0 T T   =

ε T

∫ (cos 2π (m − m ′)∆ft + cos 2π (2 f + (m + m ′)∆f )t + 2φ )dt + n T

0

设 (m − m ′)∆f 是1 2T 的整数倍,如果 m = m ′ ,那么

∫ r (t )ψ (t )dt = T

ε +n

0

如果 m ≠ m ′ ,那么

∫ r (t )ψ (t )dt = n T

0

所以对于 BFSK 调制信号通过相关解调器的输出为

(

ε + n, n

)

或者

(n,

ε +n

)

即 BFSK 信号是二维信号,对二维信号采用最大似然准则做判决,其计算方式与 QAM 信号判决的计算方式相同。 下面的代码演示 BASK 信号解调、检测过程(设信噪比为 0dB) %The received signal r = awgn(s, 0); %Correlator T = 0:1/1e3:0.099; correlator1 = cos(2*pi*90*T); correlator2 = cos(2*pi*110*T); %BFSK demodulation for n = 0:9 result(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*correlator1), ... trapz(T, r(n*100+1:n*100+100).*correlator2)]; end %The signal points in vector space s0 = [trapz(T, cos(2*pi*90*T).*correlator1), ... trapz(T, cos(2*pi*90*T).*correlator2)]; If you have any suggestion or criticism, please email to [email protected]

117

s1 = [trapz(T, cos(2*pi*110*T).*correlator1), ... trapz(T, cos(2*pi*110*T).*correlator2)]; %Detection for n = 0:9 [C, I(n+1)] = min([norm(result(n+1,:)-s0), ... norm(result(n+1,:)-s1)]); end %The input bit stream input = a; %The output stream output = I - 1; %Drawing subplot(2, 1, 1); plot(t, input(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

If you have any suggestion or criticism, please email to [email protected]

118

5.5.1.2 非相干解调 非相干解调的实现框图如下 2 cos(2π ( f-∆f )t ) T

∫0 ( )dt T

∫ ( )dt

r1c

T

0

2 sin (2π ( f-∆f )t ) T

r (t )

2 cos(2π ( f + ∆f )t ) T

∫0 ( )dt T

∫ ( )dt

r1s

r2c

T

0

2 sin (2π ( f + ∆f )t ) T

r2 s

设接收信号

r (t ) =

2ε cos(2π ( f + m∆f )t + φ ) + n(t ) T

设基函数

ψ c (t ) =

2 cos(2π ( f + m ′∆f )t ) T

ψ s (t ) =

2 sin (2π ( f + m ′∆f )t ) T

那么通过相关解调器后的输出为

 sin 2π (m − m ′)∆fT  cos 2π (m − m ′)∆fT − 1 rmc = ε  cos φ − sin φ  + n c 2π (m − m ′)∆fT  2π (m − m ′)∆fT   cos 2π (m − m ′)∆fT − 1  sin 2π (m − m ′)∆fT rms = ε  cos φ + sin φ  + n s 2π (m − m ′ )∆fT  2π (m − m ′)∆fT  在非相干解调条件下,如果在接收端接收信号彼此正交,那么最小频率间隔必须满足

∆f = 1 T 。将其代入到上式,则当 m = m ′ 时, rmc = ε cos φ + n c rms = ε sin φ + ns If you have any suggestion or criticism, please email to [email protected]

119

当 m ≠ m ′ 时,

rmc = n c rms = ns 在信号矢量空间上可以分别表示成:

rm′ =

(

ε cos φ + n c , ε sin φ + n s

)

rm = (n c , n s ) 所以可以得到

rm′

2

> rm

2

m ≠ m′

这就是在非相干解调下 BFSK 调制信号的判决方式,具有这种判决方式检测器通常被称 为平方律检测器,该判决准则可以从最大后验概率准则推导出来。 设

f (r | s m )P(s m ) f (r )

P(s m | r ) =

由于发送信号 s m 是等概率的, f (r ) 对于所有信号都是一样的,所以求最大 P (s m | r ) 等 价求最大概率密度函数 f (r | s m ) 。 对于 BFSK 调制信号,在白高斯噪声信道下有

f (r | s1 ) = f (r2 )∫



0

f (r | s 2 ) = f (r1 )∫



0

f (r1 | φ1 ) f (φ1 )dφ1 f (r2 | φ 2 ) f (φ 2 )dφ 2

这里

(

) (

 r − ε cos φ 2 + r − ε sin φ 1 mc s m ms s m f (rm | φ m ) = exp − 2 2  2πσ 2σ 

)  2

 

 (rmc ) 2 + (rms )2  1 f (rm ) = exp −  2πσ 2 2σ 2   1 f (φ m ) = 2π 如果

f (r | s1 ) > 1 ,则判决 r 为 s1 f (r | s 2 ) f (r | s1 ) < 1 ,则判决 r 为 s 2 f (r | s 2 ) If you have any suggestion or criticism, please email to [email protected]

120



f (r | s1 ) = f (r | s 2 )

∫ ∫



0 2π

( ε (r I ( ε (r 0

=

( exp (

) )dφ

exp ε s (rmc cos φ m + rms sin φ m ) σ 2 dφ m ε s (rmc cos φ m + rms sin φ m ) σ 2

) )σ

I0

s

2 1c

+ r12s σ 2

0

s

2 2c

+ r22s

2

) )

m

I 0 ( ) 是零阶修正贝塞尔函数,该函数单调递增的,也就是当 rmc2 + rms2 递增时,I 0 ( ) 也 是递增的,所以

r1 f (r | s1 ) r12c + r12s ≈ 2 = 2 f (r | s 2 ) r2 c + r2 s r2

2 2



r1 r2

2

> r2

2

2

> r1 ,则判决 r 为 s 2

,则判决 r 为 s1

2

也就是平方律判决准则。下面代码说明 BFSK 的非相干解调以及平方律判决 %The Received Signal r = awgn(s, 0); %Correlator T = 0:1/1e3:0.099; Icorrelator1 = cos(2*pi*90*T); Qcorrelator1 = sin(2*pi*90*T); Icorrelator2 = cos(2*pi*110*T); Qcorrelator2 = sin(2*pi*110*T); %BFSK demodulation for n = 0:9 result1(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator1), ... trapz(T, r(n*100+1:n*100+100).*Qcorrelator1)]; result2(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator2), ... trapz(T, r(n*100+1:n*100+100).*Qcorrelator2)]; end %Detection for n = 0:9 [C, I(n+1)] = max([norm(result1(n+1,:)), norm(result2(n+1,:))]); end %The input bit stream If you have any suggestion or criticism, please email to [email protected]

121

input = a; %The output bit stream output = I - 1; %Drawing subplot(2, 1, 1); plot(t, input(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil(10*t+0.01))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

先前章节从最大后验概率准则推导出来的公式求欧式距离并取最小值,而这里推导出来 的公式求欧式距离并取最大值,这是否有些矛盾呢?由于解调方式的根本不同造成的,并不 存在矛盾。 首先,BFSK 相干解调与非相干解调的解调器是完全不同。对于接收信号,相干解调只 需要一组相关解调器就得到解调信号,而非相干解调需要两组相关解调器得到解调信号。也 就说明对于接收信号相干解调只做一次解调,而非相干解调同时做两次解调。 其次,相干解调与非相干解调的输出信号不同。相干解调器的输出为以下两个信号之一

(

) (

ε + n, n 或 n, ε + n

)

而非相干解调器的同时输出以下两个信号 If you have any suggestion or criticism, please email to [email protected]

122

(

)

ε cos φ + n c , ε sin φ + n s 与 (n c , n s )

从信号的表达式上可以看出相干解调器的输出信号能明确表明接收信号在矢量空间的 范围,与发送信号的距离由噪声决定。而非相干信号不能明确表明表明接收信号在矢量空间 的范围,只能说明相干解调器与接收信号匹配时有最大输出,而不匹配时只有噪声输出。 所以虽然都是从最大后验概率推导出来的,但是由于解调器、信号表征的不同,具体计 算欧式距离距离并做出判决的标准也就不同了。 5.5.2 MFSK MFSK 解调可以认为是 BFSK 解调的扩展,所以这里不再详细介绍 MFSK 解调,而是 直接给出其解调代码。如同 BFSK 解调一样,MFSK 也可以分为相干解调、非相干解调。 相干解调的代码如下: %The received signal r = awgn(s, 0); %Correlator T = 0:1/1e3:0.099; correlator1 = cos(2*pi*70*T); correlator2 = cos(2*pi*90*T); correlator3 = cos(2*pi*110*T); correlator4 = cos(2*pi*130*T); %4FSK demodulation for n = 0:9 result(n+1, :, :, :) = [ trapz(T, r(n*100+1:n*100+100).*correlator1), ... trapz(T, r(n*100+1:n*100+100).*correlator2), ... trapz(T, r(n*100+1:n*100+100).*correlator3), ... trapz(T, r(n*100+1:n*100+100).*correlator4)]; end %The signal points in vector space s0 = [trapz(T, cos(2*pi*70*T).*correlator1), ... trapz(T, cos(2*pi*70*T).*correlator2), ... trapz(T, cos(2*pi*70*T).*correlator3), ... trapz(T, cos(2*pi*70*T).*correlator4)]; s1 = [trapz(T, cos(2*pi*90*T).*correlator1), ... trapz(T, cos(2*pi*90*T).*correlator2), ... trapz(T, cos(2*pi*90*T).*correlator3), ... trapz(T, cos(2*pi*90*T).*correlator4)]; s2 = [trapz(T, cos(2*pi*110*T).*correlator1), ... trapz(T, cos(2*pi*110*T).*correlator2), ... trapz(T, cos(2*pi*110*T).*correlator3), ... trapz(T, cos(2*pi*110*T).*correlator4)]; s3 = [trapz(T, cos(2*pi*130*T).*correlator1), ... If you have any suggestion or criticism, please email to [email protected]

123

trapz(T, cos(2*pi*130*T).*correlator2), ... trapz(T, cos(2*pi*130*T).*correlator3), ... trapz(T, cos(2*pi*130*T).*correlator4)]; %Detection for n = 0:9 [C, I(n+1)] = min([norm(result(n+1,:,:,:)-s0), ... norm(result(n+1,:,:,:)-s1), ... norm(result(n+1,:,:,:)-s2), ... norm(result(n+1,:,:,:)-s3)]); end %Input Bit Stream input = a; %Ouput Bit Stream output(1:2:20) = floor((I-1)/2); output(2:2:20) = mod(I-1, 2); %Drawing subplot(2, 1, 1); plot(t, input(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

If you have any suggestion or criticism, please email to [email protected]

124

非相干解调的代码如下: %The received signal r = awgn(s, 0); %Correlator T = 0:1/1e3:0.099; Icorrelator0 = cos(2*pi*70*T); Qcorrelator0 = sin(2*pi*70*T); Icorrelator1 = cos(2*pi*90*T); Qcorrelator1 = sin(2*pi*90*T); Icorrelator2 = cos(2*pi*110*T); Qcorrelator2 = sin(2*pi*110*T); Icorrelator3 = cos(2*pi*130*T); Qcorrelator3 = sin(2*pi*130*T); %Demodulation for n = 0:9 result0(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator0), trapz(T, r(n*100+1:n*100+100).*Qcorrelator0)]; result1(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator1), trapz(T, r(n*100+1:n*100+100).*Qcorrelator1)]; result2(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator2), trapz(T, r(n*100+1:n*100+100).*Qcorrelator2)]; result3(n+1, :) = [trapz(T, r(n*100+1:n*100+100).*Icorrelator3), If you have any suggestion or criticism, please email to [email protected]

... ... ... ... 125

trapz(T, r(n*100+1:n*100+100).*Qcorrelator3)]; end %Detection for n = 0:9 [C, I(n+1)] = max([norm(result0(n+1,:)), norm(result1(n+1,:)), ... norm(result2(n+1,:)), norm(result3(n+1,:))]); end %Input Bit Stream input = a; %Output Bit Stream output(1:2:20) = floor((I-1)/2); output(2:2:20) = mod(I-1, 2); %Drawing subplot(2, 1, 1); plot(t, input(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); subplot(2, 1, 2); plot(t, output(ceil((100*t+0.1)/5))); axis([0 1 -0.2 1.2]); 得到输入比特流、输出比特流的波形图如下

If you have any suggestion or criticism, please email to [email protected]

126

由以上代码可以看出 MFSK 是 BFSK 的直接扩展,所基于的理论基础与 BFSK 是一样 的,所以这里就不再讨论 MFSK 的解调。 5.5.3 CPM r = awgn(s, 0); T = 0:0.001:0.199; Icorrelator = cos(pi*T/(2*0.1)).*cos(2*pi*fc*T); T = 0.1:0.001:0.299; Qcorrelator = -sin(pi*T/(2*0.1)).*sin(2*pi*fc*T); for n = 0:5 if mod(n, 2) == 0 Idem(n+1) = trapz(T, r(n*200+1:n*200+200).*Icorrelator); else Idem(n+1) = trapz(T, -1*r(n*200+1:n*200+200).*Icorrelator); end end for n = 0:4 if mod(n, 2) == 0 Qdem(n+1) = trapz(T, r(n*200+101:n*200+300).*Qcorrelator); else Qdem(n+1) = trapz(T, -1*r(n*200+101:n*200+300).*Qcorrelator); end end for n = 1:6 if Idem(n) > 0 outphase(2*n-1) = 0; else outphase(2*n-1) = 1; end end for n = 1:5 if Qdem(n) > 0 outphase(2*n) = -1/2; else outphase(2*n) = 1/2; end end for n = 1:10 if outphase(n) == 0 & outphase(n+1) == 0.5 If you have any suggestion or criticism, please email to [email protected]

127

output(n) = 1; end if outphase(n) == 0 & outphase(n+1) == -0.5 output(n) = 0; end if outphase(n) == 1 & outphase(n+1) == -0.5 output(n) = 1; end if outphase(n) == 1 & outphase(n+1) == 0.5 output(n) = 0; end if outphase(n) == 0.5 & outphase(n+1) == 1 output(n) = 1; end if outphase(n) == 0.5 & outphase(n+1) == 0 output(n) = 0; end if outphase(n) == -0.5 & outphase(n+1) == 0 output(n) = 1; end if outphase(n) == -0.5 & outphase(n+1) == 1 output(n) = 0; end end

If you have any suggestion or criticism, please email to [email protected]

128