|
После децимации фильтр - не фильтр, Децимация на 2. Хрень какая-то! |
|
|
|
Nov 27 2011, 12:19
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 3-02-05
Пользователь №: 2 399

|
Цифрую сигнал на Fs=44кГц, после пропускаю через небольшой КИХ и на ЦАП Смотрю АЧХ, все более менее, начиная с 11кГц (Fs/4) затухание в пределах 30дБ.
Теперь просто выкидываю каждый второй отсчет и получается совсем другой результат. Fs теперь равно 22кГц. Частоты в районе 12-20кГц (теперь они отражены и на выходе они 10-2кГц соответственно) имеют амплитуду всего лишь на 8-10дБ меньше от исходных. Получается, что фильтр теперь не работает как надо! Но без децимации-то фильтр работает.
В общем не понимаю, подскажите, что не так-то?
|
|
|
|
|
 |
Ответов
|
Nov 29 2011, 04:17
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 3-02-05
Пользователь №: 2 399

|
Цитата(Alex11 @ Nov 28 2011, 23:41)  Что-то у Вас не так в системе. Какая амплитуда сигнала после АЦП? Если полные 16 бит - то у Вас переполнение в фильтре на выходе. Должет быть сдвиг на 16, а не на 13. Кроме того, спектр сигнала даже до децимации отличается от теоретического. Ваш фильтр на модели дает другую характеристику:
ацп (и соотв-но отсчеты на входе фильтра) 12 разрядный, а сдвиг на 13 после фильтра - это я его к 16 разрядам привожу для цап. Переполнения нет, синус в норме, проверено. Спектр похож, еслу уж говорить более подробно, то без децимации система у меня работает на 46кгц с копейками. А когда используется децимация то на около 43кгц и соответственно 21,5кгц на выходе. Просто у STM32 такой не очень удобный делитель для I2S стоит, по другому сделать пока не получается. Поэтому и спектр немного другой, но это ничего не меняет, просто горбы немного по частотной оси смещаются, а суть-то остается прежняя. Цитата(V_G @ Nov 28 2011, 15:01)  Почему "где-то", если элементарно не соблюдаются условия теоремы Котельникова? Я не совсем понимаю причем здесь теорема Котельникова, про наложение спектров все в курсе. Но я не помню, чтобы в теореме говорилось про минимально допустимое затухание. Меня устроит алиазинг с ослаблением более 30дБ, поэтому и фильтр такой, но после децимации он не дает то что требуется, вот в чем вопрос. Может быть Вы помните из теоремы что-то более глубокое? Поясните пожалуйста свою мысль.
|
|
|
|
|
Nov 29 2011, 12:19
|
Местный
  
Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066

|
Цитата(avmsystem @ Nov 29 2011, 07:17)  Спектр похож, еслу уж говорить более подробно, то без децимации система у меня работает на 46кгц с копейками. А когда используется децимация то на около 43кгц и соответственно 21,5кгц на выходе.
Просто у STM32 такой не очень удобный делитель для I2S стоит, по другому сделать пока не получается.
Поэтому и спектр немного другой, но это ничего не меняет, просто горбы немного по частотной оси смещаются, а суть-то остается прежняя. Первый момент: если все сделано корректно, то таких эффектов, как у Вас на графике АЧХ, не должно быть в принципе. Момент второй: на мой взгляд, вот эти две Ваши фразы очень слабо между собой согласуются: Цитата(avmsystem @ Nov 27 2011, 15:19) Теперь просто выкидываю каждый второй отсчет и получается совсем другой результат. Fs теперь равно 22кГц. и Цитата(avmsystem @ Nov 29 2011, 07:17)  А когда используется децимация то на около 43кгц и соответственно 21,5кгц на выходе. Так на какой же все-таки частоте у Вас работает ЦАП, когда Вы используете децимацию? Момент третий: А выполняются ли у Вас правильные соотношения между частотами всех сигналов I2S ЦАПа? Какова частота MCLK, LRCK и SCLK сигналов? В каком режиме работает ЦАП, Slave Mode или Master Mode? Не может быть так, что Ваш эффект вызван тем, что у ЦАП просто срывает крышу? И еще, Вы смотрели осциллографом, что творится на выходе ЦАПа? И действительно ли когда Вы подаете на вход синус, к примеру 15кГц, он у Вас заворачивается на выходе ЦАП в 7кГц? А вообще, если есть такая возможность, то лучше конечно скидывать данные на комп и уже там анализировать АЧХ.
|
|
|
|
|
Nov 29 2011, 16:59
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 3-02-05
Пользователь №: 2 399

