Страница 5 из 22 Первая ... 3456715 ... Последняя
Показано с 81 по 100 из 436

Тема: Проектируем цифровой фильтр для ЦАП

  1. #1 Показать/скрыть первое сообщение.
    Забанен (навсегда)
    Автор темы
    Аватар для Эзотехник
    Регистрация
    10.10.2004
    Адрес
    Ru
    Сообщений
    1,188

    По умолчанию Проектируем цифровой фильтр для ЦАП

    Подскажите структуру идеального фильтра и его желаемые характеристики, например для частоты 4х44 кГц. Если в наличии значительная вычислительная мощность и объём памяти.
    Нужна именно теория, поскольку "синицы в руках" уже имеются и подробно рассмотрены в других ветках (микросхемы NPC и BB).
    Кстати фирма Wadia в своих изделиях применяла мотороловские процессоры на шестислойных платах, а не готовые фильтры.

  2. #81
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Nikkov
    Цитата из datasheet на BlackFin:
    the Blackfin processor core contains two 16-bit multipliers, two 40-bit accumulators, two 40-bit ALUs, four video ALUs, and a 40-bit shifter.
    DF1704 (а речь шла про них) не имеет отношение к Блекфину.
    А для ЦФ он вполне подойдет, также, как и Шарки.
    Потребление у блекфина меньше, но все-равно, из-за наличия поддержки внутренних независимых процессов, генерируемые помехи имеют довольно неприятный парктически сплошной спектр и приличный уровень, хотя и меньший, чем у шарка.

    [ADDED=Lynx]1132738568[/ADDED]
    Цитата Сообщение от Gav
    Аналоговая часть ЦАПы на AD1862,ЦАП планирую использовать как рефренсный-этим планка и определяется
    AD1862 c 20-разрядным разрешением - достаточно редки, требуется их отбор из значительных партий, поэтому исходим из реальных 19 разрядов. Это значит, что 32-х разрядного накопителя достаточно для построения 4000-элементного фильтра, и его разрядность не является ник оим образом что-либо определяющей.

    [ADDED=Lynx]1132738656[/ADDED]
    Цитата Сообщение от Vitёk
    Такой вот ещё вопрос: кто знает, каким образом в готовых фильтрах организована обработка перегрузок?
    судя по тому, что коэффициент передачи у них =1, то скорее всего никак, поскольку в этом нет необходимости.
    Последний раз редактировалось Lynx; 23.11.2005 в 12:37.

  3. #82
    Частый гость
    Регистрация
    17.11.2004
    Сообщений
    342

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Viking
    А что ж тут не понятного? Следуем известному принципу - Е#@ть так королеву! Хотя многие до уровня королевы им не доросли еще...
    Каждый сам определяет, кого ему надо А ниже определенного уровня процесс просто перестает доставлять удовольствие

  4. #83
    Частый гость
    Регистрация
    17.11.2004
    Сообщений
    342

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Lynx
    DF1704 (а речь шла про них) не имеет отношение к Блекфину.
    А для ЦФ он вполне подойдет, также, как и Шарки.
    Потребление у блекфина меньше, но все-равно, из-за наличия поддержки внутренних независимых процессов, генерируемые помехи имеют довольно неприятный парктически сплошной спектр и приличный уровень, хотя и меньший, чем у шарка.

    [ADDED=Lynx]1132738568[/ADDED]

    AD1862 c 20-разрядным разрешением - достаточно редки, требуется их отбор из значительных партий, поэтому исходим из реальных 19 разрядов. Это значит, что 32-х разрядного накопителя достаточно для построения 4000-элементного фильтра, и его разрядность не является ник оим образом что-либо определяющей.

    [ADDED=Lynx]1132738656[/ADDED]


    судя по тому, что коэффициент передачи у них =1, то скорее всего никак, поскольку в этом нет необходимости.
    Ну,у меня ad1862-j .Насчет разрядности вы сами когда-то писали,что про бовали делать ЦФ на ADSP-21065, и снижение точности вычисления приводило к деградации звучания

  5. #84
    Частый гость
    Регистрация
    17.11.2004
    Сообщений
    342

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Vitёk
    Надо же, после полугодового перерыва заглянул сюда, и сразу такая интересная тема Я довольно давно вынашиваю подобную идею, и в качестве ПЛИс как наиболее вероятного проетендента тоже рассматриваю Spartan III.
    ;) Какие могут быть секреты и коммерческие тайны по поводу алгоритма? Всё давным-давно известно... Например, SM5842 в качестве первого интерполирующего фильтра использует 169-элементный FIR (по даташиту). В качастве коэффициентов использован симметричный ряд sin(x)/x. На него наложена оконная функция Кайзера, с коэффициентом бета около 12.26 (что озволяет получить около -122 dB в полосе задержания). SM5843 (и похоже,все остальные с -110 dB) использует 153-элементный фильтр с бетой ок. 11.07 (такое окно обеспечивает затухание -111 dB).
    Это в общих чертах. Кому интересно подробнее - спрашивайте, расскажу что знаю.
    ЗЫ: Немного звукотехник, если не секрет, что сподвигло Вас на такие изыскания? Лично меня сначала заинтересовала возможность борьбы с джиттером на SPDIF, потом я увидел возможность создания универсального ЦАПа (SPDIF, USB), коррекция АФЧХ и т.п. Фантазии, одним словом.
    С уважением...
    Т.Е для 5842 ,если делать на одной стадии,порядок получается около 200-того?
    Пересчитал точнее-порядок получился около 560-го
    Последний раз редактировалось Gav; 29.11.2005 в 10:01.

  6. #85
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Gav
    Насчет разрядности вы сами когда-то писали,что про бовали делать ЦФ на ADSP-21065, и снижение точности вычисления приводило к деградации звучания
    Да, но речь шла об уменьшении разрядности накопителя ниже 24-х.

  7. #86
    Частый гость
    Регистрация
    17.11.2004
    Сообщений
    342

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Lynx
    Да, но речь шла об уменьшении разрядности накопителя ниже 24-х.
    Спасибо!А с разрядностью выходных данных вы не эксперементировали(например, 16 бит+нули и 20 бит для ad1862).
    Кстати, по теории не совсем понятно- почему надо вставлять n нулевых отсчетов, а потом фильтровать-по физике процесса отсчеты должны повторятся n раз

  8. #87
    Завсегдатай Аватар для pokos
    Регистрация
    18.08.2005
    Сообщений
    1,357

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Gav
    Кстати, по теории не совсем понятно- почему надо вставлять n нулевых отсчетов, а потом фильтровать-по физике процесса отсчеты должны повторятся n раз
    Дело в том, что Котельников трактовал представление дельта-импульсами. Вставка именно нулевых отсчётов приближает дискретное представление к дельта-импульсу.

  9. #88
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Gav
    Кстати, по теории не совсем понятно- почему надо вставлять n нулевых отсчетов, а потом фильтровать-по физике процесса отсчеты должны повторятся n раз
    pokos ответил. Добавлю, что для реальных сигналов и восстанавливающих фильтров большее приближение выходного сигнала к идеалу дают не нулевые и не повторяющиеся отсчеты (последнее, кстати, эквивалентно их отсутствию), а линейно интерполированные.

    Цитата Сообщение от Gav
    А с разрядностью выходных данных вы не эксперементировали
    Нет.

  10. #89
    Завсегдатай Аватар для pokos
    Регистрация
    18.08.2005
    Сообщений
    1,357

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

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

  11. #90
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    52
    Сообщений
    1,375

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Мне тоже кажется, что добавление нулевых отсчетов дает появление новых гармоник не ниже начальной частоты дискретизации (результат этой операции есть перемножение исходного сигнала на последовательность дельта-импульсов с частотой fдискретизации) и легко фильтруются ЦФ, тогда как разного рода интерполяции могут давать новые гармоники в полосе частот сигнала и их уже не отфильтруешь

  12. #91
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Nikkov
    интерполяции могут давать новые гармоники в полосе частот сигнала и их уже не отфильтруешь
    Нет, они тоже дают составляющие выше найквистовской частоты, только их энергия будет меньше, чем при использовании свертки сигнала и дельта-функции. А это значит, что и фильтрация оных проще.

  13. #92
    Новичок
    Регистрация
    28.05.2005
    Адрес
    Ростов - н/Д
    Возраст
    52
    Сообщений
    46

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Gav
    Пересчитал точнее-порядок получился около 560-го
    При прочих равных условиях для увеличения крутизны спада вдвое - во столько же раз увеличивают число эелементов фильтра (точнее, получится 2n-1). Так же дело обстоит, если необходимо увеличить частоту дискретизации при сохранеении крутизны (если, например вместо 2-х передискретизации делать 4-х).
    Цитата Сообщение от Lynx
    Добавлю, что для реальных сигналов и восстанавливающих фильтров большее приближение выходного сигнала к идеалу дают линейно интерполированные отсчеты .
    Осторожнее: повторяющиеся отчёты дают спад АЧХ в конце полосы пропускания, это проверено. Линейная интерполяция, скорее всего, тоже, хотя не так сильно (это только предположение, его следует проверить).

    [ADDED=Vitёk]1133286180[/ADDED]
    Прошу прощения, я был не прав: при использовании линейной интерполяции соседних отсчетов результат получается ещё хуже, чем при их дублировании. На картинке показан спектр белого шума:
    1. зелёный - при прореживании нулями (нечётные выборки равны нулю);
    2. красный - при дублировании (нечётные выборки равны предыдущим чётным);
    3. синий - при линейной интерполяции (нечётные выборки равны среднему арифметическому смежных чётных выборок).
    В контексте обсуждаемой темы необходимо сказать, что подразумеваемая дальнейшая фильтрация ограничит полосу до 12 кГц.
    Картинка наглядно показывает, почему при передискретизации используется именно заполнение нулями, а не что-либо другое.

    Соответствующие спектры, только не столь "лохматые", имеют следующие последовательности:
    1. .... 0 - 0 - 1 - 0 - 0 ......
    2. .... 0 - 0 - 1 - 1 - 0 ......
    3. .....0 - 0.5 - 1 - 0.5 - 0 .....

    Желающие могут убедится.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	Clipboard01.png 
