Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генератор НЧ случайного сигнала.
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
dmyl
Задача примерно следующая - сформировать случайный НЧ сигнал с заданной спектральной плотностью, так скажем диапазон частот 0-0.1Гц, с частотой дискретизации 8кГц.
Есть мысль решить ее при помощи многозвенной интерполирующей цепи.
ФНЧ подключенный к ГСЧ формирует заданное спектральное распределение на низкой частоте дискретизации, так скажем порядка 1Гц. Затем частота дискретизации последовательно повышается многозвенным интерполятором.

Вопрос. Как выбрать наиболее оптимальные параметры (интеполирующие множители) каждого звена?
Логично ли выбрать одинакове звенья, так скажем все с умножением частоты дискретизации на 4, и при этом иметь одинаковые фильтры и их программные реализации?
Как подобрать параметры многократной восходяей дисктретной системы МВДС?
Что почитать полезного?
Stanislav
Цитата(dmyl @ Feb 2 2006, 14:17) *
...Вопрос. Как выбрать наиболее оптимальные параметры (интеполирующие множители) каждого звена?..
Наиболее оптимальные в каком смысле? Просто оптимальности не бывает (исключение составляют постановления правительства о расходовании бюджетных средств, но это оффтопик).
Цитата(dmyl @ Feb 2 2006, 14:17) *
...Логично ли выбрать одинакове звенья, так скажем все с умножением частоты дискретизации на 4, и при этом иметь одинаковые фильтры и их программные реализации?..
Возможно - да, а возможно - и нет. Все зависит от условий (требований к качеству интерполяции), которых в условии задачи нет.

Моделировать лучше всего в матлабе.
dmyl
Цитата(Stanislav @ Feb 2 2006, 16:01) *
Наиболее оптимальные в каком смысле? Просто оптимальности не бывает (исключение составляют постановления правительства о расходовании бюджетных средств, но это оффтопик).

Ну рассуждения о просто оптимальности это тоже простите офтопик smile.gif
Задавая вопросы я же не ставлю задачу решить проблему за меня, а только прошу указать общие подходы к ее решению, за какой оптимальностью гоняться я решу сам, тем более что задача описана как простая, но реально она шире, чем-то возможно придется жертвовать, надо разбираться.
Пока я стараюсь найти наименее вычислительно емкий вариант.

Требования к качеству интерполяции в какой-то мере относительны. Зададимся любыми, в итоге получим различную вычислительную сложность для разных систем. У меня есть в книжке в качестве примера интерполяция в 28 раз с искаженем не более +-0.13дБ, сравниваются 4 варианта 28=4*7=2*14=2*2*7. Показано, что для этих условий 2*2*7 выгоднее.
Как выбрать нужный вариант, не просто перебором многих вариантов (у меня не 28 а 8000)?
Рекомендации, книги, графики........

То что моделировать надо в матлабе это ясно, задача не стоит провести исследование, задача стоит сделать работу, я конечно проверю несколько вариантов, но от чего отталкиваться то? Не от балды же делить на множители?

Кстати возможно такой подход вообще не лучший, может проще рещить задачу по другому? До этого я например использовал линейную интерполяцию, со всеми вытекающими smile.gif
Stanislav
Цитата(dmyl @ Feb 2 2006, 15:21) *
...Требования к качеству интерполяции в какой-то мере относительны. Зададимся любыми, в итоге получим различную вычислительную сложность для разных систем. У меня есть в книжке в качестве примера интерполяция в 28 раз с искаженем не более +-0.13дБ, сравниваются 4 варианта 28=4*7=2*14=2*2*7. Показано, что для этих условий 2*2*7 выгоднее.
Как выбрать нужный вариант, не просто перебором многих вариантов (у меня не 28 а 8000)?
Рекомендации, книги, графики........
К сожалению, как раз на этот вопрос ответить не могу. Попробуйте посмотреть у Рабинера и иже с ним в родных закромах, хотя, честно говоря, такого у них не припомню. Во всяком случае, без численного моделирования и оптимизации не обойтись, для этого нужно задаться по меньшей мере параметрами АЧХ интерполятора в полосе пропускания и задержания (либо максимальной выч. нагрузкой).
Цитата
...То что моделировать надо в матлабе это ясно, задача не стоит провести исследование, задача стоит сделать работу, я конечно проверю несколько вариантов, но от чего отталкиваться то? Не от балды же делить на множители?..
По собственной интуиции могу посоветовать на каждом шаге интерполяции увеличивать частоту вдвое, по крайней мере, я бы начал с этого. Оценка возможностей такого метода не займет много времени, а его реализация будет очень проста (и очень вычислительно эффективна, если в качестве интерполяторов использовать БИХ-фильтры). Так, для Ваших целей подошли бы частоты первоначальной выборки в 8000/8192, 8000/16394 или 8000/32768 Гц.
dmyl
Вообщем я тут поразмыслил, да еще подкину советов на телесистемах, делать наверное буду так:
ДСП у меня с плавающей точкой, следовательно можно смело использовать БИХ фильтры не боясь огромного порядка как с КИХ фильтрами и не боясь потерять точность. Формирование исходного белого шума сделать на частоте 20Гц, затем еще два каскада апсамплинга по 20, того 20*20*20=8000

Если раскладывать 8000 как вы предлагаете на двойки, может получиться нехорошая начальная частота дискретизации, максимум чего удастся добиться это 125*2*2*...*2=8000, либо частота будет нецелая, что не совсем удобно.
Stanislav
Цитата(dmyl @ Feb 3 2006, 08:33) *
Вообщем я тут поразмыслил, да еще подкину советов на телесистемах, делать наверное буду так:
ДСП у меня с плавающей точкой, следовательно можно смело использовать БИХ фильтры не боясь огромного порядка как с КИХ фильтрами и не боясь потерять точность. Формирование исходного белого шума сделать на частоте 20Гц, затем еще два каскада апсамплинга по 20, того 20*20*20=8000
БИХ, по-моему, хорошее решение для Вашего случая. Однако, я бы все-таки поостерегся делать апсэмплинг аж в 20 раз без результатов тщательного моделирования. Флоат-то он флоат, однакож, не дабл... А добротность звеньев фильтра будет весьма большой...

Цитата(dmyl @ Feb 3 2006, 08:33) *
Если раскладывать 8000 как вы предлагаете на двойки, может получиться нехорошая начальная частота дискретизации, максимум чего удастся добиться это 125*2*2*...*2=8000, либо частота будет нецелая, что не совсем удобно.
Ну, во первых, разложить можно и получше: напр., 2, ..., 2, 2, 5, 5, 5. Для БИХ реализации можно рассмотреть также вариант 4, 4, 4, 5, 5, 5, однако, на мой взгляд, это будет все-таки "хуже".
А, во-вторых, понятие "частота" для исходного массива суть вещь довольно абстрактная - Вам лишь нужно получить один-единственный отсчет (например, один раз в 8000/8192 С, если это, конечно, возможно), а потом произвести расчет промежуточных значений. Если восхождение делать на каждом шаге вдвое, длина КИХ будет вовсе не "огромного порядка".

Кстати, у Рабинера-Голда (из закромов) во второй части главы 3 есть информация, которая может Вас заинтересовать.
Pathfinder
Какие требования к формируемому сигналу? в частности, какое распределение требуется получить? Про эффективную генерацию случайных последовательностей и критерии оценки их "качества" можно посмотреть в книжке "Имитационное моделирование", автор, если память не изменяет, Аверилл Лоу. А почему бы не получать требуемый сигнал фильтрацией белого шума прямо на заданной частоте дискретизации?
Stanislav
Цитата(Pathfinder @ Feb 9 2006, 13:33) *
...А почему бы не получать требуемый сигнал фильтрацией белого шума прямо на заданной частоте дискретизации?
Длину КИХ и устойчивость БИХ фильтров прикиньте...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.