Sida 1 av 3

Kamfilter. Hur gör man? :-)

Postat: 13 oktober 2007, 20:44:56
av JimmyAndersson
Jag har några idéer till en sorts voccoder och skulle behöva ett stort antal kamfilter.
Hur konstruerar man sådana?

Google har inte gett något schema och den enda idén jag kommit på för att bygga ett kamfilter är om man gör flera notch/bandpassfilter som släpper igenom varsin frekvens. Men det känns inte som en bra idé eftersom jag då skulle behöva tusentals op-förstärkare totalt i apparaten.

Så.. hur gör man ett analogt kamfilter? :)
Tanken är att varje kamfilter ska släppa igenom över/undertonerna till en grundfrekvens.

Postat: 13 oktober 2007, 21:12:31
av digitaliz
Du fördröjer signalen, fasvänder den och adderar den med originalet.

Det enklaste vore att göra ett digitalt kamfilter...

Postat: 13 oktober 2007, 21:56:51
av JimmyAndersson
Jag kan iofs tänka mig ett digitalt kamfilter, men utan att blanda in DSP-programmering. :)
Det viktiga är att resultatet inte har några hörbara digitala bieffekter. Det ska låta "analogt".


"Du fördröjer signalen, fasvänder den och adderar den med originalet."

Nånting mer behövs väl? Annars får man bara ett fasförskjutet kort eko eller phaser-liknande ljud, beroende på fördröjning. Vissa frekvenser dämpas iofs, men de är inte fasta utan beror på amplituden vid de olika frekvenserna.

Postat: 13 oktober 2007, 23:38:21
av digitaliz
Det är allt som behövs, kolla http://www.isk.kth.se/kursinfo/6b4033/ljud/forts.pdf
Sidan 16 och 17.

(Du behöver egentligen inte ens fasvända signalen, vilket jag skrev tidigare)

Om fördröjningen är 1ms så släcker signalen så att säga ut sig själv vid 1000Hz, 2000Hz, 3000Hz osv.

Det är relativt enkelt att implementera i en DSP (bara lagra x antal samples i en cirkulär buffert och addera ett gammalt värde med aktuellt värde). Samtidigt så kan det nog vara ett intressant projekt att försöka lösa det analogt.... :)

Postat: 13 oktober 2007, 23:54:22
av grym
om det är försdröjningen som gör det så duger ju dom där analoga ,hm, ccd? fördröjningskretsarna som varit uppe på forumet innan

Postat: 13 oktober 2007, 23:59:44
av digitaliz
Det borde funka!
I äldre färg TV-apparater så hade man nåt som hette "delay line", en lång tråd helt enkelt. I TV:n var det ju 4,43 MHz colour burst-signalen som skulle filtreras, så med hörbara frekvenser hade det nog blivit en väldigt lång tråd... :)

Edit:
Wikipedia vet allt
http://en.wikipedia.org/wiki/Comb_filter :)

Postat: 14 oktober 2007, 00:25:18
av Fritzell
Vocoder är intressant. Att konstruera ett kamfilter är nog inte helt enkelt.. :)

Postat: 14 oktober 2007, 01:42:48
av xxargs
Analogt, nej, digitalt - mycket enklare. Det är tidsfördröjningen som är det knepiga att åstakomma i analoga världen och existerar i stort sett bara där man absolut inte vill ha det som i telekommunikationsutrustning på långa distanser och i riktigt skarpa filter...

du får skaffa dig ett antal mil optofiber och med analog modulerad höglinjär lasersändare och mottagare skaffa din fördröjning...

Att PAL-systemet ansågs väldigt dyr när den utvecklades berodde just på lilla piezoelektriska fördröjningskretsen för att fördröja en linje @ 64 us så att den kunde jämföras med nästa linjer för att få ut fasläget mellan dessa för att kunna korrigera för korrekt färg på TV-bilden, detta för att inte få gröna ansikten som amerikanska NTSC...

