Pesquisar neste blog

15/11/2022

Multiplexação por divisão de frequência no MATLAB

Código feito no Matlab
% test_orthogonality.m
% Verificar a ortogonalidade entre alguns sinais senoidais
% com diferentes frequências/fases
clear, clf
T=1.6; ND=1000; nn=0:ND; ts=0.002; tt=nn*ts; % Intervalo de tempo
Ts = 0.1; M = round(Ts/ts); %Período de amostragem em tempo contínuo/discreto
nns = [1:M:ND+1]; tts = (nns-1)*ts; % Índices e tempos de amostragem
ks = [1:4 3.9 4]; tds = [0 0 0.1 0.1 0 0.15]; % Frequências e atrasos
K = length(ks);
for i=1:K
k=ks(i); td=tds(i); x(i,:) = exp(j*2*pi*k*(tt-td)/T);
if i==K, x(K,:) = [x(K,[302:end]) x(K-3,[1:301])]; end
subplot(K,2,2*i-1), plot(tt,real(x(i,:))),
hold on, plot(tt([1 end]),[0 0],'k'), stem(tts,real(x(i,nns)),'.')
end
N = round(T/Ts); xn = x(:,nns(1:N));
xn*xn'/N % verificar ortogonalidade
Xk = fft(xn.').'; kk = 0:N-1;
for i=1:K, k=ks(i); td=tds(i); subplot(K,2,2*i), stem(kk,abs(Xk(i,:)),'.')end








Saída gerada no Matlab online
























Nenhum comentário: