不同方式解调下FSK、PSK、DPSK的误码率比较

更新时间:2024-01-19 08:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

一般来说,数字解调与模拟调制的基本原理相同,但是数字信号有离散取值的特点。因此数字调制技术有两种方法:1 利用模拟调制的方法去实现数字式调制,即数字调制看成是模拟调制的一个特例,把数字基带信号当做模拟信号的特殊情况处理;2 利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。这种方法通常称为键控法,比如对载波的振幅,频率和相位进行键控,便可获得振幅键控(Ampolitude shift keying, ASK)、频移键控(Frequency shift keying,FSK)、和相移键控(Phase shift keying,PSK)三种基本的数字调制方式。这次为期一周的通信传输课程设计的实习,就是通过MATLAB编程仿真,来更好的理解FSK、PSK、DPSK的调制和解调过程。在这次的实习中,主要是应用MATLAB进行编程仿真并显示结果。仿真的是FSK的相干、非相干和过零解调,PSK的相干解调及DPSK的相干和差分解调。并比较相同调制后的信号不同的解调方式和不同调制后的信号相同的解调方式。

关键字:频移键控,相移键控,误码率,信噪比

ABSTRACT

Generally speaking, digital demodulation and analog modulation of the basic principles of the same, but the digital signal has the characteristics of discrete values. Therefore, digital modulation techniques, there are two methods: one using analog modulation methods to achieve digital modulation, digital modulation that is seen as a special case of analog modulation to digital baseband signal as an analog signal a special case; 2 using digital signal characteristics of discrete values by keying switch carrier in order to achieve digital modulation. This method is usually referred to as keying method, such as the right carrier amplitude, frequency and the phase shift keying, can receive amplitude shift keying (Ampolitude shift keying, ASK), frequency shift keying (Frequency shift keying, FSK), and the phase shift keying (Phase shift keying, PSK) digital modulation of three basic ways. The week-long internship curriculum design communication transmission is through MATLAB simulation program, to a better understanding of FSK, PSK, DPSK modulation and demodulation process. In this attachment, the main is the application programming MATLAB simulation and displays the results. Simulation is the FSK coherent, non-coherent and zero-crossing demodulation, PSK and DPSK coherent

2

demodulation of coherent and differential demodulation. And compare the same modulated signal demodulation in different ways and different modulated signal demodulation the same way.

Keywords: Frequency shift keying, phase shift keying, the bit error rate, signal to noise ratio

3

目录

摘要……………………………………………………………………….2 ABSTRACT………………………………………………………………3 绪论……………………………………………………………………….5 第一章 FSK……………………………………………………………….6 1.FSK产生原理 2.FSK信号的解调 3.FSK相关仿真

第二章 PSK……………………………………………………………….8 1.PSK产生原理 2.PSK信号的与解调 3.PSK相关仿真

第三章 DPSK………………………………………………………………10 1.DPSK产生的原理 2.DPSK信号的解调 3.DPSK相关仿真

第四章 FSK、PSK、DPSK误码率的比较…………………………………12 第五章 结论和心得体会………………………………………………….15 参考文献…………………………………………………………………...16 附录………………………………………………………………………...17

4

绪论

数字信号的传输方式分为基带传输和带通传输.然而,实际中的大多数信号(如无线信道)因具有带通特征而不能直接传送基带信号,然而用数字基带信号往往具有丰富的低频分量.为了使数字信号在通信中传输,必须用数字基带信号对载波进行调制,以使信号与信道当然特征相匹配.这种用数字基带信号控制载波,把数字基带信号转变为数字带通信号(已调制号)的过程为数字调制(digital modulation).在接收端通过解调器把带通信号还原成数字基带信号的过程称为数字解调(digital demodulation).通常把包括调制和人解调过程的数字传输系统叫做数字带通传输系统。为了与“基带”一词相对应,带通传输也也称为频率传输,又因为是借助于正弦载波的幅度、频率和相位来传递数字基带信号的,所以带通传输也叫载波传输。因此,熟知数字调制、解调的过程是非常重要的。为了更好的理解FSK、PSK、DPSK的调制和解调过程,此次试验选择了通过MATLAB来仿真FSK、PSK、DPSK的调制、解调过程,并通过实验来比较它们的误码率和信噪比的关系。

