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

Jak dodać efekt echa do pliku WAV w Octave lub Matlab?

coreus 08 Mar 2006 15:01 2682 1
REKLAMA
  • #1 2389923
    coreus
    Poziom 11  
    Posty: 12
    Ocena: 1
    Witam wszystkich!

    Chciałbym dowiedzieć się od osób, które być może miały już do czynienia z podobnym zagadnieniem jak rozwiązać następujący problem.

    Mam za zadanie wykonać program (nazwijmy to skrypt w Octave), którego zadaniem byłoby:
    1. wczytanie pliku *.wav (dowolny)
    2. dodanie efektu echa akustycznego (albo inne efekty, operacje - przetwarzanie dźwięku, gdyż również mogą być pomocne - zawsze to jakaś wskazówka)
    3. zapis do pliku *.wav

    Jest to dla mnie temat zupełnie nowy stąd też będę Wam wdzięczny za każdą radę - nawet linki do stron o takowej tematyce.

    Z tego co wstępnie sie zorientowałem problem związany będzie z wektorami i macierzami oraz operacjami na nich wykonywanymi.

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 2392264
    ostrytomasz
    Poziom 25  
    Posty: 492
    Pomógł: 82
    Ocena: 215
    Na początek to Ci się pewnie przyda (matlab, wczytanie i downmix pliku):

    
    % --------------------------------------------------------------------
    function Open_Callback(hObject, eventdata, handles)
    % hObject    handle to Open (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    clear;                          %usuniecie utworzonych przez program zmiennych
    prompt = {'Enter file name:'};
    dlg_title = 'Open file';
    num_lines= 1;
    def     = {'c:\windows\media\chord.wav'};
    answer  = inputdlg(prompt,dlg_title,num_lines,def); %answer-typ komorkowy
                                                        %podobnie jak prompt
    global y;                   %deklaracja zmiennej globalnej
    global Fs;
    [y,Fs,bits] = wavread(answer{1,1});
    %Fs - czestotliwosc probkowania
    %y=0.5*(y(:,1)+y(:,2));      %downmix stereo wave to mono                            
    %M=size(y);
    [M N]=size(y);
    x=[1:1:M];                  %wektor numerow probek  
    time=x./Fs;                 %wektor czasu
    plot(time,y);               %wykres w funkcji czasu
    ylabel('normalized sample walue');           %etykiety osi
    xlabel('time [s]');    
    


    Dużo o efektach akustycznych znajdziesz w publikacjach związanych z DSP, np. http://focus.ti.com/lit/an/spraaa5/spraaa5.pdf. Najczęściej są to dosyć proste operacje macierzowe.
REKLAMA