Примери за изобразяване на спектрален анализ scilab
Използвайки бързото преобразуване на Фурие, намерете дискретния спектър на сигнала.
За да извършим тази работа, ще използваме заслужено популярната програма за работа с числени данниSciLab. Програмата се разпространява свободно, за разлика от също мощната, но комерсиална среда MATLAB.
SciLab се актуализира редовно. Актуална версия на програмата: 5.4.1.
Графика на честотната характеристика и фазовата характеристика
Ние четем wav - вариантния файл в масив, получавайки дълбочината на цифровизация (в битове) и честотата на семплиране на сигнала
[ y , Fs , bits ]= wavread("N1 V3.wav");Fs,bits
Размерът на масиваyе: 220397 Нека изградим времева диаграма на сигнала:
Фигура 1 Времева диаграма на сигнала
Резултатът - броят на спектралните (комплексни) проби съответства на първоначалния брой времеви проби.
За да се извърши бързо преобразуване на Фурие според класическия алгоритъм, е необходимо да се допълни броят на показанията до 2 N с нули, най-близката е262144, или да се намали извадката до 2N, ако резолюцията по отношение на честотните компоненти ни устройва. Нека вземем 217= 131072 проби, за да изградим спектъра.
Нека направим бързо преобразуване на Фурие:-->Y=fft(y(1: 131072));ASF спектралните проби са огледални: AFS :-->plot(abs(Y));Добавяне на мрежа:-->xgrid(100);
Фигура 2 Амплитудно-честотен спектър ( A FS)
Фигура 3 Фазово-честотен спектър (PFS)
Амплитудните спектрални компоненти са концентрирани близо до нулевата честота, т.е. спектърът е относително нискочестотен.
Нека да разгледаме амплитудните и честотните спектри в областта на ниските честоти и да представимос x към честотите (честота на дискретизация 44000 Hz).
ASF честоти, започващи от нула:
Fn = 0, Fs/N, 2*Fs/n… Fs/2-1.
Фигура 4 Приближение на ASF, по-долу - честоти (Hz)
За фазовия спектър:
Фигура 5 Приближение на FFS, най-долу - честоти (Hz)
Привеждането на амплитудата е по-трудно, т.к честотата на дискретизация не е кратна на честотите на сигнала и спектърът е размазан.
За да намалим този ефект (амплитудното изкривяване в този случай е така нареченият „ефект на палисада“), използваме функцията на прозореца Flat Top.
Нека създадем прозорец с помощта на библиотеката tftb_window.sci
Фигура 6 Теглова функция FlatTop
Коефициент на нормализиране на показанията:
--> K =1/( сума (abs( H ))/(2^17));
--> yw = y(1:2^17).* H ; % поелементно умножение -->plot(yw) ; -->xgrid(100);
Фигура 7 Сигнал, претеглен по прозорец
Фигура 8 ASF за показания, в долната част на честотата (Hz.)
След премахване на „ефекта на палисадата“ може да се види, че някои честотни компоненти всъщност имат приблизително равни амплитуди.
AFS е еквивалентен на удвоената амплитуда на частта от положителните честоти (отляво на Fs /2).
Следователно, за да получите нормализиране на амплитудата в единиците за квантуване на ADC, трябва да ги умножите по
където N е броят на елементите в извадката.
Фигура 9. Нормализирана ASF
Успех със спектралния анализ!