这是我做的关于伪码捕获的仿真其中用了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调制后加频偏的问题相关推荐

  1. 【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 | 系统路径加载插件 | 用户同意后加载插件 | 隐藏恶意插件 )

    文章目录 一.自定义路径加载插件 二.系统路径加载插件 三.用户同意后加载插件 四.隐藏恶意插件 一.自定义路径加载插件 插件化应用中 , 宿主应用 加载 插件 APK , 需要获取该插件 APK 文 ...

  2. 基于MATLAB的BPSK和QPSK调制的性能比较

    摘要:本文基于研究了MATLAB设计了一个数字通信系统,该系统研究比较了同一数据在不同信噪比下通过高斯信道时BPSK和QPSK的误码率,以及通过同一个瑞利信道时,不同信噪比下两种调制方式的误码率,同时 ...

  3. matlab ellip传递函数,BPSK和QPSK调制解调原理及MATLAB程序

    <BPSK和QPSK调制解调原理及MATLAB程序>由会员分享,可在线阅读,更多相关<BPSK和QPSK调制解调原理及MATLAB程序(10页珍藏版)>请在人人文库网上搜索. ...

  4. 基于matlab的qpsk与bpsk信号性能比较仿真,基于matlab的QPSK与BPSK信号性能比较仿真.doc...

    基于matlab的QPSK与BPSK信号性能比较仿真.doc 2装订线目 录第一章概述2第二章QPSK通信系统原理与仿真22.1 QPSK系统框图介绍22.2QPSK信号的调制原理32.2.1QPSK ...

  5. 有关BPSK、QPSK调制信号的通信链路仿真,以及误码分析

    之前简单叙述了一个随机序列如何使用MATLAB中内置函数进行数字调制,但是距离通信链路级仿真还仅仅是准备阶段,要想感受完整的通信仿真过程还有许多精细的模块需要学习.回顾通信的整个过程,大致分为三个部分 ...

  6. 通信算法之十一:QPSK/DQPSK/OQPSK/BPSK/DBPSK/16QAM调制解调仿真链路

    一. QPSK 正交相移键控 (Quadrature Phase Shift Keying)简称"QPSK",是一种数字调制方式.它分为绝对相移和相对相移两种.由于绝对相移方式存在 ...

  7. matlab基带信号速率,如何用MATLAB产生25Gbaud的基带QPSK调制信号

    如何用MATLAB产生25Gbaud的基带QPSK调制信号 包括生成随机符号序列,进行QPSK调制,过采样,脉冲成型滤波和降采样.有错误敬请指正. 参数设置:symbol rate=25Gbaud D ...

  8. 基于MATLAB的模拟信号AM、FM等调制与解调

    文章目录 一.模拟调制 1 幅度调制 1.1标准调幅 1.2抑制载波双边带调幅 1.3单边带调幅 1.4残留边带调幅 1.5幅度调制的解调 2 角度调制 2.1调频 2.2调相 2.3解调 一.模拟调 ...

  9. 加载服务器版本信息,传奇服务器端启动加载错误的解决方法

    1.启动服务端M2报错的类型 2.错误分类,思路理清 3.文字总结以下常见现象 传奇服务器端启动加载错误解决方法 Exception] 物品数据库加载错误! [Exception] 魔法数据库加载错误 ...

最新文章

  1. 深度树匹配模型(TDM)
  2. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
  3. JSON 序列化和反序列化——JavaScriptSerializer实现
  4. 【PTA 天梯赛】L2-1 分而治之(结构体存边)
  5. Oracle Database的安装与卸载
  6. Android开发 ----------怎样真机调试?
  7. 浙江大学PAT上机题解析之1010. 一元多项式求导 (25)
  8. [概统]本科二年级 概率论与数理统计 第五讲 二元随机变量
  9. ubuntu下面navicat连接本地数据库出现2003 - Can't connect to MySQL server on 'localhost'(10061 Unknown errort;)
  10. javascript --- polyfill中几个常用方法
  11. xpath 简单小记
  12. Delphi 发送邮件 通过Office Outlook
  13. java中的冒泡排序和交换排序
  14. Android毕业实践报告,毕业实习报告范文
  15. hp 磁带机安装配置
  16. html格式kindle能看吗,Kindle Voyage支持哪些文本格式
  17. 消防Linux软件图形显示系统,消防控制室图形显示装置
  18. Cisco Vlan trunk
  19. 2019拼多多前端笔试题
  20. graylog2 实践

热门文章

  1. [转]爆肝一周,完成了一款第一人称3D射击游戏,现在把源代码分享给大家,适合新手跟着学习
  2. jsp+ssm计算机毕业设计大学生心理咨询网站【附源码】
  3. STGW 下一代互联网标准传输协议QUIC大规模运营之路
  4. STM32之VCP1/VCAP2引脚的处理
  5. 计算机网络体系结构-外部路由
  6. 数据库SQL2017打开 服务报错 请求失败或服务未及时响应
  7. 总结移动端页面开发时需要注意的一些问题
  8. [单片机芯片]基于CH32V307腾讯连连小程序的二氧化碳TVOC环境监测仪
  9. 基于卷积神经网络的CSI步态信息研究(附源码地址)
  10. IOS应用程序自身的本地化