PSD-EngTel (página)
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
- Carga horária, Ementas, Bibliografia, Professores
- Cronograma de atividades (PSD-EngTel)
- Plano de Ensino
Registro on-line das aulas
Unidade 1
- Aula 1 (6 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
- Resposta de sistemas LTI (Experimento 1.1)
- Amostragem de Sinais (Experimento 1.2)
- Uso do Matlab: Help, F9 executa o código destacado no Help. Programação com scripts .m, Execução de seções e variação de valores nos scripts.
- Ver pag. 65 a 71 de [1]
- Ver PDF Documentation for MATLAB. Principalmente MATLAB Primer.
Variação do Experimento 1.2 |
---|
%% Experimento 1.2
fs = 10; Ts = 1/fs; fase = 0;
time = 0:Ts:(1-Ts);
f1 = 3; f2 = 7;
s_1 = cos(2*pi*f1*time+fase);
s_2 = cos(2*pi*f2*time+fase);
fsa = 1000; 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')
Varie o valor da frequência de amostragem de 6 até 20 Hz e observe:
|
- Aula 2 (10 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Variação do Experimento 2.2 |
---|
%% Experimento 2.2
% Resposta em frequencia usando a função freqz
N = 1;
num = [1 0 0 0];
den = poly([0.8 0.2])
%den = [1 0.6 -0.16];
% modo 1
%[H,w]=freqz(num,den,[0:pi/100:N*pi-pi/100]);
%plot(w/pi, abs(H));
% modo 2
%[H,w]=freqz(num,den);
%plot(w/pi, abs(H));
% modo 3
%[H,w]=freqz(num, den, 'whole');
%plot(w/pi, abs(H));
% modo 4
freqz(num, den, 'whole');
figure(2);
zplane(num,den);
%% Resposta em frequencia substituindo z -> e^(jw)
syms z
Hf(z) = symfun(z^2/(z-0.2)/(z+0.8),z);
pretty(Hf)
latex(Hf)
N = 1;
w = [0:pi/100:N*pi-pi/100];
plot(w/pi,abs(Hf(exp(1i*w))))
%title(['$' latex(Hf) '$'],'interpreter','latex')
text(0.2,2,['H(z) = ' '$$' latex(Hf) '$$'],'interpreter','latex')
xlabel(['w/' '$$' '\pi' '$$'],'interpreter','latex')
|
- Aula 3 (13 fev)
- Revisão de Sinais e Sistemas no tempo discreto em Matlab:
Unidade 2
- Aula 4 (20 fev)
- Filtros Digitais: Filtros IIR:
- Aproximação de magnitude de filtros analógicos: do tipo Butterworth.
- Ver pag. 186 a 193 de [2]
- Aula 5 (24 fev)
- Filtros Digitais: Filtros IIR:
- Projeto de filtros analógicos passa-baixas: do tipo Butterworth.
- Ver pag. 194 a 204 de [2]
- Aula 6 (27 fev)
- Filtros Digitais: Filtros IIR:
- Projeto de filtros analógicos passa-baixas: do tipo Chebyshev I.
- Ver pag. 204 a 208 de [2]
- Aula 7 (3 mar)
- Filtros Digitais: Filtros IIR:
- Projeto de filtros analógicos passa-baixas: do tipo Chebyshev II.
- Uso das funções semilogx, semilogy,logspace, linspace.
- Ver em IIR Filter Design,
- Funçãos para projeto do filtro final (analógico com 's'): besself, butter, cheby1, cheby2, ellip
- Funções de estimação da ordem do filtro: buttord, cheb1ord, cheb2ord, ellipord
- Funções para projeto do filtro protótipo analógico passa-baixas: besselap, buttap, cheb1ap, cheb2ap, ellipap
- Funções de transformação de frequencia: lp2bp, lp2bs, lp2hp, lp2lp
- Transformação de frequência de filtros analógicos
- (passa-baixas -> passa-baixas, passa-baixas -> passa-altas, passa-baixas -> passa-faixa, passa-baixas -> rejeita-faixa)
- Ver pag. 208 a 218 de [2]
- Aula 8 (6 mar)
- Filtros Digitais: Filtros IIR: transformações do tempo contínuo no tempo discreto
- Transformação invariante ao impulso (apenas para filtros com forte atenuação em frequência altas, ex: passa-baixas e passa-faixa)
- Transformação bilinear (para todos tipos de filtro)
- Ver em IIR Filter Design,
- Filter discretization functions: bilinear, impinvar
Unidade 3
- Aula 9 (10/mar)
- Filtros Digitais: Filtros FIR
- Filtros de fase linear: simétricos e antisimétricos
- Ver pag. 249 a 256de [2]
- Aula 10 (13/mar)
- Filtros Digitais: Filtros FIR
- Filtros de fase linear: propriedades
- Ver pag. 256 a 260 de [2]
- Aula 11 (17/mar)
- Filtros Digitais: Filtros FIR
- Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS
- Passa-baixas (Low-pass)
- Passa-altas (High-pass)
- Passa-faixa (Band-pass)
- Rejeita-banda (Band-stop)
- Janela retangular, fenômeno de Gibbs
- Aula 12 (18/mar)
- Filtros Digitais: Filtros FIR
- Uso de funções de janelamento temporal no projeto de filtros digitais.
- Tipos de janelas temporais usadas no projeto de filtros digitais.
- Retangular
- Bartlett
- Hanning
- Hamming
- Blackman
- em todas as janelas quando
- Projeto de filtro FIR utilizando janelas temporais
- Uso de janelas fixas no Matlab : rect, triang, bartlett, hann, hamming, blackman, blackmanharris, nuttall.
L = 64;
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
L = 64;
r = 60; % Chebyshev e Tukey
alpha = 3; % Gauss
betha = 8; % Kaiser
nbar = 10; % Taylor
wvtool(kaiser(L,betha), chebwin(L,r), gausswin(L,alpha),tukeywin(L,r), taylorwin(L,nbar,-r));
- Ver pag. 266 a 273 de [2]
- Aula 13 (24/mar)
- Filtros Digitais: Filtros FIR
- Projeto de filtro com splines.
- Passa-baixas (Low-pass)
- Aula 14 (25/mar)
- Filtros Digitais: Filtros FIR
- Filtro Equiripple com fase linear (Parks and McClellan)
- Uso das funções do Matlab para projeto de filtro equiripple firpmord e firpm.
- Projetar os seguintes filtros (frequencias em rad/s e rejeição em dB)
- Passa-faixa: wr1 = 0.2, wp1 = 0.4, wp2 = 0.6, wr2 = 0.75, rr = 40, rp = 0.2.
- Passa-faixa: wr1 = 0.2, wp1 = 0.4, wp2 = 0.6, wr2 = 0.7, rr = 40, rp = 0.2.
- Passa-baixas: wp = 0.4, wr = 0.7, rr = 40, rp = 0.2.
- Passa-altas: wp = 0.7, wr = 0.4, rr = 40, rp = 0.2.
- Estudar Practical Introduction to Digital Filter Design, Using FDATool
- Aula 15 (30/mar)
- Filtros Digitais: Filtros FIR
- Aula Prática: Uso do Fdatool para projeto de filtro IIR, FIR equiripple e FIR com janela.
Unidade 4
- Aula 16 (1/04)
- Realização de Filtros
- Realização de filtros FIR: Forma Direta I, Transposta, Cascata, Polifase, filtros de fase linear simétrico e antissimétrico.
- Estudar estrutura de filtros disrcetos FIR no Matlab.
- Ver pag. 303 a 312 de [2].
- Aula 16 (1/04)
- Realização de Filtros IIR
- Bloco de IIR de 2ª ordem.
- Separando H(z) em dois blocos , e obtendo o sinal intermediário W(z)
- Podemos obter a realização de na forma direta.
- Para obter a realização de , é necessário reescrever a saída em função de e das saídas anteriores e :
- Com o ordenamento dos blocos e em ordem direta teremos a Forma Direta I:
- Com o ordenamento dos blocos e em ordem reversa teremos a Forma Direta II (Canônica):
- Realização de filtros IIR: Forma Direta I e II, Transposta, Cascata, Paralela
- Ver funções do Matlab: roots, poly, residuez, tf2zp, zp2tf, zp2sos, tf2sos, tf2latc.
- Implementar o exercício 6.3: Forma direta I, Forma direta II, Cascata.
- Implementar o exercício 6.13: Forma direta I, Cascata e Paralela.
- Ver pag. 313 a de 353 [2].
- Ver pag. 469 a 474 do Lathi [3]
Atividades extra
JÁ ENCERRADAS
AE1 - Experimento 3.2 (Prazo de entrega 23/02/2015) |
---|
|
AE2 - Projeto de Filtro Analógicos (Prazo de entrega 09/03/2015) |
---|
|
AE3 - Projeto de Filtro Digitais IIR (Prazo de entrega 23/03/2015) |
---|
%% Variação do Experimento 6.1 - DINIZ
% Parâmetros do filtro digital passa-faixa
Ap = 0.5; % Atenuação máxima na banda de passagem
Ar = 65; % Atenuação mínima na banda de rejeição
Ws = 10000; Fs = Ws/(2*pi); Ts = 1/Fs; % Frequência de amostragem (Ws -> rad/s e Fs -> Hz), e período de amostragem
wr1 = 850; wr2 = 1150; % Frequências de rejeição (rad/s) normalizada em relação a Ws/2
wp1 = 980; wp2 =1020; % Frequências de passagem (rad/s) normalizada em relação a Ws/2
% Cálculo do filtro digital passa-faixa usando transformação bilinear
wnr1 = wr1/(Ws/2); wnr2 = wr2/(Ws/2); wr =[wnr1 wnr2];
wnp1 = wp1/(Ws/2); wnp2 =1020/(Ws/2); wp = [wnp1 wnp2];
[n wn] = ellipord(wp, wr, Ap, Ar);
[b a] = ellip(n,Ap,Ar,wp);
[H, w] = freqz(b,a,10000);
fi = 0; ff = Ws/2; % fi = 850*0.95; ff = 1150*1.05;
subplot(311); plot(w*Fs,abs(H)); grid on; xlim([fi,ff]);
subplot(312); plot(w*Fs,angle(H)); grid on; xlim([fi,ff]);
[gd,w] = grpdelay([b a], 10000);
subplot(313); plot(w*Fs,gd); grid on; xlim([fi,ff]);
figure; zplane([b,a]);
%% Análise do filtro usando um cosenso puro
t = 0:Ts:(1-Ts);
ti =0; tf= 1; % ti=0.5; tf=0.6;
w1 = 800;
x1 = cos(w1*t);
y1 = filter(b,a,x1);
figure; plot(t,x1,'k',t,y1,'b'); ylim([-1.5 1.5]), xlim([ti tf]);
|
AE4 - Projeto de Filtro Digitais FIR - parte 1 (Prazo de entrega 30/03/2015) | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
AL1 - Resposta em frequência a partir da posição dos pólos-zeros |
---|
|
AL2 - Resposta em frequência em Sistemas de Tempo Discreto |
---|
|
AL3 - Desempenho do código de uma FFT |
---|
N = 10000;
%% tamanho do vetor de 1015 -> 5 x 7 x 29
N0 = 1015;
y1 = rand(N0,1);
tic; for k = 1:N; Y1 = fft(y1)/N0; end; toc
%% tamanho do vetor de 1019 -> primo
N_0 = 1019;
y2 = [y1; zeros(N_0-N0,1)];
tic; for k = 1:N; Y2 = fft(y2)/N_0; end; toc
%% tamanho do vetor de 1024 -> 2^10
N_0 = 1024;
y3 = [y1; zeros(N_0-N0,1)];
tic; for k = 1:N; Y3 = fft(y3)/1024; end; toc
|
AL4 - Atraso de grupo em filtros IIR e FIR no Matlab |
---|
%% Carregando um sinal de ECG com ruído com duração de 4 segundos.
load noisyecg.mat
x = noisyECG_withTrend;
fa = 500; %% 2000 amostras em 4 segundos => 500 amostras por segundo.
t = [0:length(x)-1]*1/fa;
plot(t,x);
%% Projetando um filtro passa-baixa tipo IIR butter com f_passagem = 0.15 rad/s
d = designfilt('lowpassiir', ...
'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
'PassbandRipple',1,'StopbandAttenuation',60, ...
'DesignMethod','butter');
freqz(d)
%% Filtro de x revertido x e somando com x filtrado. OFF LINE
y = flip(filter(d,flip(filter(d,x))));
y1 = filter(d,x);
figure(2);
subplot(2,1,1)
plot(t, [y y1])
title('Filtered Waveforms')
legend('Zero-phase Filtering','Conventional Filtering')
subplot(2,1,2)
plot(t, [x y])
title('Original Waveform')
legend('noisy ecg ','fitered ecg')
%% Projetando um filtro passa-baixa tipo FIR equiripple com f_passagem = 0.15 rad/s
d = designfilt('lowpassfir', ...
'PassbandFrequency',0.15,'StopbandFrequency',0.2, ...
'PassbandRipple',1,'StopbandAttenuation',60, ...
'DesignMethod','equiripple');
y = flip(filter(d,flip(filter(d,x))));
y1 = filter(d,x);
gd = grpdelay(d);
gd1 = ceil(gd(1));
y = [y1(gd1:end); zeros(gd1-1, 1)];
|
PARA ENTREGAR
AE5 - Projeto de Filtro Digitais FIR x IIR (Prazo de entrega 13/04/2015) | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Recursos necessários
- O Software Matlab está disponível na maioria dos laboratórios do IFSC-campus São José em instalação local tanto em Windows como Linux. Adicionalmente de qualquer maquina do IFSC, pode-se fazer Acesso ao IFSC-CLOUD.
- Para a programação em FPGAs, os softwares da ALTERA (Quartus II, QSIM e Modelsim-Altera), estão instalados no Laboratório de Programação (ver outros disponíveis). Para acessar veja a página Software e equipamentos recomendados para programação de FPGAs.
- Adicionalmente de qualquer maquina do IFSC, pode-se fazer usar o IFSC-CLOUD para ter acesso a estes softwares.
- Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
Links auxiliares
Alguns artigos para leitura
Fazer a leitura e avaliar sua qualidade
- High Pass Filter Design and Analysis Using Hamming, Hanning and Nuttall Windows
- Advantages of Blackman Window over Hamming Window Method for designing FIR Filter
Referências Bibliográficas
- ↑ 1,0 1,1 1,2 1,3 1,4 1,5 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
- ↑ 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822
- ↑ 3,0 3,1 3,2 3,3 LATHI, Bhagwandas P. Sinais e Sistemas Lineares. 2. ed. Porto Alegre: Artmed-Bookman, 2007. 856 p. ISBN 978-8560031139