Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Minn algoritm
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Ivan55
Добрый день!
Пытаюсь разобраться с алгоритмом Minn
реализовал код
CODE
clear all; clc; close all;

SNR=50;
N_FFT=1024;
NGI=1/4;

N_used=N_FFT/2;
N_GI=round(NGI*N_FFT);
N=N_FFT+N_GI;

nSTOs=0;
CFO=0;

%% preamble Minn
B=4;
reS=(-1).^round(rand(1,round(N_used/B)));
imS=1i.*(-1).^round(rand(1,round(N_used/B)));
qam_data_tx= reS+imS;
s=ifft(qam_data_tx, N_FFT/B);
tx_signal_noGI = [s s -s -s];
%tx_signal=[tx_signal_noGI(:,N_FFT-N_GI+1:N_FFT) tx_signal_noGI];
tx_signal=tx_signal_noGI;
N=N_FFT+N_GI;
%% Time and frequency shift signal
if nSTOs>=0, y_STO=[tx_signal(1,nSTOs+1:end) zeros(1,nSTOs)];
else
y_STO=[zeros(1,-nSTOs) tx_signal(1,1:end+nSTOs)];
end
nn=0:length(y_STO)-1; y_CFO_STO = y_STO.*exp(j*2*pi*CFO*nn/N_FFT);

%% AWGN channel
recvd_signal=awgn(y_CFO_STO, SNR, 'measured', 'dB');
%% Minn
Len_all=N_FFT;
recvd_signal=[zeros(1,Len_all) recvd_signal zeros(1,Len_all)];

E_Minn=zeros(1,2*Len_all+1);
P_Minn=zeros(1,2*Len_all+1);
for d = 1:2*Len_all+1
for m = 0:1
rx_sgn_b = recvd_signal(d+m*Len_all/2:d+m*Len_all/2+Len_all/B-1);
rx_sgn_bp1 = recvd_signal(d+m*Len_all/2+Len_all/B:d+m*Len_all/2+Len_all/B+Len_all/B-1);
P_Minn(d)=P_Minn(d)+(sum(conj(rx_sgn_b).*rx_sgn_bp1));
E_Minn(d)=E_Minn(d)+sum(abs(rx_sgn_bp1).^2);
end
end
Minn_metric=(abs(P_Minn)).^2./(E_Minn).^2;

plot(Minn_metric);

вроде по теории
Нажмите для просмотра прикрепленного файла
а вот такой результат не получаю
Нажмите для просмотра прикрепленного файла
KalashKS
Процитированный отрывок сильно отличается от исходной статьи. Попробуйте сделать по ней.
https://core.ac.uk/download/files/145/21751016.pdf
Ivan55
Цитата(KalashKS @ May 10 2016, 17:34) *
Процитированный отрывок сильно отличается от исходной статьи. Попробуйте сделать по ней.
https://core.ac.uk/download/files/145/21751016.pdf

Спасибо!) вроде разобрался, основной ошибкой было то что там при корреляции нужно учитывать полярность, тогда все получается
вот что получил для шаблона [s s -s -s s -s -s -s]
Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.