Mudanças entre as edições de "PSD29007-Engtelecom(2018-2) - Prof. Marcos Moecke"
Linha 600: | Linha 600: | ||
===Unidade 3=== | ===Unidade 3=== | ||
− | ;Aula | + | ;Aula 15 (13 set): |
*Filtros Digitais: Filtros FIR | *Filtros Digitais: Filtros FIR | ||
:*Filtros de fase linear: simétricos e antisimétricos (Tipo 1, 2, 3 e 4) | :*Filtros de fase linear: simétricos e antisimétricos (Tipo 1, 2, 3 e 4) | ||
:*Filtros de fase linear: propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal) | :*Filtros de fase linear: propriedades (respostas em frequência possíveis, distribuição dos zeros em simetria quadrantal) | ||
− | ;Aula | + | |
+ | ;Aula 16 (18 set) | ||
:*Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS | :*Coeficientes da série de Fourier de filtros ideias: LP, HP, BP, BS | ||
::*Passa-baixas (''Low-pass'') | ::*Passa-baixas (''Low-pass'') | ||
Linha 644: | Linha 645: | ||
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L)); | wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L)); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ;Aula | + | |
+ | ;Aula 17 (20 set) | ||
Aula suspenda - participação no SEPEI 2018 | Aula suspenda - participação no SEPEI 2018 | ||
− | ;Aula | + | ;Aula 18 (25 set) |
*Filtros Digitais: Projeto de filtro FIR utilizando janelas temporais fixas | *Filtros Digitais: Projeto de filtro FIR utilizando janelas temporais fixas | ||
Linha 702: | Linha 704: | ||
%fvtool(h_fir,1) | %fvtool(h_fir,1) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
:*Ver pag. 256 a 265 de <ref name="SHENOI2006"/> | :*Ver pag. 256 a 265 de <ref name="SHENOI2006"/> | ||
Linha 709: | Linha 710: | ||
::*[https://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?arnumber=1163506 Some windows with very good sidelobe behavior] Nuttall, A. IEEE Transactions on Acoustics, Speech, and Signal Processing, February 1981, Vol.29(1), pp.84-91 | ::*[https://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?arnumber=1163506 Some windows with very good sidelobe behavior] Nuttall, A. IEEE Transactions on Acoustics, Speech, and Signal Processing, February 1981, Vol.29(1), pp.84-91 | ||
− | + | ;Aula 19 (27 set): | |
− | ;Aula | ||
*Filtros Digitais: Filtros FIR | *Filtros Digitais: Filtros FIR | ||
*Projeto de filtro FIR utilizando janelas temporais ajustáveis | *Projeto de filtro FIR utilizando janelas temporais ajustáveis | ||
Linha 763: | Linha 763: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | ;Aula | + | ;Aula 20 (02 out) |
*Filtros Digitais: Filtros FIR | *Filtros Digitais: Filtros FIR | ||
:*Filtro de Parks-McClellan. Funções [http://www.mathworks.com/help/signal/ref/firpm.html firpm] e [http://www.mathworks.com/help/signal/ref/firpmord.html firpmord]. | :*Filtro de Parks-McClellan. Funções [http://www.mathworks.com/help/signal/ref/firpm.html firpm] e [http://www.mathworks.com/help/signal/ref/firpmord.html firpmord]. | ||
Linha 769: | Linha 769: | ||
:*[http://eeweb.poly.edu/iselesni/EL713/remez/remez.pdf Remez exchange algorithm] - o detalhe com implementação em Matlab. Como resolver as anomalias na banda de transição. | :*[http://eeweb.poly.edu/iselesni/EL713/remez/remez.pdf Remez exchange algorithm] - o detalhe com implementação em Matlab. Como resolver as anomalias na banda de transição. | ||
:*[http://www.ee.ic.ac.uk/hp/staff/dmb/courses/DSPDF/00700_OptimalFIR.pdf] | :*[http://www.ee.ic.ac.uk/hp/staff/dmb/courses/DSPDF/00700_OptimalFIR.pdf] | ||
+ | |||
+ | *Projeto de filtro FIR | ||
+ | :*projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan. | ||
+ | :*garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações. | ||
+ | :*se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste. | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% Projetar o filtro passa baixas | ||
+ | fp = 1200 Hz; | ||
+ | fs = 1380 Hz; | ||
+ | fa = 8000 Hz; | ||
+ | Ap = 1 dB; | ||
+ | Ar = 50 dB; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% Projetar o filtro passa altas | ||
+ | fs = 1200 Hz; | ||
+ | fp = 1380 Hz; | ||
+ | fa = 8000 Hz; | ||
+ | Ap = 1 dB; | ||
+ | Ar = 50 dB; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | ;Aula 21 (04 out) | ||
+ | |||
+ | *Projeto de filtro FIR | ||
+ | :*projetar os filtros usando: 1) Janela fixa 2) Janela ajustável 3) Parks-McClellan. | ||
+ | :*garantir que o filtro seja de menor ordem em cada caso, mas que esteja dentro das especificações. | ||
+ | :*se necessário ajustar os valores de fs, fp, Ap, As, e a ordem do filtro, indicando o critério utilizado para o ajuste. | ||
+ | |||
+ | <syntaxhighlight lang=matlab> | ||
+ | %% Projetar o filtro passa faixa | ||
+ | fs1 = 800 Hz; | ||
+ | fp1 = 900 Hz; | ||
+ | fp2 = 1000 Hz; | ||
+ | fs2 = 1300 Hz; | ||
+ | fa = 8000 Hz; | ||
+ | Ap = 1 dB; | ||
+ | Ar = 50 dB; | ||
+ | </syntaxhighlight> | ||
+ | |||
<syntaxhighlight lang=matlab> | <syntaxhighlight lang=matlab> | ||
− | %% | + | %% Projetar o filtro rejeita faixa |
− | + | fp1 = 800 Hz; | |
− | + | fs1 = 900 Hz; | |
− | + | fs2 = 1000 Hz; | |
+ | fp2 = 1300 Hz; | ||
+ | fa = 8000 Hz; | ||
Ap = 1 dB; | Ap = 1 dB; | ||
− | Ar = | + | Ar = 50 dB; |
</syntaxhighlight> | </syntaxhighlight> | ||
− | ;Aula 22 ( | + | <!-- |
+ | ;Aula 22 (09 out) | ||
:*Uso do [http://www.mathworks.com/help/signal/examples/introduction-to-the-filter-design-and-analysis-tool-fdatool.html] [http://www.mathworks.com/help/signal/ref/fdatool.html Fdatool] para projeto de filtro IIR, FIR equiripple e FIR com janela. | :*Uso do [http://www.mathworks.com/help/signal/examples/introduction-to-the-filter-design-and-analysis-tool-fdatool.html] [http://www.mathworks.com/help/signal/ref/fdatool.html Fdatool] para projeto de filtro IIR, FIR equiripple e FIR com janela. | ||
Edição das 16h10min de 4 de outubro de 2018
Registro on-line das aulas
Unidade 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Unidade 1
%% Experimento 2.3 - Filtros Digitais
% 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.
% FILE: Exp2_3.m
%% 1º filtro
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 ]'; P = [p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
%% 2º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.9*exp(1j*pi/4);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p1 p1' p1 p1']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
%% 3º filtro
z1 = exp(1j*pi/8);
z2 = exp(1j*3*pi/8);
p1 = 0.99*exp(1j*pi/4);
p2 = 0.9*exp(1j*pi/4 - 1j*pi/30);
p3 = 0.9*exp(1j*pi/4 + 1j*pi/30);
Z = [1 -1 z1 z1' z2 z2']';
P = [p1 p1' p2 p2' p3 p3']';
[num,den] = zp2tf(Z,P,1);
[h,w] = freqz(num,den);
figure(1); plot(w,abs(h)/max(abs(h)));
figure(2); zplane(num,den);
%% Carregando o som
clear, close, clc
load handel;
%% Reproduzindo o som
sound(y,Fs)
% Reproduzindo o som
%soundsc(y,Fs)
% Reproduzindo o som
%player = audioplayer(y, Fs);
%play(player);
%% Carregando o som
clear, close, clc
[y,Fs] = audioread('DTMF_8kHz.ogg');
%% Reproduzindo o som
sound(y,Fs)
%% Visualizando o som no DT
time = [0:length(y)-1]'/Fs;
plot(time',y'); xlabel('segundos');
xlim([0 time(end)]), ylim([-1 1]);
%% Visualizando o som no DF
Nfreq = length(y);
freq = linspace(0,2*pi,Nfreq)'*Fs/pi/2;
Y = fft(y,Nfreq)/Nfreq;
plot(freq,abs(Y)); xlabel('Hertz');
xlim([0 Fs/2]);
|
Unidade 2 |
---|
Unidade 2
b = [1 1];
a = [1 1 5];
[z1,p1,k]=tf2zp(b,a)
z2 = roots(b);
p2 = roots(a);
zplane(b,a);
%%
freqs(b,a);
%%
syms s w
H(s) = (s+1)/(s^2 + s + 5);
pretty(H(1j*w))
latex(H(1j*w))
%%
ws = logspace(-2, 1, 1000);
h = H(1j*ws);
subplot(211)
semilogx(ws,abs(h)); grid on;
subplot(212)
semilogx(ws,angle(h)/pi*180); grid on;
%Butterworth lowpass Responses (db)
w = 0.1:0.01:10;
H=inline('10*log10(1./(1+w.^(2*n)))','w','n');
for k = 1:1:10
semilogx(w,H(w,k)); hold on;
end
grid on
%Butterworth lowpass Responses (linear)
w = 0.1:0.01:2;
H=inline('1./(1+w.^(2*n))','w','n');
for k = 1:1:10
plot(w,H(w,k)); hold on;
end
grid on
Os polinômios de Chebyshev de primeira ordem são definidos pela relação recursiva: Os primeiros cinco polinômios de Chebyshev de primeira ordem são:
%% Projeto de filtro passa-baixas usando funções do Matlab
%% Especificações do filtro
Wp =16000; Ws = 20000; Ap = 0.3; As = 20; G0= 3;
% Para analisar o filtro projetado, use fvtool(b,a) para observar plano s, resposta em magnitude, fase e atraso de grupo
%% Butterworth
[n,Wn] = buttord(Wp, Ws, Ap, As,'s')
[b,a] = butter(n,Wn, 's');
%% Chebyshev I
n = cheb1ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby1(n,Ap, Wp, 's');
%% Chebyshev II
n = cheb2ord(Wp, Ws, Ap, As,'s')
[b,a] = cheby2(n,As, Ws, 's');
%% Elliptic - Cauer
[n, Wn] = ellipord(Wp, Ws, Ap, As,'s')
[b,a] = ellip(n,Ap,As, Wn, 's');
|
Unidade 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unidade 3
L = 64;
wvtool(rectwin(L), triang(L), bartlett(L), hann(L), hamming(L), blackman(L), blackmanharris(L), nuttallwin(L));
Aula suspenda - participação no SEPEI 2018
Projetar um filtro passa baixas usando uma janela temporal fixa (verificar a janela que atende a especificação) wp = 0.2*pi; Ap = 0.2 dB; Gp = 0 dB ws = 0.3*pi; As = 60 dB;
Projetar um filtro LP usando uma janela temporal fixa (hamming, bartlett-hanning, hanning). wp = 0.4*pi; Ap = 1 dB; Gp = 0 dB ws = 0.6*pi; As = 40 dB;
N = <ordem>
h_fir = fir1(N,Wn,hamming(N+1));
[Hw,w] =freqz(h_fir);
plot(w/pi,20*log10(abs(Hw)))
title(['hamming N = ' num2str(N)])
%fvtool(h_fir,1)
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));
Para a janela de Kaiser, a estimação do fator e da ordem do filtro são obtidos por:
Utilizando o Matlab é possível estimar esses valores utilizando a função kaiserord. Exemplo da obtenção de um filtro passa baixa com , , atenuação de 40 dB na "stopband" fsamp = 8000;
fcuts = [1000 1500];
mags = [1 0];
devs = [0.01 0.01];
[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fsamp);
Com os parâmetros é possível projetar o filtro usando a função fir1, que utiliza o método da janela para o projeto do filtro. h_fir = fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');
[Hw,w] =freqz(h_fir);
plot(w*fsamp/2/pi,20*log10(abs(Hw)))
title(['Kaiser filter N = ' num2str(n)])
%fvtool(h_fir,1)
|
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
- ↑ 1,0 1,1 1,2 1,3 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,0 2,1 2,2 2,3 2,4 2,5 2,6 SHENOI, B. A. Introduction to Digital Signal Processing and Filter Design. 1.ed. New Jersey: John Wiley-Interscience, 2006. 440 p. ISBN 978-0471464822