|
|
  |
Подскажите по алгоритму pls нужно, определить частоту следующим образом: |
|
|
|
Jul 18 2005, 12:39
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Make_Pic @ Jul 18 2005, 08:22) У меня две частоты в сигнале, точно известно частота разделения - 1кГц, шумы на уровне - 60дБ, могу ли я на AVR или MSP430 сделать ФНЧ и ФВЧ на 1кГц с завалом ~50дБ на октаву? Какие цифр. фильтры применить, чтобы справился МК? И можно и как после обработки фильтром определить период сигнала? Хотелось на уровне алгоритма взглянуть на это дело. Пожалуйста, уточните задачу. 1. Какой именно вид сигнала имеет место быть. 2. Какое подавление мешающего сигнала Вам нужно. Это я к тому, что подавить мешающую частоту можно постым режектором, но, боюсь, что Вас это не устроит.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 18 2005, 15:14
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(Stanislav @ Jul 18 2005, 15:39) Пожалуйста, уточните задачу. 1. Какой именно вид сигнала имеет место быть. 2. Какое подавление мешающего сигнала Вам нужно. Это я к тому, что подавить мешающую частоту можно постым режектором, но, боюсь, что Вас это не устроит. Неоходимо разделить и измерить две частоты (c точностью до 1 Гц) которые находятся ниже и выше 1000Гц ( ряд частот такой: 700 и далее через 200 Гц до 1700) и измерить их уровни от -25дБ до +2дБ
|
|
|
|
|
Jul 18 2005, 16:41
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Make_Pic @ Jul 18 2005, 18:14) Неоходимо разделить и измерить две частоты (c точностью до 1 Гц) которые находятся ниже и выше 1000Гц ( ряд частот такой: 700 и далее через 200 Гц до 1700) и измерить их уровни от -25дБ до +2дБ Выделить их можно простыми полосовыми БИХ - фильтрами второго порядка (рассчитать проще всего в матлабе. Единственное, на что нужно обратить внимание - точность представления коэффициентов и точность вычислений, иначе фильтры могут стать неустойчивыми. Для измерения амплитуды можно использовать прямые методы (корень из мощности) и "продвинутые", например, построением специального фильтров, какие используются при декодировании DTMF сигнала. Частоту же при таком большом отношении С/Ш проще всего измерить методами, аналогичными тем, которые применяются в частотомерах. Если требуются более быстрые или более устойчивые к шумам решения, пишите, подумаем вместе. P.S. Почитайте литературу по цифровому декодированию DTMF, там есть ответы на все Ваши вопросы.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 18 2005, 17:36
|
Участник

Группа: Свой
Сообщений: 71
Регистрация: 8-07-05
Из: Омск
Пользователь №: 6 644

|
--------------------
Время не придет. Время уходит.
|
|
|
|
|
Jul 19 2005, 06:09
|

Знающий
   
Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828

|
Цитата(Stanislav @ Jul 18 2005, 19:41) Выделить их можно простыми полосовыми БИХ - фильтрами второго порядка (рассчитать проще всего в матлабе. Единственное, на что нужно обратить внимание - точность представления коэффициентов и точность вычислений, иначе фильтры могут стать неустойчивыми. Для измерения амплитуды можно использовать прямые методы (корень из мощности) и "продвинутые", например, построением специального фильтров, какие используются при декодировании DTMF сигнала. Частоту же при таком большом отношении С/Ш проще всего измерить методами, аналогичными тем, которые применяются в частотомерах. Если требуются более быстрые или более устойчивые к шумам решения, пишите, подумаем вместе. P.S. Почитайте литературу по цифровому декодированию DTMF, там есть ответы на все Ваши вопросы. Спасибо за ответ. По декодированию DTMF я чуток разбираюсь. Еще такой вопрос: допустим я обработал входной синал по алгоритму Гертцеля, тобишь пропустил через шесть полосовых DFT входной сигнал, как лучше из отфильтрованных массивов определить частоту с точностью до герца, да и возможно такое?
|
|
|
|
|
Jul 19 2005, 15:40
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Make_Pic @ Jul 19 2005, 09:09) Спасибо за ответ. По декодированию DTMF я чуток разбираюсь. Еще такой вопрос: допустим я обработал входной синал по алгоритму Гертцеля, тобишь пропустил через шесть полосовых DFT входной сигнал, как лучше из отфильтрованных массивов определить частоту с точностью до герца, да и возможно такое? Алгоритм Goertzel'я подразумевает применение не фильтров непрерывного действия, а "сбрасываемых" фильтров. В фазе накопления он только "всасывает" входные данные заданное число отсчетов. Затем, путем несложного преобразования, находится амплитуда сигнала в фильтре, т.е, выходом его является одно-единственное число. После этого память фильтра должна быть сброшена в 0, т.к. колебания в фильтре теоретически могут нарастать до бесконечности, а реально - до переполнения. Если мне не изменяет память, получить информацию о частоте сигнала в данном фильтре невозможно (мешает неоднозначность). В свое время для быстрого и точного определения частотного сдвига я использовал следующий "радиотехнический" способ, основанный на том, что фазовый сдвиг резонатора второго порядка на центральной частоте равен точно 90 град. Итак: 1. Берем фильтры, как у Goertzel'я, обеспечив их устойчивость путем уножения коэффициентов A1 и A2 на X и X^2 соответственно, где X - близкая, но меньше 1 величина (0,95-0,98). 2. Обрабатываем сигнал таким фильтром 2 раза, получаем 2 выходных последовательности, после первой и второй фильтрации. 3. Перемножаем их и фильтруем результат с помощью ФНЧ. 4. Все!!! Число в ФНЧ пропорционально сдвигу частоты (точнее, его синусу). Предлагаю перед реализацией этого способа все тщательно отмоделировать, т.к. есть небольшие нюансы, с которыми Вам самому будет приятно разделаться. Сделаю только подсказку, что точная оценка частоты будет только в установившемся режиме работы фильтров.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 20 2005, 12:14
|
Участник

Группа: Свой
Сообщений: 48
Регистрация: 23-07-04
Пользователь №: 365

|
Цитата(Make_Pic @ Jul 19 2005, 09:09) Еще такой вопрос: допустим я обработал входной синал по алгоритму Гертцеля, тобишь пропустил через шесть полосовых DFT входной сигнал, как лучше из отфильтрованных массивов определить частоту с точностью до герца, да и возможно такое? Герцелем Вы определяете амплитуду сигнала определенной частоты в спектре входной реализации. Если искомые сигналы имеют очень малую погрешность по частоте, то можно обойтись и одним преобразованием Герцеля, соответствующим частоте сигнала. Накапливаете 1 сек., и вычисляете с точностью до 1 Гц. Хотя можно обойтись и меньшим отрезком времени, но делать для каждой частоты не одно вычисление, а хотя бы три.
|
|
|
|
|
Jul 22 2005, 21:31
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Sokol @ Jul 20 2005, 15:14) Герцелем Вы определяете амплитуду сигнала определенной частоты в спектре входной реализации. Если искомые сигналы имеют очень малую погрешность по частоте, то можно обойтись и одним преобразованием Герцеля, соответствующим частоте сигнала. Накапливаете 1 сек., и вычисляете с точностью до 1 Гц. Хотя можно обойтись и меньшим отрезком времени, но делать для каждой частоты не одно вычисление, а хотя бы три. Извините, если ошибаюсь, но здесь, скорей всего, стоит задача оценки параметров сигналов аппаратуры АОН, а длительность ее двухчастотных посылок существенно меньше 1 сек. Еще: все-таки, как боротьться с неоднозначностью? К примеру, как отличить в Вашем примере сдвиг частоты в 0Гц от сдвига в 1Гц? В то же время, способ, предлагаемый мной, даст при таком отношении С/Ш точную оценку сдвига частоты за время ~10мс с высоким (сотые доли герца) разрешением.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|