matlab 加频偏,关于BPSK用dmod调制后加频偏的问题
这是我做的关于伪码捕获的仿真其中用了dmod 函数进行调制和解调 现在要在信道中加频偏 请问怎么加 不要信道衰减 不要延时 只要频偏
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 直接序列扩频信号的产生与串行捕获模拟
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
fPN =1023; % 伪码速率
fCarrier=fPN*4;
fSample =fCarrier*5 ; % 载波的采样点频率
Ts=1/fSample; % 采样后符号持续时间
TxTemp1= fSample/ fPN; % 滤波器阶数
Delay=8; % 滤波器延迟
rolloff=0.25;
M=2;
chip = 1023; % 伪码长度,GOLD码10230位
dataLength = 10; % 待发送数据位数
SNR=0; % 信噪比为3.5dB
FD=10000; % 设置多普勒频移
N=1000; % 蒙特卡罗仿真次数
num_of_det=0; % 检测次数
% 初始化随机数,每次不同
sourceData = randint(1, dataLength); % 0,1的数据源
sendDataLength = dataLength * chip; % 准备调制发送时的数据长度,目前一样,没有在数据前面加噪音
figure(1);
stem(sourceData);
title('数据源');
% 生成GOLD码
pnSequence =GoldGenerator();% GOLD码31位
pn_len=length(pnSequence);
figure(2);
stem(pnSequence(1:50));
title('10230位gold码');
% 扩频
spreadData = zeros(1, dataLength*chip);
temp = ones(1, chip);
for i = 1:dataLength
temp = ones(1, chip)*sourceData(i);
% 相加模2,异或
spreadData(((i-1)*chip+1):i*chip) = xor(temp, pnSequence);
end
figure(3);
stem(spreadData(1:50));
title('扩频后的数据');
[sendedMData,t] = dmod(spreadData, fCarrier, fPN, fSample, 'psk', 2);
sendedMDataLength = length(sendedMData);
figure(4);
plot(t(1:50),sendedMData(1:50));
title('经BPSK调制后的数据');
% 解调成数字信号
recv_da= ddemod(sendedMData, fCarrier, fPN, fSample, 'psk', 4);
recvDDataLen = length(recv_da); % 捕获到的数据长度
figure(6);
stem(recv_da(1:50));
title('解调后的信号');
recvDData=2*recv_da-1;
RxGoldSequence=pnSequence;
RxGoldSequence1=2*pnSequence-1;
despreadData = zeros(1, dataLength);
RxDelayDelta = 1;
RxGoldSearchTimes = ceil(pn_len / RxDelayDelta);
RxSignalAmp=zeros(1,RxGoldSearchTimes);
amp=zeros(1,dataLength);
for i=1:RxGoldSearchTimes
amp=zeros(1,dataLength);
RxGoldSequence2=circshift(RxGoldSequence1',(i-1)*RxDelayDelta)';
for j=1:dataLength
recvDData1=recvDData((j-1)*chip+1:j*chip);
amp(j)=abs(sum(recvDData1.*RxGoldSequence2));
end
RxSignalAmp(i)=sum(amp);
end
RxSignalResAverage = mean(RxSignalAmp);
RxSignalResDeviation = std(RxSignalAmp);
RxSignalResMax=max(RxSignalAmp);
RxCatchThreshold = RxSignalResAverage + 3* RxSignalResDeviation;
figure(6);
stem(RxSignalAmp);
title('相关峰值');
%判断是否捕获
%设置门限
for i=1:RxGoldSearchTimes
if(RxSignalAmp(i)>=RxCatchThreshold)
%捕获成功
display('Success!!!');
c=i;
num_of_det=num_of_det+1;
break
else
display('fail');
end
end
Pn_sequence=circshift(RxGoldSequence',c*RxDelayDelta-1)';
for i=1:dataLength
De_spr(pn_len*(i-1)+1:pn_len*i)=xor(recv_da(pn_len*(i-1)+1:pn_len*i),Pn_sequence);
end
Rec_Data=downsample(De_spr,1023);
figure(7);
stem(Rec_Data);
title('恢复后的数据');
matlab 加频偏,关于BPSK用dmod调制后加频偏的问题相关推荐
- 【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 | 系统路径加载插件 | 用户同意后加载插件 | 隐藏恶意插件 )
文章目录 一.自定义路径加载插件 二.系统路径加载插件 三.用户同意后加载插件 四.隐藏恶意插件 一.自定义路径加载插件 插件化应用中 , 宿主应用 加载 插件 APK , 需要获取该插件 APK 文 ...
- 基于MATLAB的BPSK和QPSK调制的性能比较
摘要:本文基于研究了MATLAB设计了一个数字通信系统,该系统研究比较了同一数据在不同信噪比下通过高斯信道时BPSK和QPSK的误码率,以及通过同一个瑞利信道时,不同信噪比下两种调制方式的误码率,同时 ...
- matlab ellip传递函数,BPSK和QPSK调制解调原理及MATLAB程序
<BPSK和QPSK调制解调原理及MATLAB程序>由会员分享,可在线阅读,更多相关<BPSK和QPSK调制解调原理及MATLAB程序(10页珍藏版)>请在人人文库网上搜索. ...
- 基于matlab的qpsk与bpsk信号性能比较仿真,基于matlab的QPSK与BPSK信号性能比较仿真.doc...
基于matlab的QPSK与BPSK信号性能比较仿真.doc 2装订线目 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍22.2QPSK信号的调制原理32.2.1QPSK ...
- 有关BPSK、QPSK调制信号的通信链路仿真,以及误码分析
之前简单叙述了一个随机序列如何使用MATLAB中内置函数进行数字调制,但是距离通信链路级仿真还仅仅是准备阶段,要想感受完整的通信仿真过程还有许多精细的模块需要学习.回顾通信的整个过程,大致分为三个部分 ...
- 通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路
一. QPSK 正交相移键控 (Quadrature Phase Shift Keying)简称"QPSK",是一种数字调制方式.它分为绝对相移和相对相移两种.由于绝对相移方式存在 ...
- matlab基带信号速率,如何用MATLAB产生25Gbaud的基带QPSK调制信号
如何用MATLAB产生25Gbaud的基带QPSK调制信号 包括生成随机符号序列,进行QPSK调制,过采样,脉冲成型滤波和降采样.有错误敬请指正. 参数设置:symbol rate=25Gbaud D ...
- 基于MATLAB的模拟信号AM、FM等调制与解调
文章目录 一.模拟调制 1 幅度调制 1.1标准调幅 1.2抑制载波双边带调幅 1.3单边带调幅 1.4残留边带调幅 1.5幅度调制的解调 2 角度调制 2.1调频 2.2调相 2.3解调 一.模拟调 ...
- 加载服务器版本信息,传奇服务器端启动加载错误的解决方法
1.启动服务端M2报错的类型 2.错误分类,思路理清 3.文字总结以下常见现象 传奇服务器端启动加载错误解决方法 Exception] 物品数据库加载错误! [Exception] 魔法数据库加载错误 ...
最新文章
- 深度树匹配模型(TDM)
- c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
- JSON 序列化和反序列化——JavaScriptSerializer实现
- 【PTA 天梯赛】L2-1 分而治之(结构体存边)
- Oracle Database的安装与卸载
- Android开发 ----------怎样真机调试?
- 浙江大学PAT上机题解析之1010. 一元多项式求导 (25)
- [概统]本科二年级 概率论与数理统计 第五讲 二元随机变量
- ubuntu下面navicat连接本地数据库出现2003 - Can't connect to MySQL server on 'localhost'(10061 Unknown errort;)
- javascript --- polyfill中几个常用方法
- xpath 简单小记
- Delphi 发送邮件 通过Office Outlook
- java中的冒泡排序和交换排序
- Android毕业实践报告,毕业实习报告范文
- hp 磁带机安装配置
- html格式kindle能看吗,Kindle Voyage支持哪些文本格式
- 消防Linux软件图形显示系统,消防控制室图形显示装置
- Cisco Vlan trunk
- 2019拼多多前端笔试题
- graylog2 实践
热门文章
- [转]爆肝一周,完成了一款第一人称3D射击游戏,现在把源代码分享给大家,适合新手跟着学习
- jsp+ssm计算机毕业设计大学生心理咨询网站【附源码】
- STGW 下一代互联网标准传输协议QUIC大规模运营之路
- STM32之VCP1/VCAP2引脚的处理
- 计算机网络体系结构-外部路由
- 数据库SQL2017打开 服务报错 请求失败或服务未及时响应
- 总结移动端页面开发时需要注意的一些问题
- [单片机芯片]基于CH32V307腾讯连连小程序的二氧化碳TVOC环境监测仪
- 基于卷积神经网络的CSI步态信息研究(附源码地址)
- IOS应用程序自身的本地化