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

zapisać sinusoidę koherentną jako *.wav za pomocą matlaba

Joahim_Skywalker 16 Lut 2009 15:00 2370 1
REKLAMA
  • #1 6157955
    Joahim_Skywalker
    Poziom 12  
    Witam.

    Mój problem sprowadza się do tego jak zapiać sinusoidę koherentną za pomocą matlaba w formacie *.wav. W chciałem uzyskać częstotliwość 500[Hz], jednakże po wygenerowaniu pliku jest słabo słyszalna. Czy ma ktoś może jakiś pomysł czym to jest spowodowane?? Głośność dla wav w windowsie mam na maxa :-). Koniecznie sinusoida musi być koherentna, gdyż taki jest wymóg prowadzącego. Widmo sygnału oraz przebiegi wskazują że wszystko jest ok. Oto program który napisałem:

    clear all; close all; % zerowanie
    N=44.1*10000; fp=44100*10000; Tp=1/fp; %okreslenie ilosci probek
    T1=N*Tp; % okres dla sinusoidy koherentnej
    f1=1/T1; %f koherentna
    t=(0:1:(N-1))*Tp; % czas
    x1=1.0*sin(2*pi*f1*t);
    %f2=1.25*800
    %x2=0.2*sin(2*pi*f2*t);
    x=x1+0;
    wavwrite(x,44100,'1000_44100.wav')
    y1=wavread('1000_44100.wav');
    figure(1); plot(t,y1); grid on; ylabel('Amplituda'),
    xlabel('Czas');
    X=fft(y1)/N*2;
    X=(round(1000*X))/1000; % zaokraglenie
    f_db=(0:(N-1))*fp/N; Modul=abs(X); 
    Modul_db=20*log10(Modul+eps);
    figure(2); plot(f_db,Modul); grid on; ylabel('Amplituda'),
    xlabel('Czestotliwosc');
    
    

    PROSZĘ O POMOC
  • REKLAMA
  • Pomocny post
    #2 6159796
    ptych86
    Poziom 13  
    
    close all
    clear all
        % częstotliwość próbkowania
    fp=44100;
    Tp=1/fp;
        % częstotliwość sinusoidy
    %f0=501;
        %gdy T0 jest całkowitą wielokrotnością Tp, to widmo nie będzie miało przecieków
    f0=1/(88*Tp);
    N=fp*10;
    t=(0:(N-1))*Tp;
    x=0.99*sin(2*pi*f0*t);
    wavwrite(x, 44100, 'Sintone.wav');
    y=wavread('Sintone.wav');
    y=y';
        % tylko 16 pierwszych okresów idzie do dalszej analizy
    N=round(16*fp/f0);
    y=y(1, 1:N);
    t=t(1, 1:N);
        % wykres w dziedzinie czasu
    figure(1)
    plot(t, y);
    grid on
    ylabel(['y=sin(2*\pi*', num2str(f0, '%7.2f'), '*t)']);
    xlabel('t [s]');
        % widmo amplitudowe
    figure(2)
    plot((-fp/2:fp/N:fp/2-fp/N)/1000, 20*log10(eps+abs(fftshift(fft(y)))));
    grid on
    ylabel(['Amplituda [dB]']);
    xlabel('f [kHz]');
    
REKLAMA