Просмотров:	429 
Размер:	21.6 Кб 
ID:	6159  
    Последний раз редактировалось Vitёk; 29.11.2005 в 20:43.

  14. #93
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Vitёk, есть один момент для уточнения условий.
    Эксперимент, как я понял, проводился без увеличения частоты дискретизации? То есть отсчеты не вставлялись между соседними, а просто рядом расположенные заменялись иными, соответствующими конкретному случаю?

  15. #94
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    52
    Сообщений
    1,375

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Lynx
    Vitёk, есть один момент для уточнения условий.
    Эксперимент, как я понял, проводился без увеличения частоты дискретизации? То есть отсчеты не вставлялись между соседними, а просто рядом расположенные заменялись иными, соответствующими конкретному случаю?
    Как я понимаю здесь представлен вариант удвоения исходной частоты дискретизации, т.е. добавляется один отсчет между двумя соседними.
    По поводу линейной интерполяцией, если не трогать математику, а просто взять предельный случай: оцифровка синусоиды с частотой в 4 раза меньше частоты дискретизации с нулевой фазой: первый отсчет 0, второй 1, третий снова 0, четвертый -1. При линейной интерполяции мы получим треугольный сигнал с соответствующим спектром, начинающимся от частоты исходной синусоиды.
    Второй случай оцифровка синусоиды с частотой немного меньше Найквиста: на выходе получаем отсчеты похожие на оцифровку синусоиды разностной частоты (эффект частокола). Если мы добавим между отсчетами линейно-интерполированные отсчеты - что мы получим?
    Последний раз редактировалось Nikkov; 30.11.2005 в 08:25.

  16. #95
    Частый гость
    Регистрация
    17.11.2004
    Сообщений
    342

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Vitёk
    При прочих равных условиях для увеличения крутизны спада вдвое - во столько же раз увеличивают число эелементов фильтра (точнее, получится 2n-1). Так же дело обстоит, если необходимо увеличить частоту дискретизации при сохранеении крутизны (если, например вместо 2-х передискретизации делать 4-х).
    Осторожнее: повторяющиеся отчёты дают спад АЧХ в конце полосы пропускания, это проверено. Линейная интерполяция, скорее всего, тоже, хотя не так сильно (это только предположение, его следует проверить).

    [ADDED=Vitёk]1133286180[/ADDED]
    Прошу прощения, я был не прав: при использовании линейной интерполяции соседних отсчетов результат получается ещё хуже, чем при их дублировании. На картинке показан спектр белого шума:
    1. зелёный - при прореживании нулями (нечётные выборки равны нулю);
    2. красный - при дублировании (нечётные выборки равны предыдущим чётным);
    3. синий - при линейной интерполяции (нечётные выборки равны среднему арифметическому смежных чётных выборок).
    В контексте обсуждаемой темы необходимо сказать, что подразумеваемая дальнейшая фильтрация ограничит полосу до 12 кГц.
    Картинка наглядно показывает, почему при передискретизации используется именно заполнение нулями, а не что-либо другое.

    Соответствующие спектры, только не столь "лохматые", имеют следующие последовательности:
    1. .... 0 - 0 - 1 - 0 - 0 ......
    2. .... 0 - 0 - 1 - 1 - 0 ......
    3. .....0 - 0.5 - 1 - 0.5 - 0 .....

    Желающие могут убедится.
    А откуда инфа,что в 5842 сделанно на функции Кайзера(т.е алгоритм считался именно так0

  17. #96
    Новичок
    Регистрация
    28.05.2005
    Адрес
    Ростов - н/Д
    Возраст
    52
    Сообщений
    46

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Gav
    А откуда инфа,что в 5842 сделанно на функции Кайзера
    Результат симуляции. В правильности своих выводов для первой ступени я уверен на 95% - её результаты довольно точно совпали с параметрами из даташита. Что касается 2-й и 3-й ступеней - там не всё понятно. Может быть, когда-нибудья ими займусь...
    Цитата Сообщение от Lynx
    Vitёk, есть один момент для уточнения условий.
    Эксперимент, как я понял, проводился без увеличения частоты дискретизации?
    Именно так. Чётные выборки в исходном сигнале были элементарно занулены, а не прорежены методом вставки. Для белого шума разницы никакой! Что спектр зеркально отражён от половины частоты дискретизации, что от полной частоты дискретизации - в итоге получим всё тот же плоский спектр. Для остальных сигналов такой фокус не прокатит - там нужно будет "по честному" вставлять нулевые выборки.
    Цитата Сообщение от Nikkov
    Второй случай оцифровка синусоиды с частотой немного меньше Найквиста: на выходе получаем отсчеты похожие на оцифровку синусоиды разностной частоты (эффект частокола). Если мы добавим между отсчетами линейно-интерполированные отсчеты - что мы получим?
    Если у Вас есть что-нибудь вроде Cool Edit ака Adobe Audition, можете сами это узнать. Набор инструментов позволяет сделать это легко.
    Последний раз редактировалось Vitёk; 30.11.2005 в 18:00.

  18. #97
    Инженер Аватар для Lynx
    Регистрация
    28.09.2004
    Адрес
    Санкт-Петербург
    Возраст
    54
    Сообщений
    4,599

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Vitёk
    Именно так. Чётные выборки в исходном сигнале были элементарно занулены, а не прорежены методом вставки. Для белого шума разницы никакой!
    Да, я алгоритм получения нужных видов передискретизации понял. То есть, если в реальном случае мы имеем 4-х или 8-кратную передискретизацию, т.е. на Вашей спектрограмме частоты полезного сигнала будут сосредоточены в диапазоне до 6(или 3)кГц. Т.о. с точки зрения дальнейшей фильтрации продуктов дискретизации лучше всех смотрится линейная интерполяция, поскольку результирующая интегральная мощность составляющих выше найквистовской частоты будет в этом случае минимальна.

  19. #98
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    52
    Сообщений
    1,375

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Цитата Сообщение от Vitёk
    Чётные выборки в исходном сигнале были элементарно занулены, а не прорежены методом вставки.
    Тогда получается бесполезный эксперимент, потому что нарушается условия Котельникова/Найквиста, т.к. вы в два раза понизили частоту дискретизации без ограничения спектра исходного сигнала.
    Цитата Сообщение от Vitёk
    Если у Вас есть что-нибудь вроде Cool Edit ака Adobe Audition, можете сами это узнать. Набор инструментов позволяет сделать это легко.
    Это был риторический вопрос, я хотел сказать, что после линейной интерполяции сигнал по своему спектру будет абсолютно не такой как исходная синусоида!

    Черт! Я действительно был неправ, промоделировал, получающиеся гармоники получились выше первоначальной частоты Найквиста, что в общем-то понятно, если подумать.
    Последний раз редактировалось Nikkov; 01.12.2005 в 10:42.

  20. #99
    Завсегдатай Аватар для yan
    Регистрация
    21.12.2004
    Адрес
    Чебоксары
    Возраст
    47
    Сообщений
    1,266

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    с точки зрения дальнейшей фильтрации продуктов дискретизации лучше всех смотрится линейная интерполяция, поскольку
    Развивая мысль, можно применить интерполяцию вторым или третьим порядком. Уже второй порядок резко снижает уровень ВЧ составляющих по сравнению с линейной интерполяцией.
    Вычислительная сложность интерполяции функциями третьего порядка всё же ниже, чем сложность интерполяции цифровым фильтром дополненного нулевыми отсчетами сигнала.

  21. #100
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    52
    Сообщений
    1,375

    По умолчанию Re: Проектируем цифровой фильтр для ЦАП

    Еще дальше развивая мысль, лучше использовать sinc-функцию для расчета коэффициентов, т.е.

    u(i)=k1*u(i-1) + k2*u(i+1),
    u(i-1) - предыдущий отсчет
    u(i) - вставляемый отсчет
    u(i+1) - следующий отсчет
    k1=sin(dt1)/dt1, где dt1 - интервал времени между предыдущим и вставляемым отсчетом
    k2=sin(dt2)/dt2, где dt2 - интервал времени между вставляемым и следующим отсчетом.
    При удвоении частоты этот коэффициент будет один т.к. k1=k2,
    при учетверении два и т.д.

    Еще лучше считать отсчет по результату -бесконечность до +бесконечность отсчетов назад и вперед . Тогда будет идеальный цифровой фильтр, т.к. sinc-функция - его импульсная характеристика

Страница 5 из 22 Первая ... 3456715 ... Последняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •