Перейти к содержанию
    

Определение передаваемых частот

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

имеем сигнал s(x), далее находим составляющие коэф корреляции по синусу и по косинусу, и коэф корреляции, строим график, определяем максимумы, видно, что небольшая погрешность есть, но результат очень близок к истине.

...

шаг меняла, от шага зависит только график, а значения Xmax не изменяются.

Приведенные вами формулы не что иное как сэмплирование DTFT вашего сигнала. DFT и FFT тоже сэмплированный DTFT только с другими параметрами сэмплирования. Почитать можно например здесь. Если вы будете уменьшать частотный шаг, вы будете получать все больше точек DTFT функции, но разрешающая способность определяется только длиной исходной выборки вашего сигнала. Интерполяция DFT(FFT) в окрестностях максимума для уточнения результата - это восстановление значений функции DTFT в окрестностях этого самого максимума. Так что приведенные формулы корреляций не дадут результата принципиально иного в сравнении с Фурье преобразованием, т.к. математика там абсолютно одинаковая (внимательно сравните ваши формулы с формулировкой преобразования Фурье). Окно у вас действительно прямоугольное, т.к. данные перед преобразованием вы никак не взвешиваете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведенные вами формулы не что иное как сэмплирование DTFT вашего сигнала. DFT и FFT тоже сэмплированный DTFT только с другими параметрами сэмплирования. Почитать можно например здесь. Если вы будете уменьшать частотный шаг, вы будете получать все больше точек DTFT функции, но разрешающая способность определяется только длиной исходной выборки вашего сигнала. Интерполяция DFT(FFT) в окрестностях максимума для уточнения результата - это восстановление значений функции DTFT в окрестностях этого самого максимума. Так что приведенные формулы корреляций не дадут результата принципиально иного в сравнении с Фурье преобразованием, т.к. математика там абсолютно одинаковая (внимательно сравните ваши формулы с формулировкой преобразования Фурье). Окно у вас действительно прямоугольное, т.к. данные перед преобразованием вы никак не взвешиваете.

 

спасибо, пересчитала с оконной функцией. В данном случае возникает другая проблема. Если я ЗНАЮ какая частоты была при формировании, то я могу подобрать альфа, НО подобранная альфа для одного сигнала - не подходит для другого сигнала (опять же мною сформированного), что уж тогда говорить о сигнале, который я получу извне?

 

еще вопрос, то что для сумм гармонических сигналов лучше использовать окно Гаусса, я прочитала, но почему?

Правильно ли я понимаю, что Гаусса выбираем, так как при окне Гаусса мы имеем наименьшую величину смещения оценки основной частоты напряжения? Но так ведь она зависит от альфа... Поясните пожалуйста.

 

на счет окон, близка ли мое предположение к реальности, как думаете?

 

В DTMF может быть 16 вариантов позиций (от 697 и 1209 до 941 и 1633), если я создам 16 символов, для них подберу лучшую альфа, то можно ли в дальнейшем применить это значение альфа к другим образцам, извне? насколько это может быть полезным? с учетом что у меня, в моем дтмф нет шума, а он, насколько я понимаю, должен быть...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В DTMF может быть 16 вариантов позиций (от 697 и 1209 до 941 и 1633), если я создам 16 символов, для них подберу лучшую альфа, то можно ли в дальнейшем применить это значение альфа к другим образцам, извне? насколько это может быть полезным? с учетом что у меня, в моем дтмф нет шума, а он, насколько я понимаю, должен быть...

Вы разрабатываете алгоритм, у вас должны быть требования по минимальному сигнал-шуму (SNR), по возможным помехам и их уровню к полезному сигналу (SIR). Вы нам пока озвучили только точность и размер выборки. Скажите какие у вас требования по шуму/помехам и любую идею нужно проверять именно в этих условиях иначе всё это теряет смысл. Если вы придумаете сверхточный алгоритм спектрального анализа, который не будет работать в требуемой шумовой/помеховой обстановке, никто у вас его не примет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Правильно ли я понимаю, что Гаусса выбираем, так как при окне Гаусса мы имеем наименьшую величину смещения оценки основной частоты напряжения? Но так ведь она зависит от альфа... Поясните пожалуйста.

Окно Гаусса, помимо всего прочего, хорошо ещё и тем, что для случая непрерывного времени и в предположении, что максимумы спектра смещаются незначительно: Δf << f,

можно найти верхнюю оценку для смещения частоты Δf в зависимости от ширины окна причем, чисто аналитически и в явном виде.

