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