Buscar

Laboratório 6 - LCD (Programa)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

bigbang.wav
lab6_q1_246796_230340.m
% UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
% ESCOLA DE ENGENHARIA
% SISTEMAS E SINAIS - ENG04006
%
% Laboratório 6
%
% Alunos: Alisson Claudino de Jesus (246796) e Bernardo Brandão Pandolfo(230340)
% Turma: C
%
% Um aluno resolveu montar seu próprio conjunto de som em casa.
% Para isso, comprou na Alberto Bins 3 alto-falantes diferentes, sendo um
% deles para frequências baixas (f<500Hz), um para frequências médias
% (500<f<5000Hz) e outro para frequências altas (f>5kHz). A fim de obter-se
% uma entrada adequada para cada um deles, este aluno resolveu projetar 3
% filtros de Butterworth (um passa-baixas, um passa-faixa e um passa-altas)
% e verificar o resultado final de seu projeto através do Matlab. As
% especificações de cada um dos filtros são dadas na Tabela 1 (apresentada
% no roteiro por escrito do laboratório) e estão relacionadas à magnitude em
% dB apresentada pelo filtro em cada faixa de frequência. A partir das
% especificações abaixo e do arquivo .wav disponível na página da disciplina
% pede-se:
% 
% (a) Projetar os filtros analógicos que atendam às 3 especificações da
% Tabela 1 (constante na folha do laboratório), mostrando passo-a-passo como
% esse projeto foi feito (escolha da ordem do filtro, função de 
% transferência, etc). Fazer o projeto utilizando a formulação para 
% |H(jw)|², conforme apresentado na Figura 1 (constante na folha do 
% laboratório), e para |H(jw)|, conforme apresentado na Figura 2 (constante 
% na folha do laboratório por escrito). Apresentar o diagrama de polos e 
% zeros e a resposta em frequência de cada um dos filtros, avaliando se os 
% filtros projetados atendem os requisitos especificados;
% 
% (b) Discretizar a função de transferência dos filtros utilizando a
% aproximação de Tustin e o comando c2d. O período de amostragem deve ser o
% inverso da frequência em que o sinal de áudio foi gravado (funções wavread
% e wavplay);
% 
% (c) Passar o sinal de áudio pelos 3 filtros digitais (função filter).
% Escutar os 3 sinais resultantes e o sinal combinado utilizando a função
% sound. Comentar o resultado obtido.
% 
% (d) A partir da resposta ao impulso dos filtros do item c), determinar os
% coeficientes do filtro FIR, justificando a escolha do número de
% coeficientes. Avaliar a resposta em frequência do filtro empregando as
% janelas Retangular e de Hamming
% 
% Observação: Faça o projeto de cada filtro (passa-baixas, passa-faixa e
% passa-altas) como uma questão diferente, ou seja: a questão 1 será o
% projeto do filtro passa-baixas de Butterworth, bem como sua discretização
% para um filtro IIR e a obtenção de um filtro FIR a partir do mesmo. A
% questão 2 será o equivalente para o filtro passa-faixa e a questão 3 será
% o projeto do filtro passa-altas.
%
% Conclusões: Com este laboratório avaliamos o processo de projeto de
% filtros, neste caso de filtro passa baixas. Determinamos a ordem e a
% frequência de corte e com elas montamos a função de tranferência do
% filtro. Utilizando o diagrama de bode nota-se que o filtro atende as
% especificações exigidas, o que valida o processo de projetar o filtro
% para esta situação.
% Em seguida discretizamos o filtro usando a transformação bilinear com o
% período de amostragem do arquivo .wav a ser filtrado. Desta forma
% obtivemos o filtro IIR.
% Com este filtro IIR filtramos o sinal e analisamos o arquivo
% resultando. O som resultante ficou com aspecto "abafado", especialmente
% nas vozes, e volume muito abaixo do original.
% Em seguida, através da resposta impulsiva determinamos os coeficientes
% dos filtros FIR de janela retangular e Hamming, multiplicando a resposta
% impulsiva pela respectiva janela.
clear all; %limpa todas as variáveis
close all; %fecha todas as janelas
% Passa-baixas
% a)
% O projeto para |H(jw)| e para |H(jw)|^2 gera o mesmo filtro
wc=2990; %frequência de corte
numpb=[wc^4];
denpb=[1 2.6131*wc 3.4142*(wc^2) 2.6131*(wc^3) wc^4];
pb=tf(numpb,denpb); %cria a função de transferência
figure(1); %cria a janela de figura 1
bode(pb); %plota o diagrama de bode
title('Passa-Baixas'); %insere título no gráfico
grid; %insere grid no gráfico
figure(2); %cria a janela de figura 2
pzmap(pb); %plota o diagrama de polos e zeros
% Observa-se no diagrama de Bode, que para 300 Hz (1884.96 rad/s) o
% ganho é de -0.0839 dB, que é menor que a variação máxima permitida na 
% faixa de passagem. E, para 750 Hz (4712.4 rad/s), o ganho é de -16 dB,
% menor que o máximo ganho permitido na faixa de rejeição.
% b)
 %Fs é a frequência de amostragem
[audio,Fs]=wavread('bigbang.wav'); %audioread lê o arquivo de áudio 
Ts=1/Fs; %Ts é o período de amostragem
% Discretização do filtro
pbd=c2d(pb,Ts,'tustin'); %c2d discretiza o filtro com um período Ts através do método de Tustin
% c)
% Reprodução do áudio
[numpbd,denpbd]=tfdata(pbd,'v'); %tfdata retorna o numerador e o denominador de pbd em forma de vetor linha ('v')
audiopb=filter(numpbd,denpbd,audio); %filtra o áudio
sound(audiopb,Fs); %reproduz o áudio com a frequência Fs
% Resposta ao impulso
[ripb]=impulse(pbd); %impulse retorna a resposta ao impulso
figure(3); %abre a janela de figura 3
stem(ripb); %plota discreto
title('Resposta ao Impulso - Passa-Baixas'); %insere título
grid; %insere grid no gráfico
% d)
M=180; %número de coeficientes
wh=hamming(M); %define uma janela de hamming com M coeficientes
hb_hamm=ripb(1:M).*wh; %aplica a janela de hamming
wr=rectwin(M); %define uma janela retangular com M coeficientes
hb_ret=ripb(1:M).*wr; %aplica a janela retangular
figure(4); %abre a janela de figura 4
freqz(hb_hamm,Fs,1:10^-2:5e3,Fs); %plota a resposta em frequência após ser empregada a janela de hamming
title('Janela de Hamming'); %insere título no gráfico
figure(5); %abre a janela de figura 5
freqz(hb_ret,Fs,1:10^-2:5e3,Fs); %plota a resposta em frequência após ser empregada a janela retangular
title('Janela Retangular'); %insere título no gráfico
lab6_q2_246796_230340.m
% UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
%
ESCOLA DE ENGENHARIA
% SISTEMAS E SINAIS - ENG04006
%
% Laboratório 6
%
% Alunos: Alisson Claudino de Jesus (246796) e Bernardo Brandão Pandolfo(230340)
% Turma: C
%
% Um aluno resolveu montar seu próprio conjunto de som em casa.
% Para isso, comprou na Alberto Bins 3 alto-falantes diferentes, sendo um
% deles para frequências baixas (f<500Hz), um para frequências médias
% (500<f<5000Hz) e outro para frequências altas (f>5kHz). A fim de obter-se
% uma entrada adequada para cada um deles, este aluno resolveu projetar 3
% filtros de Butterworth (um passa-baixas, um passa-faixa e um passa-altas)
% e verificar o resultado final de seu projeto através do Matlab. As
% especificações de cada um dos filtros são dadas na Tabela 1 (apresentada
% no roteiro por escrito do laboratório) e estão relacionadas à magnitude em
% dB apresentada pelo filtro em cada faixa de frequência. A partir das
% especificações abaixo e do arquivo .wav disponível na página da disciplina
% pede-se:
% 
% (a) Projetar os filtros analógicos que atendam às 3 especificações da
% Tabela 1 (constante na folha do laboratório), mostrando passo-a-passo como
% esse projeto foi feito (escolha da ordem do filtro, função de 
% transferência, etc). Fazer o projeto utilizando a formulação para 
% |H(jw)|², conforme apresentado na Figura 1 (constante na folha do 
% laboratório), e para |H(jw)|, conforme apresentado na Figura 2 (constante 
% na folha do laboratório por escrito). Apresentar o diagrama de polos e 
% zeros e a resposta em frequência de cada um dos filtros, avaliando se os 
% filtros projetados atendem os requisitos especificados;
% 
% (b) Discretizar a função de transferência dos filtros utilizando a
% aproximação de Tustin e o comando c2d. O período de amostragem deve ser o
% inverso da frequência em que o sinal de áudio foi gravado (funções wavread
% e wavplay);
% 
% (c) Passar o sinal de áudio pelos 3 filtros digitais (função filter).
% Escutar os 3 sinais resultantes e o sinal combinado utilizando a função
% sound. Comentar o resultado obtido.
% 
% (d) A partir da resposta ao impulso dos filtros do item c), determinar os
% coeficientes do filtro FIR, justificando a escolha do número de
% coeficientes. Avaliar a resposta em frequência do filtro empregando as
% janelas Retangular e de Hamming
% 
% Observação: Faça o projeto de cada filtro (passa-baixas, passa-faixa e
% passa-altas) como uma questão diferente, ou seja: a questão 1 será o
% projeto do filtro passa-baixas de Butterworth, bem como sua discretização
% para um filtro IIR e a obtenção de um filtro FIR a partir do mesmo. A
% questão 2 será o equivalente para o filtro passa-faixa e a questão 3 será
% o projeto do filtro passa-altas.
%
% Conclusões: Com este laboratório avaliamos o processo de projeto de
% filtros, neste caso de filtro passa-faixa. Determinamos a ordem e a
% frequência de corte dos filtros passa baixa e passa altas que compõem o 
% passa faixa e e com elas montamos a função de tranferência do
% filtro. Utilizando o diagrama de bode nota-se que o filtro atende as
% especificações exigidas, o que valida o processo de projetar o filtro
% para esta situação.
% Em seguida discretizamos o filtro usando a transformação bilinear com o
% período de amostragem do arquivo .wav a ser filtrado. Desta forma
% obtivemos o filtro IIR.
% Com este filtro IIR filtramos o sinal e analisamos o arquivo
% resultando. O som resultante consistiu principalmente de vozes, o que
% faz sentido tendo em mente que as frequências de passagem do filtro 
% correspondem à faixa de frequência da voz humana.
% Em seguida, através da resposta impulsiva determinamos os coeficientes
% dos filtros FIR de janela retangular e Hamming, multiplicando a resposta
% impulsiva pela respectiva janela.
clear all; %limpa todas as variáveis
close all; %fecha todas as janelas
% Passa-faixas
% a)
% O projeto para |H(jw)| e para |H(jw)|^2 gera o mesmo filtro
wcpb=29930;
numpb=[wcpb^4];
denpb=[1 2.6131*wcpb 3.4142*(wcpb^2) 2.6131*(wcpb^3) wcpb^4];
pb=tf(numpb,denpb); %cria a função de transferência
wcpa=2970;
numpa=[1 0 0 0 0];
denpa=[1 2.6131*wcpa 3.4142*(wcpa^2) 2.6131*(wcpa^3) wcpa^4];
pa=tf(numpa,denpa); %cria a função de transferência
% A função de transferência do passa-faixas é a multiplicação do PB e do PA
pf=pa.*pb; 
figure(1); %cria a janela de figura 1
bode(pf); %plota o diagrama de bode
title('Passa-Faixa'); %insere título no gráfico
grid; %insere grid no gráfico
figure(2); %cria a janela de figura 1
pzmap(pf); %plota o diagrama de polos e zeros
grid; %insere grid no gráfico
% Observa-se no diagrama de Bode, que para 300 Hz (1884.96 rad/s) e 7.5 
% KHz (47123.9 rad/s) o ganho é menor que -13.01 dB, que é a variação
% máxima permitida na faixa de passagem. E, para 750 Hz (4712.4 rad/s)
% o ganho é de -0.0733. Para 3 KHZ (1884.96 rad/s) o ganho é de -0.0828 dB,
% valores menoresque o máximo ganho permitido na faixa de reijeição.
% b)
 %Fs é a frequência de amostragem