Это позволяет выбрать минимально возможную для заданной точности Δf ширину окна (без учета шума, есс-но).

 

На практике, для окна Гаусса заданного формулой:

 

g(t) = exp(-t2/T2),

 

и для взвешенной суммы гармоник заданной формулой:

 

s(t) = g(t)*[cos(2*pi*f1*t) + cos(2*pi*f2*t)],

 

получаем верхнюю оценку для смещения частоты Δf = fmax - f1, равную:

 

Δf = exp(-pi2*(f2 - f1)2*T2)*(f2 - f1).

 

Для относительного смещения Δf/f1 это дает:

 

Δf/f1 = exp(-pi2*(f2 - f1)2*T2)*(f2 - f1)/f1.

 

Для относительного смещения равного Δf/f1 = 10-6, это дает:

 

Tmin = {1/[pi*(f2 - f1)]} * sqrt(ln[f1/Δf] + ln[(f2 - f1)/f1]), или:

 

Tmin ~= {1/[pi*(1209 - 941)]} * sqrt(ln[284803]) = {1/[pi*(1209 - 941)]} * 3,544 = 4,21 [мс].

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы разрабатываете алгоритм, у вас должны быть требования по минимальному сигнал-шуму (SNR), по возможным помехам и их уровню к полезному сигналу (SIR). Вы нам пока озвучили только точность и размер выборки. Скажите какие у вас требования по шуму/помехам и любую идею нужно проверять именно в этих условиях иначе всё это теряет смысл. Если вы придумаете сверхточный алгоритм спектрального анализа, который не будет работать в требуемой шумовой/помеховой обстановке, никто у вас его не примет.

 

Вы полностью правы, сижу перечитываю форум, в матлабе Ваш код смотрела. у меня возникла проблема, не могу разобраться как в матлабе использовать только один канал при чтении вав файла (левый или правый).

я действительно на "потом" оставила вопрос с "шумом", что неверно. на счет требований к SNR - шум теле/радио канала. Но как правило dtmf-метки немного "приглушены", мы их слышим конечно но они тише, чем основной сигнал.

Опять же, Вы в коде задавали SNR, а мне как быть? поискать стандарты, по идее же SNR должно быть урегулировано, для хороших передачи и приема?

 

Окно Гаусса, помимо всего прочего, хорошо ещё и тем, что для случая непрерывного времени и в предположении, что максимумы спектра смещаются незначительно: Δf << f,

можно найти верхнюю оценку для смещения частоты Δf в зависимости от ширины окна причем, чисто аналитически и в явном виде.

Это позволяет выбрать минимально возможную для заданной точности Δf ширину окна (без учета шума, есс-но).

 

На практике, для окна Гаусса заданного формулой:

 

g(t) = exp(-t2/T2),

 

и для взвешенной суммы гармоник заданной формулой:

 

s(t) = g(t)*[cos(2*pi*f1*t) + cos(2*pi*f2*t)],

 

получаем верхнюю оценку для смещения частоты Δf = fmax - f1, равную:

 

Δf = exp(-pi2*(f2 - f1)2*T2)*(f2 - f1). (*)

 

Для относительного смещения Δf/f1 это дает:

 

Δf/f1 = exp(-pi2*(f2 - f1)2*T2)*(f2 - f1)/f1.

 

Для относительного смещения равного Δf/f1 = 10-6, это дает:

 

Tmin = {1/[pi*(f2 - f1)]} * sqrt(ln[f1/Δf] + ln[(f2 - f1)/f1]), или:

 

Tmin ~= {1/[pi*(1209 - 941)]} * sqrt(ln[284803]) = {1/[pi*(1209 - 941)]} * 3,544 = 4,21 [мс].

 

не могу понять, что есть fmax и как получена ф-ла (*)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не могу понять, что есть fmax и как получена ф-ла (*)

fmax - это оценка частоты максимума в спектре, которая отличается от реального значения на величину ошибки.

 

я действительно на "потом" оставила вопрос с "шумом", что неверно. на счет требований к SNR - шум теле/радио канала. Но как правило dtmf-метки немного "приглушены", мы их слышим конечно но они тише, чем основной сигнал.

Опять же, Вы в коде задавали SNR, а мне как быть? поискать стандарты, по идее же SNR должно быть урегулировано, для хороших передачи и приема?

