спектър анализ с FFT основите и Matlab 4 begineers

R

rramya

Guest
Hi всеки,
Бих искал да споделя някои от приложенията на FFT спектър за анализ.
Надявам се че ще бъде полезна за тези, които са новак в програмирането MATLAB.

DFT Бележки:
DFT произвежда дискретни representation.Also честотна област, DFT е само определени
в района между 0 и FS.
(както знаем, един период се простира от F = 0 до FS, където Fs е честотата на вземане на.)
Когато района между 0 и Fs се изследва, може да се види, че има дори
симетрия около централната точка, 0:5 FS, честотата Nyquist.
Тази симетрия добавя излишни информация. (На данни между 0:5 и FS FS е огледало
снимка на данни между 0 и 0:5 FS.)
FFT функция Matlab е ефективен инструмент за изчисляване на дискретната трансформация на Фурие
на сигнал.Типичният синтаксис за изчисляване на FFT на сигнал е FFT (X, N), където х е
сигнал, X [N], които искате да трансформира и N е броят на точките в FFT.
НЕ трябва да бъде поне толкова голям, колкото е броят на проби в х [N].

Пример: 1
За да демонстрира сила за промяна на стойността на N,
sythesize един косинус с 30 проби в 10 проби за период.
N = [0];
х = Cos (2 * PI * N/10);
Определете 3 различни стойности за n.
В корема функция в MATLAB установи степента на трансформиране,
N1 = 64;
N2 = 128;
N3 = 256;
X1 = ABS (FFT (X, N1));
X2 = ABS (FFT (X, N2));
X3 = ABS (FFT (X, N3));
парцел за размера на трансформиране ние трябва да мащаба на сат.
Честотата скалата започва от 0 и се простира до N-1 за N-точка FFT.
След това се нормализира на скалата, така че тя се простира от 0 до [1 - (1 / N)].
F1 = [0: N1 - 1] / N1;
F2 = [0: N2 - 1] / N2;
F3 = [0: N3 - 1] / N3;
второстепенна сюжетна линия (3,1,1)
парцел (F1, X1, "-X"), заглавие ( 'N = 64 "), ос ([0 1 0 20])
второстепенна сюжетна линия (3,1,2)
парцел (F2, X2, "-X"), заглавие ( 'N = 128 "), ос ([0 1 0 20])
второстепенна сюжетна линия (3,1,3)
парцел (F3, X3, "-X"), заглавие ( 'N = 256 "), ос ([0 1 0 20])
Inference:
при разглеждането на парцела, човек може да види всеки от трансформира се придържа към
същата форма, различаващи се само в броя на пробите, използвани
да се сближат, че форма.В парцела могат да се видят
големината на 2 sincs с центъра на първата sinc функция в 0.1Fs и
втори етап на 0.9Fs.(sincethe данни между 0:5 и FS FS е огледален образ на данните
между 0 и 0:5 FS, тук в този код ние нормализират Честотен axisi.e., х-ос: 1.)

Пример 2:
В последния пример дължината на х [N] е ограничено до 3 периоди на дължина.
Сега, нека да избират голяма стойност за N (за трансформиране с най-много точки), и се различават
броя на повторения на основните период.
N = [0];
x1 = Cos (2 * PI * N/10); 3% периоди
x2 = [x1 x1];% 6 периоди
x3 = [x1 x1 x1];% 9 периоди
N = 2048;% не.на точки FFT
Величина% FFT зависи от FFT точки
X1 = ABS (FFT (x1, N));
X2 = ABS (FFT (x2, N));
X3 = ABS (FFT (x3, N));
F = [0: N-1] / N;
второстепенна сюжетна линия (3,1,1)
парцел (F, X1), заглавие ( "3 периоди"), ос ([0 1 0 50])
второстепенна сюжетна линия (3,1,2)
парцел (F, X2), заглавие ( "6 периоди"), ос ([0 1 0 50])
второстепенна сюжетна линия (3,1,3)
парцел (F, X3), заглавие ( "9 периоди"), ос ([0 1 0 50])

Inference:
Първият парцел, трансформиране на 3 периоди на косинус,
прилича на размера на 2 sincs с центъра
на първия sinc при 0:1 FS и втората най-0:9 FS.
Вторият парцел също има sinc-подобен вид,
но е по-висока честота и тя е по-голям
степента на 0:1 и 0:9 FS FS.Също така, на третия парцел
sinc има по-голяма честота и размер.
Като X [N], се удължава до голям брой периоди,
на sincs ще започнат да търсят повече и по-скоро
импулси.

защо sinc функция изглежда по-скоро импулс, когато X [N]
се удължава до голяма не.на периоди?
Причина:
Когато Matlab изчислява FFT, тя автоматично се запълва
интервали от 30 до N = N = 2047 с нули.Това е като да се
sinusoid и mulitipying с правоъгълна кутия с дължина 30.
Умножаване на кутия и sinusoid в момента на домейни следва да
в резултат на навиване на sinc с импулси в честотна област.
Освен това, увеличаване на ширината на полето в момента домейн
следва да се увеличи честотата на sinc в честотна област.

Спектрален анализ с FFT и Matlab
В FFT не директно ви дам на спектъра на сигнала.
на FFT може да се различават драстично в зависимост от броя на точките (Н) на FFT,
и броя на периодите на сигнала, които са представени.
В FFT съдържа информация между 0 и FS, обаче, ние знаем,
че честотата на вземане на трябва да бъде най-малко два пъти по-високата честота компонент.
Ето защо, на спектъра на сигнала трябва да бъде по-долу entirly FS / 2, честотата Nyquist.
истински сигнал трябва да има трансформира величина, която е симетрична за положителен за
и отрицателни честоти.Така че, вместо с спектър, който върви от 0 до FS,
би било по-подходящо да се покаже на радиочестотния спектър от-FS / 2 до FS / 2.
Това може да бъде постигнато с помощта на функцията fftshift Matlab's
по следния код демонстрира.

N = [0];% 150 проби
x1 = Cos (2 * PI * N/10);% 15 периоди, т.е. за всеки период от 10 проби
N = 2048;
X = ABS (FFT (x1, N));
X = fftshift (Х);
F = [-N / 2: N/2-1] / N;%, така че Честотен диапазон е между-0.5fs да 0.5fs
парцел (F, X),
xlabel ( 'честота / F S')

щастлив живот.Added след 7 минути:Сега все още начинаещ.
Всички са добре дошли, ако един искали да накърним някои полезни информации относно FFT основите, спектрален анализ, нула подложка, autocorrelation, PSD т.н., в MATLAB.

В момента аз се концентрира върху FFT основите и парцели на СДП Vs Freq
(Честотен анализ) за известно време и след това до нула подплата.

Може ли някой определят популярен уеб сайт или PDF относно FFT

Благодаря предварително.

 
Всякакви други Phanse например по отношение на шума, RMS и RMS шум?

 
Съжалявам, че е направил грешка, докато в предишния ми пост

N = [0:29];% не.на проби.

В спектрален анализ с FFT и Matlab
N = [0:149];% не.на проби

 
rramya написа:

Съжалявам, че е направил грешка, докато в предишния ми постN = [0:29];% не.
на проби.В спектрален анализ с FFT и Matlab

N = [0:149];% не.
на проби
 
Здрасти,
Ако искате повече подробности REG, FFT
да посетите този сайт
http://www.mathworks.com/support/tech-notes/1700/1702.html
http://www.mathworks.com/support/tech-notes/1700/1703.html
http://www.mathworks.com/support/tech-notes/1700/1704.html
също,
Ръководство за FFT
http://www.mathworks.com/matlabcentral/fileexchange/5654

 
Какво може да доведе до грешка в изчисления FFT величини (т.е. корен квадратен от сумата на реално и сложни съставни части на FFT)?

Имам данни за времето на домейн, която имам интегрирани, Хенинг прозорец, и тичам през FFT.Грешката в размер се увеличава и честотата се увеличава.

Ако Хенинг прозореца на данни, за да pefrom на FFT и след това направете интеграция, виждам обратна връзка с грешка в размера т.е. грешка намалява и честотата нараства.

Може ли някой да обясни това наблюдение?

 
Здравейте ILv2Xlr8,
само след кода си, така че ако мога да намеря нищо лошо, аз ще ти кажа.

Честит живот

 
Здравейте ILv2Xlr8,

В повечето случаи, острието на радиочестотния спектър за всеки компонент честота corrsponging конкретни сигнали Freq.Там ще бъде около честоти, които също имат положителни стойности на честотния спектър, въпреки че те всъщност не са налични в оригиналния сигнал.Това явление се нарича спектрален изтичане, и това се дължи на начина, по който преобразувание на Фурие разделя сигнала в прозорец.

Този проблем възниква главно, когато е налице прекъсване между вълните и позиция в края на един цикъл и позицията си в началото на следващия.Ако има разминаване, ще доведе до изтичане спектрален.Това ще накара честотен спектър да покаже фалшиви честоти, които не са действително присъства в сигнала.

Така че да се намали спектрален изтичане, Windowing функции са използвани.Тези функции намаляване на амплитудата на вълната на сигнала в началото и в края на всеки прозорец и по този начин намалява размера на спектралната течове от намаляване на несъответствие между края на цикъла и в началото.

така че големината на радиочестотния спектър (без Windowing) винаги е по-голяма от размера на радиочестотния спектър с Windowing.

Не знам за интегриране на данните и Хенинг Windowing или ViceVersa.

Позволете ми да проверите за това понятие по-скоро.ако се случи да знаете, тогава аз определено ще отговори

Честит живот

 
Благодаря за отговора.

Разбирам, че периодично предположение за FFT, следователно, че затова съм Windowing данните с прозорец Хенинг да получите нула приключила функция преди FFT.След FFT, аз се умножава FFT magnitues от последователното фактор печалба за Хенинг прозорец.Без интеграция, magnitues ми са верни целия спектър.

Грешката е въведена, когато се интегрират както в момента домейн или домейн честота.Аз съм с интеграцията на Ойлер метод в момента домейн или просто да се дели на 2pif в честотна област.

Моля да ме уведомите някакви мисли за това какво биха могли да причинят тази грешка величина?

Всички съвети ще бъда много оценявам.Added след 4 часа 17 минути:За да се определи количествено това, което съм наблюдават, когато се използва интегратор Ойлер в момента домейн за sinusiodal сигнали тест с 21 честоти, което започва от 15Hz до 490Hz при 25Hz интервали от време, ставам все по-голям експоненциално грешка в величини, както следва:

грешка = [0,03 0,03 0,7 1,3 2,1 3,1 4,4 5,9 7,6 9,6 11,9 14,5 18,1 17,5 20,7 24,4 28,5 33,2 38,4 44,2 50,7];

парцел това и да видим какво съм и гледам.

Всички съвети относно причината за тази интеграция грешка и как може да поправи това ще бъде оценено.

 
благодарности
може да ви предостави по-голям AATLAB примери!!

 
Здравейте aarr

виж този урок
Съжалявам, но трябва вход, за да видите този прикачен файл

 
Здравейте ILv2Xlr8,
След анализ на спектъра Използване на Windows концепция е ясно и за двама ни.
Мисля, че проблемът не е в кодирането на Ойлер интегратор в момента домейн за sinusiodal сигнали.

1.Мога ф ми кажеш как да пиша код за MATLAB интегратор Ойлер в момента домейн за sinusiodal сигнали тест с 21 честоти, което започва от 15Hz до 490Hz при 25Hz интервали?
(аз прав арго добивам U Y са разполагането на Ойлер интегратор? с това какви са U опитваме да направим с), първо се изясни това съмнение.

Само след всяка книга или статия в подкрепа на тази концепция.

Честит живот.

 
Ето как можете да направите това.
Създаване на масив с честоти на интереси,
направи една линия, която създава sinsoidal сигнал използване на честотите в масива,
интегриране на този сигнал,
прозорец този сигнал,
изпълнява FFT,
и се изчислява RMS FFT величини, включително съгласуван получат фактор на Хенинг прозореца,
съхранява тези резултати в друг масив,
правя всичко това отново за следващия честота на интереси в масива,
и накрая да сравни тези резултати с theoritcal изчислени величини да се получи грешка.

Един Ойлер интегратор е един от най-простите до код, тъй като е просто текущата проба, умножена по време на вземане на проби предходната интегрираната стойност.

Предполагам, че въпроса ми се свежда до това, което причинява интеграция грешка и как мога да я поправят?

 

Welcome to EDABoard.com

Sponsor

Back
Top