用MATLAB仿真相移键控
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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