Dodać nieparzyste / parzyste harmoniczne do sygnału?

12

Jak dodać nieparzyste lub parzyste harmoniczne do sygnału zmiennoprzecinkowego?

Czy muszę używać tanh lub grzechu?

Staram się uzyskać bardzo proste efekty zniekształceń, ale trudno mi znaleźć dokładne referencje. To, co chciałbym, to coś podobnego do tego, co robi Culture Vulture , dodając nieparzyste, a nawet harmoniczne w ustawieniach pentody i triody. Wartość zmiennoprzecinkowa to pojedyncza próbka w przepływie próbki.

Carlos Barbosa
źródło
3
Dlaczego chcesz dodać harmoniczne? Co próbujesz osiągnąć? Z jakiego rodzaju sygnałem pracujesz?
Jim Clay,
To, co próbuję zrobić, to osiągnąć bardzo proste efekty zniekształcenia, ale trudno mi znaleźć dokładne referencje. To, co chciałbym, to coś podobnego do tego, co robi sęp kulturowy, dodając nieparzyste, a nawet harmoniczne w ustawieniach pentody i triody, wartość zmiennoprzecinkowa to pojedyncza próbka w przepływie próbki.
Carlos Barbosa,
1
@CarlosBarbosa Powinieneś edytować te informacje z komentarzy w swoim pytaniu. Podaj szczegóły - im bardziej interesujące jest pytanie dla społeczności, tym więcej odpowiedzi można się spodziewać, a także odpowiedzi lepszej jakości.
penelopa,
dlaczego nieparzyste harmoniczne są bardziej niebezpieczne niż nawet harmoniczne w systemie zasilania

Odpowiedzi:

17

To, co robi skrzynka zniekształceń, polega na zastosowaniu nieliniowej funkcji transferu do sygnału: output = function(input)luby = f(x) . Po prostu stosuje się tę samą funkcję do każdej pojedynczej próbki wejściowej, aby uzyskać odpowiednią próbkę wyjściową.

Kiedy sygnał wejściowy jest falą sinusoidalną, powstaje określony rodzaj zniekształceń zwany zniekształceniem harmonicznym . Wszystkie nowe tony powstałe w wyniku zniekształceń stanowią idealną harmonię sygnału wejściowego:

  • Jeśli twoja funkcja przenoszenia ma nieparzystą symetrię (może być obrócona o 180 ° wokół źródła), to wytworzy tylko nieparzyste harmoniczne (1f, 3f, 5f, ...). Przykładem systemu o nieparzystej symetrii jest wzmacniacz symetrycznie obcinający.
  • Jeśli twoja funkcja przenoszenia ma parzystą symetrię (może być odzwierciedlona w poprzek osi Y), wówczas powstałe harmoniczne będą tylko harmonicznymi rzędu parzystego (0f, 2f, 4f, 6f, ...) Podstawowa 1f jest harmoniczną nieparzystą i zostanie usunięty. Przykładem systemu o parzystej symetrii jest prostownik pełnofalowy.

Tak więc, jeśli chcesz dodać nieparzyste harmoniczne, przeprowadź sygnał przez funkcję przesyłania nieparzystej symetrii, taką jak y = tanh(x)lub y = x^3.

Jeśli chcesz dodać tylko parzyste harmoniczne, przeprowadź sygnał przez funkcję przesyłania, która jest nawet symetryczna, oraz funkcję tożsamości, aby zachować pierwotną podstawę. Coś jak y = x + x^4lub y = x + abs(x). x +Utrzymuje podstawową, które normalnie byłyby zniszczone, podczas gdy x^4jest jeszcze symetryczny i produkuje tylko parzystych harmonicznych (w tym DC, które prawdopodobnie chcesz usunąć później w filtr górnoprzepustowy).

Nawet symetria:

Funkcja przenoszenia z równą symetrią:

y = x ^ 6 funkcja przesyłania

Oryginalny sygnał w kolorze szarym, ze zniekształcony sygnał w kolorze niebieskim i spektrum zniekształconego sygnału pokazującego tylko parzyste harmoniczne i nie fundamentalne:

widmo y = x ^ 6

Dziwna symetria:

Funkcja przenoszenia o nieparzystej symetrii:

y = x ^ 7 funkcja przesyłania

Oryginalny sygnał w kolorze szarym, ze zniekształcony sygnał w kolorze niebieskim i spektrum zniekształconego sygnału pokazującego tylko nieparzyste harmoniczne, w tym podstawowe:

widmo y = x ^ 7

Nawet symetria + fundament:

Funkcja przenoszenia z równomierną symetrią plus funkcja tożsamości:

y = x + x ^ 4 funkcja przesyłania

Oryginalny sygnał w kolorze szarym, zniekształcony sygnał w kolorze niebieskim i spektrum zniekształconego sygnału pokazującego nawet harmoniczne plus podstawowe:

widmo y = x + x ^ 4