även oscilloskop hade/har ofta en rulle koaxialkabel inne i sig för att fördröja så mycket att triggkretsen hann sätta igång svepet innan fördröjda signalen visades på CRT-skärmen och på så sätt även visade en smula av signalen just där triggern reagerade.

Postat: 14 oktober 2007, 07:57:05
av grym
varför inte analogt?

SAD-1024 DUAL ANALOG DELAY LINE

finns en till som jag har liggandes någonstans bland kretskorten

Postat: 14 oktober 2007, 08:50:59
av grym
ibland är det osannolikt vad man stöter på

letade efte högspännings op och hittade

ebay nr 230181012549

SAD4096 4096 stage analog BBD delay IC


edit

fanns en hel del på ebay om man söker på bbd

Postat: 14 oktober 2007, 09:28:13
av digitaliz
Med någon av de CCD:er som nämnts här så borde det går bra att bygga. De funkar lite grand som ett "analogt skiftregister". Nu verkar det ju bara finnas en krets på ebay, så det lär ju inte räcka. Jag misstänker att det kommer gå åt en per kamfilter, och här behövdes det flera, eller hur?
Hmm... sen så ska man kanske vara medveten om att ett kamfilter byggt på detta sätt inte är särskilt mycket mer analogt än ett digitalt. CCD:n ska ju klockas med en samplingsfrekvens så signalen kommer ju att styckas upp på samma sätt som vid digital sampling. Enda skillnaden är att värdena lagras analogt, men det lär ju inte göra saken bättre... :)

Postat: 14 oktober 2007, 14:52:51
av JimmyAndersson
Tack för alla intressanta svar!

"Nu verkar det ju bara finnas en krets på ebay, så det lär ju inte räcka. Jag misstänker att det kommer gå åt en per kamfilter, och här behövdes det flera, eller hur?"

Japp. Jag behöver 12 eller 24st kamfilter. Ska testa med 12st först, men jag misstänker att det kommer låta lite konstigt att bara kunna styra toner inom en oktav.

Mycket intressant att det är fördröjningen som det hänger på.
Hm, jag måste sätta igång att labba med det här. :)


Hittade förresten detta patent på en Moog-vocoder. Där har de använt ett antal bandpassfilter och högpassfilter.

Postat: 15 oktober 2007, 00:34:11
av xxargs
Fattar inte hur ni hittar allt detta :-)

ummm. efter snabb titt..

I patentet delar man upp talbandet med ett antal bandpassfilter, likriktar det till en DC-signal och låter utsignalen från resp. filterbank analogt styra förstärkningsgraden på varsin OP-amp (OTA ?) som förstärker dynamiskt vitt brus bestämd av bandpassfiltrets signal och därefter låter bruset passera en Hög-Q bandpassfilter igen och får en ton (eller en mycket kraftigt tonfärgat brus om man så vill) ut som summeras tillsammans med de andra utgångarna, på så sätt får man en fast ton även om rösten varierar en smula i tonläge.

Iom. att allt jobbar parallelt (och viss specialbehandling av konsonanter som lätt bypassar eller ersätts med syntetisk brus om detekteringen funkar tillräkligt bra) så får man viss behållning av röstens övertoner med rätt styrka och på så sätt behåller röstens karaktär även om de nu är 'stegad' i pitchen.

Iom att bandpassfiltrerna stegning är baserat på lämplig fraktion av oktav så låter den nog bättre än om man använder kamfilter med delay och där får utsläckningarna med viss Hz-intervall istället för oktavintevall. En liten skillnad som en tekniker lätt missar men en musiker skulle bli förtvivad över...

Det är inte så lätt att göra kamfilter baserad på tidsfördröjd återkoppling/utsläckning som oxå har logaritmisk ökande avstånd mellan spärrarna beroende på allt högre frekvens, förmodligen närmast krav i musikerkretsar...

