Hur filtrera baklänges med analog elektronik?
Hur filtrera baklänges med analog elektronik?
Antar att vi har ett lågpassfilter
\(G(s) = \frac{1}{Ts + 1}\)
där \(T = RC\)
Vi konvertera om denna till en tillståndsmodell:
\(\dot x = Ax + Bu \\ y = Cx + Du\)
Och sedan diskritiserar vi tillståndsmodellen
\(x(k+1) = A_dx(k) + B_du(k) \\ y(k) + C_dx(k) + D_du(k)\)
Nu så säger vi att \(u(k)\) är våran brusiga signal. Då simulerar vi med Euler's metod. Med tanke på att lågpassfiltret är redan i diskret form så kan vi bara iterera den diskreta tillståndsmodellen.
\(x(k+1) = A_dx(k) + B_du(k) \\ y(k) + C_dx(k) + D_du(k)\)
Nu vänder vi på \(y(k)\) och itererar den diskreta tillståndsmodellen igen, fast vi har vänt på \(y(k)\) signalen så sista elementet kommer först.
\(x(k+1) = A_dx(k) + B_dy(-k) \\ u(k) + C_dx(k) + D_du(k)\)
Nu har vi \(u(k)\) som vi istället vänder på och därmed så har vi en filterad signal utan fasförskjutning.
Fråga:
Hur kan man filtrera baklänges med analog elektronik?
\(G(s) = \frac{1}{Ts + 1}\)
där \(T = RC\)
Vi konvertera om denna till en tillståndsmodell:
\(\dot x = Ax + Bu \\ y = Cx + Du\)
Och sedan diskritiserar vi tillståndsmodellen
\(x(k+1) = A_dx(k) + B_du(k) \\ y(k) + C_dx(k) + D_du(k)\)
Nu så säger vi att \(u(k)\) är våran brusiga signal. Då simulerar vi med Euler's metod. Med tanke på att lågpassfiltret är redan i diskret form så kan vi bara iterera den diskreta tillståndsmodellen.
\(x(k+1) = A_dx(k) + B_du(k) \\ y(k) + C_dx(k) + D_du(k)\)
Nu vänder vi på \(y(k)\) och itererar den diskreta tillståndsmodellen igen, fast vi har vänt på \(y(k)\) signalen så sista elementet kommer först.
\(x(k+1) = A_dx(k) + B_dy(-k) \\ u(k) + C_dx(k) + D_du(k)\)
Nu har vi \(u(k)\) som vi istället vänder på och därmed så har vi en filterad signal utan fasförskjutning.
Fråga:
Hur kan man filtrera baklänges med analog elektronik?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Hur filtrera baklänges med analog elektronik?
Man kan inte filtrera i ett kausalt system utan fördröjning.
Re: Hur filtrera baklänges med analog elektronik?
Men filterar man två gånger så minimerar man fördröjningen något.
Re: Hur filtrera baklänges med analog elektronik?
Nej, den blir dubbelt så stor (om du har samma filter), dessutom tillkommer tiden för hela längden av din insignal två gånger, en gång framlänges och en gång baklänges. Om du sedan tittar på resultatet ser det bra ut. Men det går inte att realisera med "vanlig" analog elektronik (utan typ bandspelare och tidsbegränsad insignal eller dyl).
Re: Hur filtrera baklänges med analog elektronik?
Jag har samma filter. Nej, den blir inte dubbelt så stor.
https://www.mathworks.com/help/signal/ref/filtfilt.html
Men då vet jag att det finns ingen analog analogi mellan digital dubbelfiltrering och analog dubbelfiltrering.
https://www.mathworks.com/help/signal/ref/filtfilt.html
Men då vet jag att det finns ingen analog analogi mellan digital dubbelfiltrering och analog dubbelfiltrering.
Re: Hur filtrera baklänges med analog elektronik?
En sekvens av filter kan via faltning (eller multiplikation i frekvensplanet) ses som endast ett filter. Eller hur menar du? Man kan inte få tiden att gå baklänges i ett filter. Har man däremot sparat hela signalen kan man ju göra precis som man vill. Har du använt Matlab kanske du sprungit på filtfilt() som just filtrerar utan fasförskjutning genom att köra ett framåtpass och ett bakåtpass. Problemet blir då att hitta "roten ur" impulssvaret, vilket man kan göra tex via spektrumklyvning.
Re: Hur filtrera baklänges med analog elektronik?
Det är väl en tolkningsfråga (DanielM),
Notera att filtfilt inte heller går att realisera i realtid eftersom den inte är kausal. Den kräver en tidsbegränsad signal som filtreras framlänges och baklänges och ger alltså/därmed de fördröjningar jag skrev i förra inlägget.A filter order that is double the order of the filter specified by b and a.
Re: Hur filtrera baklänges med analog elektronik?
En sådan fördröjning ja. Men jag talar om fördröjning i signalen.
Re: Hur filtrera baklänges med analog elektronik?
Jag tänkte bara om det fanns ett analogt filtfilt filter. Enligt mig så är filtfilt och kalman dom bästa filterna. Jag har inte haft behov utav något annat, trots att jag kör enormt mycket brus i mina signaler.guckrum skrev:En sekvens av filter kan via faltning (eller multiplikation i frekvensplanet) ses som endast ett filter. Eller hur menar du? Man kan inte få tiden att gå baklänges i ett filter. Har man däremot sparat hela signalen kan man ju göra precis som man vill. Har du använt Matlab kanske du sprungit på filtfilt() som just filtrerar utan fasförskjutning genom att köra ett framåtpass och ett bakåtpass. Problemet blir då att hitta "roten ur" impulssvaret, vilket man kan göra tex via spektrumklyvning.
Re: Hur filtrera baklänges med analog elektronik?
Jepp, tyvärr, såvitt vi vet går tiden bara framåt.
Re: Hur filtrera baklänges med analog elektronik?
Problemet i ditt resonemang i startinlägget är väl att du menar att samplen kan komma baklänges. Men det kan de ju inte, det är en fysisk omöjlighet om du gör filtreringen i realtid. Är den en inspelad signal så visst kan du då köra vissa sampel baklänges, men du lär ju inte få mindre fördröjning....
Re: Hur filtrera baklänges med analog elektronik?
Men om man filtrerar framtida sampel, blir fördröjningen negativ då? Så ijenkligen tjänar man tid?
Re: Hur filtrera baklänges med analog elektronik?
Jo, först filtreras signalen och man får en fördröjning. Sedan låter man tiden gå baklänges genom att vända på signalen och filtrerar igen genom samma (likadant) filter. Den senare filterfördröjningen blir naturligtvis lika stor som den första, men eftersom tiden går baklänges blir den negativ och de två fördröjningarna tar ut varandra.
Men den reella tiden är tiden det tar att filtrera hela insignalen från början till slut, inklusive filterfördröjningen. Plus tiden det tar att vända signalen (om man inte har en ny filterimplementation som kör baklänges), plus tiden att köra filtret en gång till, inkl. filterfördröjningen. Eventuellt plus tiden det tar att vända signalen igen. Därefter kan du betrakta/lyssna/whatever på resultatet.
Allt går att göra även med analoga filter om man tycker att bandspelare som kan spela fram och baklänges är tillåtna komponenter.
Men det går naturligtvis inte att göra i realtid (vare sig analogt eller digitalt), skall signalen vändas bakåfram så måste den ha ett slut.
Men den reella tiden är tiden det tar att filtrera hela insignalen från början till slut, inklusive filterfördröjningen. Plus tiden det tar att vända signalen (om man inte har en ny filterimplementation som kör baklänges), plus tiden att köra filtret en gång till, inkl. filterfördröjningen. Eventuellt plus tiden det tar att vända signalen igen. Därefter kan du betrakta/lyssna/whatever på resultatet.
Allt går att göra även med analoga filter om man tycker att bandspelare som kan spela fram och baklänges är tillåtna komponenter.
Men det går naturligtvis inte att göra i realtid (vare sig analogt eller digitalt), skall signalen vändas bakåfram så måste den ha ett slut.