Você está na página 1de 26

IE 612

Relatrio experincia 9.

Laboratrio de Processamento Digital de Sinais


Prof. Dr. Yuzo Ano Prof. Dr. Arthur Rangel

Alunos:

Francisco Martins Portelinha Junior RA 087967 Yakov Nae RA 098428

Segundo Semestre de 2011.

1. Sumario.
Neste laboratrio nos iremos desenvolver e programar filtros IIR utilizando o mtodo da transformao bilinear , no matlab e implementao deste no EZ kit.

2. Introduo Terica
O mtodo da transformao bilinear um mapeamento algbrico entre o plano s e o plano z feito de forma que todo o eixo imaginrio do plano s (representando as freqncias de tempo contnuo) seja mapeado no crculo de raio unitrio (que representa as freqncias de tempo discreto). Esse mapeamento no pode ser linear, pois o eixo imaginrio tem comprimento infinito, enquanto o crculo de raio unitrio tem comprimento finito. A principal vantagem do mtodo da transformao bilinear que o aliasing evitado, mantendo, assim, as caractersticas da resposta de mdulo da funo de transferncia no tempo contnuo ao gerar a funo de transferncia no tempo discreto. Essa transformao dada por:

A transformao bilinear uma funo racional que mapeia o semiplano s esquerdo no interior do crculo unitrio e mapeia o eixo j (eixo imaginrio) de forma biunvoca sobre a circunferncia do crculo de raio unitrio. Entretanto, a relao entre o eixo j e o crculo unitrio no linear e dada pela funo de deformao de freqncia:

O resultado dessa deformao que a transformao bilinear preservar apenas a resposta de magnitude dos filtros analgicos que tenham resposta ideal constante. Portanto, aconselhvel usar a transformao bilinear apenas em projetos de filtros seletivos em freqncias. O mtodo da transformao bilinear uma forma bastante usada na implementao de filtros digitais recursivos, uma vez que para uma dada especificao de projeto, pode-se tornar oscilaes na banda passante (aliasing) to pequeno em relao a outros mtodos, sem ter que aumentar a ordem do filtro e diminuir a tolerncia na banda de rejeio.

Filtro feito pelo FDA tool:

Magnitude Response (dB)

-20

-40 Magnitude (dB)

-60

-80

-100

-120 0 5 10 Frequency (kHz) 15 20

[zd,pd,kd]=bilinear(z,p,k,fs) Converteapartirdoszeros(z),plos(p)edoganho(k)dosistemaanalgicoparaodiscreto.kdumescalar,fsa frequnciadeamostragemdadaemHz. den=[13.234.234.233.3] den= 1.00003.23004.23004.23003.3000 >>den=[13.234.234.233.231] den= 1.00003.23004.23004.23003.23001.0000 >>[numd,dend]=bilinear(num,den,fs) numd= 1.0e005* 0.02660.13320.26650.26650.13320.0266 dend= 1.00004.68568.78448.23533.86020.7236 printsys(numd,dend,'z') num/den = 0.53922 z^5 + 2.6961 z^4 + 5.3922 z^3 + 5.3922 z^2 + 2.6961 z

+ 0.53922 --------------------------------------------------------------z^5 + 3.8049 z^4 + 5.8772 z^3 + 4.5534 z^2 + 1.7531 z + 0.26649

3. Metodologia
Implementacao dos filtros IIR pelo mtodo da transformao bilinear no matlab (atraves da ferramenta fdatool) e sua implementao no ambiente de desenvolvimento ADSBF 533.

4. Resultados e concluses da experincia

A low-pass Butterworth filter with parameters: - Cutoff frequency: 10 kHz - Order: 6 - Sample frequency: 48 kHz

A low-pass Chebyshev type I filter with parameters: Cutoff frequency: 10000 kHz Order: 6 Factor R = 5 Sample frequency: 48 kHz

Inputs: Butterworth low-pass filter: Waveform shape: sine. Frequencies: 5 kHz, 10 kHz e 11.5 kHz. Utilizando o tool box do Matlab filterbuilder.

Chebyshev low-pass filter: Waveform shape: sine. Frequencies: 5 kHz, 10 kHz e 11.5 kHz.

Variando a estrutura do filtro teremos,

A high-pass Butterworth filter with parameters: Cutoff frequency: 10 kHz Order: 6 Sample frequency: 48 kHz

