logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Filtr Preemfazy - sprawdzenie

proximoo 08 Sty 2011 20:10 3619 8
REKLAMA
  • #1 8978405
    proximoo
    Poziom 10  
    Prosiłbym o sprawdzenie filtra preemfazy dla mowy, czy dobrze on filtruje sygnał.
    Przyjmuje, że współczynnik "alfa" mieści się w przedziale 0,95-0,98.

    Filtr Preemfazy - sprawdzenie

    Kod w Octavie.
    
    clear;
    % n - próbki
    % F - częstotliwość
    [n, F] = wavread('a.wav');
    % Ilość próbek
    N = length(n);
    t=[0:N-1]./F;
    
    % Preemfaza
    y = filter(1, [1 -.95], n);
    plot(t,y); 
    


    Do moderatora:
    Dział jest dobry, obrazek dodany poprawnie.
  • REKLAMA
  • #2 8979452
    Elektronik9
    Poziom 30  
    Filtr preemfazy jest filtrem górnoprzerpustowym. Daj widmo sygnału przed filtrem i po filtrze w zakresie 0-4kHz.
  • REKLAMA
  • #3 8979576
    proximoo
    Poziom 10  
    Powiem tak nie za bardzo wiem jak ograniczyć zakres.

    Kod:
    
    [n, F] = wavread('a_b.wav');
    N = length(n);
    t=[0:N-1]./F;
    
    w1=abs(fft(n));
    y = filter(1,[1 -.95], n);
    w2=abs(fft(y));
    
    subplot(2,1,1);
    plot(t,w1);
    title('przed');
    
    subplot(2,1,2);
    plot(t,w2);
    title('po');
    


    Filtr Preemfazy - sprawdzenie
  • REKLAMA
  • REKLAMA
  • #6 8980719
    Elektronik9
    Poziom 30  
    Co do składni to nie znam na pamięć jej ale wpisz w Matlabie:


    Pokazujesz widmo od 0 do 3 Hz ? Nie żartuj, mowa zawiera się od 300 do 3400 Hz, więc pokaż co najmniej od 0 do 4kHz
  • #7 8981026
    proximoo
    Poziom 10  
    Używam octave i po helpie dostaje takie coś
    
     -- Loadable Function: y = filter (B, A, X)
     -- Loadable Function: [Y, SF] = filter (B, A, X, SI)
     -- Loadable Function: [Y, SF] = filter (B, A, X, [], DIM)
     -- Loadable Function: [Y, SF] = filter (B, A, X, SI, DIM)
    


    Dla jasności po wczytaniu pliku:
    
    F =  96000
    N =  288000
    


    
    [signal, F] = wavread('a_b.wav');
    % Ilość próbek
    
    N = length(signal);
    f = ((0:N-1)/N)*F;
    w1 = abs(fft(signal));
    y=filter([1 -0.95],1,signal);
    w2 = abs(fft(y));
    
    figure(1);
    subplot(2,1,1);
    plot(f(1:8000),w1(1:8000));
    title('Przed');
    
    subplot(2,1,2);
    plot(f(1:8000),w2(1:8000));
    title('Po');
    


    W Hz.
    Filtr Preemfazy - sprawdzenie
  • Pomocny post
    #8 8981095
    Elektronik9
    Poziom 30  
    Średnio mi to wygląda jeżeli chodzi o wzmocnienie wyższych częstotliwości. Aha i po filtrze preemfazy musi być wzmacniacz o takim wzmocnieniu, żeby nie zmienić mocy sygnału.
  • #9 8981737
    proximoo
    Poziom 10  
    Mi też to średnio wygląda na preemfaze. Także postanowiłem przetestować wzór na
    preemfaze w dziedzinie czasu.
    
    y(n) = signal(n)-(0.95*signal(n-1));
    


    I o trzymałem coś podobne do poprzedniego.
    Filtr Preemfazy - sprawdzenie

    Także, dzięki za pomoc.
REKLAMA