Как да се определи точната честота на аудио сигнала
Видях тунери са създадени в секунда с точност до 0,1 Hz.
Свалих няколко Oupen Sours. pokapalsya. Разбрах нищо освен. те все още използват FFT.
В някои книга за радио staisticheskoy виждал деривация на максималната вероятност оценка на параметрите на синусоида в gausovogo фонов шум. Тези формули са включени в крайна сметка се трансформира на Фурие на входния сигнал за разчитане. Може би това е причината vezede Фурие и прилага.
Мисля, че FFT е възможно Синиш и уют може да бъде проста формула за изчисляване.
Не мисля. Тук връзката за вашия случай може да се разглежда от сложността на N * Ng.
Но това не дава предимства. Необходимо е да се направи FFT на цикъла на к.
Santik.
Аз не разгледа повтарящ се, тъй като групата не беше сигурен. Сега със сигурност, но мога повтарящия се. Само тук честотна лента от 1 Hz, така интонацията е възможно само, когато имаме такава точност 1 Hz. Тъй като ние имаме набор от под-секунди точност не е съвсем живеят до 1 Hz.
Така че тук ще се увеличи с 2 пъти.
Но намотка може да се ускори, тъй като аз бях FT където греха и защото се изчислява при всяка стъпка.
Има алгоритъм Goertzel. Тъй като това не е добре описан в литературата, по-нататък ще опиша може да бъде различна, или може да не съвпадат.
Така че за бързо изчисление можете да използвате собственост на косинуса и синуса на сбора от сумата.
Има Cos (-2 * пи * I * w * N1); могат да бъдат представени като COS (-2 * пи * (I-1) * N1 + -2 * пи * 1 * N1) = смени етикета = COS (a_I_1 + б) = COS (a_I_1) * COS (б) -sin (a_I_1 ) * грях (б)
грях (a_I_1 + б) = грях (a_I_1) * COS (б) + COS (a_I_1) * грях (б)
1) грях (б)
COS (б)
Компютърна извън контура.
2)
грях (a_I_1)
COS (a_I_1)
Известно е от предходната итерация. Всеки 10 трябва да се ускори.
Добавено по-късно:
В общи линии, всичко това са глупости, вземете FFT и малко римейк разделяне на първоначалния честотата на N пъти.
По този начин, ние ще се увеличи точността и бързината.
Добър ден!
Се занимава с обработка на реч, наскоро бе и проблемът за определяне на основната честота. В хода на бране на тази тема разбрах, че принципите за глас и монофонични музикални звуци (звукови на един низ в случай на китара) е по същество един и същ.
В MNU Обърнах този код в Matlab:
Функция взема като параметри кадър - кратък сигнал фрагмент (30 до 80 милисекунди), честотата на дискретизация Fs и горната лента, която се стреми честотата на терена (отворения струнна китара ще се побере с резерв поток = 60, fhigh = 400).
Дори и с честотата на дискретизация 48 кХц на вземане на проби грешка за първия низ може да бъде около
Следователно, за да се увеличи точността на минималната търсене функция D2 завинтва параболична интерполация:
ramateur. Да. за една от низа този метод на автостоп. Мисля, че всички тунери, че за част от секундата определя честотата на работа с avtokorellyatsiey. Но тя не е подходяща за различни низ.
67: Да, това е умножение на два вектора, единият от които komplekno конюгат. Ако все пак след това обратната Фурие - получи кръстосано съответствие.
72: Да, ние осъществяваме директно и обратните трансформиране да се възстанови след 2 масив. Но след това формулата е проста. Това е до кардинал задължително не зает.
И последният въпрос, аз някак си не разбра.
Santik. t.est във формула 67 е такава. (А + BI) · (а '+ b'i) = (а · а'-Ь · б) + (а · б "+ б · а') и. Така ли е?
Хм. нормални средства за. нормалното. poyantnym за компилатора, а за един човек). Е, т.е. -0.69019186E + 01 - този брой се умножава по E + 01 или + 0.1. или Е е 01. По принцип степен. как да запишете този номер. без използване на буквата Е.
Santik. t.est във формула 67 е такава. (А + BI) · (а '+ b'i) = (а · а'-Ь · б) + (а · б "+ б · а') и. Така ли е?
Хм. нормални средства за. нормалното. poyantnym за компилатора, а за един човек). Е, т.е. -0.69019186E + 01 - този брой се умножава по E + 01 или + 0.1. или Е е 01. По принцип степен. как да запишете този номер. без използване на буквата Е.
Да, точно така. Във всички 67 на комплекса. Само ние все още трябва да се направи за kompleknoe двойката втория операнд - т.е. смените знака на имагинерната част.
Е - е 10. Е + 01 - 10 1 степен.
-0.69019186E + 01 = -6,9019186
Накрая аз проверих. Разделяне единица N / 2 броя на излезлите единица масива на 1 ние винаги се Er = 1. Тъй като стойностите им са едни и същи. Ето защо, неправилни резултати. Освен ако не е. неправилно тълкуване на елементите на масива. В Fortran вас електронна масив започнем с първа или 0go елемент.
В Fortran вас електронна масив започнем с първа или 0go елемент.
В първия FORTRAN.
All. Реших. Проблем като винаги е намаляване на В. видове тествани върху сигнал генератор 300 Hz - прескачане стойности 302-288 Hz. последователно umenshaetsya. тя увеличава. изобщо
А честотата на сигнала весел е променен до каква степен? Когато FD = 44100 и N = 44 100 е необходимо 0.5Hz
Когато FD = 8000 и N = 1024 трябва да бъде 0,5 * 8000/1024
Сигнал 300 CPS извън вижте