O tym mówią ludzie, gdy mówią, że pole zniekształceń „dodaje dziwne harmoniczne”, ale nie jest tak naprawdę dokładne. Problem polega na tym, że zniekształcenie harmoniczne istnieje tylko dla wejścia fali sinusoidalnej . Większość ludzi gra na instrumentach, a nie falach sinusoidalnych, więc ich sygnał wejściowy ma wiele składowych fal sinusoidalnych. W takim przypadku otrzymujesz zniekształcenie intermodulacyjne , a nie zniekształcające harmoniczne, a zasady dotyczące nieparzystych i parzystych harmonicznych już nie obowiązują. Na przykład zastosowanie prostownika pełnofalowego (nawet symetrii) do następujących sygnałów:

  • fala sinusoidalna (tylko podstawowa nieparzysta harmoniczna) → sinusoidalny rektyfikowany pełnofalowy (tylko parzyste harmoniczne)
  • fala prostokątna (tylko harmoniczne nieparzyste) → DC (tylko parzysta tylko harmoniczna)
  • fala piły (harmoniczne nieparzyste i parzyste) → fala trójkątna (tylko harmoniczne nieparzyste)
  • fala trójkątna (tylko harmoniczne nieparzyste) → 2 × fala trójkątna (tylko harmoniczne nieparzyste)

Tak więc spektrum wyjściowe zależy w dużym stopniu od sygnału wejściowego, a nie od urządzenia zniekształcającego, i za każdym razem, gdy ktoś mówi: „ nasz wzmacniacz / efekt wytwarza bardziej muzyczne harmoniczne parzystości ”, powinieneś wziąć go z odrobiną soli .

(Twierdzenie, że dźwięki o parzystych harmonicznych są „bardziej muzykalne” niż dźwięki o parzystych harmonicznych , jest prawdą , ale widma te nie są tutaj wytwarzane, jak wyjaśniono powyżej, i to twierdzenie jest ważne tylko w kontekście W każdym razie zachodnie skale. Dziwne harmoniczne dźwięki (fale kwadratowe, klarnety itp.) Są bardziej spójne w muzycznej skali Bohlen – Pierce opartej na stosunku 3: 1 zamiast oktawy 2: 1).

Kolejną rzeczą do zapamiętania jest to, że cyfrowe procesy nieliniowe mogą powodować aliasing, co może być słabo słyszalne. Zobacz Czy istnieje coś takiego jak ograniczone przez pasmo zniekształcenie nieliniowe?

endolit
źródło
Zauważ, że przykładowe funkcje tutaj ułatwiają zrozumienie matematyki, ale zwykle nie są używane w materiałach audio. Na przykład x ^ 7, sygnał staje się mniej zniekształcony, im bardziej zwiększasz wzmocnienie.
endolith,
8

To, co próbujesz osiągnąć, nazywa się zniekształceniem . Techniki te są stosowane, gdy chcesz dodać harmoniczne do danego sygnału. Masz na to 2 podstawowe metody: kształtowanie fal i modulację pierścienia. Spróbuję wyjaśnić pierwszą.

Falowanie

Waveshaping pozwala na zniekształcenie za pomocą specjalnie wybranej funkcji . Jedną z przydatnych metod są wielomiany Czebyszewa . Mają bardzo ważną właściwość, gdy przesyłają przez nie sygnał harmoniczny o amplitudzie jednostkowej (na przykład fali sinusoidalnej), uzyskujemy ten sam sygnał, tylko kilka razy wyższy. Mnożnik częstotliwości zależy od kolejności wielomianu. Wszystkie wielomiany wyglądają tak:

 y=fa(x)=re0+re1x+re2)x2)+re3)x3)++reN.xN.;

W naszym przypadku każdy element generuje harmonijkę, a następnie sumuje się. Widok każdego członka jest określony przez następującą relację powtarzalności:

T.k+1(x)=2)xT.k(x)-T.k-1(x);

T.0(x)=1;

T.1(x)=x;

T.2)(x)=2)xx-1=2)x2)-1;

T.3)(x)=2)x(2)x2)-1)-x=4x3)-3)x;

Jak można się domyślić, drugi termin - pierwsza harmoniczna, a trzeci - drugi i tak dalej.

Inną cechą wielomianów Czebyszewa jest to, że gdy przez nie daje sygnał, którego amplituda jest mniejsza niż jednostka, wyjściowy dźwięk jest mniej nasycony z harmonicznymi. Pozwala to stworzyć efekt przesterowania.

sjan

sigrlami
źródło
Dobra odpowiedź, nauczyłem się tutaj czegoś. Nie zgadzam się jednak z tym, jak używasz funkcji przeniesienia terminu . Jego powszechną definicją jest relacja wyjścia do wejścia liniowego niezmiennika czasowego w dziedzinie częstotliwości. Twój system jest nieliniowy. Wolę nazwać to charakterystycznym lub po prostu tutaj funkcjonować .
Deve
@ Rękaw Dziękuję. Tak, rzeczywiście użyłem niepoprawnego terminu, wystarczy działać wystarczająco dobrze. Myślałem o napisaniu przykładu układu liniowego, ale jest to dość proste, więc termin pozostał w moich myślach
sigrlami,
Wow, dzięki za to wszystko będę czytał, choć wydaje się, że jest jakaś szansa na przykładowy kod c? Jeszcze raz dziękuję
Carlos Barbosa,
T.0(x)T.1(x)y
@Mohammad nie są ze sobą dokładnie powiązane, to tylko prosty opis funkcji wielomianowej, jeśli starter tematu o tym nie wie.
sigrlami,