[audio,Fs]=wavread('bigbang.wav'); %audioread lê o arquivo de áudio 
Ts=1/Fs; %Ts é o período de amostragem
% Discretização do filtro
pfd=c2d(pf,Ts,'tustin'); %c2d discretiza o filtro com um período Ts através do método de Tustin
% c)
% Reprodução do áudio
[numpfd,denpfd]=tfdata(pfd,'v'); %tfdata retorna o numerador e o denominador de pbd em forma de vetor linha ('v')
audiopf=filter(numpfd,denpfd,audio); %filtra o áudio
sound(audiopf,Fs); %reproduz o áudio com a frequência Fs
% Resposta ao impulso
[ripf]=impulse(pfd); %impulse retorna a resposta ao impulso
figure(3); %abre a janela de figura 3
stem(ripf); %plota discreto
title('Resposta ao Impulso - Passa-Faixa'); %insere título
grid; %insere grid no gráfico
% d)
M=110; %número de coeficientes
wh=hamming(M); %define uma janela de hamming com M coeficientes
hf_hamm=ripf(1:M).*wh; %aplica a janela de hamming
wr=rectwin(M); %define uma janela retangular com M coeficientes
hf_ret=ripf(1:M).*wr; %aplica a janela retangular
figure(4); %abre a janela de figura 4
freqz(hf_hamm,Fs,1:10^-2:7e3,Fs); %plota a resposta em frequência após ser empregada a janela de hamming
title('Janela de Hamming');
%insere título no gráfico
figure(5); %abre a janela de figura 5
freqz(hf_ret,Fs,1:10^-2:7e3,Fs); %plota a resposta em frequência após ser empregada a janela retangular
title('Janela Retangular'); %insere título no gráfico
figure(6); %abre a janela de figura 6
tf_hamm=Ts*tf(hf_hamm',[1 zeros(1,M-1)],Ts); %define a função transferência discreta do filtro
bode(tf_hamm); %plota o diagrama de bode
legend('Janela de Hamming'); %insere legenda
grid; %insere grid
figure(7); %abre a janela de figura 7
tf_ret=Ts*tf(hf_ret',[1 zeros(1,M-1)],Ts); %define a função transferência discreta do filtro
bode(tf_ret); %plota o diagrama de bode
legend('Janela Retangular'); %insere legenda
grid; %insere grid
lab6_q3_246796_230340.m
% UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
% ESCOLA DE ENGENHARIA
% SISTEMAS E SINAIS - ENG04006
%
% Laboratório 6
%
% Alunos: Alisson Claudino de Jesus (246796) e Bernardo Brandão Pandolfo(230340)
% Turma: C
%
% Um aluno resolveu montar seu próprio conjunto de som em casa.
% Para isso, comprou na Alberto Bins 3 alto-falantes diferentes, sendo um
% deles para frequências baixas (f<500Hz), um para frequências médias
% (500<f<5000Hz) e outro para frequências altas (f>5kHz). A fim de obter-se
% uma entrada adequada para cada um deles, este aluno resolveu projetar 3
% filtros de Butterworth (um passa-baixas, um passa-faixa e um passa-altas)
% e verificar o resultado final de seu projeto através do Matlab. As
% especificações de cada um dos filtros são dadas na Tabela 1 (apresentada
% no roteiro por escrito do laboratório) e estão relacionadas à magnitude em
% dB apresentada pelo filtro em cada faixa de frequência. A partir das
% especificações abaixo e do arquivo .wav disponível na página da disciplina
% pede-se:
% 
% (a) Projetar os filtros analógicos que atendam às 3 especificações da
% Tabela 1 (constante na folha do laboratório), mostrando passo-a-passo como
% esse projeto foi feito (escolha da ordem do filtro, função de 
% transferência, etc). Fazer o projeto utilizando a formulação para 
% |H(jw)|², conforme apresentado na Figura 1 (constante na folha do 
% laboratório), e para |H(jw)|, conforme apresentado na Figura 2 (constante 
% na folha do laboratório por escrito). Apresentar o diagrama de polos e 
% zeros e a resposta em frequência de cada um dos filtros, avaliando se os 
% filtros projetados atendem os requisitos especificados;
% 
% (b) Discretizar a função de transferência dos filtros utilizando a
% aproximação de Tustin e o comando c2d. O período de amostragem deve ser o
% inverso da frequência em que o sinal de áudio foi gravado (funções wavread
% e wavplay);
% 
% (c) Passar o sinal de áudio pelos 3 filtros digitais (função filter).
% Escutar os 3 sinais resultantes e o sinal combinado utilizando a função
% sound. Comentar o resultado obtido.
% 
% (d) A partir da resposta ao impulso dos filtros do item c), determinar os
% coeficientes do filtro FIR, justificando a escolha do número de
% coeficientes. Avaliar a resposta em frequência do filtro empregando as
% janelas Retangular e de Hamming
% 
% Observação: Faça o projeto de cada filtro (passa-baixas, passa-faixa e
% passa-altas) como uma questão diferente, ou seja: a questão 1 será o
% projeto do filtro passa-baixas de Butterworth, bem como sua discretização
% para um filtro IIR e a obtenção de um filtro FIR a partir do mesmo. A
% questão 2 será o equivalente para o filtro passa-faixa e a questão 3 será
% o projeto do filtro passa-altas.
%
% Conclusão: Neste laboratório analisamos os diferentes tipos de filtros. No
% caso da presente questão, o filtro Passa-Altas. Primeiramente calculamos a
% ordem do filtro e a frequência de corte adequada. Através da tabela,
% montamos o filtro de Butterworth correspondente e avaliamos o seu diagrama
% de Bode, mostrando que os nosso cálculos estavam corretos e coerentes com
% as especificações definidas. 
% Após, fizemos a transformação bilinear, ou 'tustin', para obter o 
% filtro IIR e a função de transferência discreta, utilizando o período de 
% amostragem que foi utilizado na gravação do áudio.Passamos a mídia por 
% este filtro e o escutamos, vendo que o som saiu com um aspecto mais 
% 'baixo', ou atenuado, mostrando que o filtro só deixava
% passar as altas frequências do áudio, no entanto ainda podemos idetificar
% qual a música que estava tocando. 
% Em seguida, através da resposta impulsiva determinamos os coeficientes
% dos filtros FIR de janela retangular e Hamming, multiplicando a resposta
% impulsiva pela respectiva janela.
clear all; %limpa todas as variáveis
close all; %fecha todas as janelas
% Passa-altas
% a)
% O projeto para |H(jw)| e para |H(jw)|^2 gera o mesmo filtro
wc=29680; %frequência de corte
numpa= [1 0 0 0];
denpa=[1 2*wc 2*(wc^2) wc^3];
pa=tf(numpa,denpa); %cria a função de transferência
figure(1); %cria a janela de figura 1
bode(pa); %plota o diagrama de bode
title('Passa-Altas'); %insere título no gráfico
grid; %insere grid no gráfico
figure(2); %cria a janela de figura 2
pzmap(pa); %plota o diagrama de polos e zeros
grid; %insere grid no gráfico
% Observa-se no diagrama de Bode, que para 3 KHz (18849.6 rad/s) o
% ganho é de -12.5 dB, que é menor que a variação máxima permitida na 
% faixa de passagem. E, para 7.5 KHz (47123.9 rad/s), o ganho é de -0.269 
% dB, menor que o máximo ganho permitido na faixa de reijeição.
% b)
 %Fs é a frequência de amostragem
