S
snoopfan
Guest
Kan iemand geef me een oplossing van het volgende probleem?
Bedankt!
Uitvoering van een filter in C
-------------------------------------------
1.) Realiseer een transversaal filter routine zodanig dat voor elke input een
uitgang wordt gemaakt.De lengte van de filter wordt gebruikt om te worden verstrekt door
# define ....Wanneer een nieuw monster wordt ingevoerd, geen verschuiving operatie
worden uitgevoerd.Integendeel, een cyclisch gericht buffer gebied moeten worden
geprogrammeerd waar een "pointer" wordt verplaatst naar een volgende locatie voor een
nieuwe ingang is opgeslagen.Navenant, de oudste waarde in de buffer
verloren gaat.
De routine moet verkrijgen van de filter coëfficiënten bij het aanroepen van het de
eerste keer (gecontroleerd door statische variabelen).Deze coëfficiënten moeten
worden verstrekt als de kolommen in een bestand.
Bel deze routine met een van de belangrijkste programma om ervoor te zorgen dat een gekozen impuls
reactie wordt uitgevoerd,
dat wil zeggen, voer hij met een 1 gevolgd door nullen en
bewaar de resulterende volgorde in een bestand.
2.) Gebruik de Gaussian generator om input monsters.Bepaal de
gemiddeld vermogen voor en na het filter.Wat is de relatie
tussen input en output vermogen.Leg uit!
---------------------- 2de deel
3.) Uitbreiden van het filter routine om recursieve filters.
4.) Bereken filter coëfficiënten in Matlab filter gereedschap "fdatool".Ontwerpen
twee filters van orde 10:
a) FIR lineaire fase met behulp van een Hamming venster
b) IIR Chebyshev type II filter
Een van de juiste knoppen "[b, o.]" laat toe om de output van de filter coëfficiënten.
Gebruik Bewerken - Converteren naar interne afdeling voor het verkrijgen van de coëfficiënten van een enkele
filter.Anders zal worden opgesplitst in tweede orde-componenten.Schrijven
de coëfficiënten in een ASCII-bestand leesbaar door uw C-routine.Voor
het filter ontwerpen gaan uit van een sampling rate van 4,416 MHz en een "cut-off
frequentie "(andere betekenis!) f_c / f_pass = 1,104 MHz. Teken de
amplitude en fase reacties.Wat zijn de kwalitatieve verschillen
tussen beide modellen?
5.) Doe je filter routine in C en bereken FFTs en elke vierkante
component.Gemiddelde van deze componenten voldoende voor het verkrijgen van een geschikte
periodogram.Teken de periodograms voor beide filters en denken,
hoe de schaalvergroting moet worden, indien de input spanning van uw filter zijn
dacht te worden in Volt.De referentie-impedantie is 50 Ohm.Een standaard
eenheid voor een stroom-dichtheid spectrum dBm / Hz.Hoe kunnen we een dergelijke
schaling van de dimensieloze periodogram.
De blocklength van de FFTs moet 512 * 2 = 1024.
Voor dit voorbeeld
hebben we gebruik gemaakt van de bandbreedte van ADSL en twee keer
overbemonstering.(De ADSL bemonsteringsfrequentie is 2,208 MHz.)
Stuur dan het definitieve programma, de percelen van het filter reacties
(amplitude / fase) en de periodograms (op schaal).Geef korte antwoorden
voor de gegeven vragen.
(Merk op dat de "four1.c" FFT routine van Cijfervoorbeeld Recepten hadden een bug
als gevolg van conversie van Fortran te C. De vector van de tijd en DFT domein
variabelen moet worden gedefinieerd wat langer in de aanroepende routine --
minstens een voor zover ik me herinner.)
Bedankt!
Uitvoering van een filter in C
-------------------------------------------
1.) Realiseer een transversaal filter routine zodanig dat voor elke input een
uitgang wordt gemaakt.De lengte van de filter wordt gebruikt om te worden verstrekt door
# define ....Wanneer een nieuw monster wordt ingevoerd, geen verschuiving operatie
worden uitgevoerd.Integendeel, een cyclisch gericht buffer gebied moeten worden
geprogrammeerd waar een "pointer" wordt verplaatst naar een volgende locatie voor een
nieuwe ingang is opgeslagen.Navenant, de oudste waarde in de buffer
verloren gaat.
De routine moet verkrijgen van de filter coëfficiënten bij het aanroepen van het de
eerste keer (gecontroleerd door statische variabelen).Deze coëfficiënten moeten
worden verstrekt als de kolommen in een bestand.
Bel deze routine met een van de belangrijkste programma om ervoor te zorgen dat een gekozen impuls
reactie wordt uitgevoerd,
dat wil zeggen, voer hij met een 1 gevolgd door nullen en
bewaar de resulterende volgorde in een bestand.
2.) Gebruik de Gaussian generator om input monsters.Bepaal de
gemiddeld vermogen voor en na het filter.Wat is de relatie
tussen input en output vermogen.Leg uit!
---------------------- 2de deel
3.) Uitbreiden van het filter routine om recursieve filters.
4.) Bereken filter coëfficiënten in Matlab filter gereedschap "fdatool".Ontwerpen
twee filters van orde 10:
a) FIR lineaire fase met behulp van een Hamming venster
b) IIR Chebyshev type II filter
Een van de juiste knoppen "[b, o.]" laat toe om de output van de filter coëfficiënten.
Gebruik Bewerken - Converteren naar interne afdeling voor het verkrijgen van de coëfficiënten van een enkele
filter.Anders zal worden opgesplitst in tweede orde-componenten.Schrijven
de coëfficiënten in een ASCII-bestand leesbaar door uw C-routine.Voor
het filter ontwerpen gaan uit van een sampling rate van 4,416 MHz en een "cut-off
frequentie "(andere betekenis!) f_c / f_pass = 1,104 MHz. Teken de
amplitude en fase reacties.Wat zijn de kwalitatieve verschillen
tussen beide modellen?
5.) Doe je filter routine in C en bereken FFTs en elke vierkante
component.Gemiddelde van deze componenten voldoende voor het verkrijgen van een geschikte
periodogram.Teken de periodograms voor beide filters en denken,
hoe de schaalvergroting moet worden, indien de input spanning van uw filter zijn
dacht te worden in Volt.De referentie-impedantie is 50 Ohm.Een standaard
eenheid voor een stroom-dichtheid spectrum dBm / Hz.Hoe kunnen we een dergelijke
schaling van de dimensieloze periodogram.
De blocklength van de FFTs moet 512 * 2 = 1024.
Voor dit voorbeeld
hebben we gebruik gemaakt van de bandbreedte van ADSL en twee keer
overbemonstering.(De ADSL bemonsteringsfrequentie is 2,208 MHz.)
Stuur dan het definitieve programma, de percelen van het filter reacties
(amplitude / fase) en de periodograms (op schaal).Geef korte antwoorden
voor de gegeven vragen.
(Merk op dat de "four1.c" FFT routine van Cijfervoorbeeld Recepten hadden een bug
als gevolg van conversie van Fortran te C. De vector van de tijd en DFT domein
variabelen moet worden gedefinieerd wat langer in de aanroepende routine --
minstens een voor zover ik me herinner.)