本文主要是介绍构建直接序列扩频系统模型(Matlab代码实现),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
🍒🍒🍒欢迎关注🌈🌈🌈
📝个人主页:我爱Matlab
👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻🍌希望大家多多支持🍓~一起加油 🤗
💬语录:将来的我一定会感谢现在奋斗的自己!
🍁🥬🕒摘要🕒🥬🍁
本文构建直接序列扩频系统模型,使用Matlab对BPSK直接序列扩频通信系统在AWGN信道下性能进行基带建模和仿真,并进行分析。
✨🔎⚡运行结果⚡🔎✨
- 编程产生周期长度为31的m序列;
- 产生随机发送信息,并分别进行BPSK调制;
- 采用m序列作为扩频码,产生扩频信号发送信号;
- 对扩频发送信号加入白噪声,得到接收扩频信号;
- 对接收信号进行解扩;
- 对接收信号进行BPSK解调;
- 通过蒙特卡洛方法,仿真系统误码率,画出误码率曲线。
- 产生周期长度为31的m序列,记为w; (实验6的内容,m序列周期T=2n-1)(需转换成1、-1)
- 产生发送信息0、1比特; (三种方法:循环判断、rand+round、randint/randi)(数据长度L自定,尽量大一些,比如1000)
- 对信息比特进行BPSK调制,记为d; (即码型变换:1→1, 0→-1)(注:出于简化,本实验省略载波调制部分)
- 对发送信息进行扩频,即d*w; (实现提示1:采用循环的方式,对每位数据进行扩频,运行速度较慢) (实现提示2:可将d的每位数据重复31次,w扩大L次(L为发送数据长度),再点乘。可用函数:repmat函数、reshape函数)
- 信号经过信道,叠加白噪声,得到接收端接收信号 ; (噪声功率由信噪比决定,仿真结果横坐标为信噪比,可取-30:5,单位dB) (可使用awgn函数,也可自行实现)
- 对接收端信号进行恢复,包括解扩、解调、判决。方法如下:a. 首先与扩频码相乘进行解扩, ;b. 对每位数据扩大的31次进行求和,以第一个数据b1为例,sum(b1);c. 判决,sum(b1)>0,判为1,否则为-1。
- 误码率统计,并画图。 (画图函数:semilogy)
💂♨️👨🎓Matlab代码👨🎓♨️💂
clc;clear all;
r=5;
N=2^r-1;%周期31
a=ones(1,r);
m=zeros(1,N);
for i=1:(2^r-1)
temp= mod((a(5)+a(2)),2);
for j=r:-1:2
a(j)=a(j-1);
end
a(1)=temp;
m(i)=a(r);
end
m=m*2-1;%双极性码
%产生随机发送信息,并进行BPSK/QPSK调制
n=1000;
Y_BIT_sum=zeros(1,36);
for jj=1:100%跑100次,得到平滑曲线
source=randi([0 1],1,n);
% s_imag=randi(1,n);
s_BPSK=2*source-1;
% s=source+j*s_imag;
% j=sqrt(-1);
% s_QPSK=s*2-(1+j);
%产生扩频信号:
% for z=1:1:100
% y_QPSK(31*(z-1)+(1:31))=m*s_QPSK(z);
% end
for z=1:1000
y_BPSK(31*(z-1)+(1:31))=m*s_BPSK(z);
end
%加入高斯白噪声
SNR=-30:5;
for i=1:length(SNR)
y(i,:)=awgn(y_BPSK,SNR(i));
end
%解扩
for z=1:1000
for i=1:length(SNR)
o_BPSK(i,z)=y(i,31*(z-1)+(1:31))/m;
end
end
Y_RE=o_BPSK;
%判决
Y_RE(o_BPSK>0)=1;
Y_RE(o_BPSK<0)=0;
Y_ERRO=zeros(length(SNR),1000);
Y_BIT=zeros(1,length(SNR));
for i=1:length(SNR)
Y_ERRO(i,:)=abs(Y_RE(i,:)-source);
Y_BIT(i)=sum(Y_ERRO(i,:))/n;
end
Y_BIT_sum=Y_BIT_sum+Y_BIT;
end
Y_BIT_av=Y_BIT_sum/100;
semilogy(SNR,Y_BIT_av);
xlabel('SNR');ylabel('误码率');
grid on;
title('wml');
📜📢🌈参考文献🌈📢📜
[1]曹旺斌,康辉,谢志远,梁晓林,胡正伟.MIMO-PLC直接序列扩频系统编码方法研究[J].中国电机工程学报,2021,41(S1):121-129.DOI:10.13334/j.0258-8013.pcsee.211063.
这篇关于构建直接序列扩频系统模型(Matlab代码实现)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!