• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签:

资源简介

由于一直在做跳频通信信号处理方面的,但网上找到的BPSK调制代码并不能直接用于跳频信号处理中,故自己写了一个跳频信号的BPSK调制代码。

资源截图

代码片段和文件信息

%% 跳频信号的产生(调制方式为BPSK)
%%%%信号参数%%%%
%fs:采样率
%Rs:跳速
%time_delay:时间延迟
%f1-f2:载波频段
%data:跳频序列(未码元扩展的)
%Rd:码速率
%dataout:跳频序列引入
%period:跳频码周期,小于L
%M:模式选择
function v=signal_bpsk(fsRstime_delayf1f2RdNFdataoutperiodMInput_Duty_ratio)
[Um L]=size(dataout);                        %其中Um是用户数,L为跳频码的个数
for n = 1:Um
s=randsrc(round(period*Rd/Rs)1[0:M-1]);    %随机产生长度为period*Rd/Rs的0 1
s_mod=pskmod(sM);
%% 计算出每个码元在一个矩形脉冲内的点数
m = 0;
y = [];
N = zeros(1length(s_mod));
for k = 1 : length(s_mod)
    N(k) = ceil(k*fs/Rd)-m;
    m = m+N(k);
    y_k = rectpulse(s_mod(k)N(k));
    y_k = y_k‘;
    y = [y y_k];
end
%% 低通滤波
% a = 0.35;
L_zeros = round((1-Rd/fs)*length(y)/2);
L_ones = length(y)-L_zeros*2;
Window = [zeros(1 L_zeros) ones(1 L_ones) zeros(1 L_zeros)];
s_base = ifft(fftshift(fftshift(fft(y)).*Window));
signal_base(n:)=s_base;         %基带信号
% figure(1)
% plot(real(signal_base));
% 此处这个signal_base就是原来程序里的signal_base
end
%% BPSK调制
Nh=round(fs/Rs);                      %跳频码的一个周期采样点数
deta=(f2-f1)/(NF-1);
for k=1:Um
%     x(k:) = signal_base(k:);
    s=sign(rand(1round(Rd/Rs*period))-0.5);
    x(k:)=rectpulse(sround(fs/Rd));
    data(k:)=rectpulse(dataout(k:)Nh);
    if k~=1
%         data(k:)=[zeros(1time_delay*(k-1)) data(k1:end-time_delay*(k-1))];%延迟
        x(k:)=[zeros(1time_delay*(k-1)) x(k1:end-time_delay*(k-1))];
    end
end
if length(data) <= length(x)
   x=x(:1:length(data));
else
   data=data(:1:length(x)); 
end
F=data*deta+f1;                       %跳频频率表
for k=1:Um
    if k~=1
        F(k:)=[zeros(1time_delay*(k-1)) F(k1:end-time_delay*(k-1))];%延迟
    end
end
L=length(F);
t=(1/fs)*(0:L-1);
for k=1:Um
    v(k:)=x(k:).*exp(1i*2*pi*(F(k:)+rand).*t).*exp(1i*2*pi*rand);%跳频信号生成
end
nh=round(Nh*(1-Input_Duty_ratio));
for k=1:Um
    for i=1:period
            v(kNh*i-nh+time_delay*(k-1):Nh*i+time_delay*(k-1))=0;%跳频间隔
    end
end
v = v(:1:round(period*fs/Rs));
% for k=1:Um
%     if k==1
%        v(kNh-4*nh:Nh)=0;
%     else
%        v(kNh-nh*4+time_delay*(k-1):Nh+time_delay*(k-1))=0;
%     end
% end 
clearvars -except v
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2323  2018-05-21 17:13  跳频信号-BPSK调制\signal_bpsk.m

     目录          0  2018-05-21 17:13  跳频信号-BPSK调制

----------- ---------  ---------- -----  ----

                 2323                    2


评论

共有 条评论

相关资源