Med andra ord, skall kamfiltret göras njutbart för musik/röstbruk så kan man nog glömma analoga bucket brigade delay-kretsar, då en lång sådan krets kapar utsläckning säg var 20 Hz lika mycket vid 20 - 40 Hz och hela vägen i 20 Hz steg till 19980 Hz - 20000 Hz... och det hela är förmodligen enklare att hantera digitalt i frekvensdomänen efter en FFT-konvertering där halva resp dubbla frekvensen sas. är mer naturlig i hanteringen ...


hmm - så här i efterhand - är det egentlig kamfilter du är ute efter, eller är det filterbanker som du egentligen är ute efter... för vokoder är mera åt filterbankshållet där frekvens inom visst område återgenereras som fast ton, och låter som att det skulle kunna göras genom att gruppera om cosinus-kofficienterna i en mp3-codec i tex lame (öppen källkod) där man tar en grupp av frekvenser och ersätter det med en kofficient för en specifik ton i varje önskad frekvensband istället för den normala datareduceraren som försöker plocka bort kofficienter med så liten påverkan på ljudet som möjligt... bara en tanke - även om det är heldigitalt och tråkigt...

Postat: 15 oktober 2007, 03:21:57
av JimmyAndersson
Med andra ord, skall kamfiltret göras njutbart för musik/röstbruk så kan man nog glömma analoga bucket brigade delay-kretsar"

Du har helt rätt. Jag skrev tidigare att det kändes märkligt att en förskjuten vågform skulle göra jobbet. Jag gjorde några tester i ett ljudredigeringsprogram (Soundforge) nyss och det visade sig att jag hade rätt i det jag skrev i mitt andra inlägg. :)


Test 1) En sinuskurva på 100Hz kopierades till två spår, så jag fick två identiska. Den ena försköts en halv period och fasvändes. Sedan mixade jag ihop dem. Då fasades kurvorna ut och kvar blev förstås ...ingenting. :)

Men nu består sällan musik/ljud/tal av en statisk vågform, så dags för:

Test 2) Här laddade jag in en låt, inspelad i stereo. Konverterade den till mono och kopierade till två identiska spår. Det ena försköts lika mycket som i förra testet, sedan mixade jag ihop dem. Resultatet lät som en phaser-effekt, men med alla tidigare frekvenser närvarande. I spektrumanalysatorn såg frekvenskurvan ut som att jag amplitudmodulerat låten med en sinusvågform.

Test 3) Här gjorde jag likadant som i förra testet, men innan jag mixade ihop spåren så fasvände jag det förskjutna spåret. I spektrumanalysatorn såg det likadant ut som i det förra testet, men det lät som om jag kört låten genom en ringmodulator, eller ett filter på gränsen till självsvängning.

Så knepet med delay för att fasa ut vissa frekvenser är inte användbart i musik-sammanhang. Det passar nog bättre för att bli av med rippel efter likriktning av nätspänning och sådant. :)



Anledningen till att jag tänker kamfilter beror på att jag skulle vilja bygga en vocoder som inte bara använder grundtonen, utan även under/övertonerna. Detta för att få ett stort och nästan organiskt sound. Som i gamla analoga vocoders. Digitala vocoders får liksom inte riktigt med tillräckligt med frekvensinnehåll från carriern. De brukar även ha sämre dynamik och dessa två brister gör att det låter lite tunnt och platt.

Jag trodde analoga vocoders hade kamfilter, pga ljudet. Därför blev jag förvånad när jag såg Moog's enkla schema. :) Visserligen tror jag inte att det står hur många bandpassfilter de använt, men det kan inte vara så många med tanke på det breda frekvensområdet i varje bandpassfilter.


Det vore kul att bygga en vocoder enligt patentet i länken för att se hur den låter, men jag skulle vilja ta det hela ett steg längre. Jag menar, det finns redan många med vocoders som låter ungefär likadant och då är det inte lika utmanade att bygga ytterligare en kopia...

Postat: 15 oktober 2007, 07:46:04
av digitaliz
Jo, knepet med delay *är* användbart i musiksammanhang, men du måste göra det mer än en gång! De flesta (alla?) digitala filter bygger på principen att man multiplicerar/adderar signalen med gamla värden. :)