• Регистрация
Нгуен Ван Зунг
Нгуен Ван Зунг +19.83
н/д

Проверка программы одночастотного адаптивного режекторного фильтра на Матлабе

Я моделировал канал связи с сигналом BPSK + АГБШ + гамоническая помеха. Для режекции грамонической помехи, Я применял одночастотный адаптивный режекторный фильтр. Одна проблема была на выходе фильтра не получал сигнал BPSK без помехи.

Скажите, пожалуйста! Правильно ли Я реализовать алгоритм фильтра на Матлабе?

Спасибо большое!

clc; clear all; close all;
A0 = 1; 
N = 100; 
fc = 10; 
fz = 1; 
fd = 20*fc; 
td = 1/fd; 
M = fd/fz; 
b = randi([0 1], 1, N);
Z = repmat(b,M,1); 
SNR = 0;
miu = 0.5;
Z = Z(:)'; 
Z = 2*Z - 1;
 
% сигнал BPSK
t = 0 : td : N/fz-td; 
S1 = Z.*A0 .* sin(2*pi*fc*t);
S1(abs(S1) < 10^-10) = 0;
S4 = A0*sin(2*pi*fc*t);
S4(abs(S4) < 10^-10) = 0;
S41 = reshape(S4,fd,N)';
 
% формирование белого гауссовского шума
sigma = (A0/2) .* sqrt((fz * fd)/(10 .^ (SNR/10))); 
noise = sigma .* randn(1,length(t));
noise = 0;
 
% формирование гармонической помехи
S2 = miu .* A0 .* sin(2*pi*fc*t + (2*pi/360) * (ceil((1:numel(S1))/M) - 1));
S2(abs(S2) < 10^-10) = 0;
 
% выходный сигнал
d = S1 + S2  + noise;
 
% одночастотный адаптивный фильтр
N = length(t);
w1 = 0.1;
w2 = 0.1;
e = zeros(1,N);
y = zeros(1,N);
u = 0.1/2000;
x1 = cos(2*pi*fc*t);
x2 = sin(2*pi*fc*t);
for i = 1:N
    y(i) = w1*x1(i) + w2*x2(i);
    e(i) = d(i)- y(i);
    w1 = w1 + u*e(i)*x1(i);
    w2 = w2 + u*e(i)*x2(i);
end
figure
subplot(4,1,1);
plot(t,S1);
title('Signal BPSK');
subplot(4,1,2);
plot(t,d);
title('Signal BPSK + noise + interference');
subplot(4,1,3);
plot(t,e);
title('Filtered Signal');
subplot(4,1,4);
plot(t,y);

Файлы

  • bpsk_filter.m

Теги

    15.11.2023

    Ответы

    • aBoomest
      aBoomest+942.89
      20.11.2023 13:35

      А когда noise = 0, то получали?

      • aBoomest
        aBoomest+942.89
        20.11.2023 13:49

        И SNRу вас точно 0?

        • Нгуен Ван Зунг
          Нгуен Ван Зунг+19.83
          20.11.2023 16:23

          Я ошибка. Если в начале SNR = 0, то вниз надо удалить строку noise = 0.

        • Нгуен Ван Зунг
          Нгуен Ван Зунг+19.83
          20.11.2023 18:15

          Я пересделал, но на выходе получил не чистый сигнал.

          • aBoomest
            aBoomest+942.89
            21.11.2023 08:11

            1. SNR для современных АЦП 80-100 дБ. 
            Добавим сюда тракт приема (или измерения что тма у вас на самом деле) и датчик.
            Примерно 40-50 дБ можное задать.
            Если делаете "на коленках" то меньше.
            2. Он чистым и не должен быть.
            3. У вас как-то должна определяться скорость адаптации. Однако этого я вам уже подсказать не могу. Надо задачу знать.
            4.Почему u=0.1/2000,объяснитьможете?
            5.Что такое гармоническая помеха? Если это реально помеха, то амплитуда её что-то очень большая задана.

            • goldtropical
              goldtropical0.00
              24.01.2024 12:53

              Даже когда я переделал его, сигнал, который он выдавал, был мутным.

              basketball stars