Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перевод OFDM из комплексной формы в реальный сигнал и обратно
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
lennen
Я все время делал это на векторном оборудовании и думал, что достаточно взять модуль от комплексного числа, чтобы получился реальный сигнал в выборках. А затем если взять от него БПФ, то все станет на свои места. Вот код в Матлаб:

Код
%Простейший OFDM-символ
s = ifft(S);


OFDMsend = abs(s+10000)-10000

%srec = fft(OFDMsend);
plot(fft(OFDMsend));


Как бы не так! Появляется много лишних точек в созвездии. Тогда я не понимаю, как это делается. Подскажите, пожалуйста?
quato_a
Код
n = 201;
map_re = randi([0 1], [1,n]);
map_im = randi([0 1], [1,n]);

for i = 1:n
    if map_re(i) == 0
        map_re(i) = -1;
    end
end

for i = 1:n
    if map_im(i) == 0
        map_im(i) = -1;
    end
end

mapc = map_re + 1i*map_im;

mapc(101) = complex(0);

mapc = mapc * 2^(1/2) / 2;

figure; plot(mapc, '*'); grid on;

maptx = [mapc(101:201) zeros(1,823) mapc(1:100)];
figure; plot(real(maptx)); grid on;

tx = ifft(maptx, 1024);

figure; plot(real(tx)); grid on;
figure; plot_psd(tx, 100e6, 256);

maprx = fft(tx, 1024);

figure; plot(maprx, '*'); grid on;


Код
function plot_psd(x, Fs, N)
% Строит график спектральной плотности мощности сигнала (Power Spectral Density) нормированный по log оси и fs
    NH = floor (N/2);
    
    xPsd = psd (x/2^(12-1), N, Fs);
    length(xPsd);
    if (length(xPsd) ~= N) % real
        xPsdResh(1:NH) = xPsd(1:NH);
        xFreq = (0:NH-1)/N*Fs*10^-6;
        length(xPsdResh);
        length(xFreq);
    else % complex
        xPsdResh(1:NH) = xPsd(NH+1:N);
        xPsdResh(NH+1:N) = xPsd(1:NH);
        xFreq = ((0:N-1)-NH)/N*Fs*10^-6;
    end
    xLog = 10*log10(xPsdResh);
%     xFreq = ((0:N-1)-NH)/N*Fs*10^-6;
    plot( xFreq, xLog, 'b-');
    grid;
end
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.