用MATLAB仿真相移键控

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 仿真实验报告

题目:相移键控仿真(Phase Shift Keying Simulation )

一、初始化变量:

对样本变量进行初始化,包括每一个符号,符号的数值,字长,还有性噪比。

nSamp = 8; numSymb = 100; %取样长度为8,数值长度为100 M = 4; SNR = 14; %设置M=4,性噪比为14dB

hStr = RandStream('mt19937ar', 'Seed', 12345); %用随机数产生程序产生随机数

二、产生原始信号序列:

接下来,使用RANDI 函数生成随机信息,长度为0到M-1共M 个。因为模拟QPSK 的,这些符号是0到3。第一个10数据点绘制。

numPlot = 10; %画图时取前十个样本

msg_orig = randi(hStr, [0 M-1], numSymb, 1); %产生原始随机信号序列 stem(0:numPlot-1, msg_orig(1:numPlot), 'bx'); %画出序列 xlabel('Time'); ylabel('Amplitude');%横轴为时间,纵轴为幅度

三、进行相位调制:

使用MODEM.PSKMOD 来调制数据,参数使用QPSK 调制和灰色编码。

用RECTPULSE 对载波采取8倍采样率的上抽样,使用SCATTERPLOT 看信号星座

hMod = modem.pskmod('M', M, 'PhaseOffset', pi/4, 'SymbolOrder', 'Gray'); msg_tx = modulate(hMod, msg_orig); %进行相位调制 msg_tx = rectpulse(msg_tx,nSamp);%对信号进行抽样 h1 = scatterplot(msg_tx); %画出信号的星座图

Time

A m p l i t u d e

-0.6

-0.4

-0.2

00.20.4

0.6

Q u a d r a t u r e

In-Phase

Scatter plot

四、加入噪声:

使用AWGN 在已调信号上加上噪声,在接收机处产生带噪声信号,用'measured'选项加上低于平均信号功率的噪声信号(信噪比为14 dB ),画出接受到的信号的星座图。

msg_rx = awgn(msg_tx, SNR, 'measured', hStr, 'dB');%在已调波上加上噪声 h2 = scatterplot(msg_rx); %画出接收到的带噪声信号星座图

五、信号的解调:

使用INTDUMP 对原始信息进行下抽样。然后使用MODEM.PSKDEMOD 解调信号,然后检测传输信号。

hDemod = modem.pskdemod('M', M, 'PhaseOffset', pi/4, 'SymbolOrder', 'Gray'); close(h1(ishghandle(h1)), h2(ishghandle(h2))); msg_rx_down = intdump(msg_rx,nSamp);

msg_demod = demodulate(hDemod, msg_rx_down); %信号的解调 stem(0:numPlot-1, msg_orig(1:numPlot), 'bx'); hold on ; stem(0:numPlot-1, msg_demod(1:numPlot), 'ro'); hold off ;

axis([ 0 numPlot -0.2 3.2]); xlabel('Time'); ylabel('Amplitude');%取画图范围,横轴设为时间,纵轴设为幅度

解调出的信号(左)与输入的调制信号(右)对比图

六、比较原信号和解调后的信号:

最后,使用BITERR 和SYMERR 比较原始信号的解调的信号。BITERR 用于确定比特误码率,SYMERR 用于确定符号出错率

-1

-0.5

00.5

1

Q u a d r a t u r e

In-Phase

Scatter plot

Time

A m p l i t u d e

Time

A m p l i t u d e

[errorBit ratioBit] = biterr(msg_orig, msg_demod, log2(M)); [errorSym ratioSym] = symerr(msg_orig, msg_demod); 最后执行一个完整的QPSK 模拟例子:

执行一个示例文件SIMBASEBANDEX,这是一个完整的QPSK 模拟例子。

运行结果显示了理论上的比特误码率、理论上的符号出错率,仿真的比特误码率,仿真的符号出错率

simbasebandex(0:5);

0.51 1.52

2.53

3.54

4.55

10

10

10

10

EbNo (dB)

S E R a n d B E R

Performance of Baseband QPSK

相关文档
最新文档