0% acharam este documento útil (0 voto)
9 visualizações4 páginas

Modulador ISDB-T: Cálculos e Processamento

O documento descreve um simulador de um sistema de transmissão OFDM para TV digital, incluindo a configuração de parâmetros de modulação, cálculo de variáveis, processamento do modulador e demodulador, e exercícios para testar diferentes modulações e taxas de bits. É apresentada também uma função para plotar o espectro de frequências de um sinal.

Enviado por

Michel Oliveira
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
9 visualizações4 páginas

Modulador ISDB-T: Cálculos e Processamento

O documento descreve um simulador de um sistema de transmissão OFDM para TV digital, incluindo a configuração de parâmetros de modulação, cálculo de variáveis, processamento do modulador e demodulador, e exercícios para testar diferentes modulações e taxas de bits. É apresentada também uma função para plotar o espectro de frequências de um sinal.

Enviado por

Michel Oliveira
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Sistemas de Rádio e TV 2s2021

Modulador/Demodulador ISDB-T ......................................................................................... 1


Configuração dos parametros de modulação......................................................................... 1
Calculo de váriaveis do Modulador ........................................................................................ 1
Processamento do Modulador .............................................................................................. 1
Exercícios .............................................................................................................................. 3
Função Spectrum .................................................................................................................. 3
Modulador/Demodulador ISDB-T
Exemplo do Modulador/Demodulador OFDM Baseado no ISDB-T

clc % Limpa a tela do command window


clear % Apaga as variáveis
close all % Fecha as janelas

Configuração dos parametros de modulação


M = 4; % Ordem da modulação
Nc = 5616; % Número de portadoras ativas
ifftSize = 8192; % Tamanho da FFT
k=1/4; % Razão do intervalo de guarda
Bw = 6e6/14*13; % Largura de Banda do ISDB-T com 13 segmentos
Fs = 512e6/63;% Frequência de amostragem do ISDB-T

maxSimbolos=100; % Número de símbolos


% Tirar o comentário se estiver usando Octave
% pkg load communications

Calculo de váriaveis do Modulador


Z = sqrt(2)/2; % Fator de normalização da potência para QPSK
Rb = Bw*log2(M)*(1+k); % Taxa de bits
Ts = Nc*log2(M)/Rb; %Duração do símbolo OFDM
Tu = Ts /(1+k);% Tempo útil do símbolo OFDM

%%%%% Shift da iFFT (Zero Pad) %%%%


s = Nc/2+1:Nc;
e = 1:Nc/2;
z = ifftSize-Nc;
%%%%%%%%%%%%%%%%%%%%%%
%totalErrors=zeros(100,1);
gi = ifftSize*k; % Numero de amostras do intervalo de guarda

Processamento do Modulador
k=1;
for (SNR=5:1:15)
%%%%%%%%%% BER %%%%%%%%%%%
totalErrors(k)=0;
totalBits(k) = 0;
snr(k)=SNR;
%%%%%%%%%%%%%%%%%%%%%%%%

Cristiano Akamine, [Link]@[Link]


Sistemas de Rádio e TV 2s2021

for(simbolo=0:1:maxSimbolos)
%%%%%%%% Transmissor %%%%%%%%%%
dataIn = randi([0,M-1],1,Nc); % Sorteio de números aleatórios
qamTxOut = qammod(dataIn,M)*Z;% Modulação QAM de ordem M
ifftOut = ifft([qamTxOut(s) zeros(1,z) qamTxOut(e)],ifftSize); % Aplica iFFT e
realiza o shift (zero pad)
ofdmOut = [ifftOut(ifftSize-gi+1:ifftSize) ifftOut]; % Insere intervalo de
guarda
txOut = ofdmOut; % Sinal Transmitido
%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%% Canal de comunicação%%%%%%


potTX = norm(txOut).^2/length(txOut); % Medida de Potência
channelOut = awgn(txOut,SNR,10*log10(potTX*ifftSize/Nc));% Inseri ruído
%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%% Receptor %%%%%%%%%


giRemOut = channelOut(gi+1:end); % Remove Intervalo de guarda
fftOut = fft(giRemOut,ifftSize);% Aplica FFT
qamRxOut=[fftOut(ifftSize-Nc/2+1:ifftSize) fftOut(1:Nc/2)]; % Sinal QAM após
zero depad
dataOut = qamdemod(qamRxOut./Z,M);% Bits após a Demodulação QAM de ordem M
nErrors = biterr(dataIn,dataOut); % Medidor de Taxa de erro de bits
totalErrors(k) = totalErrors(k) + nErrors; % Número total de bits Errados
totalBits(k) = totalBits(k) + log2(M)*Nc; % Número total de bits medidos
%%%%%%%%%%%%%%%%%%%%%%%%

% figure(1)
% plot(real(qamTxOut), imag(qamTxOut), '*');
% xlabel('In-Phase')
% ylabel('Quadrature')
% grid on
% %axis([-1.5 1.5 -1.5 1.5])
% title('TX Constellation')
%
% figure(2)
% spectrum(channelOut,Fs);
%
% figure(3)
% spectrum(ofdmOut,Fs);
% pause(0.1)
% figure(11)
% plot(real(qamRxOut), imag(qamRxOut), '*');
% xlabel('In-Phase')
% ylabel('Quadrature')
% grid on
% %axis([-1.5 1.5 -1.5 1.5])
% title('Rx Constellation')
end
k = k + 1;
end
figure(4)
snrdB1=1:max(snr)+1;
Pb=qfunc( sqrt(10.^(snrdB1./10) ) );
semilogy(snrdB1,Pb)
hold on
ber=totalErrors./totalBits;

Cristiano Akamine, [Link]@[Link]


Sistemas de Rádio e TV 2s2021

semilogy(snr,ber,'*')
axis([0 20 1e-8 1])
grid on
xlabel('SNR (dB)')
ylabel('BER')
title('Taxa de erro de bits')
legend('Teórico', 'Medido')

Exercícios
% 1) Repetir exemplo dado para a modulação 64-QAM e desenhar curva prática
% e teórica.
% Obs. É preciso fazer o ajuste de potência (variável Z)
% 2) Calcule a taxa de bits para
% a) M=64, k=1/8, Nc=5616, ifftSize=8192
% b) M=16, k=1/4, Nc=2808, ifftSize=4096
% c) M=4, k=1/16, Nc=1404, ifftSize=2048
% d) M=64, k=1/16, Nc=5616, ifftSize=8192
% e) M=64, k=1/16, Nc=2808, ifftSize=4096
% f) M=64, k=1/16, Nc=1404, ifftSize=2048

Função Spectrum
% Copiar o código abaixo em um novo scipt, retirar os comentários e salvar
% function spectrum(data,Fs)
% N = length(data); % number of data points
% spec = fft(data); % numerical approx. of FT
% df = Fs/N; % spacing between samples on freq. axis
% min_f = -Fs/2; % min freq. for which fft is calculated

Cristiano Akamine, [Link]@[Link]


Sistemas de Rádio e TV 2s2021

% max_f = Fs/2 - df; % max freq. for which fft is calculated


% f = [min_f : df : max_f]; % horizontal values
% size(f) % should equal N
% y = abs(fftshift(spec)); % magnitude of shifted spectrum
% semilogy(f, y,'g')
% grid on
% xlabel('Frequency (Hz)')
% ylabel('Power (dB)')
% title('Spectrum')

Cristiano Akamine, [Link]@[Link]

Você também pode gostar