[audio,Fs]=wavread('bigbang.wav'); %audioread lê o arquivo de áudio 
Ts=1/Fs; %Ts é o período de amostragem
% Discretização do filtro
pad=c2d(pa,Ts,'tustin'); %c2d discretiza o filtro com um período Ts através do método de Tustin
% c)
% Reprodução do áudio
[numpad,denpad]=tfdata(pad,'v'); %tfdata retorna o numerador e o denominador de pbd em forma de vetor linha ('v')
audiopa=filter(numpad,denpad,audio); %filtra o áudio
sound(audiopa,Fs); %reproduz o áudio com a frequência Fs
% Resposta ao impulso
[ripa]=impulse(pad); %impulse retorna a resposta ao impulso
figure(3); %abre a janela de figura 2
stem(ripa);
%plota discreto
title('Resposta ao Impulso - Passa-Altas'); %insere título
grid; %insere grid no gráfico
% d)
M=24; %número de coeficientes
wh=hamming(M); %define uma janela de hamming com M coeficientes
ha_hamm=ripa(1:M).*wh; %aplica a janela de hamming
wr=rectwin(M); %define uma janela retangular com M coeficientes
ha_ret=ripa(1:M).*wr; %aplica a janela retangular
figure(4); %abre a janela de figura 4
freqz(ha_hamm,Fs,1:10^-2:8e3,Fs); %plota a resposta em frequência após ser empregada a janela de hamming
title('Janela de Hamming'); %insere título no gráfico
figure(5); %abre a janela de figura 5
freqz(ha_ret,Fs,1:10^-2:8e3,Fs); %plota a resposta em frequência após ser empregada a janela retangular
title('Janela Retangular'); %insere título no gráfico
figure(6); %abre a janela de figura 6
tf_hamm=Ts*tf(ha_hamm',[1 zeros(1,M-1)],Ts); %define a função transferência discreta do filtro
bode(tf_hamm); %plota o diagrama de bode
legend('Janela de Hamming'); %insere legenda
grid; %insere grid
figure(7); %abre a janela de figura 7
tf_ret=Ts*tf(ha_ret',[1 zeros(1,M-1)],Ts); %define a função transferência discreta do filtro
bode(tf_ret); %plota o diagrama de bode
legend('Janela Retangular'); %insere legenda
grid; %insere grid
lab6_q4_246796_230340.m
% UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
% ESCOLA DE ENGENHARIA
% SISTEMAS E SINAIS - ENG04006
%
% Laboratório 6
%
% Alunos: Alisson Claudino de Jesus (246796) e Bernardo Brandão Pandolfo(230340)
% Turma: C
%
% Um aluno resolveu montar seu próprio conjunto de som em casa.
% Para isso, comprou na Alberto Bins 3 alto-falantes diferentes, sendo um
% deles para frequências baixas (f<500Hz), um para frequências médias
% (500<f<5000Hz) e outro para frequências altas (f>5kHz). A fim de obter-se
% uma entrada adequada para cada um deles, este aluno resolveu projetar 3
% filtros de Butterworth (um passa-baixas, um passa-faixa e um passa-altas)
% e verificar o resultado final de seu projeto através do Matlab. As
% especificações de cada um dos filtros são dadas na Tabela 1 (apresentada
% no roteiro por escrito do laboratório) e estão relacionadas à magnitude em
% dB apresentada pelo filtro em cada faixa de frequência. A partir das
% especificações abaixo e do arquivo .wav disponível na página da disciplina
% pede-se:
% 
% (a) Projetar os filtros analógicos que atendam às 3 especificações da
% Tabela 1 (constante na folha do laboratório), mostrando passo-a-passo como
% esse projeto foi feito (escolha da ordem do filtro, função de 
% transferência, etc). Fazer o projeto utilizando a formulação para 
% |H(jw)|², conforme apresentado na Figura 1 (constante na folha do 
% laboratório), e para |H(jw)|, conforme apresentado na Figura 2 (constante 
% na folha do laboratório por escrito). Apresentar o diagrama de polos e 
% zeros e a resposta em frequência de cada um dos filtros, avaliando se os 
% filtros projetados atendem os requisitos especificados;
% 
% (b) Discretizar a função de transferência dos filtros utilizando a
% aproximação de Tustin e o comando c2d. O período de amostragem deve ser o
% inverso da frequência em que o sinal de áudio foi gravado (funções wavread
% e wavplay);
% 
% (c) Passar o sinal de áudio pelos 3 filtros digitais (função filter).
% Escutar os 3 sinais resultantes e o sinal combinado utilizando a função
% sound. Comentar o resultado obtido.
% 
% (d) A partir da resposta ao impulso dos filtros do item c), determinar os
% coeficientes do filtro FIR, justificando a escolha do número de
% coeficientes. Avaliar a resposta em frequência do filtro empregando as
% janelas Retangular e de Hamming
% 
% Observação: Faça o projeto de cada filtro (passa-baixas, passa-faixa e
% passa-altas) como uma questão diferente, ou seja: a questão 1 será o
% projeto do filtro passa-baixas de Butterworth, bem como sua discretização
% para um filtro IIR e a obtenção de um filtro FIR a partir do mesmo. A
% questão 2 será o equivalente para o filtro passa-faixa e a questão 3 será
% o projeto do filtro passa-altas. 
clear all; %limpa todas as variáveis
close all; %fecha todas as janelas
% Passa-baixas
wcb= 2990;
numpb=[wcb^4];
denpb=[1 2.6131*wcb 3.4142*(wcb^2) 2.6131*(wcb^3) wcb^4];
pb=tf(numpb,denpb); %função de transferência do passa-baixas
% Passa-faixas
wcpb=29930;
numpb=[wcpb^4];
denpb=[1 2.6131*wcpb 3.4142*(wcpb^2) 2.6131*(wcpb^3) wcpb^4];
pfb=tf(numpb,denpb); %cria a função de transferência PB
wcpa=2970;
numpa=[1 0 0 0 0];
denpa=[1 2.6131*wcpa 3.4142*(wcpa^2) 2.6131*(wcpa^3) wcpa^4];
pfa=tf(numpa,denpa); %cria a função de transferência PA
pf=pfa.*pfb; % A função de transferência do passa-faixas é a multiplicação do PB e do PA
% Passa-altas
wc=29680; %frequência de corte
numpa= [1 0 0 0];
denpa=[1 2*wc 2*(wc^2) wc^3];
pa=tf(numpa,denpa); %cria a função de transferência do passa-altas
% Leitura do áudio
[audio,Fs]=wavread('bigbang.wav'); %audioread lê o arquivo de áudio 
Ts=1/Fs; % Ts é o período de amostragem
% Discretização dos filtros
pbd=c2d(pb,Ts,'tustin'); %c2d discretiza o filtro com um período Ts através do método de Tustin
pfd=c2d(pf,Ts,'tustin');
pad=c2d(pa,Ts,'tustin');
[numpbd,denpbd]=tfdata(pbd,'v'); %tfdata retorna o numerador e o denominador de pbd em forma de vetor linha ('v')
[numpfd,denpfd]=tfdata(pfd,'v'); 
[numpad,denpad]=tfdata(pad,'v'); 
audiopb=filter(numpbd,denpbd,audio); %filtra o áudio
audiopf=filter(numpfd,denpfd,audio); 
audiopa=filter(numpad,denpad,audio); 
% Reprodução do áudio
audiofinal=audiopb+audiopf+audiopa;
sound(audiofinal,Fs);

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais