Filter reponse meten - Hoe?

demian

Ojee
Lid sinds
20 januari 2003
Berichten
17.889
Ik wil meten hoe de filter response is van verschilende analoge filters.
Is dat een kwestie van een spectrum analyzer gebruiken of kan dit op een andere manier beter?
 
Een FFT spectrum analyser is natuurlijk ook vet cool. Wel dure spulletjes nodig. :D
 
Ik wil meten hoe de filter response is van verschilende analoge filters.
Is dat een kwestie van een spectrum analyzer gebruiken of kan dit op een andere manier beter?

Zet een puls op de ingang. De output is de pulsrespons, een (meestal heel kort) geluidje dat de complete beschrijving van het filtergedrag is, uitgedrukt als tijdsignaal (hieronder in zwart).
Dat tijdsignaal kun je via de FFT transformeren tot de frequentierespons: het amplitude- en fasegedrag van het filter. Dit is de complete beschrijving van het filtergedrag, uitgedrukt als frequentiesignaal-paar. Meestal ben je vooral geïnteresseerd in de amplituderespons (hieronder in rood).

WaveWizard:
(1) Maak een wav-bestand van de pulsrespons, noem het "pulsrespons.wav" en zet dat in dezelfde map als WaveWizard.
(2) Open WaveWizard.
(3) Menu bestand: Open preset "Preset Grafiek Amplitude Respons.txt"
(4) Klik op Start.

In het grafievenster verschijnen de grafieken van pulsrespons (zwart) en amplituderespons (rood).

Als voorbeeld hier de scherm-output van een resonerend filter. Resonantiefrequentie 400 Hz, bandbreedte 30 Hz.

attachment.php


Code:
!*********************************
! Preset Grafiek Amplitude Respons
!*********************************

Declareer Amp; c; Nfft; domein; duur

duur   = 5*Fs      ! respons duur 5 sec
Amp    = 0,3       ! regelt y-vergroting grafiek
Nfft   = 2^17      ! aantal frequenties FFT
c      = Nfft/Fs
x0     = 0         ! laagste freq (in Hz)
x1     = 1000      ! hoogste freq (in Hz)
domein = x1 - x0

! Open WAV
!   WAV naam   pulsrespons.wav
!   vanaf      0
!   duur       ?
!   buffer     S1[0]
!
! Print WAV_lengte
! duur = WAV_lengte

Resofilter
  Input                               puls
  Output                              S1[0]
  Gain                                1
  ResoFreq                            400
  bandbreedte                         30
  duur                                duur
  additief ('j' of 'n')               n
  filtercoef's in Memo ('j' of 'n')   j

FFT
  In Re                S1[0]
  In Im                nvt
  Out Re               F3[0]
  Out Im               F4[0]
  Amp                  F1[0]
  Fase                 F2[0]
  Venster (in smp)     Nfft
  Hann? ('j' of 'n')   n

Wis Grafiekvenster

!-------------------------------------------------------------
! pulsrespons
!-------------------------------------------------------------
Grafiekpapier
  Linkerbovenhoek x; y (pix)   0;00
  Breedte; Hoogte (pix)        1200; 600
  Domein x1; x2                0; 2500
  Bereik y1; y2                -1; 1
  Rooster x; y                 0; 0,25
Pen
  Kleur   zwart
  Dikte   3
  Modus   continu
Amplitudo, Maximum, Minimum, Som, RMS
  Buffer   S1[0]
  Aantal   2500
Grafiek van functie met 1 variabele
  f[x]     S1[x]/Amplitudo
  Domein   0; 2500
  Modus    continu
  Stap     auto

!-------------------------------------------------------------
! amplituderespons
!-------------------------------------------------------------
Grafiekpapier
  Linkerbovenhoek x; y (pix)   0;650
  Breedte; Hoogte (pix)        1200; 600
  Domein x1; x2                x0; x1
  Bereik y1; y2                0; 10
  Rooster x; y                 domein/10; 1
Pen
  Kleur   rood
  Dikte   4
  Modus   continu
Grafiek van functie met 1 variabele
  f[x]     Amp*F1[c*x]
  Domein   0; x1
  Modus    continu
  Stap     auto

Bitmap opslaan
  Naam                    Amplitude respons
  nummer                  0
  X1; Y1 (links boven)    0;0
  X2; Y2 (rechts boven)   1210; 1250
 

Attachments

  • Amplitude respons.jpg
    Amplitude respons.jpg
    40,1 KB · Bekeken: 134
Back
Top