A high-pass Chebyshev type 1 filter with parameters: Cutoff frequency: 10000 kHz Order: 7 Factor R = 0.5 Sample frequency: 48 kHz

Butterworth high-pass filter: Waveform shape: sine. Frequencies: 9 kHz, 10 kHz e 15 kHz.

Chebyshev high-pass filter: Waveform shape: sine. Frequencies: 9 kHz, 10 kHz e 15 kHz.

A converso de analgico para digital realizada atravs da configurao da porta serial SPORT0 e configurando a Init_Sport_Interrupts(), para garantir a aquisio de dados a transferncia de dados da porta serial para a memoria feita atraves da DMA. As funes que setam a DMA so as Init_DMA() e Enable_DMA_Sport0().A funo de interrupo chamada na porta serial SPORT) a ISR(), que simplesmente transferi o dado recebido num buffer, para o processamento dos dados e depois transferir para a sado do buffer de trasmissao. A aplicao de filtro IIR consiste de trs etapas: um estgio de ganho que fornece um fator de escala para a entrada e duas outras fases so obtidos de acordo com os coeficientes obtidos. Estes coeficientes foram aplicados em "Process_data" e eram diferentes, dependendo das especificaes do filtro. Um filtro IIR aquele que usado para reduzir a magnitude de freqncia fora de uma faixa desejada.A sada para este laboratrio variou de acordo com o qual a interrupo foi desencadeada. PF8 quando foi pressionado, esta desencadeou o filtro passa baixa filtro IIR, o som que se ouviu foi significativamente atenuada fora do intervalo definido pela banda de freqncia (ou seja, passa-baixo iir filtro permitiu freqncias mais baixas para passar pelo filtro) e havia pouca atenuao dentro da faixa . Era o oposto para a alta passar filtro iir; freqncias mais altas foram autorizados a passar com pouca distoro e atenuao, enquanto freqncias mais baixas foram significativamente atenuados. Nesta experincia nos desenvolvemos e programamos filtros IIR no matlab e sua implementao no EZ Kit, uma experincia muito longa e difcil de ser realizada, visualizamos as diferenas entre o os mtodos de transformao bilinear e impulsivo, analisamos os efeitos da preciso finita tanto no mtodo direto e no mtodo em cascata e visualizamos o problema do ciclos, os filtros com transformao bilinear apresentao um

melhor estabilidade, a sua banda de transio menor e h um maior atenuao na banda de transio entretando verificamos uma maior distoro pois esta foi introzida no processo.
Identificaodofenmenocitadonoexemplo6.2.2 Mascaramento em frequncia e mascaramento temporal: Por fim, uma ltima propriedade da audio humana ainda utilizada pelo mtodo o chamado mascaramento auditivo, ou audiabilidadediminudadeumsomdevidopresenadeoutro,podendoesteseremfrequncia ounotempo.Omascaramentoemfrequnciaocorrequandoumsomquenormalmentepoderiaser ouvidomascaradoporoutro,demaiorintensidade,queencontraseemumafrequnciaprxima. Ouseja,olimiardeaudiomodificado(aumentado)naregioprximafrequnciadosomque causa o ocorrncia do mascaramento, sendo que isto se deve limitao da percepo de frequnciasdoouvidohumano.Omascaramentoemfrequnciadependedafrequnciaemqueo sinal se encontra, podendo variar de 100Hz a 4 KHz. Em funo deste comportamento, o que o mtododecompressodoMP3fazidentificarcasosdemascaramentoemfrequnciaedescartar sinais que no sero audveis devido a este fenmeno. Alm do mascaramento em frequncia, temosaindaomascaramentonotempo,sendoqueesteocorrequandoumsomforteprecedido por um mais fraco que encontrase em uma frequncia prxima do primeiro. Se o intervalo de tempo entre os dois for suficientemente pequeno, este som mais fraco no ser percebido pela audio humana. Se um som mascarado aps um som mais forte, temos o chamado ps mascaramento.Nocasodeumsomsermascaradoantesdosommaisforte,temosoquechamamos de prmascaramento. O prmascaramento existe s por um curto momento, cerca de 20ms, enquanto que o psmascaramento tem efeito por at 200ms. O mtodo de compresso do MP3 utilizaseportantodestefenmeno,identificandocasosondeo mesmoocorreedescartandosons que seriam mascarados, o que permite reduzir a informao de udio consideravelmente sem mudanaaudvel. ISR:
EX_INTERRUPT_HANDLER(Sport0_RX_ISR) {// confirm interrupt handling *pDMA1_IRQ_STATUS = 0x0001; //variables declared with function scope unsigned char led1; unsigned char led2;

//if PF8 is pushed LED4 will be turned and and the program calls Low Pass iir filter. What is heard is filtered audio if(first==1) { led1= 0x01;//turn on led4

iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; // iChannel0RightIn = iRxBuffer1[INTERNAL_ADC_R0];

lowfilter();

iTxBuffer1[INTERNAL_DAC_L0] = iChannel0LeftOut; // } iTxBuffer1[INTERNAL_DAC_R0] = iChannel0RightOut;

//if PF9 is pushed LED5 will be turned on and the program calls high Pass iir filter. What is heard is filtered audio if(second==1) { led2= 0x02;//turn on led5 iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; //iChannel0RightIn = iRxBuffer1[INTERNAL_ADC_R0];

highfilter();

iTxBuffer1[INTERNAL_DAC_L0] = iChannel0LeftOut; //iTxBuffer1[INTERNAL_DAC_R0] = iChannel0RightOut; } //if either PF8 or PF9 is pushed again, both LEDs are turned off and what is heard is the original audio. That is, process data is called if(first==0 && second==0) { led1=0x00;//turns off led4 and led5 led2=0x00; iChannel0LeftIn = iRxBuffer1[INTERNAL_ADC_L0]; iChannel0RightIn = iRxBuffer1[INTERNAL_ADC_R0];

// call function that contains user code Process_Data();

// copy processed data from variables into dma output buffer iTxBuffer1[INTERNAL_DAC_L0] = iChannel0LeftOut; iTxBuffer1[INTERNAL_DAC_R0] = iChannel0RightOut;

*pFlashA_PortB_Data= led1|led2; } void Init_DMA(void) { // Set up DMA1 to receive // Map DMA1 to Sport0 RX *pDMA1_PERIPHERAL_MAP = 0x1000;

// Configure DMA1 // 32-bit transfers, Interrupt on completion, Autobuffer mode *pDMA1_CONFIG = WNR | WDSIZE_32 | DI_EN | FLOW_1; // Start address of data buffer *pDMA1_START_ADDR = (void *)iRxBuffer1; // DMA inner loop count *pDMA1_X_COUNT = 4; // Inner loop address increment *pDMA1_X_MODIFY = 4;

// Set up DMA2 to transmit

// Map DMA2 to Sport0 TX *pDMA2_PERIPHERAL_MAP = 0x2000;

// Configure DMA2 // 32-bit transfers, Autobuffer mode *pDMA2_CONFIG = WDSIZE_32 | FLOW_1; // Start address of data buffer *pDMA2_START_ADDR = (void *)iTxBuffer1; // DMA inner loop count *pDMA2_X_COUNT = 4; // Inner loop address increment *pDMA2_X_MODIFY = 4; }

5. Bibliografia
[1] [2] [3] [4] [5] ADSP-BF533 Blackfin Processor Hardware Reference. Blackfin Processor Instruction Set Reference. VisualDSP++ C/C++ Compiler and Library Manual for Blackfin Processors. A. V. Oppenheim and R. W. Schafer, Digital Signal Processing, Prentice-Hall, 1975. L. R. Rabiner and B. Gold, Theory and Application of Digital Signal, Processing, Prentice-Hall, 1975. [6] C. S. Burrus, J. H. McClellan, A. V. Oppenheim, T. W. Parks, R. W. Schafer, H. W. Schuessler, Ejercicios de Tratamiento de la Seal Utilizando el MATLAB V.4, Prentice Hall, 1998. [7] L. R. Rabiner and R.W. Schafer, Digital Processing of Speech Signals, Prentice- Hall, 1978. [8] John G. Proakis and Dimitris G. Manolakis, Introduction to Digital Signal Processing, MacMillian, 1988. [9] Digital Signal Processing Applications Using the ADSP-2100 Family, Vol. 1 and

Vol. 2, Analog Devices, Free Download at:http://www.analog.com [10] ADSP-21000 Family Application Handbook, Vol. 1, Analog Devices, Free Download at: http://www.analog.com

6. Anexos
Nositedoteleducsercolocadoemanexoosprogramasdesenvolvidoemsaladeaulaeosfiltros desenvolvidosnomatlabpelotoolboxfdatool.

Você também pode gostar