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 obliczyć THD+N i SNR przy danych próbkach sygnału?

kiziorxxx 24 Lut 2009 13:38 4398 1
REKLAMA
  • #1 6197291
    kiziorxxx
    Poziom 9  
    Witam, za zadanie mam do przebadania kartę dźwiękową. Mam próbki sygnału przepuszczonego przez kartę. Jest to sinusoida o f=1kHz Wydaje mi się że należy policzyć fft i skorzystać z tego widma, dalej gubię się i nie wiem co do czego.

    Niżej znajdują się próbki sygnału w pliku *.txt.

    skypt wyznaczający fft:

    clear all;
    close all;
    clc;
    fs = 48000;
    Ts = 1/fs;
    [fid,komunikat]=fopen('1k44k.txt','rt');
    dane1=fscanf(fid,'%f',[2 inf]);
    x=dane1(2,:);
    N=length(x);
    t=(0:(N-1))*Ts;
    X1=20*log10(eps+abs(fftshift(fft(x))));
    figure;
    plot( t, x ); grid on
    ylabel(['y=sin(2*pi*f', '*t)']);
    xlabel('t [s]');
    figure;
    %x=0:1/length(syg):(1-1/length(syg));
    plot( (-fs/2:fs/N:fs/2-fs/N)/1000, X1 ); grid on
    %plot( x, syg ); grid on
    ylabel(['Amplituda [dB]']);
    xlabel('f [kHz]');

    plik z próbkami musi znajdować się we folderze roboczym matlaba.

    dla przypomnienia:
    SNR - określa zakres dynamiczny (signal-to-noise ratio), określa się go jako stosunek wartości skutecznej sygnału do wartości skutecznej szumów (zakłada się, że nie występują harmoniczne sygnału i bez składowej stałej)

    (THD+N) - współczynnik zawartości harmonicznych wraz z szumami (total harmonic distortion plus noise) określa się go
    jako stosunek wartości skutecznej szumów i harmonicznych sygnału (z wyłączeniem składowej stałej) do wartości skutecznej całego sygnału (sygnał+szumy+harmoniczne)

    za orty i stylistykę przepraszam

    Bardzo proszę o pomoc!!!
    pozdrawiam
  • REKLAMA
  • #2 6201080
    arturt134
    Poziom 27  
    Możesz też prościej. Zrób sobie detektor RMS, najprościej to 10*log10(suma kwadratów próbek / ilość próbek), obliczana np. co sekundę. Próbki traktujesz jako wartości z zakresu 0...1, gdzie 1 to full scale. Maksymalny sygnał jaki możesz zmierzyć to -3dB (bo dla sinusoidy wartość maksymalna jest o 3dB większa od RMS) Podłącz wejście do GND i zmierz wartość RMS. Różnica między wartością maksymalną (równą -3dB) a twoim wynikiem to SNR w decybelach (i to szerokopasmowy). Używając FFT uzyskasz wynik wąskopasmowy - musisz obliczyć sumę energetyczną szumu w całym paśmie, żeby uzyskać SNR.
REKLAMA