二进制相移键控 (BPSK) 的直接序列扩频 (DSSS)

问题描述 投票:0回答:1

我需要帮助将直接序列扩频编码到我的二进制相移键控代码中。 DSSS 是我目标的主要部分。提供的代码由二进制信息、载波、BPSK、AWGN、脉冲噪声组成。

clc;
clear all;
close all;

N = 7;
I = randi([1], 1, N);
I = [1 0 1 0 1];

for V = 1:length(I) %Binary Phase
    if I(V) == 1
        nn(V) = 1;
    else
        nn(V) = -1;
    end
end

i = 1;
t = 0:0.0001:length(I);
for j = 1:length(t)
    if t(j) <= i
        y(j) = nn(i);
    else
        i = i + 1;
    end
end

Fc = sin(2 * pi * 2 * t);
x = y .* Fc;

% AWGN Noise
SNRdB = 10; % Adjust SNR as needed
snr_lin = 10^(SNRdB / 10);
noise_variance = 1 / snr_lin;
noise = randn(size(t)) * sqrt(noise_variance);
AWGN = x + noise;

% Impulse Noise Parameters
impulse_amplitude = 10; % Adjust the amplitude as needed
impulse_prob = 0.01; % Probability of an impulse at each time index
impulse_noise = zeros(size(t));
impulse_indices = rand(size(t)) < impulse_prob;
impulse_noise(impulse_indices) = impulse_amplitude;
IMPULSE = x + impulse_noise;


subplot(5, 1, 1);
plot(t, y);
axis([0, length(I), -2, 2]);
xlabel('Time');
ylabel('Voltage')
title('Transmitted Binary Information');


subplot(5, 1, 2);
plot(t, Fc);
axis([0, length(I), -2, 2]);
xlabel('Time');
ylabel('Voltage');
title('Carrier Signal');


subplot(5, 1, 3);
plot(t, x);
axis([0, length(I), -2, 2]);
xlabel('Time');
ylabel('Voltage');
title('BPSK');

subplot(5, 1, 4);
plot(t, AWGN);
axis([0, length(I), -2, 2]);
xlabel('Time');
ylabel('Voltage');
title('BPSK with AWGN Noise');

subplot(5, 1, 5);
plot(t, IMPULSE);
axis([0, length(I), -2, 2]);
xlabel('Time');
ylabel('Voltage');
title('BPSK with Impulse Noise');

BPSK 绘图图像

我确实尝试将 DSSS 与 AWGN 和脉冲噪声一起编码到 BPSK 代码中,但结果出现错误,并且在其绘图或图表中没有可见的输出。

matlab binary signals signal-processing modulation
1个回答
0
投票

检查此链接,它生成伪随机位序列并以直接序列扩频形式给出输出:

https://es.mathworks.com/matlabcentral/fileexchange/28420-direct-sequence-spread-spectrum-ds-ss

© www.soinside.com 2019 - 2024. All rights reserved.