Mudanças entre as edições de "PSD29007-Engtelecom(2018-2) - Prof. Marcos Moecke"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 16: Linha 16:
 
:EXEMPLOS:
 
:EXEMPLOS:
 
* Leia com atenção e execute o exemplo (Moving-Avarage Filter) na página de help da função [http://www.mathworks.com/help/matlab/ref/filter.html filter].
 
* Leia com atenção e execute o exemplo (Moving-Avarage Filter) na página de help da função [http://www.mathworks.com/help/matlab/ref/filter.html filter].
* Leia com atenção o help [https://www.mathworks.com/help/matlab/examples/using-fft.html Using FFT], abra o script clicando no botão ['''Open this Example'''].  Execute o script seção após seção. Note o uso da fft para determinar a frequência das manchas solares.
 
 
   
 
   
* Para melhorar o desempenho no Matlab recomendo que leiam a pagina do  [http://www.mathworks.com/help/matlab/learn_matlab/help.html Help], .  Também gostaria de lembra-los que a tecla F9 executa o código destacado no Help. [http://www.mathworks.com/help/matlab/learn_matlab/scripts.html Programação com scripts .m].
 
 
:'''DICAS:'''
 
*No help on-line da Matworks, usando o botão ['''Try This Example > Try in your browser'''], permite executar o código no próprio browser sem ter nenhuma instalação do Matlab.  Para verificar que o código realmente é executado mude a amplitude do ruído randômico para 0.1 ou 0.5, insira o comando '''close all''' antes da primeira linha, e execute todo o código ['''Run All''']
 
*No help do Matlab, usando o botão ['''Open this Example'''], é possível executar o código seção a seção.
 
:* Leia sobre [https://en.wikipedia.org/wiki/Sunspot manchas solares] para entender o que são os dados do segundo exemplo.
 
 
====ATUAL====
 
====ATUAL====
 
;Aula 2 (31 jul):
 
;Aula 2 (31 jul):
 
* Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 
* Revisão de Sinais e Sistemas no tempo discreto em Matlab:
 +
* Leia com atenção o help [https://www.mathworks.com/help/matlab/examples/using-fft.html Using FFT], abra o script clicando no botão ['''Open this Example'''].  Execute o script seção após seção. Note o uso da fft para determinar a frequência das manchas solares.
 +
* Para melhorar o desempenho no Matlab recomendo que leiam a pagina do  [http://www.mathworks.com/help/matlab/learn_matlab/help.html Help], .  Também gostaria de lembra-los que a tecla F9 executa o código destacado no Help. [http://www.mathworks.com/help/matlab/learn_matlab/scripts.html Programação com scripts .m].
 +
:* Leia sobre [https://en.wikipedia.org/wiki/Sunspot manchas solares] para entender o que são os dados do segundo exemplo.
 +
 
: Sinais no dominio do tempo e dominio da frequencia.  Uso da função [https://www.mathworks.com/help/matlab/ref/fft.html fft]
 
: Sinais no dominio do tempo e dominio da frequencia.  Uso da função [https://www.mathworks.com/help/matlab/ref/fft.html fft]
 
{{collapse top| Exemplo de uso da FFT}}
 
{{collapse top| Exemplo de uso da FFT}}
Linha 88: Linha 85:
 
::* Notar que as amostras de um sinal <math>s_1(t) = cos (2\pi \times 3 t)</math> (3 Hz) e um sinal <math>s_2(t) = cos (2\pi \times 7 t)</math> (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.  
 
::* Notar que as amostras de um sinal <math>s_1(t) = cos (2\pi \times 3 t)</math> (3 Hz) e um sinal <math>s_2(t) = cos (2\pi \times 7 t)</math> (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.  
  
 +
{{collapse top| Experimento 1.2}}
 
<syntaxhighlight lang=matlab>
 
<syntaxhighlight lang=matlab>
 
%  Exemplos e Experimentos baseados no livro:
 
%  Exemplos e Experimentos baseados no livro:
Linha 111: Linha 109:
 
legend('s_1 discreto','s_1 contínuo','s_2 discreto','s_2 contínuo')
 
legend('s_1 discreto','s_1 contínuo','s_2 discreto','s_2 contínuo')
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
:'''DICAS:'''
 +
*No help on-line da Matworks, usando o botão ['''Try This Example > Try in your browser'''], permite executar o código no próprio browser sem ter nenhuma instalação do Matlab.  Para verificar que o código realmente é executado mude a amplitude do ruído randômico para 0.1 ou 0.5, insira o comando '''close all''' antes da primeira linha, e execute todo o código ['''Run All''']
 +
*No help do Matlab, usando o botão ['''Open this Example'''], é possível executar o código seção a seção.
  
 
<!--
 
<!--
Linha 344: Linha 347:
  
 
{{collapse top | Unidade 2}}
 
{{collapse top | Unidade 2}}
 +
 
===Unidade 2===
 
===Unidade 2===
 
<!--
 
<!--

Edição das 15h03min de 31 de julho de 2018

Registro on-line das aulas

Unidade 1

Unidade 1

Aula 1 (26 jul)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Explorar a interface do Matlab.
  • Funções de visualização das variáveis no workspace.
  • Execução de instruções passo a passo.
  • Escrita de script .m
  • Uso da execução das seções de um script.
  • Incremento de valor e execução.
EXEMPLOS:
  • Leia com atenção e execute o exemplo (Moving-Avarage Filter) na página de help da função filter.

ATUAL

Aula 2 (31 jul)
  • Revisão de Sinais e Sistemas no tempo discreto em Matlab:
  • Leia com atenção o help Using FFT, abra o script clicando no botão [Open this Example]. Execute o script seção após seção. Note o uso da fft para determinar a frequência das manchas solares.
  • Para melhorar o desempenho no Matlab recomendo que leiam a pagina do Help, . Também gostaria de lembra-los que a tecla F9 executa o código destacado no Help. Programação com scripts .m.
  • Leia sobre manchas solares para entender o que são os dados do segundo exemplo.
Sinais no dominio do tempo e dominio da frequencia. Uso da função fft
Exemplo de uso da FFT
%% Signal in Time Domain 
% Use Fourier transforms to find the frequency components of a signal buried in noise.
% Specify the parameters of a signal with a sampling frequency of 1 kHz and a signal duration of 1.5 seconds
Fs = 1000;            % Sampling frequency                    
T = 1/Fs;             % Sampling period       
L = 1500;             % Length of signal
t = (0:L-1)*T;        % Time vector

% Form a signal containing a 50 Hz sinusoid of amplitude 0.7 and a 120 Hz sinusoid of amplitude 1.
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

% Corrupt the signal with zero-mean white noise with a variance of 4.
X = S + 2*randn(size(t));

% Plot the noisy signal in the time domain. It is difficult to identify the frequency components by looking at the signal X(t).
subplot(211);
plot(1000*t(1:200),X(1:200))
title('Signal Corrupted with Zero-Mean Random Noise')
xlabel('t (milliseconds)')
ylabel('X(t)')

%% Signal in Frequency Domain
% Compute the Fourier transform of the signal.
Y = fft(X);

% Compute the two-sided spectrum P2. Then compute the single-sided spectrum P1 based on P2 and the even-valued signal length L.
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

% Define the frequency domain f and plot the single-sided amplitude spectrum P1. 
% The amplitudes are not exactly at 0.7 and 1, as expected, because of the added noise. 
% On average, longer signals produce better frequency approximations.
f = Fs*(0:(L/2))/L;
subplot(212);
plot(f,P1)
ylim([0 1.05]) 
title('Single-Sided Amplitude Spectrum of X(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')

% Now, take the Fourier transform of the original, uncorrupted signal and retrieve the exact amplitudes, 0.7 and 1.0.
Y = fft(S);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);

plot(f,P1) 
title('Single-Sided Amplitude Spectrum of S(t)')
xlabel('f (Hz)')
ylabel('|P1(f)|')
  • Amostragem de Sinais (Experimento 1.2)
  • Relembrar teorema da amostragem. Efeito da amostragem abaixo da frequência de Nyquist. Aliasing.
  • Notar que as amostras de um sinal (3 Hz) e um sinal (7 Hz) são idênticas quando amostrado com um sinal de 10 Hz.
Experimento 1.2
%  Exemplos e Experimentos baseados no livro:
% DINIZ, P. S. R., DA SILVA, E. A. B., e LIMA NETTO, S. Processamento Digital de Sinais: Projeto e Análise de Sistemas. 2. ed. Porto Alegre: Bookman, 2014. 976 p. ISBN 978-8582601235.
%% Experimento 1.2
fs = 10; % frequencia (Hz) de amostragem dos sinais
Ts = 1/fs; fase = 0;
time = 0:Ts:(1-Ts);
f1 = 3; % frequencia (Hz) do sinal s_1
f2 = 7; % frequencia (Hz) do sinal s_2
s_1 = cos(2*pi*f1*time+fase);
s_2 = cos(2*pi*f2*time+fase);
fsa = 1000; % frequência auxiliar de amostragem usada apenas para representação dos sinais originais
Tsa = 1/fsa;
time_aux = 0:Tsa:(1-Tsa);
figure(1);
stem(time,s_1,'ob');
hold on;
plot(time_aux, cos(2*pi*f1*time_aux+fase),'--k');
stem(time,s_2,'+r');
plot(time_aux, cos(2*pi*f2*time_aux+fase),'--m');
hold off;
legend('s_1 discreto','s_1 contínuo','s_2 discreto','s_2 contínuo')
DICAS:
  • No help on-line da Matworks, usando o botão [Try This Example > Try in your browser], permite executar o código no próprio browser sem ter nenhuma instalação do Matlab. Para verificar que o código realmente é executado mude a amplitude do ruído randômico para 0.1 ou 0.5, insira o comando close all antes da primeira linha, e execute todo o código [Run All]
  • No help do Matlab, usando o botão [Open this Example], é possível executar o código seção a seção.
Unidade 2

Unidade 2

Aula 15 e 15 (10 e 13 abr)
  • Filtros Digitais: Filtros IIR: Uso do Matlab.
O projeto dos filtros digitais IIR baseados na transformada bilinear no Matlab é realizada em dois passos: (1) Determinação da ordem do filtro; (2) Determinação dos coeficientes do numerador e denominador de .

-->

Unidade 3

Unidade 3

Unidade 4

Unidade 4

Aula 27 e 28 (25 e 29 mai)
As aulas foram suspensas pela direção do campus em funções da GREVE DOS CAMINHONEIROS
Aula 29 (05 jun)
  • Filtros Digitais: Quantização
Ver Use Filter Designer with DSP System Toolbox Software
x=-0.2;
% Word length = 8, fraction length = 7
q=quantizer([8,7]);
xq=quantize(q,x);
binxq=num2bin(q,xq)
% Word length = 16, fraction length = 15
q1=quantizer([16 15]); 
xq1 = quantize(q1,x);
binxq1=num2bin(q1,xq1)
  • Utilizando o filtro projetado na AE2 e AE3, faça a realização desse filtro quantizando-o com o menor número de bits, que preserve a especificação do mesmo. Se necessário o projeto inicial pode ser modificado inserindo ganhos de guarda na passagem, na rejeição, e também uma banda de guarda na especificação inicial das frequências de passagem e rejeição.
  • Verifique qual dos filtros IIR ou FIR resulta na menor área para a sua realização.
Aula 30 (08 jun)
  • Uso do Simulink
Aula 31 (12 jun)

Para configurar o Simulink para sistemas discretos execute o comando dspstartup.m antes de abrir um novo modelo. -->

Unidade 5 - PROJETO FINAL

Unidade 5 - PROJETO FINAL

Avaliações

  • Entrega dos diversas Atividades Extraclasse ao longo do semestre.
  • Entrega do Projeto Final. O projeto é avaliado nos quesitos:
1) Implementação do Sistema,
2) Documentação,
3) Avaliação Global do aluno no projeto.
  • Entrega dos Atividades Extraclasse ao longo do semestre AE1 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle

Referências Bibliográficas



Curso de Engenharia de Telecomunicações