You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
6. juni 2005<br />
<strong>Digitale</strong> <strong>filtre</strong><br />
DelayLine er implementeret som en cirkulær buffer, se Bilag 5 på side 51.<br />
Desuden er filteret testet med samme metode som beskrevet ovenfor med både<br />
impulsrespons og unit steprespons. Koden til generering af nedenstående signal<br />
ses i Bilag 4 på side 50.<br />
Kode til simulering af filteret.<br />
#include "ccblkfn.h"<br />
//#include "filter.c"<br />
#include <br />
//#include "signal.h"<br />
#define N_signal 481<br />
const fract16 xs[] = {0x6666, 0x1A81, 0xA752, ..., 0xA752, 0x1A81, 0x6666};<br />
#define N_ba 51<br />
const fract16 filterA[] = 0x000D, 0x0024, 0x0043, ..., 0x0043, 0x0024, 0x000D};<br />
fract16 delayLineA[N_ba];<br />
int delayOffsetA = 0;<br />
// arrays to keep simulated data output<br />
fract32 impulseRespons[N_ba];<br />
fract32 stepRespons[N_ba];<br />
fract32 ys[N_signal];<br />
void main(void) {<br />
int i;<br />
}<br />
//simulering af foldning med 10kHz cosinus<br />
/////////////////////////////////<br />
delayOffsetA = 0;<br />
for (i=0; i < N_signal; i++ ) {<br />
delayLineA[delayOffsetA] = xs[i];<br />
ys[i] = runFIR(delayLineA, filterA, N_ba, delayOffsetA);<br />
delayOffsetA = (delayOffsetA + 1 ) % N_ba;<br />
}<br />
4.8 Filter evaluering<br />
For at få <strong>filtre</strong>ne evaluerede bruges en Gain-Phase analysator. Den sætes til at<br />
sweep’e hele frekvensområdet indenfor Nyquist intervallet, hvorefter den ploter<br />
et amplitudespektrum af <strong>filtre</strong>nes udgange.<br />
Først måles en talk-through, således at diverse variationer i hardware m.m. kan<br />
konkluderes, så værdierne kan verificeres at være i overensstemmelse med<br />
kravspecifikationen. Figur 30 nedenfor viser plotet af <strong>filtre</strong>t, der skal udskille x1,<br />
ITVP4 – Gruppe 5 Side 33 af 53