Kuidas arvutada MATLAB-is kahe signaali faaside erinevust?


Vastus 1:

Mis on ühist signaalide korral, et faasierinevused oleksid kasulikuks parameetriks uurimisel? Ma eeldan, et vaatleme faasiprofiili sageduse funktsioonina. Üks näide, mis meelde tuleb, on filtri impulssreaktsioonide spektri faaside võrdlus kolme erineva kujunduskriteeriumi jaoks. Öelge minimaalne faas, lineaarne ja maksimaalne faas. Saame kujundada FIR-filtri, millel on täpselt sama Log Magnitude vastus, kuid millel on kolm erinevat faasivastust. Ma teen seda filtri kujundamise õpetamisel ja õpilastele aimu saamiseks, mis on minimaalne faas, mitte lineaarne faas ... maksimaalne on täielik. Kujundan Parks McLellan (Remez) algoritmiga madalpääsufiltri ja voldin siis nulli välisringi nulli tagasi sisemistesse nullidesse, et moodustada minimaalne faasifilter, ja kui see toimib vastupidiselt, voldi sisemine null tagasi väliste nullide moodustamiseks maksimaalne faasifilter. Seejärel kuvatakse kõigi kolme filtri impulssreaktsioon, igaühe spektraalne suurus ja pakkimata faasivastus (joondatud alalisvoolu juures). see näitab selgelt, miks neil on vastavad nimed. Võin saata näite kõigile, kes soovivad matlab-koodi.

fred harris


Vastus 2:

Kasutage [corr.lags] = xcorr; teha ristkorrelatsiooni; leida maksimaalne piigi indeks, [~, ix] = max (korrigeerimine); viivitus = viivitused (ix); See annab erinevuse proovides olevate signaalide vahel. Teisendage radiaanideks (või milleks iganes), lähtudes signaalide perioodist: IF N_sig on proovide arv perioodil:

etapp_deg = 2 * pi * viivitus / N_sig; või 360 * viivitus / N_sig, kui aste on.