本次课程设计,我们小组采用分工合作的方式完成。关于课题的选择是由我们三人共同商讨后确定的。在程序设计中,唐一文同学负责FSK的调制相关和非相关解调,陈娅靓同学负责FSK调制的过零解调和PSK的调制相关解调,刘荣华同学负责DPSK的调制相关和差分解调,并且各自负责相应设计报告的编写。最后大家一起共同完成设计报告的整理。

第一章 FSK

1.2FSK产生原理.

频移键控是利用载波的频率变化来传递数字信息。在2FSK中,载波的频率随二进制信号在f1和f2俩个频点间变化,也就是说,一个2FSK信号可以看成是两个不同载频的2ASK信号的叠加,因此,2FSK信号的表达式为:

(t)acos(t??))?s(?t)1cos(?2ta??()S2FSK(t)?g(?t?]cost?[?gnn1nTsnnt?nTs)]cos= [s?S2FSK(t)?[?ann?Acos[?0t??t]g(t?nT)]cos?t?[?as1nnnng(t?nTs)]cos?2t?1?2?f1,?2?2?f2,an为an的反码?1t??n)??s(tA)cos()cos[??20tt????nt发“0”时

an1?P?0,P?0,??,an??1?P?1,?1,P

5

s(t)cos(?1t??n)?s(t)cos(?t??n)发“1”时 2=

?0t??t

2FSK信号的产生方法主要有两种。一种可以采用模拟调频电路来实现;另一种可以采用键控法来实现,即在二进制基带矩形脉冲序列的控制下通过开关电路对两个不同的独立频率源进行选通,使其在每一个码元Ts期间输出f1或f2两个载波之一。这两种方法产生2FSK信号的差异在于:有调频法产生的2FSK信号在相邻码元之间的相位是连续变化的,而键控法产生的2FSK信号,是由电子开关在两个独立的频率源之间转换形成,故相邻码元之间的相位不一定连续。

2.FSK信号的解调

2FSK信号的常用解调方法是采用如同所示的非相干解调、相干解调和过零检测法。相干解调和非相干解调的原理是:将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行抽样判决。这里的抽样判决时直接比较两路信号抽样值的大小,可以不设置专门的门限。判决规则应与调制规则相呼应,调制时若规定“1”符号对应载波频率f1,则接收时上支路的样值较大,应判为“1”;反之,判为“0”。

带通滤波器ω1 包络检波 抽样判决器 带通滤波器ω2 包络检波

非相干解调

带通滤波器ω1 相乘器 相乘器

相干解调

整流 过零检测法

低通滤波器 抽样判决器 低通滤波器 带通滤波器ω2 限幅 微分 脉冲展宽 低通 过零检测的原理基于2FSK信号的过零点数随不同频率而异,通过过零点数目的多少,从而区分两个不同频率的信号码元。如上图中,2FSK信号经过限幅、微分、

6

整流后形成与频率变化相对应的尖脉冲序列,这些尖脉冲的密集程度反映了信号的频率高低,尖脉冲的个数就是信号过零点的数。把这些尖脉冲变换成较宽的矩形脉冲,以增大其直流分量,该直流分量的大小和信号频率的高低成正比。然后经过低通滤波器取出此直流分量,这样就完成了频率—幅度转换,从而根据直流分量幅度上的区别还原出数字信号“1”和“0”。

3.FSK相关仿真

FSK的相干和非相干解调、FSK的过零检测流程图如如所示

FSK的调制 非相干解加入高斯白噪声 相干调解 噪声误码率统

的调制 FSK

加入高斯白噪声 过零检测 噪声误码率统计 第二章 PSK

1.PSK产生原理

相移键控是利用载波的相位变换来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和π分别表示二进制“1”和“0”。因此,2PSK信号的时域表达式为:

SBPSKt)=?e0((t) [?ang(t?nTs)]cos?ctnan不同于ASK、 FSKan

, P P ?1?+1

??1,1?P??-1 1-P

7

∴e0(t)=

Cosωct (0相) 发“1”时

-cosωt(?相) 发“0”时 )一般为幅度是1、宽度为Tsc的矩形脉冲g(t)一般为幅度是1、宽度为Ts的矩形脉冲BPSK?cosSBPSK)cos??t?cos(?t??),?i?0、?(t)???(tt???cos(、cct??ic),?ii?0c=

2PSK信号的调制原理如图所示

① 相乘法产生

二进制双极NRZ已调信号电平转换器×单极NRZAcos2πfct载波发生器② 数字选相器

载波发生器

~ 0相 选相开关 倒相器 ?相 K e0(t)

S(t)

2.PSK信号的与解调

2PSK信号的解调原理通常采用相干解调法,解调器原理如图所示。 带通滤波器 相乘器 低通滤波器 抽样判决 8

相干解调

3.PSK相关仿真

PSK的相干解调流程图如图所示:

PSK的调制 加入高斯白噪声 相干解调 噪声误码率统计 第三章 DPSK

1.DPSK产生的原理

在PSK信号中,相位变换是以未调载波的相位变换作为参考基准的。相干解调时,由于载波回复中相位有0, 模糊性,导致解调过程中出现“反向工作”现在,恢复出的数字信号“1”,“0”倒置。为克服此缺点,提出了2DPSK调制方式。

2DPSK是利用前后相邻码元的载波相对相位变换传递数字信息,又称相对相移键控。假设△Ψ为当前码元与前一码元的载波相位,可定义一种数字信息与△Ψ之间的关系为:

△Ψ= 0 表示数字信息“0” 180 表示数值信息“1” 数字信息与△Ψ之间的关系也可以相反定义。

于是可以将一组二进制数字信息与其对应的2DPSK信息的载波相位关系示例如下:

二进制数字信息: 1 1 0 1 0 0 1 1 0 2DPSK信号相位:(0)π 0 0πππ 0 ππ (π)0ππ 0 0 0 π 0 0

也就是说,2DPSK信号的相位并不直接代表基带信号,而前后码元相对相位的差才唯一决定信息符号。

2DPSK信号的产生方法:先对二进制数字基带信号进行差分编码,即转换为相对码,然后再根据相对码进行绝对调相,从而产生二进制差分相移键控。

差分码的编码规则:

bn=bn-1 ?an

式中:?为模2加;bn-1为bn的前一码元,最初的bn-1可任意设定。将产生的相对码进行绝对调相即产生二进制差分相移键

二进制信息 差分编码 × 2DPSK信号 载波发生

9

2.DPSK信号的解调

其解调原理是:对2DPSK信号进行相干解调,恢复出相对码,在经码反变换变成绝对码,从而恢复出发送的二进制信息。

差分编码的逆过程称为差分译码,即:

an= bn-1?bn

DPSK信号的解调分方式为两种,一种为相干解调,一种为差分解调。 相干解调:

2DPSK(t) 带通滤波器 相乘LPF 抽样判决 反变换 绝对码 载波 定时脉冲 差分解调:用这种方法不需要专门的相干载波,只需有收到的2DPSK信号延时一

个码元间隔T,然后与2DPSK信号本身相乘。相乘器起着相位比较的作用,相乘结果反映了前后码元的相位差,经低通滤波器后再进行抽样判决,即可直接恢复出原始数字信息。

2DPSK(t) 带通滤波器 相乘器 LPF 抽样判决 二进制码 延迟T 3.DPSK相关仿真

DPSK的相干和差分解调流程如图所示:

2DPSK调制 加入高斯白噪声 相干解调 误码率统计 2DPSK调制 加入高斯白噪差分解调 误码率统计

第四章 FSK、PSK、DPSK误码率的比较

10

误码率是指接收的码元数在传输总码元数中所占的比例,即: 误码率?FSK相干解调: 误码 Pe?FSK非相干解调: 误码率 pe?PSK相干解调: 误码率 Pe?DPSK相干解调:

误码率 Pe?erfc(?r? DPSK差分非相干解调: 误码率 pe?12e-r

错误码元数传输总码元数

1?erfc??2?12r?? 2??e-r/2

12erfc(?r?

r为信噪比。

误码率是衡量一个数字通信系统性能的重要指标。在信道高斯白噪声的干扰下,各种二进制数字调制系统的误码率取决于解调器输入信噪比,而误码率表达式的形式则取决于解调方式。

对于所有的数字调制系统误码率与信噪比的关系的图表来看,所有的曲线呈减函数的下降曲线,即随着信噪比的增大,误码率降低。

横向比较来看,对于同一种调制方式,当信噪比相同时,采用相干解调方式的误码率低于非相干解调方式的误码率,即2FSK的相干解调的误码率低于非相干解调的误码率,由于过零解调步骤复杂,2FSK非相干解调的误码率低于过零解调的误码率;纵向比较来看,对2PSK,2DPSK,2FSK三种调制方式,若采用同一种解调方式(相干解调或非相干解调),则2PSK的误码率最低,2DSPK的误码率次之,2FSK的误码率最高。

当信噪比一定时,误码率由低到高依次是:2PSK的相干解调,2DPSK的相干解调,2DPSK的差分解调,2FSK的相干解调,2FSK的非相干解调。

FSK相干解调误码率:

11

干解调后误码率统计100相 Theoretical SERTheoretical BERSimulated SERSimulated BER10-1REB dna RES10-210-3 00.511.522.533.544.55EbNo (dB)FSK非相干解调误码率:

相干解调后误码率统计100非 Theoretical SERTheoretical BERSimulated SERSimulated BER10-1REBd naR ES10-210-3 00.511.522.533.544.55EbNo (dB)FSK过零解调的误码率:

12

过零解调后误码率统计100 Theoretical SERTheoretical BERSimulated SERSimulated BER10-1REB dnaR ES10-210-3 00.511.522.533.544.55EbNo (dB)PSK相干解调误码率统计:

PSK相干解调后误码率统计100 Theoretical SERTheoretical BERSimulated SERSimulated BER10-1REB dnaR ES10-210-3 00.511.522.533.544.55EbNo (dB)DPSK相干解调误码率统计:

13

100相干解调后误码率统计 Theoretical SERTheoretical BERSimulated SERSimulated BER10SER and BER-110-210 0-30.511.522.53EbNo (dB)3.544.55

DPSK的差分解调误码率统计:

100DPSK差分解调后误码率统计 Theoretical SERTheoretical BERSimulated SERSimulated BER10SER and BER-110-210 0-30.511.522.53EbNo (dB)3.544.55

第五章 结论和心得体会

结论:衡量一个数字通信系统性能的好坏的指标有多种,但主要是误码率性能,频带利用率,对信道的适应能力和设配的的复杂程度等。在本次用MATLAB语言设计程序比较不同调制方式和相应的不同的解调方法下的误码率大小的比较课程设计中,其中2DPSK,2PSK,2FSK三种调制方式在高斯白噪声的干扰下,2PSK性能最好,2DPSK次之,2FSK最差;对同一种调制方法,相干解调的误码率要比非相

14

干解调的误码率低。

心得体会:在为期一周的通信原理课程设计中,我们小组选择了基带信号调制和解调后误码率的比较作为课题。在本次实践中,我们小组三人分工明确,相互合作。在第一天确定课程设计的题目之后,便去图书馆、网上查找相应的资料,但结果让人失望。书上和网上关于解调的MATLAB源代码几乎没有。于是,在开始做的时候,我们对照《通信原理》上的不同解调方式的模块,自己写程序,分步运行仿真,然后再将各个模块合在一起,形成一个完整的调制解调。让我们意外的是,在第四天的上午,所有的程序都已经编写出来,仿真结果也与理论相符。在这次的课程设计中,要感谢老师的帮助指导,期间在编写程序的时间,遇到了很多的问题,几次都想放弃,但老师耐心、逐步的指导,最终让我们小组完成了课程设计的全部任务。同时,这次的课程设计对我们的影响也是很大的,看似很难或是不懂的问题,只要自己去动手做,一定是可以做出来的。这也让我们知道了,在以后碰到了难题的时候,与其逃避,不如直接面对,不管怎样,只要去想,只要去做,结果总是能出来的。

此次为期一周的课程设计,是感觉收获最大的一次。除了能完成所有的设计任务,同时还熟悉了《通信原理》上相关的内容。希望在以后的学习中,还能有同样的机会,将我们所学的东西运用在实际中。

参考文献

【1】邓华.MATLAB通信系统仿真详解.中国电力出版社.2003. 【2】樊昌信.通信原理(第六版).国防工业出版社.2008

【3】现代通信系统(MATLAB版).电子工业出版社.2003

【4】J. D. Gibson. Principles of Digital and Analog Communication, Macmillan Publishing Company.New York.1989

【5】薛定宇.基于MATLAB/Semolina的系统仿真技术与应用.清华大学出版社.2003

15

附:

%FSK调制解调MATLAB源代码

function FSK Fc=10; %载频

Fs=100; %系统采样频率 Fd=1; %码速率 N=Fs/Fd; df=10;

numSymb=25;%进行仿真的信息代码个数 M=2; %进制数 SNRpBit=60;%信噪比 SNR=SNRpBit/log2(M); seed=[12345 54321]; numPlot=25;

%产生25个二进制随机码

x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码 figure(1)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列') xlabel('Time');

ylabel('Amplitude'); %调制

y=dmod(x,Fc,Fd,Fs,'fsk',M,df); numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(2)

plot(t,y(1:length(t)),'b-'); axis([min(t) max(t) -1.5 1.5]); title('调制后的信号') xlabel('Time');

ylabel('Amplitude');

%在已调信号中加入高斯白噪声 randn('state',seed(2));

y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声

figure(3)

plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号 axis([min(t) max(t) -1.5 1.5]);

title('加入高斯白噪声后的已调信号') xlabel('Time');

ylabel('Amplitude'); %相干解调

16

z1=ddemod(y,Fc,Fd,Fs,'fsk',M,df);

%带输出波形的相干M元频移键控解调 figure(4)

stem([0:numPlot-1],x(1:numPlot),'bx'); hold on;

stem([0:numPlot-1],z1(1:numPlot),'ro'); hold off;

axis([0 numPlot -0.5 1.5]);

title('相干解调后的信号原序列比较')

legend('原输入二进制随机序列','相干解调后的信号') xlabel('Time');

ylabel('Amplitude');

%非相干解调

z2=ddemod(y,Fc,Fd,Fs,'fsk/noncoh',M,df);

%带输出波形的非相干M元频移键控解调 figure(5)

stem([0:numPlot-1],x(1:numPlot),'bx'); hold on;

stem([0:numPlot-1],z2(1:numPlot),'ro'); hold off;

axis([0 numPlot -0.5 1.5]); title('非相干解调后的信号')

legend('原输入二进制随机序列','非相干解调后的信号') xlabel('Time');

ylabel('Amplitude');

%误码率统计

[errorSym ratioSym]=symerr(x,z1); figure(6)

simbasebandex([0:1:5]);

title('相干解调后误码率统计')

[errorSym ratioSym]=symerr(x,z2); figure(7)

simbasebandex([0:1:5]);

title('非相干解调后误码率统计')

%FSK调制过零解调MATLAB源代码 function FSK

17

Fc=10; %载频

Fs=100; %系统采样频率 Fd=1; %码速率 N=Fs/Fd; df=10;

numSymb=25;%进行仿真的信息代码个数 M=2; %进制数 SNRpBit=60;%信噪比 SNR=SNRpBit/log2(M); seed=[12345 54321]; numPlot=25;

%产生25个二进制随机码

x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码 figure(1)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列') xlabel('Time');

ylabel('Amplitude'); %调制

y=dmod(x,Fc,Fd,Fs,'fsk',M,df); numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(2)

plot(t,y(1:length(t)),'b-'); axis([min(t) max(t) -1.5 1.5]); title('调制后的信号') xlabel('Time');

ylabel('Amplitude');

%在已调信号中加入高斯白噪声 randn('state',seed(2));

y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声

figure(3)

plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号 axis([min(t) max(t) -1.5 1.5]);

title('加入高斯白噪声后的已调信号') xlabel('Time');

ylabel('Amplitude');

%限幅

for t=1:2500 if y(t)>0 y(t)=1; else

18

y(t)=0; end end

figure(4) stem(y)

title('限幅后的信号') xlabel('点数');

ylabel('Amplitude');

%差分

for t=1:2499

if abs(y(t+1)-y(t))==1 y(t)=1; else y(t)=0; end end

figure(5) stem(y)

title('差分后的信号') xlabel('点数');

ylabel('Amplitude');

%低通滤波器

[B,A]=butter(15,0.15); z1=filter(B,A,y); figure(6) plot(z1)

title('通过低通滤波器的信号') xlabel('点数');

ylabel('Amplitude');

%抽样判决

a=zeros(1,25) for n=1:25

a(n)=z1(100*n-50); end

for n=1:25

if a(n)>0.2 a(n)=1; else a(n)=0; end end

figure(7)

19

stem([0:numPlot-1],a(1:numPlot),'bx') title('解调后的信号') xlabel('Time');

ylabel('Amplitude');

%误码率统计

[errorSym ratioSym]=symerr(x,a'); figure(8)

simbasebandex([0:1:5]);

title('过零解调后误码率统计')

%PSK调制和相干解调MATLAB源代码 function PSK Fc=10; %载频

Fs=100; %系统采样频率 Fd=1; %码速率 N=Fs/Fd; df=10;

numSymb=25;%进行仿真的信息代码个数 M=2; %进制数 SNRpBit=60;%信噪比 SNR=SNRpBit/log2(M); seed=[12345 54321]; numPlot=25;

%产生25个二进制随机码

x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码figure(1)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列') xlabel('Time');

ylabel('Amplitude');

%调制

y=dmod(x,Fc,Fd,Fs,'psk',M,df); numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(2)

plot(t,y(1:length(t)),'b-'); axis([min(t) max(t) -1.5 1.5]); title('调制后的信号') xlabel('Time');

ylabel('Amplitude');

20

%在已调信号中加入高斯白噪声 randn('state',seed(2));

y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声

figure(3)

plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号 axis([min(t) max(t) -1.5 1.5]);

title('加入高斯白噪声后的已调信号') xlabel('Time');

ylabel('Amplitude'); %相干解调

z1=ddemod(y,Fc,Fd,Fs,'psk',M,df);

%带输出波形的相干M元频移键控解调 figure(4)

stem([0:numPlot-1],x(1:numPlot),'bx'); hold on;

stem([0:numPlot-1],z1(1:numPlot),'ro'); hold off;

axis([0 numPlot -0.5 1.5]);

title('相干解调后的信号原序列比较')

legend('原输入二进制随机序列','相干解调后的信号') xlabel('Time');

ylabel('Amplitude');

%误码率统计

[errorSym ratioSym]=symerr(x,z1); figure(6)

simbasebandex([0:1:5]);

title('相干解调后误码率统计')

%DPSK调制和相干解调MATLAB源代码 function DPSK Fc=10; %载频

Fs=100; %系统采样频率 Fd=1; %码速率 N=Fs/Fd; df=10;

numSymb=25;%进行仿真的信息代码个数 M=2; %进制数 SNRpBit=60;%信噪比

21

SNR=SNRpBit/log2(M); seed=[12345 54321]; numPlot=25;

%产生25个二进制随机码

x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码 figure(1)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列') xlabel('Time');

ylabel('Amplitude');

%将25个绝对码转换为相对码 b=zeros(1,26);

b(2)=xor(b(1),x(1)) for n=2:25

b(n+1)=xor(x(n),b(n)); end

for n=1:25

x(n)=b(n+1); end

figure(2)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列相对码') xlabel('Time');

ylabel('Amplitude');

%调制

y=dmod(x,Fc,Fd,Fs,'psk',M,df); numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(3)

plot(t,y(1:length(t)),'b-'); axis([min(t) 2 -1.5 1.5]); title('调制后的信号') xlabel('Time');

ylabel('Amplitude');

%在已调信号中加入高斯白噪声 randn('state',seed(2));

y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声

figure(4)

plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号 axis([min(t) 2 -1.5 1.5]);

22

title('加入高斯白噪声后的已调信号') xlabel('Time');

ylabel('Amplitude');

%相干解调

z1=ddemod(y,Fc,Fd,Fs,'psk',M,df); %将恢复出的相对码变换为绝对码 a=zeros(1,26); a(1)=xor(b(1),0); for n=2:25

a(n)=xor(b(n),b(n-1)) end

for n=1:25

z1(n)=a(n+1); end

%带输出波形的相干M元频移键控解调 figure(5)

stem([0:numPlot-1],z1(1:numPlot),'ro'); axis([0 numPlot -0.5 1.5]);

title('相干解调后的信号的绝对码') xlabel('Time');

ylabel('Amplitude');

%误码率统计

[errorSym ratioSym]=symerr(x,z1); figure(6)

simbasebandex([0:1:5]);

title('相干解调后误码率统计')

%DPSK调制差分解调MATLAB源代码 function DPSK Fc=10; %载频

Fs=100; %系统采样频率 Fd=1; %码速率 N=Fs/Fd; df=10;

numSymb=25;%进行仿真的信息代码个数 M=2; %进制数 SNRpBit=60;%信噪比 SNR=SNRpBit/log2(M); seed=[12345 54321]; numPlot=25;

23

%产生25个二进制随机码

x=randsrc(numSymb,1,[0:M-1]);%产生25个二进制随机码 figure(1)

stem([0:numPlot-1],x(1:numPlot),'bx'); title('二进制随机序列') xlabel('Time');

ylabel('Amplitude');

%将25个绝对码转换为26个相对码 b=zeros(1,26); for n=1:25

b(n+1)=xor(x(n),b(n)); end

figure(2)

stem([0:25],b(1:26),'bx'); title('二进制随机序列相对码') xlabel('Time');

ylabel('Amplitude');

%调制

y=dmod(b,Fc,Fd,Fs,'psk',M,df); numModPlot=26*Fs;

t=[0:numModPlot-1]./Fs; figure(3)

plot(t,y(1:length(t)),'b-'); axis([min(t) max(t) -1.5 1.5]); title('调制后的信号') xlabel('Time');

ylabel('Amplitude');

%在已调信号中加入高斯白噪声 randn('state',seed(2));

y=awgn(y,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%在已调信号中加入高斯白噪声

figure(4) stem(y)

plot(t,y(1:length(t)),'b-');%画出经过信道的实际信号 axis([min(t) max(t) -1.5 1.5]);

title('加入高斯白噪声后的已调信号') xlabel('Time');

ylabel('Amplitude');

%差分解调带通滤波器

24

[B,A]=butter(10,0.2,'high'); a=filter(B,A,y); wc=[0.3,0.9];

[B,A]=butter(10,wc,'stop'); b=filter(B,A,a);

%延迟一个码元的长度 a=zeros(0,2700); for n=101:2700

a(n)=y(n-100); end

%相乘

for n=1:2600

a(n)=a(n)*y(n); end

figure(5) stem(a)

title('相乘后的信号') xlabel('Time');

ylabel('Amplitude');

%低通滤波器

[B,A]=butter(15,0.15); z1=filter(B,A,a); figure(6) plot(z1)

title('通过低通滤波器的信号') xlabel('点数');

ylabel('Amplitude');

%抽样判决

b=zeros(1,26) ; for n=1:26

b(n)=z1(100*n-50); end

for n=1:26

if b(n)>0.2 b(n)=1; else b(n)=0; end end

figure(7) stem(b)

25

title('差分解调后的信号') xlabel('Time');

ylabel('Amplitude');

%取反并前移一位 for n=1:26

if b(n)==1 b(n)=0; else b(n)=1; end end

c=zeros(1,25) for n=1:25

c(n)=b(n+1) end

figure(8)

stem([0:numPlot-1],c(1:numPlot),'ro'); title('差分解调取反后的信号') xlabel('Time');

ylabel('Amplitude');

%误码率统计

[errorSym ratioSym]=symerr(x,c'); figure(9)

simbasebandex([0:1:5]);

title('DPSK差分解调后误码率统计')

26

FSK的相干和非相干解调:

二进制随机序列10.90.80.7e0.6dutilp0.5mA0.40.30.20.100510152025Time调制后的信号1.510.5edutilp0mA-0.5-1-1.505101520Time27

加入高斯白噪声后的已调信号1.510.5edutilp0mA-0.5-1-1.505101520Time相干解调后的信号原序列比较1.5 原输入二进制随机序列相干解调后的信号1udetilp0.5mA0-0.5 0510152025Time28

非相干解调后的信号1.5 原输入二进制随机序列非相干解调后的信号1edutilp0.5mA0-0.5 0510152025Time

FSK的过零解调:

二进制随机序列10.90.80.7e0.6dutilp0.5mA0.40.30.20.100510152025Time29

调制后的信号1.510.5edutilp0mA-0.5-1-1.505101520Time加入高斯白噪声后的已调信号1.510.5edutilp0mA-0.5-1-1.505101520Time30

限幅后的信号10.90.80.7e0.6dutilp0.5mA0.40.30.20.1005001000150020002500点数差分后的信号10.90.80.7e0.6dutilp0.5mA0.40.30.20.1005001000150020002500点数31

通过低通滤波器的信号0.40.350.30.25udetilp0.2mA0.150.10.05005001000150020002500点数

解调后的信号10.90.80.7e0.6udtilp0.5mA0.40.30.20.100510152025TimePSK相干解调:

32

二进制随机序列10.90.80.70.6edutilp0.5mA0.40.30.20.100510152025Time调制后的信号1.510.50-0.5-1-1.505101520Time33

Amplitude

加入高斯白噪声后的已调信号1.510.5edutilp0mA-0.5-1-1.505101520Time相干解调后的信号原序列比较1.5 原输入二进制随机序列相干解调后的信号1edutilp0.5mA0-0.5 0510152025Time

DPSK相干解调:

34

二进制随机序列10.90.80.70.6edutilp0.5mA0.40.30.20.100510152025Time二进制随机序列相对码10.90.80.7e0.6dutilp0.5mA0.40.30.20.100510152025Time35

调制后的信号1.510.5edutilp0mA-0.5-1-1.505101520Time加入高斯白噪声后的已调信号1.510.5edutilp0mA-0.5-1-1.505101520Time36

相干解调后的信号的绝对码1.51edutilp0.5mA0-0.50510152025Time

DPSK差分解调:

二进制随机序列10.90.80.7e0.6dutilp0.5mA0.40.30.20.100510152025Time37

二进制随机序列相对码10.90.80.7e0.6udtilp0.5mA0.40.30.20.100510152025Time调制后的信号1.510.50-0.5-1-1.50510152025Time38

Amplitude

加入高斯白噪声后的已调信号1.510.5edutilp0mA-0.5-1-1.50510152025Time相乘后的信号1.510.5edutilp0mA-0.5-1-1.5050010001500200025003000Time39

通过低通滤波器的信号0.80.60.40.2edutilp0mA-0.2-0.4-0.6-0.8050010001500200025003000点数差分解调后的信号10.90.80.70.6udetilp0.5mA0.40.30.20.10051015202530Time40

差分解调取反后的信号10.90.80.70.6udetilp0.5mA0.40.30.20.100510152025Time41

本文来源:https://www.bwwdw.com/article/39oo.html

Top