资源描述
直接序列扩频通信系统的设计与实现
摘要:扩频通信,即扩展频谱通信(Spread Spectrum Communication)是数字通信中的一种,它与光纤通信、卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。具有大容量、抗干扰、低截获功率等特点以及可实现码分多址(CDMA)等优点。采用扩频通信可以在更恶劣的环境下正常工作,可以将信号隐蔽在噪声中。在扩频通信系统中,直接序列扩频通信系统的应用最为广泛。Matlab具有其他仿真软件(如Sysetemview和Maple等)所无可比拟的矩阵运算能力和系统仿真能力,Matlab的仿真工具包Simulink凭借其强大的数学功能,能实现精确的电路仿真。
关键词:直接序列扩频通信系统、Matlab、误码率
目录
第1章 绪论 1
1。1背景 1
1。2选题的目的和意义 1
1.3 本课程设计的主要内容 1
第2章 直接序列扩频通信系统 2
2。1 直接序列扩频通信的理论基础 2
2.2直接序列系统组成 3
第3章 扩频系统的设计与实现 4
3。1直接通信系统仿真 4
3.2直接扩频Matlab仿真组成框图 4
3.3 BPSK调制 5
3。3 m序列 6
3.4 扩频系统的解扩 7
3.5扩频系统的解调 8
3。6误码率 9
3.7直接序列扩频系统的实现 9
第4章 心得和结论 15
附录 16
参考文献 21
II
成都学院(成都大学)课程设计报告
第1章 绪论
1.1背景
信息时代的到来,使我们对通信的依赖越来越大,由于信道的开放性,信息在传播过程中会加进各种各样的干扰,使得无线通信面临的干扰环境更为恶劣.自50年代中期美国军方便开始研究,一直为军事通信所独占,广泛应用于军事通信、电子对抗以及导航、测量等各个领域。直到80年代初才被应用于民用通信领域。为了满足日益增长的民用通信容量的需求和有效地利用频谱资源,各国都纷纷提出在数字峰窝移动通信、卫星移动通信和未来的个人通信中采用扩频技术,扩频技术于蜂窝电话、无绳电话、微波通信、无线数据通信、遥测、监控、报警等系统中.随着超大规模集成电路技术、微处理器技术的飞速发展,以及一些新型元器件的应用,扩频通信在技术上已迈上了一个新的台阶,不仅在军事通信中占有重要地位,而且正迅速地渗透到了个人通信和计算机通信等民用领域,成为新世纪最有潜力的通信技术之一因此研究扩频通信具有很深远的意义。
1.2选题的目的和意义
在恶劣的环境条件下保证通信有效地、准确地、迅速地进行,是当今通信所面临的一大课题。扩展频谱通信是现代通信系统中的一种新兴的通信方式,其较强的抗噪声、抗干扰、抗多径衰落、码分多址、信号隐蔽性和保密性等方面具有较传统无线通信方式无可比拟的优势,近十几年来,随着信息技术的迅猛发展与日益普及,扩频通信技术已在军用和民用通信领域得到广泛应用,并伴随GPS卫星定位、CDMA或3G手机等产品迅速进入大众生活.
扩频通信是将待传送的信息数据被伪随机编码(扩频序列:Spread Sequence)调制,实现频谱扩展后再传输,接收端则采用相同的编码进行解调及相关处理,恢复原始信息数据.
在扩展频谱系统中,伪随机序列起着很重要的作用。在直接扩频系统中,用伪随机序列将传输信息扩展,在接收时又用它将信号压缩,并使干扰信号功率扩散,提高了系统的抗干扰能力,伪随机序列性能的好坏直接关系到整个系统性能的好坏,是一个很重要的问题.
本设计为掌握对直接序列扩频系统的理解和掌握,通过Matlab/Simulink仿真平台,运用所学的理论和方法建立了直接序列扩频系统的matlab仿真模型,在信道中存在高斯白噪声和干扰的情况下,对系统误码率性能进行了仿真及分析。
1.3 本课程设计的主要内容
(1) 介绍了直接扩频通信系统的基础理论,包括系统框图、仿真模拟的一般方法。
(2) 对直扩通信系统的主要环节,包括m序列、调制、解扩、解调、误码率等的描述。
第2章 直接序列扩频通信系统
2。1 直接序列扩频通信的理论基础
扩频通信可简单表述如下:扩频通信技术是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽;频带的扩展是通过一个独立的码序列来完成,用编码及调制的方法来实现的,与所传信息数据无关;在接收端则用同样的码进行相关同步接收、解扩及恢复所传信息数据。扩频通信是将待传送的信息数据被伪随机编码(扩频序列:Spread Sequence)调制,实现频谱扩展后再传输;接收端则采用相同的编码进行解调及相关处理,恢复原始信息数据.
扩频通信的可行性是从香农公式引申而来,其内容如式(2-2。1)所示.
(2-1。1)
式中:
C ——- 信道容量(用传输速率度量)
W --— 系统信道带宽
S -—- 信号功率
N -—- 白噪声功率
令C是希望具有的信道容量,即要求的信息传输速率,对(2-1.1)进行变换,得
(2—1。2)
对于干扰环境中的典型情况,当<<1时,用幂级数展开式(2-1。1),并略去高次项得
(2—1.3)
或
(2-1.4)
由式(2—1。3)和式(2-1.4)可以看出,对于任意给定的噪声与信号功率之比 ,只要增加用
在信道中当传输系统的信号与噪声功率之比下降时,可以用增加系统传输带宽的办法来保持信道容量不变,而是系统无差错传输信息的速率。这就是说对于任意给定的信息传输速率,当信号与噪声功率之比 下降时,可以用增大系统传输带宽的办法来获得较低的信息传输的差错率。
扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。当信噪比无法提高时,可以加大带宽,达到提高信道容量的目的.扩频是一种宽带技术,由于扩频占用更宽的频带,看起来是浪费有限的频率资源,然而所占用的频带可以通过多用户共享频带得到补偿。扩频通信的方式有很多种,例如直接序列扩频、跳频扩频、跳时扩频等。本文将对直接序列扩频进行详细的分析和仿真。
2.2直接序列系统组成
直接序列调制扩展频谱通信系统,简称直接序列系统或直扩系统,是用信息信号与高传输速率的伪噪声(为随机)码的波形相乘后,去直接控制载波信号的某个参数,来扩展传输信号的带宽的。用于频谱扩展的伪随机系列称为扩频码序列。直接序列系统的简化方框参见图2-2。
数据
解调器
中频
滤波器
混频器
发射机
调制器
数据
时钟源
扩频码
发生器
调制器
载波
发生器
扩频码
发生器
时钟源
本地
振荡器
(a) 发射系统 (b)接收系统
图2-2 直接序列系统的简化方框图
在直接序列系统中,通常对载波进行相移键控(Phase Shift Keying,PSK)调制。由于PSK信号可以等效为抑制载波的双边带调频波,因此直接序列系统长采用平衡调制方式.抑制载波的平衡调制不仅节约了发射功率,提高了发射机的工作效率,而且也有利于提高扩频信号抗截获,抗侦破的能力.
在发信机端,待传输的数据信号与伪随机码(扩频码)波形相乘,形成的复合码对载波进行调制,然后由天线发射出去。在收信端,要产生一个与发信机中的伪随机码同步的本地参考伪随机码(本地扩频码),对接收信号进行相关处理,即对扩频信号解扩.解扩后的信号送到解调器进行信息信号的解调,恢复出传送的信息.
第3章 扩频系统的设计与实现
3。1直接通信系统仿真
发端PN码
产生器
发射机
BOSK调制
扩频
LDPC编码
信源
直扩通信系统的仿真包括发送端、信道及接收端三大部分。图3-1给出了直扩通信系统仿真的原理框图。
无线信道(噪声与干扰)
失
锁
同步
FFT频域限
波干扰抑制
本地
PN码
产生器
解扩
BPSK解调
PN码捕获
同
PN码跟踪
信宿
LDPC译码
图3—1 直扩通信系统原理框图
发送端首先对信源出来的原始数据信号依次进行LDPC信道编码、直序扩频调制、BPSK调制,然后进入信道,信号在信道中加入高斯白噪声和窄宽单频干扰。
接收端收到信号后,首先将信号送入干扰抑制模块,然后进行同步(包括PN捕获和PN码跟踪),在同步之后完成解扩,再仅解调得到基带数据,最后通过LDPC译码,恢复出发送的原始信息序列。
3。2直接扩频Matlab仿真组成框图
直接序列扩频的Matlab仿真组成框图如图3—2所示。
模2运算
模2运算
m序列
m序列
信码
判决电路
信码
高斯信道
干扰
图3—2 直接扩频仿真组成框图
由图3—2可以看出,在发送端,信码为,其码元宽度为,伪随机码为,其码元宽度为,进行模2运算后,得到,码元宽度称为扩频出来增益,表示为式(3—2。1).
(3—2.1)
由于有,所以信码的频谱被展宽了,信号在传输的过程中经过AWGN信道,被叠加了高斯白噪声,同时还受到了干扰信号的影响,最终得到的信号包括“有用信号+高斯白噪声+干扰”.
接收端收到此信号后,经过解扩电路,得,对进行码元判决,即可得到原始的输入信号。
3。3 BPSK调制
二位相移控件(BPSK)是扩频系统中最为常用的一种调制方式.设扩频码为,载波频率为,调相波可表示为
(3-3。1)
式中,是相位调制指数.若规定在扩频码序列中,当时,;当时,,这种调制称为二相位相移键控.这种二位相移键控信号可表示为
(3-3.2)
在实际运用过程中,扩频码通常采用双极性,即,因此BPSK信号可用下列平衡调制信号表示
(3-3.3)
平衡调制器有二级管平衡调制器和桥式平衡调制器等多种形式.当,二极管、导通,输入为,当时。二极管、导通,输出为.
即有:,完成二相调制。
若考虑信息码为,则直扩系统的BPSK调制输出为
(3—3。4) 式中,,.
3。3 m序列
m序列是最长线性移位寄存器序列的简称.它是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列。由于m序列容易产生、规律性强、有许多优良的性能,在扩频通信中最早获得广泛的应用.
如图3—3所示,m序列可由二进制线性反馈移位寄存器产生.它主要由n个串联的寄存器、移位脉冲产生器和模2加法器组成. 图中第i级移存器的状态表示, 或,i=整数。反馈线的连接状态用表示,表示此线接通(参加反馈),表示此线断开。
由于反馈的存在,移存器的输入端受控地输入信号。不难看出,若初始状态为全“0",则移位后得到的仍为全“0”,因此应避免出现全“0"状态,又因为n级移存器共有种可能的不同状态,除全“0"状态外,剩下种状态可用。每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列,我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期。按图3—3中线路连接关系,可以写为:
(3—3。1)
该式称为递推方程.
模2加法器
图3—3 线性反馈移位寄存器
上面曾经指出,的取值决定了移位寄存器的反馈连接和序列的结构。现在将它用下列方程表示:
(3—3。2)
这一方程称为特征多项式.式中仅指明其系数的值(1或0),x本身的取值并无实际意义,也不需要去计算x的值。例如,若特征方程为则它仅表示和的系数,其余为零。经严格证明:若反馈移位寄存器的特征多项式为本原多项式,则移位寄存器能产生m序列.只要找到本原多项式,就可构成m系列发生器。
3。4 扩频系统的解扩
输入相关解扩器的信号是接收到的信号,假设相移键控(BPSK)信号,这个信号在相关解扩器中与发射端扩频码完全相同的本地参考扩频码相乘,其效果与发射调频互补,即每当扩频码序列发生0→1或1→0跃变时,将输入载波信号的相位取反。如果接收的扩频码与本地参考扩频码的结构相同且在时间上(相位)已经同步,那么每当接收的扩频码与本地参考扩频码的结构相同且在时间上(相位)已经同步,那么每当接收信号的载波由于扩频码的变化而有相移时,接收机中的本地参考扩频码就再把它相移一次,这样两个互补的相移结合,就相互抵消了扩展频谱的调制,达到了对扩频信号解扩的目的。被解扩后的信号仍然是一已调信号,是一频带很窄的被信息信号调制的带通信号,中心频率仍在处。该信号送入解调器进行解调,即可恢复出传输的信息信号。
直接式相关解扩原理如图3—4所示.
平衡
调制器
载波输入
相移键控
调制信号
调制码
(a)调制器(PSK调制)
带通
滤波器
接收的相移键控调制信号
平衡
调制器
解扩信号
参考码
(b)直接式相关器
(与相移键位互补)
--信息信号 --载波频率 --扩频码 --本地参考扩频码
图3-4 直接式相关解扩器
直接式相关解扩器的优点是结构简单,缺点是对于干扰信号有直通的现象。由图3—4—1可以看到,相关解扩器输入信号的中心频率(载波频率)是完全一样的,即如果输入相关解扩器的相移键控已调信号的载波频率是,则恢复后(即解扩后)的载波频率仍然是,那么一个在载波频率附近的窄带干扰信号(比有用信号强得多)就有可能绕过相关解扩器,如通过空间波耦合的形式,直接泄露出去。当发生泄漏时,相关解扩器的抑制能力是很差的。干扰信号没有参加相关运算就直接到达相关解扩器的输出端,失去了在解扩过程中系统所能获得的处理增益。由于这个原因,直接式相关解扩的抗干扰能力较低,它仅能用在一些对抗干扰能力要求不高的扩频通信系统中。
3.5扩频系统的解调
信号解调按图10完成。接收信号首先乘以在接收机的PN码序列发生器产生的波形,它是与接收信号中的PN码同号的。这一运算称为(频谱)解扩,因为在接收端乘以的效果就是将在发送端的扩频运算解开。据此有
(3—5。1)
上式中因有对全部,。所得信号占有带宽为(近似),它就是载有信息信号的带宽。
3.6误码率
在数字通信中,误码率是一项主要的性能指标.在实际测量数字通信系统的误码率时,一般测量结果与信源送出信号的统计特性有关。通常认为二进制信号中0和1是以等概率随机出现的,所以测量误码率时最理想的信源应是随机信号发生器。
扩频序列通过终端机和信道后,输出仍为扩频序列.在接收端,本地产生一个同步的扩频码,与收码序列逐位相乘再求规格化内积,再与发送端信源码进行比较,一旦有错,误码计数器加一.
误码率的数学表达式如式(3-6。1)所示。
(3-6。1)
其中S是信码个数,e是误码个数,E就是误码率。
3。7直接序列扩频系统的实现
3。7。1 信息码生成模块
% 随机数据,长度为50
Randm_Data = randsrc(1, Data_L, [0 1]);
Randm_Data_L = Data_L * Mseq_L;
figure;
stairs(Randm_Data);
ylim([—0。5 1。5]);
title(’随机数据');
图 3—7。1 信息码数据源生成代码
3.7.2 伪随机码生成模块
%产生伪随机信号
M_Seq = idinput(Mseq_L, 'prbs', [0 1], [0 1]);
figure;
stairs(M_Seq);
ylim([—0。5 1.5]);
xlim([0 Mseq_L+10]);
title(’m序列');
图3—7。2 m序列的产生代码
3。7。3 扩频调制模块
% 扩频
Spread_Data = zeros(1, Data_L*Mseq_L);
contain = ones(1, Mseq_L);
for i = 1:Data_L
contain = ones(1, Mseq_L)*Randm_Data(i);
Spread_Data(((i—1)*Mseq_L+1):i*Mseq_L) = xor(contain, M_Seq');
end
figure;
stairs(Spread_Data(1:50));
ylim([-0.5 1。5]);
title('扩频数据')
图3—7。3 扩频数据
3。7.4 BPSK调制
%调制
Psk_Data = pskmod(Spread_Data, 2);
figure;
plot((1:50), Psk_Data(1:50));
ylim([—1.5 1。5]);
title('经BPSK调制后的数据');
图3-3.4 调制后的数据
3.7。5 加噪声
% 附加白噪声
Recv_Data_Nois = awgn(Psk_Data, -20, 'measured', 'dB');
figure;
stairs(Recv_Data_Nois(1:50));
title(’附加白噪声数据');
图3—3.5添加噪声后的数据
3.7.6 解扩与解调
%解调
Recv_Data = pskdemod(Psk_Data, 2);
Recv_Data_L = length(Recv_Data);
figure;
stairs(Recv_Data(1:50));
ylim([—0。5 1。5]);
title('解调无噪声数据');
Recv_Data = [Recv_Data zeros(1, Mseq_L*4)];
图3—3.6解调后无噪声的数据
Recv_Data_Nois = pskdemod(Recv_Data_Nois, 2);
Recv_Data_Nois_L = length(Recv_Data_Nois);
figure;
stairs(Recv_Data_Nois(1:50));
ylim([-0。5 1.5]);
title(’解调有噪声数据’);
图3—3。7解调后有噪声的数据
图3-3。8解调后无噪声数据能量
图3—3。9解调后有噪声数据能量
if sum(xor(M_Seq', Recv_Data_Nois(m:m+Mseq_L-1))) 〉 Mseq_L*Up
Despread_Data_Nois(i) = 1;
else
Despread_Data_Nois(i) = 0;
end
图3—3.10解调后有噪声数据能量
图3-3.11解调后有噪声数据能量
第4章 心得和结论
通过这次的直接序列扩频系统的设计与仿真,我加深了对扩频系统理论知识的理解,懂得了直接扩频系统的原理所在以及了解扩频码的产生原理,扩频技术应用的两个方面。初步了解和掌握现代移动通信系统的基本组成、基本原理、组网技术及典型通信系统的设计、调试,理解其工作原理。并且经过分析,通过利用MATLAB的m文件的编程及仿真,掌握了一定的软件仿真能力。在过程中也遇到了一些问题,无论是查找资料还是Matlab编写,调试程序都通过努力得以解决,同时也发现了自己在学习中存在的很多问题,例如噪声的形成之类的,还有就是对Matlab很使用的熟悉程度。软件设计以及系统流程图很重要。框图、编程、模块一步一步的进行,这样可以排除很多错误。可通过以上分析实验,利用MATLAB的m文件的编程及仿真,可以知道扩频通信系统的过程和工作原理,以及它的主要特点,尤其是它在抑制干扰方面的有效性。因此,从编程和模框图实验可知,分析扩频和解扩,PSK调制和解调,在抑制噪声方面的作用.通过仿真,说明扩频信号在抑制干扰方面的有效性.利用仿真,说明信号传输过程中的误码率.直接序列扩频通信系统具有很强的抗干扰性能,误码率低,因此其广泛用于保密通信系统中。
附录
clc
clear all
close all
Mseq_L = 255;
Data_L = 50;
%产生伪随机信号
M_Seq = idinput(Mseq_L, 'prbs’, [0 1], [0 1]);
figure;
stairs(M_Seq);
ylim([—0.5 1。5]);
xlim([0 Mseq_L+10]);
title('m序列’);
% 随机数据,长度为50
Randm_Data = randsrc(1, Data_L, [0 1]);
Randm_Data_L = Data_L * Mseq_L;
figure;
stairs(Randm_Data);
ylim([—0.5 1。5]);
title('随机数据’);
% 扩频
Spread_Data = zeros(1, Data_L*Mseq_L);
contain = ones(1, Mseq_L);
for i = 1:Data_L
contain = ones(1, Mseq_L)*Randm_Data(i);
Spread_Data(((i—1)*Mseq_L+1):i*Mseq_L) = xor(contain, M_Seq');
end
figure;
stairs(Spread_Data(1:50));
ylim([—0。5 1。5]);
title(’扩频数据’);
%调制
Psk_Data = pskmod(Spread_Data, 2);
figure;
plot((1:50), Psk_Data(1:50));
ylim([-1。5 1.5]);
title('经BPSK调制后的数据');
% 附加白噪声
Recv_Data_Nois = awgn(Psk_Data, -20, ’measured', 'dB’);
figure;
stairs(Recv_Data_Nois(1:50));
title(’附加白噪声数据’);
%解调
Recv_Data = pskdemod(Psk_Data, 2);
Recv_Data_L = length(Recv_Data);
figure;
stairs(Recv_Data(1:50));
ylim([—0。5 1.5]);
title(’解调无噪声数据');
Recv_Data = [Recv_Data zeros(1, Mseq_L*4)];
Recv_Data_Nois = pskdemod(Recv_Data_Nois, 2);
Recv_Data_Nois_L = length(Recv_Data_Nois);
figure;
stairs(Recv_Data_Nois(1:50));
ylim([-0.5 1。5]);
title('解调有噪声数据’);
Recv_Data_Nois = [Recv_Data_Nois zeros(1, Mseq_L*4)];
Despread_Data = zeros(1, Data_L);
Despread_Data_Nois = zeros(1, Data_L);
Up = 0.527;
Dn = 0。485;
VCodes = 5;
Power = zeros(1, Mseq_L*VCodes);
for i=1:Mseq_L*VCodes
Power(i) = sum(xor(M_Seq’, Recv_Data(i:i+Mseq_L—1)))/Mseq_L;
end
figure;
plot(Power);
title(’无噪声能量对比数据');
Power_Nois = zeros(1, Mseq_L*VCodes);
for i=1:Mseq_L*VCodes
Power_Nois(i) = sum(xor(M_Seq', Recv_Data_Nois(i:i+Mseq_L—1)))/Mseq_L;
end
figure;
plot(Power_Nois);
m = 1;
i = 1;
while(m <= (Recv_Data_L-Mseq_L+1))
toVerf = Recv_Data(m: m+Mseq_L*VCodes-1);
totalVCodes = 0;
yesVCodes = 0;
noVCodes = 0;
while (totalVCodes < VCodes)
if (totalVCodes*Mseq_L+m 〉 Recv_Data_L)
break;
end
power = sum(xor(M_Seq', toVerf((totalVCodes*Mseq_L+1):(totalVCodes+1)*Mseq_L)))/Mseq_L;
if((power >= Up) || (power <= Dn))
yesVCodes = yesVCodes + 1;
end
totalVCodes = totalVCodes + 1;
end
if(yesVCodes < totalVCodes*0.7)
m = m+1;
continue;
end
if sum(xor(M_Seq', Recv_Data(m:m+Mseq_L—1))) 〉 Mseq_L*Up
Despread_Data(i) = 1;
else
Despread_Data(i) = 0;
end
m = m + Mseq_L;
i = i + 1;
end
m = 1;
i = 1;
while(m 〈= (Recv_Data_Nois_L-Mseq_L+1))
toVerf = Recv_Data_Nois(m: m+Mseq_L*VCodes—1);
totalVCodes = 0;
yesVCodes = 0;
noVCodes = 0;
while (totalVCodes < VCodes)
if (totalVCodes*Mseq_L+m > Recv_Data_Nois_L)
break;
end
power = sum(xor(M_Seq', toVerf((totalVCodes*Mseq_L+1):(totalVCodes+1)*Mseq_L)))/Mseq_L;
if((power 〉= Up) || (power <= Dn))
yesVCodes = yesVCodes + 1;
end
totalVCodes = totalVCodes + 1;
end
if(yesVCodes 〈 totalVCodes*0。7)
m = m+1;
continue;
end
if sum(xor(M_Seq', Recv_Data_Nois(m:m+Mseq_L—1))) 〉 Mseq_L*Up
Despread_Data_Nois(i) = 1;
else
Despread_Data_Nois(i) = 0;
end
m = m + Mseq_L;
i = i + 1;
end
correct = 0;
for i = 1:Data_L
if Despread_Data(i) == Randm_Data(i)
correct = correct + 1;
end
end
figure;
stairs(Despread_Data);
ylim([-0.5 1.5]);
title(’无噪声恢复数据');
out = correct/Data_L;
disp(’无噪声的正确率:’);
disp(out);
correct_nos = 0;
for i = 1:Data_L
if Despread_Data_Nois(i) == Randm_Data(i)
correct_nos = correct_nos + 1;
end
end
figure;
stairs(Despread_Data_Nois);
ylim([—0。5 1.5]);
title(’有噪声恢复数据');
out = correct_nos/Data_L;
disp('有噪声正确率:’);
disp(out);
参考文献
[1]田日才,扩频通信(第2版).北京:清华大学出版社,2014
[2]赵刚,扩频通信系统实用仿真技术。北京:国防工业出版社,2009
[3]何世彪,扩频技术及其实现.北京:电子工业出版社,2007
[4]樊昌信,通信原理。北京:国防工业出版社。2003
[5]赵新,直序扩频技术.陕西:西北电讯工程学院出版社。1986
19
展开阅读全文