Я бы предложил помучить того, кто выдал вам задание на разработку :rolleyes: С DTMF не работал, но если говорить в целом, то вам нужно уточнить минимальное отношение сигнал-шум, при котором ваш алгоритм должен обеспечивать оценку частот с заданной точностью. Также, если предполагается что в вашем канале будут присутствовать иные сигнальные составляющие кроме меток и белого шума, нужно уточнить частотный состав этих сигналов и отношение мощности меток к мощности этих сигнальных составляющих (для вашего алгоритма эти сигналы будут считаться помехами). В итоге у вас будет два критерия: SNR (отношение сигнал/шум) и SIR (отношение сигнал/помеха), из которых можно составить один общий критерий - SINR (отношение сигнал/шум+помеха). SINR + ожидаемый спектральный состав дадут вам исходные данные для разработки рабочего алгоритма. при минимальном SINR будет ваш предельно плохой случай. Возможно вы не сможете обеспечить требуемую точность для минимального SINR, но можно оценить ту точность, которую возможно получить. Далее увеличивая SINR вы увидите как улучшается точность алгоритма. Все это даст комплексную оценку алгоритма, можно будет делать какие то выводы и отдавать наработки дальше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

fmax - это оценка частоты максимума в спектре, которая отличается от реального значения на величину ошибки.

 

 

Я бы предложил помучить того, кто выдал вам задание на разработку :rolleyes: С DTMF не работал, но если говорить в целом, то вам нужно уточнить минимальное отношение сигнал-шум, при котором ваш алгоритм должен обеспечивать оценку частот с заданной точностью. Также, если предполагается что в вашем канале будут присутствовать иные сигнальные составляющие кроме меток и белого шума, нужно уточнить частотный состав этих сигналов и отношение мощности меток к мощности этих сигнальных составляющих (для вашего алгоритма эти сигналы будут считаться помехами). В итоге у вас будет два критерия: SNR (отношение сигнал/шум) и SIR (отношение сигнал/помеха), из которых можно составить один общий критерий - SINR (отношение сигнал/шум+помеха). SINR + ожидаемый спектральный состав дадут вам исходные данные для разработки рабочего алгоритма. при минимальном SINR будет ваш предельно плохой случай. Возможно вы не сможете обеспечить требуемую точность для минимального SINR, но можно оценить ту точность, которую возможно получить. Далее увеличивая SINR вы увидите как улучшается точность алгоритма. Все это даст комплексную оценку алгоритма, можно будет делать какие то выводы и отдавать наработки дальше.

 

партия сказала: "Надо", комсомол ответил есть...

 

SIR пока можно исключить, так как DTMF идут "чистые".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не могу понять, что есть fmax и как получена ф-ла (*)

Чтобы получить формулу (*), сначала нужно взять производную от функции:

 

S(f) = [G(f + f1) + G(f + f2) + G(f - f1) + G(f - f2)]/2,

 

где G(f) - спектральная функция окна, равная:

 

G(f) = sqrt(pi)*T*exp(-pi2*f2*T2).

 

Затем нужно приравнять полученную производную S'(f) нулю.

 

Величина fmax является одним из семи конечных корней получившегося трансцендентного уравнения S'(f) = 0.

 

Для вычисления fmax можно разложить S'(f) в ряд Тейлора в окрестности точки f1 по степеням (f - f1), сохранив в этом разложении только линейные по (f - f1) слагаемые.

 

Решение получившегося уравнения:

 

S'(f1) + S''(f1)*(fmax - f1) = 0

 

даст оценку смещения максимума спектра S(f) в окрестности точки f1, вызванного присутствием в спектре второй гармоники на частоте f2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы получить формулу (*), сначала нужно взять производную от функции:

 

S(f) = [G(f + f1) + G(f + f2) + G(f - f1) + G(f - f2)]/2,

 

где G(f) - спектральная функция окна, равная:

 

G(f) = exp(-pi2*f2*T2).

 

Затем нужно приравнять полученную производную S'(f) нулю.

 

Величина fmax является одним из четырех конечных корней получившегося трансцендентного уравнения S'(f) = 0.

 

Для вычисления fmax можно разложить S'(f) в ряд Тейлора в окрестности точки f1 по степеням (f - f1), сохранив в этом разложении только линейные по f слагаемые.

 

Решение получившегося уравнения:

 

S'(f1) + S''(f1)*(fmax - f1) = 0

 

дает оценку смещения максимума спектра S(f) в окрестности точки f1, вызванного присутствием в спектре второй гармоники на частоте f2.

 

спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...