基本通信系统

通信系统的简单模拟

生成二进制信号,调制,通过信道加入高斯白噪声,解调,结算误码率

实现

AWGN:在某一信号中加入高斯白噪声

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

误比特率 biterr

[num,err] = biterr(a,b,k)
num 为误比特数,err 为误比特率,k 为 a,b 中的符号转化为比特时的位数,缺省时取最大值。
若指定 k 取2,表示每个符号用2位比特表示,即 a=[00 01 01 01], b=[00 00 00 01],err=2/8=0.25

调制与解调

Y = Pskmod (x, M,ini_phase)
其中 x 是需要要调制的数字信息: M 是调制的级数 (即想位数),ini_phase 是初始相位。函数返回一个调制后的信号 y。
Pskmod 函数的实现原理是将数字信息 x 转换为相应的相位,然后将这些相位映射到复平面上。这样,我们就可以将数字信息通过相位调制的方式传输。
下面是一个示例:

X = [0 1 2 3 0 1 2 3];%数字信息 
M =4;%调制级数
Ini_phase = 0;%初始相位
Y = pskmod (x, M, ini_phase); %生成调制信号
x_recovered = pskdemod(Y,M, ini_phase);%还原数字信息

在这个示例中,我们生成了一个长度为 8 的数字信息 x。调制级数 M 为 4,表示我们使用 4 个不同的相位来进行调制。初始相位为 0。Pskmod 函数将 x 调制为一个长度为 8 的相位调制信号 y。
在接收端,我们可以使用 pskdemod 函数来还原数字信息。

代码

%% 生成随机二进制信号
x = randi([0,1],1,1000);
%% BPSK调制
y = pskmod(x,2);
%% 加入高斯白噪声
z = awgn(y,-10,'measured');
%% BPSK解调
r = pskdemod(z,2);
%% 计算误码率
[number,ratio] = biterr(x,r);
%% 显示结果
disp(['误码个数:',num2str(number),',误码率:',num2str(ratio)]);

结果

通信系统的简单模拟

生成二进制信号,调制,通过信道加入高斯白噪声,解调,结算误码率

实现

AWGN:在某一信号中加入高斯白噪声

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

误比特率 biterr

[num,err] = biterr(a,b,k)
num 为误比特数,err 为误比特率,k 为 a,b 中的符号转化为比特时的位数,缺省时取最大值。
若指定 k 取2,表示每个符号用2位比特表示,即 a=[00 01 01 01], b=[00 00 00 01],err=2/8=0.25

调制与解调

Y = Pskmod (x, M,ini_phase)
其中 x 是需要要调制的数字信息: M 是调制的级数 (即想位数),ini_phase 是初始相位。函数返回一个调制后的信号 y。
Pskmod 函数的实现原理是将数字信息 x 转换为相应的相位,然后将这些相位映射到复平面上。这样,我们就可以将数字信息通过相位调制的方式传输。
下面是一个示例:

X = [0 1 2 3 0 1 2 3];%数字信息 
M =4;%调制级数
Ini_phase = 0;%初始相位
Y = pskmod (x, M, ini_phase); %生成调制信号
x_recovered = pskdemod(Y,M, ini_phase);%还原数字信息

在这个示例中,我们生成了一个长度为 8 的数字信息 x。调制级数 M 为 4,表示我们使用 4 个不同的相位来进行调制。初始相位为 0。Pskmod 函数将 x 调制为一个长度为 8 的相位调制信号 y。
在接收端,我们可以使用 pskdemod 函数来还原数字信息。

代码

%% 生成随机二进制信号
x = randi([0,1],1,1000);
%% BPSK调制
y = pskmod(x,2);
%% 加入高斯白噪声
z = awgn(y,-10,'measured');
%% BPSK解调
r = pskdemod(z,2);
%% 计算误码率
[number,ratio] = biterr(x,r);
%% 显示结果
disp(['误码个数:',num2str(number),',误码率:',num2str(ratio)]);

结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

219jclabc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值