|
Цитата(Самурай @ Nov 29 2011, 16:19)  Так на какой же все-таки частоте у Вас работает ЦАП, когда Вы используете децимацию? Момент третий: А выполняются ли у Вас правильные соотношения между частотами всех сигналов I2S ЦАПа? Какова частота MCLK, LRCK и SCLK сигналов? В каком режиме работает ЦАП, Slave Mode или Master Mode? Не может быть так, что Ваш эффект вызван тем, что у ЦАП просто срывает крышу?  Не хотел я здесь в дебри лезть, но если подробно, то система такая: Контроллер STM32F103 имеет встроенный I2S, тактовая 72МГц. Его предделитель для I2S не слишком гибкий и когда его настраиваешь на 44,1кГц, он дает погрешность 6.29%(при тактовой 72МГц) то есть фактически 46,875кГц. Когда переключаешь его на 22,05кГц, он работает на 21,63461кГц(погрешность 1.88%). Такой вот он кривой, кто с ним работал - знает, в даташите это описано. Соотношение у него между MCLK и LRCK фиксированное 256×FS, что тоже не очень гут, но не так страшно. Так вот контроллер работает мастером и сам формирует MCLK, LRCK, SCLK. В связи со всем этим, для того чтобы вся система работала синхронно получается два случая: 1. Без децимации. I2S работает на 46,875кГц, поэтому на этой частоте работает и ЦАП и АЦП. 2. С децимацией. I2S работает на 21,63461кГц, поэтому ЦАП работает тоже на 21,63461кГц, а АЦП работает на удвоенной частоте т.е. 43,26922кГц. Соотношения MCLK, LRCK, SCLK не меняются, так что ЦАПу по барабану он молотит и молотит. А горбы на частотке плывут, это видно и сходится с условиями проведения опыта. Так что с этой стороны (со стороны цап), я думаю огрехов нет. Цитата(Самурай @ Nov 29 2011, 16:19)  И еще, Вы смотрели осциллографом, что творится на выходе ЦАПа? И действительно ли когда Вы подаете на вход синус, к примеру 15кГц, он у Вас заворачивается на выходе ЦАП в 7кГц? А вообще, если есть такая возможность, то лучше конечно скидывать данные на комп и уже там анализировать АЧХ. Осциллографом смотрел, синус действительно заворачивается из 15 в 7кГц, но конечно он не такой чистый получается. На комп скидывать возможности к сожалению нет.
|
|
|
|
Сообщений в этой теме
avmsystem После децимации фильтр - не фильтр Nov 27 2011, 12:19 HFSSLer Если выводите на ЦАП с частотой 22 кГц, то должен ... Nov 27 2011, 13:03 avmsystem Цитата(HFSSLer @ Nov 27 2011, 16:03) Если... Nov 27 2011, 16:42 V_G Вообще-то до децимации, а не после ЦАП, должен быт... Nov 27 2011, 16:44 HFSSLer Может действительно из какой-нибудь верхней зоны Н... Nov 27 2011, 18:12 avmsystem Цитата(V_G @ Nov 27 2011, 20:44) Вообще-т... Nov 28 2011, 07:50  V_G Цитата(avmsystem @ Nov 28 2011, 17:50) Во... Nov 28 2011, 07:57  Самурай Цитата(avmsystem @ Nov 28 2011, 10:50) Во... Nov 28 2011, 09:20   V_G Цитата(Самурай @ Nov 28 2011, 19:20) Скор... Nov 28 2011, 11:01   avmsystem Цитата(Самурай @ Nov 28 2011, 13:20) Скор... Nov 28 2011, 11:09 V_G Пожалуйста.
Теорема Котельникова задает ограничени... Nov 29 2011, 05:41 Fast for(n=0; n<(lentg/2); n++) y += FIRCoef[n] * (x... Nov 29 2011, 07:23 Alex11 Я по трезвому размышлению тоже склоняюсь к мысли о... Nov 29 2011, 14:48 Alex11 А SCLK идет 64*Fs? И что все-таки в данных? Nov 29 2011, 20:23 avmsystem Цитата(Alex11 @ Nov 30 2011, 00:23) А SCL... Nov 30 2011, 08:07  V_G Цитата(avmsystem @ Nov 30 2011, 18:07) Ес... Nov 30 2011, 10:59   avmsystem Всё, нашел грабли!
Стыдно признаться, но не в... Nov 30 2011, 12:08    V_G Цитата(avmsystem @ Nov 30 2011, 22:08) От... Nov 30 2011, 14:21     Самурай Цитата(V_G @ Nov 30 2011, 17:21) ...что ж... Nov 30 2011, 18:25    Fast Цитата(avmsystem @ Nov 30 2011, 16:08) Кс... Dec 1 2011, 06:39    ivan219 Цитата(avmsystem @ Nov 30 2011, 16:08) Кс... Dec 1 2011, 17:05
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|