реклама на сайте
подробности

 
 
> Определение передаваемых частот
Kseniia
сообщение May 8 2015, 05:15
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 8-05-15
Из: Санкт-Петербург
Пользователь №: 86 575



Всем доброго времени суток!

Задача: есть DTMF метка, необходимо определить частоты которые передавались, с точностью до 3го знака после запятой. (DTMF - передается сумма двух гармоник, НЧ и ВЧ)

Что проделано:
выделяю из сигнала DTMF, fd=44100 Гц, для того, чтобы N была кратна двум, и равнялась 2048, немного обрезаю сигнал до 0.046 секунд (было 0.05 сек), таким образом T=1/fd=2.268*10^5.
Беру БПФ, строю график зависимости уровня(?)(20 log(sqwr(ReБПФ^2+ImБПФ^2)/fd-N), дБ от частоты, Гц (прикрепляю скрин, freqn=n*fd/N, n=0,...,N-1).
Прикрепленное изображение

Пики приходятся на 947,46Гц и 1205,9Гц, хотя должны быть 941Гц и 1209Гц. такая разница по видимому из-за огромного ШАГА по частоте, в 21,55 Гц, то есть передаваемые частоты не кратны нашему "шагу".

Что делать дальше - не понимаю.
Пробовала инетрполяцию Лагранжа - чушь полная, не получается.
Есть предложение использовать коэффициенты корреляции, относительно синусоидального и косинусоидального сигналов, но результатов пока не дал, да и не до конца понятно, что с этими коэф делать.

вопрос: Как математически можно определить частоты?


--------------------
Век живи, век учись...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kseniia
сообщение May 13 2015, 05:22
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 8-05-15
Из: Санкт-Петербург
Пользователь №: 86 575



Цитата(serjj @ May 8 2015, 14:25) *
Размер выборки кстати ограничен? Или можно копить до посинения?

размер выборки ограниченг самим сигналом, DTMF по стандарту идут от 40 мс сам сигнал и от 40 мс пауза между другим сигналом. В реальности же одна метка - 40-50 мс+перерыв 40-50мс.

Цитата(_pv @ May 8 2015, 14:55) *
вместо быстрого преобразования, посчитайте обычные интегралы Фурье s=\int{f(x)*sin(x)}; c=\int{f(x)*cos(x)}, на частоте 941 +- пара Гц с мелким шагом в 0.1Гц например чтобы не 3 в десяток-другой точек получился, на результат (s^2+c^2) натяните параболу ax^2+bx+c максимум будет в -b/2a.
ну или то же самое с автокорреляционной функцией можно попробовать.
исходные данные сюда выложить можете?


исходные данные: Прикрепленный файл  DTMF.txt ( 37.08 килобайт ) Кол-во скачиваний: 106
, fd=44100 Гц

а на счет обычных интегралов Фурье, непонятно что туда подставлять, если у меня есть только отсчеты, что за f(x) и sin (x), что за x?
я параболическую интерполяцию применила, результат близок к истине, но не истина.

на счет автокоореляционной функции - можно поподробнее?
мне предлагают корреляционную функцию использовать, посчитать Rs=СУМ(sin(2pifn)*s(n), n=0..N и Rc=СУМ(cos(2pifn)*s(n). не непонятно становится, первое, у меня 2 частоты, значит не sin надо брать а сумму двух sin от ВЧ и НЧ. Я посчитала Rs и Rc, далее R=sqr(Rs^2+Rc^2), и ничего у меня не получается, да и не понятно, даже если я найду этот коэф корреляции, как мне это поможет найти искомую частоту? по идее я должна КАК-ТО построить график R от f и f взять близлежащие к искомой частоте, но! в формулах Rs и Rc присутсвует N, а оно определено и опять я кручусь на том, что выборка ограничена.

Цитата(serjj @ May 8 2015, 15:08) *
Подойдёт если всегда а приори известно в каком узком диапазоне будут лежать интересующие частоты. Если нет, то можно также дополнить выборку нулями и сделать БПФ, получится аналог интерполяции между частотными отсчётами. Но все эти операции размазывают пики. Есть гарантия что при таком подходе не будет ложного выделения пика частоты например в условиях шума? Ведь придётся выделять пик из группы отсчётов с отличием по амплитуде << 3 дБ. Как ни крути а разрешающая способность Фурье (любого, в т.ч. обычного ДПФ) ограничена только размерностью входной выборки и никакие операции и ухищрения её не поднимут. Сверхразрешение же даёт всегда выраженные однозначные пики, но они могут сместиться из-за шума/малого размера выборок/криворукости. Кароче смотреть надо laughing.gif Но до третьего знака после запятой это сильно. Обычно речь идёт о Гц, ну максимум десятых долях Герца. Для таких точностей потребуется большой сигнал-шум и выборки порядка не менее 1е4 отсчётов. Это даже для сверхразрешения. Для Фурье будут нужны миллионы отсчётов.


впринципе известно в каком диапазоне лежат частоты, можно вначале определить грубо частоты (по стандарту есть 4 НЧ и 4 ВЧ) и уже после грубого определения начинать ухищряться точность определить.
на счет шума - это следующая задача, помехоустойчивость метода определения частот проверить.

Цитата(Alex11 @ May 8 2015, 18:33) *
Кроме всего прочего, при Гауссовском окне чтобы использовать параболическую интерполяцию нужно взять логарифм амплитуды, и только его аппроксимировать параболой. И полезно еще ввести весовые коэффициенты пропорциональные амплитуде или ее степени.


я делала: рассчет окна, перемножение окна с сигналом, БПФ от получившегося сигнала. и уже параболическая интерполяция. Вы предлагаете взять логарифм от |БПФ| и после этого аппрокимировать? правильно?

Цитата(Hose @ May 9 2015, 18:02) *
В самом начале рассуждений вы назначили что будет бпф. Почему?
Интереса ради, попробуйте взять интервал для анализа кратный не 2^н, а кратный периоду искомой частоты: результат вас порадует )

у меня 2 частоты, я не назначала, я просто предположила, что для достижения поставленной цели можно применить БПФ, если есть другие методы - с удовольствием послушаю, повторюсь: я только начинаю так плотно работать с сигналами и много еще не знаю...

Цитата(Alex11 @ May 8 2015, 18:33) *
Кроме всего прочего, при Гауссовском окне чтобы использовать параболическую интерполяцию нужно взять логарифм амплитуды, и только его аппроксимировать параболой. И полезно еще ввести весовые коэффициенты пропорциональные амплитуде или ее степени.


прологарифмировала, результат порадовал, спасибо.
на сечт коэф, у нас же амплитуда меняется, как я могу пропорционально ей или ее степени выбрать? я поперебирала, и нашла что 0.1 - ближе всего результат дает.


--------------------
Век живи, век учись...
Go to the top of the page
 
+Quote Post
_pv
сообщение May 13 2015, 09:50
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Kseniia @ May 13 2015, 12:22) *
размер выборки ограниченг самим сигналом, DTMF по стандарту идут от 40 мс сам сигнал и от 40 мс пауза между другим сигналом. В реальности же одна метка - 40-50 мс+перерыв 40-50мс.
исходные данные: Прикрепленный файл  DTMF.txt ( 37.08 килобайт ) Кол-во скачиваний: 106
, fd=44100 Гц

а на счет обычных интегралов Фурье, непонятно что туда подставлять, если у меня есть только отсчеты, что за f(x) и sin (x), что за x?
я параболическую интерполяцию применила, результат близок к истине, но не истина.

на счет автокоореляционной функции - можно поподробнее?

впринципе известно в каком диапазоне лежат частоты, можно вначале определить грубо частоты (по стандарту есть 4 НЧ и 4 ВЧ) и уже после грубого определения начинать ухищряться точность определить.
на счет шума - это следующая задача, помехоустойчивость метода определения частот проверить.

про автокорреляцию это я погорячился, не поможет она тут.
а для фурье выборка пожалуй коротковата чтобы 0.001Гц вытянуть за 40мс.

похоже надо грубо определять частоту через БПФ или как обычно в декодерах герцелем чтобы просто понять какая цифра передаётся и знать частоту +-10Гц, а потом просто подгонять коэффициенты у суммы двух синусов наименьшими квадратами например.
Код
d = Import["d:\\downloads\\dtmf.dat"];
fit = FindFit[d, a0*Sin[2*Pi*f0*t + p0] + a1*Sin[2*Pi*f1*t + p1], {{a0, 1}, {f0, 940}, {p0, 0}, {a1, 1}, {f1, 1200}, {p1, 0}}, t]
{a0 -> 0.305163, f0 -> 941., p0 -> 1.76526*10^-6, a1 -> 0.305164, f1 -> 1209., p1 -> 7.98036*10^-8}

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kseniia   Определение передаваемых частот   May 8 2015, 05:15
- - Ruslan1   Прикрепите файл с вычисленными бинами БПФ и покажи...   May 8 2015, 06:22
|- - Kseniia   Цитата(Ruslan1 @ May 8 2015, 09:22) Прикр...   May 8 2015, 06:53
- - serjj   Какие стоят ограничения на вычислительную сложност...   May 8 2015, 07:13
|- - Kseniia   Цитата(serjj @ May 8 2015, 10:13) Какие с...   May 8 2015, 07:41
|- - Ruslan1   Kseniia, Попробуйте Гаусса (я до alpha = 4.05 дох...   May 8 2015, 07:41
- - serjj   Цитатаданные непарметрические методы - функции в м...   May 8 2015, 07:43
|- - Kseniia   Цитата(serjj @ May 8 2015, 10:43) В матла...   May 8 2015, 07:56
- - serjj   Марпл-мл. С.Л. "Цифровой спектральный анализ ...   May 8 2015, 08:00
|- - Kseniia   Цитата(serjj @ May 8 2015, 11:00) Марпл-м...   May 8 2015, 08:06
- - blackfin   Цитата(Kseniia @ May 8 2015, 08:15) Задач...   May 8 2015, 08:07
|- - Kseniia   Цитата(blackfin @ May 8 2015, 11:07) А Ва...   May 8 2015, 09:26
|- - petrov   Цитата(Kseniia @ May 8 2015, 12:26) именн...   May 13 2015, 12:08
||- - Kseniia   Цитата(petrov @ May 13 2015, 15:08) А зач...   May 13 2015, 12:32
||- - petrov   Цитата(Kseniia @ May 13 2015, 15:32) дело...   May 13 2015, 12:41
|- - blackfin   Цитата(Kseniia @ May 8 2015, 12:26) именн...   May 13 2015, 13:27
|- - petrov   Цитата(blackfin @ May 13 2015, 16:27) Ну ...   May 13 2015, 14:22
- - serjj   Цитатав DTMF передается 2 частоты: НЧ и ВЧ, то мал...   May 8 2015, 10:33
|- - Kseniia   Цитата(serjj @ May 8 2015, 13:33) Зачем в...   May 8 2015, 11:15
- - serjj   Размер выборки кстати ограничен? Или можно копить ...   May 8 2015, 11:25
- - _pv   вместо быстрого преобразования, посчитайте обычные...   May 8 2015, 11:55
- - serjj   Цитатавместо быстрого преобразования, посчитайте о...   May 8 2015, 12:08
- - Alex11   Кроме всего прочего, при Гауссовском окне чтобы ис...   May 8 2015, 15:33
- - Hose   В самом начале рассуждений вы назначили что будет ...   May 9 2015, 15:02
- - Alex11   Это отличный совет, но там две частоты не кратные ...   May 11 2015, 23:11
|- - Kseniia   Цитата(_pv @ May 13 2015, 12:50) про авто...   May 13 2015, 10:48
- - _pv   я там руками столбец со временем добавил. Чтобы с ...   May 13 2015, 12:14
|- - Kseniia   Цитата(_pv @ May 13 2015, 15:14) я там ру...   May 13 2015, 12:43
- - GeGeL   Мне показалось, что суть задачи TC - в скрытой иде...   May 13 2015, 15:35
- - Hose   Бпф=быстрое преобразование Фурье Есть еще просто П...   May 14 2015, 02:56
- - Kseniia   Цитата(blackfin @ May 13 2015, 16:27) Кас...   May 14 2015, 06:20
- - GeGeL   Цитатаблизко к телу... Тут есть два варианта разви...   May 14 2015, 12:50
- - Alex11   Цитатана сечт коэф, у нас же амплитуда меняется, к...   May 14 2015, 14:17
- - Fourier   Вам тут уже советовали алгоритм MUSIC. Он дает оче...   May 15 2015, 20:19
- - serjj   ЦитатаВам тут уже советовали алгоритм MUSIC. Он да...   May 15 2015, 20:43
|- - blackfin   Цитата(serjj @ May 15 2015, 23:43) .. хор...   May 16 2015, 04:09
- - Fourier   ЦитатаА книжкой не поделитесь?) Книжка   May 15 2015, 22:10
- - GeGeL   ЦитатаТочную оценку обеих частот f1 и f2 в этом сл...   May 17 2015, 19:12
- - Kseniia   всем спасибо за советы, на счет книги, скачала, бу...   May 18 2015, 06:05
|- - blackfin   Цитата(Kseniia @ May 18 2015, 10:05) ..ес...   May 18 2015, 06:55
- - serjj   А какие частоты у вас в WavDataS? Там точно 941 и ...   May 18 2015, 06:24
- - Kseniia   Цитата(serjj @ May 18 2015, 09:24) А каки...   May 18 2015, 07:28
|- - blackfin   Цитата(Kseniia @ May 18 2015, 11:28) А гд...   May 18 2015, 07:48
- - serjj   Цитатая вот какой выход нашла, и без всякого БПФ.....   May 18 2015, 08:08
|- - Kseniia   Цитата(serjj @ May 18 2015, 11:08) Привед...   May 18 2015, 12:10
|- - blackfin   Цитата(Kseniia @ May 18 2015, 16:10) Прав...   May 19 2015, 05:00
- - serjj   ЦитатаВ DTMF может быть 16 вариантов позиций (от 6...   May 18 2015, 12:50
|- - Kseniia   Цитата(serjj @ May 18 2015, 15:50) Вы раз...   May 21 2015, 06:09
|- - blackfin   Цитата(Kseniia @ May 21 2015, 09:09) не м...   May 22 2015, 04:28
|- - Kseniia   Цитата(blackfin @ May 22 2015, 07:28) Что...   May 22 2015, 05:13
- - serjj   Цитатане могу понять, что есть fmax и как получена...   May 21 2015, 06:30
- - Kseniia   Цитата(serjj @ May 21 2015, 09:30) fmax -...   May 21 2015, 09:14


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 03:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01447 секунд с 7
ELECTRONIX ©2004-2016