资源简介
直序扩频信号捕获算法的matlab代码 算法:基于FFT的频率并行捕获算法
代码片段和文件信息
%% 本代码对直扩信号的捕获(基于FFT的码并行算法)进行仿真
clear all;
clc;
%% 信号时间,采样时间设置
time=1e-4; %取0.1ms时间内的信号
fs=102.3e6;
Ts=1/fs;%每隔Ts时间采样一个点,总采样点数为:t/Ts
%% 产生信息码元
Ra=10e3;%信息码元速率10KHz
Ta=1/Ra;%每bit信息码元占用的时间
% code_length=20;%信息码元个数
code_length=time*Ra;%信息码元个数
N=1:code_length;
rand(‘seed‘0);
x=sign(rand(1code_length)-0.5);%信息码,正负1
for i=1:code_length
s(1+(i-1)*fs/Ra:i*fs/Ra)=x(i);%每个信息码元内含有fs/Ra个采样点
end
figure(1)
plot(s)
axis([0 length(s) -1.5 1.5])
title(‘信息码元‘)
%% 产生伪随机码 调用mgen函数
Rc=10.23e6;%伪码频率10.23MHz
PN_order = 10;%PN码的本原多项式阶数 PN码周期=2^n-1
PN_shift = 500;% 发送端和接收端PN码偏移为PN_shift个chip
PN_length=code_length*Rc/Ra;%伪码频率10.23MHz,每个信息码内含有Rc/Ra=1023个伪码
x_code=sign(mgen(PN_order6PN_length+PN_shift)-0.5);%把01码变换成-11调制码
Rx_Local_xcode=x_code(1+PN_shift:PN_length+PN_shift); %接收端c(t)
Tx_xcode=x_code(1:PN_length);%发送端经过时延到达的是c(t-τ)接收端相对发送端超前,所以代码上让接收端本地PN码比发送端向前偏移
% y = (Rx_xcode(1:PN_length-PN_shift)==Tx_xcode(1+PN_shift:PN_length))
for i=1:PN_length %产生接收端 不加码偏移的PN码,取1:PN_length的x_code采样
PN_RxLocalcode(1+(i-1)*fs/Rc:i*fs/Rc)=Rx_Local_xcode(i);%每个伪码码元内含有fs/Rc个采样点,采样频率fs=102.3MHz
end
for i=1:PN_length%产生发送端 加上码偏移的PN码
PN_Txcode(1+(i-1)*fs/Rc:i*fs/Rc)=Tx_xcode(i);%每个伪码码元内含有10个采样点,采样频率fs=102.3MHz
end
figure(2)
subplot(121)
plot(PN_Txcode)
axis([0 length(PN_Txcode) -1.5 1.5])
title(‘发送端PN码‘)
subplot(122)
plot(PN_RxLocalcode)
axis([0 length(PN_RxLocalcode) -1.5 1.5])
title(‘接收端本地PN码‘)
%% 扩频
k_code=s.*PN_Txcode;
figure(3)
plot(k_code)
axis([0 length(k_code) -1.5 1.5])
title(‘扩频信号‘)
%% 调制
f0=40e6; fd=10e3;
AI=2;
dt=fs/f0;
t=0:Ts:time-Ts;%一个载波周期内采样点
cI=AI*cos(2*pi*(f0+fd)*t); %BPSK调制
signal=k_code.*cI;
figure(4)
% plot(cI(1:400))
plot(signal)
axis([0 length(signal) -2.5 2.5])
title(‘BPSK调制后的波形‘)
%%信道(awgn)
SNR = -20;%dB
signal_Receive = awgn(signalSNR);
fd = 10e3;%多普勒频偏定为10KHz
R_2D = [];%存放 频带*码带的二维自相关结果
fd_axis=[]; %生成二维坐标对应值
for fd_guess = -10e4:fd/10:10e4 %以fd/10=1KHz为频率搜索步进,共搜索40次
%% 解调
A_local=1;
c_local=A_local*cos(2*pi*(f0+fd_guess)*t); %解调载波
signal_jietiao=signal_Receive.*c_local; %BPSK解调
figure(5)
plot(signal_jietiao(1:300))
axis([0 300 -2.5 2.5])
title(‘解调后的波形‘)
% % %% FFT捕获算法之前:先降采样,变回未采样的原始PN码对应的数据
% % signal_DownSample = [];
% % PN_RxLocal_DownSample=[];
% % DownSample_Rate = length(signal_jietiao)/PN_length;
% % for i=1:length(signal_jietiao)/DownSample_Rate
% % signal_DownSamplei=signal_jietiao(1+(i-1)*DownSample_Rate); %解调信号降采样(有问题,解调运算之后降采样信号的频谱不对)
% % signal_DownSample = [signal_DownSample signal_DownSamplei];
% % end
% % for i=1:length(PN_RxLocalcode)/DownSample_Rate
% % PN_RxLocal_DownSamplei=PN_RxLocalcode(1+(i-1)*DownSample_Rate);%本地PN码降采样(没问题,还和原始的1023chip本地Rx_PN码一样)
% % PN_RxLocal_DownSample = [PN_RxLocal_DownSample PN_RxLocal_DownSamplei];
% % end
% % %% 直扩信号捕获 fft码并行算法(使用---降采样--后的信号)
% % signal_DownSample_FFT = fft(signal_D
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5461 2017-10-22 15:38 直扩FFT频率并行捕获代码\DS_FFTcodeParallel.m
文件 532 2017-10-27 11:20 直扩FFT频率并行捕获代码\mgen.m
目录 0 2017-12-09 17:27 直扩FFT频率并行捕获代码
----------- --------- ---------- ----- ----
5993 3
- 上一篇:雷达线性调频信号的模糊函数Matlab代码
- 下一篇:Matlab批量处理图片
相关资源
- GPS信号的码捕获matlab代码.7z
- GPS信号捕获跟踪的MATLAB仿真,里面有
-
基于MATLAB_Simuli
nk的扩频通信系统仿 - 直接序列扩频通信系统基于MATLAB的仿
- 直接扩频系统中窄带干扰抑制0
- DSSS(直接序列扩频)
- GPS 捕获 matlab仿真实现
-
直接序列扩频的SIMUli
nk仿真,含捕获 - GPS捕获跟踪定时同步的matlab代码
- GPS捕获、跟踪、解码星历表、定位解
- GPS L5软件MATLAB仿真接收机,根据经典
- 直接序列扩频伪码捕获的matlab仿真
- 4份GPS接收机捕获与跟踪、解调的MAT
- GPS L5 软件接收机仅捕获和跟踪
- 关于GPS信号如何产生、如何捕获、如
- 用MATLAB(BPSK仿真+直接扩频
- 信号的捕获(直接序列扩频系统的m
- GPS信号产生及捕获
- 论文研究-GPS系统C/A码的产生与捕获算
- GPS信号产生、捕获、追踪全套程序
- gps捕获程序
- BOC信号的捕获 (research on BOC signal c
- GPS-Acquisition-Algorithm GPS信号的捕获算法
- matlabGNSS接收机主程序
- matlab 实现北斗B1C信号的从捕获、跟踪
- gps GPS信号的捕获、处理程序
- ca 完整的GPS信号捕获过程仿真-matlab
- matlab-acq GPS C/A码捕获 用的是fft频域的
- SNR(complete) 基于matlab的GUI的GPS捕获
- NS210 GPS信号捕获程序
评论
共有 条评论