用matlab绘制BPSK、4FSK、1/4πDQPSK、4QAM、16QAM、64QAM信号星座图的工具箱函数
时间: 2023-11-23 08:08:07 浏览: 52
Matlab中有现成的信号星座图绘制工具箱函数,可以通过以下命令调用:
BPSK信号星座图:
scatterplot(qammod([0 1],2,'gray'));
4FSK信号星座图:
scatterplot(fskmod([0 1 2 3],4,1,0,'gray'));
1/4πDQPSK信号星座图:
scatterplot(dpskmod([0 1],pi/4,0,'gray'));
4QAM信号星座图:
scatterplot(qammod([0 1 2 3],4,'gray'));
16QAM信号星座图:
scatterplot(qammod([0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15],16,'gray'));
64QAM信号星座图:
scatterplot(qammod([0:63],64,'gray'));
其中,qammod、fskmod、dpskmod分别用于生成QAM、FSK、DQPSK调制信号,scatterplot用于绘制信号星座图。'gray'参数用于指定星座点的颜色。
相关问题
用matlab绘制BPSK、4FSK、1/4πDQPSK、4QAM、16QAM、64QAM信号星座图的代码
BPSK信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为BPSK信号
BPSK = 2*data-1; % BPSK调制
% 绘制BPSK信号星座图
figure;
scatterplot(BPSK);
title('BPSK Signal Constellation');
```
4FSK信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为4FSK信号
M = 4; % 4FSK调制的调制阶数
fskmod = comm.FSKModulator(M); % 创建4FSK调制器对象
modulated = fskmod(data); % 4FSK调制
% 绘制4FSK信号星座图
figure;
scatterplot(modulated);
title('4FSK Signal Constellation');
```
1/4πDQPSK信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为1/4πDQPSK信号
DQPSK = pskmod(data,4,pi/4,'gray'); % 1/4πDQPSK调制
% 绘制1/4πDQPSK信号星座图
figure;
scatterplot(DQPSK);
title('1/4πDQPSK Signal Constellation');
```
4QAM信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为4QAM信号
QAM = qammod(data,4,'gray'); % 4QAM调制
% 绘制4QAM信号星座图
figure;
scatterplot(QAM);
title('4QAM Signal Constellation');
```
16QAM信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为16QAM信号
QAM = qammod(data,16,'gray'); % 16QAM调制
% 绘制16QAM信号星座图
figure;
scatterplot(QAM);
title('16QAM Signal Constellation');
```
64QAM信号星座图:
```matlab
clear all; close all; clc;
% 生成随机的二进制序列
N = 10000; % 信号长度
data = randi([0 1],N,1); % 二进制随机序列
% 将二进制序列转化为64QAM信号
QAM = qammod(data,64,'gray'); % 64QAM调制
% 绘制64QAM信号星座图
figure;
scatterplot(QAM);
title('64QAM Signal Constellation');
```
bpsk4psk16qam64qam误码率
对于BPSK(Binary Phase Shift Keying)来说,误码率可以由以下公式计算得出:
BER = 0.5 * erfc(sqrt(Eb/No))
其中,BER代表误码率,erfc代表互补高斯误差函数,Eb/No代表以比特为单位的信噪比。对于BPSK来说,每个符号携带一个比特。正交分集技术使得误码率与信噪比按照上述公式成负相关。
对于4PSK(Quaternary Phase Shift Keying),每个符号携带2个比特。故误码率可以计算为:
BER = 0.5 * erfc(sqrt(2 * Eb/No))
对于16QAM(Quadrature Amplitude Modulation),每个符号携带4个比特。因此,误码率可以计算为:
BER = 0.5 * erfc(sqrt(10 * Eb/No))
对于64QAM(Quadrature Amplitude Modulation),每个符号携带6个比特。所以,误码率可以计算为:
BER = 0.5 * erfc(sqrt(42 * Eb/No))
需要注意的是,以上计算中,信噪比的单位为线性比特能量(Eb)与噪音功率(No)之比。不同调制方式下,误码率与信噪比之间的关系存在差异,其中复杂度越高的调制方式对信噪比的要求也更高。