基于matlab的汉明码4FSK通信仿真实验报告

更新时间:2023-12-17 11:12:01 阅读量: 教育文库 文档下载

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

河海大学计算机及信息工程学院(常

州)

课程设计报告

题 目 不同信道下汉明码4FSK系统仿真 专 业 通 信 工 程 学 号 0962310312 学生姓名 程海粟 指导教师 高 远

1

目录

一、 实验目的……………………………………………………3 二、 实验器材……………………………………………………3 三、 实验内容及原理……………………………………………3

(一) 汉明码编解码原理………………………………………3 (二) 4FSK调制解调原理………………………………………6 (三) 三种信道模型简介………………………………………9 (四) 程序调用函数介绍………………………………………

10

四、 实验仿真效果图……………………………………………12 五、 心得体会……………………………………………………15 六、 附录…………………………………………………………15 七、 参考文献……………………………………………………18

2

不同信道下汉明码的4FSK系统仿真

一、实验目的

1、了解熟悉Matlab仿真软件使用;

2、掌握4进制频移键控(4FSK)的调制与解调基本原理; 3、掌握Matlab仿真软件仿真4FSK的系统设计; 4、熟悉无线通信仿真过程及物理层仿真。

二、实验器材

Matlab仿真软件。

三、实验内容及原理

(一)汉明码编解码原理

1、编码原理

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k。若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求

2r?1?n或2?1?k?r?1 (1)

下面以(7,4)汉明码为例说明原理:

设汉明码(n,k)中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r≥3。若取r=3,则n=k+r=7。我们用

a6a5a4a3a2a1a0r来表示这7个码元,用

s1s2s3的值表示3个监督关系式中的校正子,则可以规定如表1所列。

s1s2s3的值与错误码元位置的对应关系

表1 校正子和错码位置的关系

s1s2s3 错码位置 a0 s1s2s3 错码位置 a4 001 101 3

010 100 011 a1a2a3 110 111 000 a5a6 无错码 则由表1可得监督关系式:

s1?a6?a5?a4?as3?a6?a4?a3?a0

?2? ?3? ?4?

s2?a6?a5?a3?a

在发送端编码时,信息位a6a5a4a3的值决定于输入信号,因此它们是随机的。监督位

a2aa、1、0应根据信息位的取值按监督关系来确定,即监督位应使式(2)

sss~式(4)中1、2、3的值为0(表示编成的码组中应无错码)

(5 )式(5)经过移项运算,接触监督位

?a6?a5?a4?a2?0??a6?a5?a3?a1?0?a?a?a?a?0430?6?a2?a6?a5?a4??a1?a6?a5?a3?a?a?a?a643?0 (6)

式(5)其等价形式为:

?a6??a??5??1110100??a4??0??1101010??a???0????3?????1011001???a2???0?????a1??a??0? (7)

式(6)还可以简记为

TTT) H?A?0或A?H?0 (8

其中

4

?1110100??H??1101010????1011001?? ?1?1110??0?I?P??1101r??????0?1011??

010A??a?1a00??06a5a4a3a2a

0??0??1?0?0

所以有

(9)

式(6)等价于

H??PIr??a2a1a0???a6a5a4?111??110????a6a3???101???011??a5a4a3?Q

(10 )其中Q为P的转置,即

Q?PT (11 )式(10)表示,信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。 我们将Q的左边加上一个k×k阶单位方阵,就构成一个矩阵G

?10001?01001k?G???IQ????00101??0001011?10??01??11? (12 )G称为生成矩阵,因为由它可以产生整个码组,即有

?a6a5a4a3a2a1a0???a6a5a4a3??G (13 )或者

) (14

式(13)即汉明码的编码原理

A??a6a5a4a3??G2、解码和纠错原理

当数字信号编码成汉明码形式(本文中即A)后在信道中传输,由于信道中噪声的干扰,可能由于干扰引入差错,使得接收端收到错码,因此在接收端进行

5

汉明码纠错,以提高通信系统的抗干扰能力及可靠性。

一般来说接收码组与A不一定相同。若设接收码组为一n列的行矩阵B,即

B??b6b5b4b3b2b1b0? (15 )则发送码组和接收码组之差为

B?A?E (16 )

E就是传输中产生的错码行矩阵

E??e6e5e4e3e2e1e0? (17 )若ei=0,表示接收码元无错误,若ei=1,则表示该接收码元有错。式(16)可改写成

B?A?E (18 )

若E=0,即接收码组无错,则B?A?E?A,将它代人式(8),该是仍成立,即有

B?HT?0 (19 )当接收码组有错时,E≠0,将B带入式(8)后,该式不一定成立。在未超过检错能力时,式(19)不成立。假设此时式(19)的右端为S,即

B?HT?S ?20?

将 B?A?E代入式(20),可得

S?(A?E)HT?A?HT?E?HT

由式(8)可知,所以

S?E?HT ?21?

此处S与前面的

s1s2s3有着一一对应关系,则S能代表错码位置。

因此,纠错原理即,接收端收到码组后按式(20)计算出S,再根据表1判断错码情况,进行差错纠正。

(二)4FSK调制解调原理

1、调制原理

二进制频移键控是数字信号调制的基本方式之一。而多进制(MFSK)的可降低信道系统信噪比的要求。2FSK信号的产生方法主要有两种:采用模拟调频

6

电路实现;采用键控法来实现,即在二进制基带脉冲序列的控制下通过开关电路对两个不同的独立频率源进行选通,使其在每个码元期间输出f1和f2两个载波之一。频移键控是利用载波的频率变化来传递信息的。在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点间变化。同理4FSK中基带脉冲序列四个码元(00 01 10 11)可用f1,f2,f3,f4四个载波之一;本文讨论4FSK是通过并联输入两位基带信号,两位二进制来表示四进制的频移键控。

2FSK键控法调频原理图如下:

振荡器f1 选通开反相器 相加器 振荡器f2 选通开图 1.1(1) 2FSK调制原理

4FSK可通过基带信号(00,01,10,11)并联传输0或1来分别用f1,f2,f3,f4四个载频表示,两路基带信号作为控制选通选通开关,1路选通开关发送0时选通载频f1, 发送0时选通载频f2, 1路选通开关发送0时选通载频f3, 送1时选通载频f4。两路不同载频通过相加器得到已调信号发送出去。

4FSK键控法调频原理图(图1.1)如下:

7

振荡器f1 0或1 选通开关1 振荡器f2 相加器 振荡器f3 0或1 选通开关2 振荡器f4 图 3.1.1(2) 4FSK调制原理

2、解调原理

4FSK信号的相干解调法原理框图如图1.2所示。其原理是:4FSK信号先经过带通滤波器去除调制信号频带以外的在信道中混入的噪声,此后该信号分为四路,每路信号与相应载波相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出分别得到两路原基带信号表示四进制得到原始码元。

8

载波f1 带通滤波相乘器 载波f2 4FSK 已 调 信 号 带通滤波相乘器 低通滤波加法器 低通滤波抽样判决解调信号1 载波f2 带通滤波相乘器 载波f2 带通滤波相乘器 低通滤波加法器 低通滤波抽样判决带通滤波

图 1.2 4FSK解调原理

(三)三种信道模型简介

1、瑞利信道

瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统

计模型。这种模型假设信号通过无线信道之后,其信号幅度是随机的,即“衰落”,并且其包络服从瑞利分布。这一信道模型能够描述由电离层和对流层反射的短波信道,以及建筑物密集的城市环境。12瑞利衰落只适用于从发射机到接收机不存在直射信号(LoS,Line of Sight)的情况,否则应使用莱斯衰落信道作为信道模型。

瑞利分布是一个均值为0,方差为σ2的平稳窄带高斯过程,其包络的一维分布是瑞利分布。其表达式及概率密度如图所示。

9

瑞利分布函数

瑞利分布是最常见的用于描述平坦衰落信号接收包络或独立多径分量接受包络统计时变特性的一种分布类型。两个正交高斯噪声信号之和的包络服从瑞利分布。

瑞利衰落能有效描述存在能够大量散射无线电信号的障碍物的无线传播环境。若传播环境中存在足够多的散射,则冲激信号到达接收机后表现为大量统计独立的随机变量的叠加,根据中心极限定理,则这一无线信道的冲激响应将是一个高斯过程。如果这一散射信道中不存在主要的信号分量,通常这一条件是指不存在直射信号(LoS),则这一过程的均值为0,且相位服从0 到2π的均匀分布。即,信道响应的能量或包络服从瑞利分布。若信道中存在一主要分量,例如直射信号(LoS),则信道响应的包络服从莱斯分布,对应的信道模型为莱斯衰落信道。

通常将信道增益以等效基带信号表示,即用一复数表示信道的幅度和相位特性。由此瑞利衰落即可由这一复数表示,它的实部和虚部服从于零均值的独立同分布高斯过程。 2、多径信道

一种扩频通信系统的多径解扩方法:将来自n个信道的数据分别经过模/数转换电路进行量化,然后把经过量化后的数据保存在各对应的数据存储器中,之后根据多径的峰值和多径延时的值,从各数据存储器的不同位置依序读出n个信道的多径数据后,进行该多径解扩:首先是预解扩;其次是二次解扩累加;再者是多次解扩累加;最后输出n个信道的多径解扩数据。

3、高斯信道

高斯信道是一个射频通信信道,其包含了各种频率的特定噪声频谱密度的的

10

特征,从而导致了信道中错误的任意分布。常指加权高斯白噪声(AWGN)信道。这种噪声假设为在整个信道带宽下功率谱密度(PDF)为常数,并且振幅符合高斯概率分布。

信号经过高斯信道会受到加性干扰的影响。

(四)程序调用函数介绍

MATLAB中提供了汉明码的编解码、4FSK调制解调函数和不同通信信道模型函数,本程序直接调用进行编程。 1、encode函数 功能:编码函数

语法:code=encode(msg,N,K,’hamming’)

说明:该函数对二进制信息msg进行汉明编码,K为信息位长度,N为码字长度。msg是一个K列矩阵。 2、decode函数 功能:译码函数

语法:rcvcode=decode(code,N,K,’hamming’)

说明:该函数对接受码字进行译码,恢复出原始信息,译码参数及方式必须和编码时采用的完全相同。 3、dmod函数 功能:调制函数

语法:fskout=dmod(signal,Fc,Fd,Fs,'fsk',M,df)

说明:该函数可以对输入的数字信号进行4FSK调制,Fs为系统的采样频率,Fc为载波频率,Fd为码元速率,df为频差。 4、ddemod函数 功能:调制函数

语法:y=ddemod(signal,Fc,Fd,Fs,'fsk',M,df)

说明:该函数可以对输入的4FSK信号进行解调,Fs为系统的采样频率,Fc为载波频率,Fd为码元速率,df为频差。 5、rayleighchan函数

功能:瑞利(多径)信道模型

11

语法:chan = rayleighchan(ts,fd,tau,pdb);y = filter(chan,x)

说明:其中,ts---为输入信号的采样周期,fd---就是Doppler频偏,以Hz为单位,与速率的换算关系为v×fc/c,fc是载频,tau---输入的信道参数,一个向量,包含了各径的延时,以s为单位,pdb---输入的信道参数,一个向量,包含了各径的功率(当然是均值啦,实际产生的能量都是以此为均值的随机量),以dB为单位。然后y = filter(chan,x),即可将信道的影响加在输入的数据x上。 6、awgn函数

功能:高斯白信道模型

语法:y = awgn(x,SNR,SIGPOWER)

说明:在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。

四、实验仿真效果图

Matlab仿真效果图如下:

12

13

14

15

五、心得体会

通信系统仿真MATLAB是现在很流行的用于科学计算的软件工具,它集数值分析、矩阵运算、信号处理、图像显示等多种功能于一体,提供了一个高性能的科学计算环境,因此在通信、自动化等领域都得到了广泛的应用。同时也是理论教学和实验教学的有力工具。借助于MATLAB可大大地拓宽研究分析的视野提高研究设计的效率,具有重要的推广和应用价值。

六、附录

主程序:

%Function:(7,4)Hamming Code and 4FSK Modulation %Author:HarryChing úte:2012/11/03 function main

N=1200;%Set data bits of random binary number K=7*N/4;%The data bits after£¨7,4£?Hamming Code

16

M = 4;OSK

SNRpBit=0:2:20;%Signal to Noise Ratio per bit

SNR=SNRpBit./log2(M);%Signal to Noise Ratio per symbol x=randint(1,N,2);%Generate N bits binary number x1=hammingcode(x);%Hamming Code

x2=reshape(x1,K/2,2);%1*K array to 2*K/2 array x3=bi2de(x2);%Change 2 to 4 scale

x4=reshape(x3,1,K/2);%Reshape to 1*K/2 array

figure(1) bar(x4);

axis([0 4.5 0 3])

title('???ú2úéúμ?êy×?D??¢','FontName','??ì?','FontSize',20)

y = fsk4mod(x4);OSK modulation

y1 = raychannel(y);OSK pass Rayleigh Channel

y11 = raymultipathchannel(y);OSK pass Rayleigh Multi-path Channel

%%%%%%The BER of two channel models is as follows%%%%%% for i = 1:length(SNR) if i==1

y2=awgnchannel(y1,SNR(i));%Pass Gaussian noise Channel Fs=1280;%Sampling Frequency numPlot=4;%Set plot number numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(5)

plot(t,y2(1:length(t)));

title('èeà?D?μà???óè????1°×??éùoóμ?4FSKD?o?','FontSize',20) xlabel('Time','FontSize',15); ylabel('Amplitude','FontSize',15); y3=fsk4demod(y2); y4=reshape(y3,K/2,1); y5=de2bi(y4); y6=reshape(y5,1,K);

y7=decode(y6,7,4,'hamming'); [errorSym ratioSym]=symerr(x,y7); Pe1(i)=ratioSym; else

y2=awgnchannel(y1,SNR(i));%Pass Gaussian noise Channel y3=fsk4demod(y2); y4=reshape(y3,K/2,1); y5=de2bi(y4); y6=reshape(y5,1,K);

17

y7=decode(y6,7,4,'hamming'); [errorSym ratioSym]=symerr(x,y7); Pe1(i)=ratioSym; end end

for i = 1:length(SNR) if i==1

y22=awgnchannel(y11,SNR(i));%Pass Gaussian noise Channel Fs=1280;%Sampling Frequency numPlot=4;%Set plot number numModPlot=numPlot*Fs; t=[0:numModPlot-1]./Fs; figure(6)

plot(t,y2(1:length(t)));

title('?à??D?μà???óè????1°×??éùoóμ?4FSKD?o?','FontSize',20) xlabel('Time','FontSize',15); ylabel('Amplitude','FontSize',15); y33=fsk4demod(y22); y44=reshape(y33,K/2,1); y55=de2bi(y44); y66=reshape(y55,1,K);

y77=decode(y66,7,4,'hamming'); [errorSym ratioSym]=symerr(x,y77); Pe11(i)=ratioSym; else

y22=awgnchannel(y11,SNR(i));%Pass Gaussian noise Channel y33=fsk4demod(y22); y44=reshape(y33,K/2,1); y55=de2bi(y44); y66=reshape(y55,1,K);

y77=decode(y66,7,4,'hamming'); [errorSym ratioSym]=symerr(x,y77); Pe11(i)=ratioSym; end end figure(7)

semilogy(SNR,Pe1,'o-b',SNR,Pe11,'*-r','LineWidth',3); xlabel('SNR','FontSize',15); ylabel('Pe','FontSize',15); legend('èeà?D?μà','?à??D?μà')

title('2?í?D?μà???ó???ê-D???±è?ú??','FontName','??ì?','FontSize',20) grid on

18

八、 参考文献

[1] 樊昌信.徐炳祥等.通信原理(第五版).国防工业出版社.2001. [2] 罗新民.张传生.薛少丽.现代通信原理..高等教育出版社.2003.

[3] 徐明远.邵玉斌.仿真在通信原理与电子工程中的应用.西安电子科技大学出版社.2005.

[4] 张志德.林霖.基于Simulink仿真的数字调制系统性能分析.现代电子技术.

19

本文来源:https://www.bwwdw.com/article/43f5.html

Top