Я новичок в системах связи, но мне нужно решить этот вопрос. Я был бы признателен за вклад в этом отношении. Прошу прощения, если вы мой вопрос длинный.
У меня есть сигнал BPSK, такой, что вход для фильтра нижних частот (LPF) имеет вид
s(k) = A + nk (read n subscript k where k = 0,1...)
, где A - постоянная, а nk, k = 0,1 .... - независимые средние случайные величины с нулевым средним с дисперсией σ2.
Предположим, что LPF является интегратором вида
y= 1/N { ∑(k=0 to N-1)[s(k)] } ( read ∑ from k = 0 as lower bound to N-1 as upper bound)
После применения этого фильтра низких частот выходной сигнал y представляет собой тестовую статистику с тонизацией битовой энергии
соотношение Eb / N0. Мы знаем, что для БПСК вероятность того, что мы сделаем
неправильное решение с использованием этой тестовой статистики Pb = theoretical BER = 0.5 erfc{sqrt(Eb/N0)}
Если фильтр с бесконечной импульсной характеристикой (IIR) соответствует
y ̃ (n)= (1 - α)s(n)+ αy ̃ (n - 1),n = 0,1....N-1 where y ̃ (-1) = 0
Как я могу использовать Matlab для имитации сигнала s (k) и операции фильтра, получая y и y ̃ (n) соответственно для N = 8 и построить график имитированной частоты ошибок по битам в сравнении с Eb / N0 и теоретического значения BER в сравнении с Eb / N0 для сравнения. Диапазон Eb / N0 должен составлять от 0 до 10 дБ.
Примечание: для БИХ-фильтра я уже определил α = (N-1) / (N + 1)
Мой код не дает желаемых результатов, так как я не знаю, как имитировать WGN с дисперсией = σ2. Тот, который я кодировал, для нулевой дисперсии. Кроме того, я не знаю, как пропустить мой сигнал через фильтры, упомянутые выше.
Может кто-нибудь, пожалуйста, помогите мне исправить этот кусок кода. Если бы вы могли помочь с фрагментом кода, это был бы значительный шаг вперед для меня. Заранее спасибо!
Вот мой подход.
clc;
clear all;
close all;
N=8; % Number of Bits to be processed
Eb_N0_dB = 0 : 1: 10;
for i = 1:length(Eb_N0_dB)
x = rand(1,N)>0.5; %generating 0,1s
xpolar = 2*x -1; %BPSK modulation
noise = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; %noise
y = xpolar + 10^(-Eb_N0_dB(i)/20)*noise;
xdecode = real(y)>0; %receiver hard decison decoding
nErr(i) = size(find([x - xdecode]),2);
end
simulatedBER = nErr/N; %simulated BER
theoryBER = 0.5erfc(sqrt(10.^(Eb_N0_dB/10))); % theoretical BER
%plot
figre
semilogy(Eb_N0_dB,simulatedBER,'bs-');
hold on
semilogy(Eb_N0_dB,theoryBER,'mx-');
axis([0 10 10^-5 0.5])
grid on