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

sinc_func

Участник
  • Постов

    111
  • Зарегистрирован

  • Посещение

Весь контент sinc_func


  1. Выяснилась одна любопытная подробность. Для устранения представленной выше нестабильности необходимо DC-режектор для канала диктора делать более высокого порядка, чем аналогичный режектор для канала шума Вот что это дает.. Уже видна стационарность. Конечно, тут есть над чем поработать. По вертикали - h, по горизонтали - время
  2. Гоняю сейчас именно модель. Первый косяк, который уже выявился, - приходится работать на виртуалке ( XP на Win7, такова специфика работы ), и при записи аудио-файла с Fs = 8kHz, у сигнала с микрофона шума наблюдается волнистость амплитуды (к=1.5..1.7). При этом сигнал с микрофона диктора (существенно меньшей амплитуды) - очень даже стационарный и ничего подобного нет. Сделал запись на большей частоте сэмплинга (32kHz, 44.1kHz, 48kHz). Таких проблем после software-ресэмплинга уже нет. Удалось достичь подавления RLS-фильтром в 11..14 dB ( FIR_N = 864).
  3. Формально конечно, надо дать структуру обработки (хотя она более чем очевидна)
  4. Добрый день, уважаемые форумчане. Для ознакомления решил попробовать сделать шумодав c адаптивным фильтром по классической схеме, описанной в DSP литературе: Обычная колонка в качестве источника шума, в 30..60 см от нее микрофон для шума, на некотором отдалении (2м) - микрофон диктора. Для начала - просто производится стереозапись шума на эти два микрофона. В настройках микрофона всякая предобработка выключена. После DC фильтрации на шум ставиться адаптивный фильтр ( LMS или RLS). Задача для начала - просто устранить шум. Делал также пост-обработку этих файлов и методом наименьших квадратов (общее и скользяшим окном). 1. Результаты - не впечатлили, так RLS давал 4..7 dB подавления (FIR_N = 352..620, Fs=8kHz) 2. Изучение импульсной характеристики скользщим окном - методом наименьших квадратов показало, импульсная характеристика дико скачет по времени (а ожидалсь что-то более-менее стационарное..) Выглядит импульсная характерискика так (по вертикали - h, по горизонтали - время) Я что-то делаю не так и куда направить поиски? Спасибо.
  5. Кайно Акустические волны В этой книге дается определение акустического импеданса. А далее само преобразование импеданса я бы попробовал делать в каком-то конечно-элементном решателе типа FebLab-a
  6. Я пробовал моделировать аналогичную задачу в Sonnet-е . Мне понравилось... Относительно простой и интуитивный интерфейс... Моделирование - 2,5D типа.
  7. Было бы интерессно глянуть на примеры стильно сделанного копланара..
  8. При разводке RF часто не очевидно как поступать с заливкой верхнего слоя полигоном Я моделировал в Sonete куски полигонов и сигнальных линий - если "кусочки" полигонов недостаточно сильно прошиты - то лучше без них Вот пример фрагмента измерителя с tandem match-а для КВ антенного аттенюатора Здесь как-то не очевидно - стоило заливать или нет
  9. ....Кстати, во втором примере трассировка не совсем удачная.... Из возможных замечаний ко второй плате можно отнести - можно прошить немного больше глухими переходными "хвост" полигона у микросхемы (левый нижний край) - сигнальные сквозные переходные отверстия можно продублировать рядом-стоящими сквозными переходными цепи GND - это создаст короткий сквозной путь для возвратного тока (в сложной структуре многослойки)
  10. При разработки радиочастотных трактов просматриваются несколько стилей разводки печатных плат Например, схема выполняется в виде "прямоугольников" над последующим слоем GND (представлена схема генератора для ФАПЧ) Глухие переходные подключают "землю" данного каскада, сквозные переходные делают подключение входов-выходов и питания. Внешний полигон на слое TOP не присутствует в таком фрагменте а только снаружи охватывает такие "кубики" Другой стиль - это делается "заливка" схемы и верхнего слоя полигоном, подключенного к "земле" (Подслой - примерно таким и остается) Было бы любопытно узнать различие этих стилей с точки зрения последствий для схемотехники
  11. Измеренные параметры, приведенные вначале, были замерены при максимальной мощности и включенных обоих преобразователях (модулях). Без нагрузки - параметры ощутимо лучше (обычно где-то на 18 dB)
  12. -Да. Замер проводился каждой фазы питания относительно земли. Уровни по фазам обычно различаются.
  13. Есть блок питания радиостанции, сделанный на базе DC/DC модуля (50B -> 12 В). Он должен иметь минимум излучений во внешнюю силовую цепь. Когда дело дошло до ГОСТ-30429-96, выяснилось, что уровень помех должен быть 0.5-6 МГц – 40..26 dBмкВ, 6-30 МГц – 26 dBмкВ, 30-100 МГц – 34 dBмкВ. В представленной выше схеме были получены цифры на эквиваленте сети 0.5-6 МГц – 51 dBмкВ, 6-30 МГц – 67 dBмкВ, 30-100 МГц – 54 dBмкВ. Различного рода улучшения (двухкаскадная фильтрация и прочь..) давали еще около 9 dB. ..И цифра (6-30 МГц – 26 dBмкВ) – выглядит как-то нереалистично (по крайней мере при разводке в стиле навесного обвеса) И вопрос к знатокам – как достигается эта цифра (6-30 МГц – 26 dBмкВ).
  14. А что мешало поставить выравнивающие резисторы в эмитеры транзисторов - для россыпных транзисторов это как бы предполагается. Величины этих резисторов берутся из расчета чтобы на них падало где-то 0.1-0.2 В. Подбор транзисторов конечно можно производить по h21, но при этом можно также поинтерессоваться равенством U(база-эмитер) при прохождении прямого тока. Сделать это можно просто мультиметром в режиме диодной прозвонки - там задается фиксированный ток а напряжение показывает индикатор
  15. Неплохо разъяснялось в их DIGITAL SIGNAL PROCESSING APPLICATIONS USING THE ADSP-2100 FAMILY первый том, глава 4
  16. Контакт "земли" я сделал широкими лепестками с разъема , по два лепестка на каждый разъем - под них открыл маску на плате Дополнительно по периметру платы вскрытие маски создает контакт с металлической крышкой (крышка была дополнительно проточена). Снизу также есть всрытие маски под выступы в корпусе на которые плата ложиться. Просто мои первые опыты сразу показали к чему ведет плохая "земля" Сейчас получены показатели - уже приемлемые - потери - 1 Вт на 10 Вт входной мощности (правда до исходного феномена еще один переход) Достигнуто это было за счет - методики настройки (пост выше) - распрараллеивании конденсаторов (для меня это было откровение - потому что по всем datasheets от Murata для NP0 - их RMS - мизерный..) Сейчас тепловизор показывает что тепло идет от катушек Одним из дополнительных парадоксов, который открылся (по крайней мере для меня) являетя то что фильтр является ассиметричным. Фильтр круто давит гармоники в одном направлении (вход- выход) но в обратном направлении подавление гораздо слабже. Я всячески проверял теоритчески этот фильтр в Mathcad-е - ничего подобного там не просматривалось.. Дальнейшее движение я вижу таким - предполагаю поработать над потерями в катушках - чуть лучше разобраться в теории трансформации импедансов и улучшить методику настройки
  17. Вот кстати вид печатной платы Катушки и подводы снизу. Нижний слой - почти полностью - полигон.
  18. Как тут на обсуждении было рекомендовано - нужно посмотреть выделяемую мощность на элементах. У меня представилась возможность посмотреть тепловизором на проблему и что оказалось - в П-плечах фильтра у меня греются емкости и весьма не хило - входная емкость C1 - где-то 50-60 градусов при входной мощности в 10 Вт. В качестве конденсаторов я применил NP0 1206 но поставил как одиночную емкость с небольшой добавочным подстраиваемым конденсатором - похоже - это ошибочный подход - надо основную часть емкости распараллелить на несколько примерно одинаковых конденсатров для снижения их общего ESR. Занятным моментом (по крайней мере для начинающих типа меня) является проблема - а как же делается настройка. Я ее пытаюсь делать следующим образом. - собираю схему фильтра с немного недосыпанными величинами конденсаторов (все - кроме добавочных - где- то 7-8% от расчетной величины каждой емкости) - сначала настраиваю режектор на вторую гармонику - 4.28 Мгц, для этого использую генератор ( выставляю 18dBm) и за фильтром спектроанализатором ищу "провал", далее его подстраиваю добавочными конденсаторами под нужную частоту, - далее можно заняться третьей гармоникой, но на практике зона режекции от этого нуля на АЧХ достаточно широкая, можно просто поставив суммарный номинал C4 убедиться что эта точка режекции стоит примерно нормально ( тут можно дать небольшой комментарий - я потратил где-то с день на математические манипуляции в комплексных числах с этим фильтром и они у меня отбили всякое желание делать сильные отклонения емкости C4). Эта проверка делается аналогично - генератор (где-то 18 dBm) плюс спектроанализатор. Одного спектроанализатора недостаточно из-за ограниченного динамического дапазона. - далее уже одним спектроанализатором можно посмотреть основную часть АЧХ в зоне пропускания и спада и ее подкорректировать под теоретическую форму - финальная стадия настройки делается анализатором антенн RigExpert AA-200, На выход фильтра вешается эквивалент нагрузки а вход подключается к антенному анализатору. Я смотрю импеданс в режиме параллельного подключения R+jX на рабочей частоте. Избыток емкости убирается соответсвующей коррекцией общего номинала С1. Недостаток (индуктивный характер общего импеданса) требует увеличения этой емкости. Далее вход-выход меняются местами и производиться такая же коррекция для С5. Эти две подстройки С1, С5 делаются несколько раз по кругу для получения нормального КСВ (пока я не совсем до конца тут все понял - чтобы достичь полной идеальности, Rin=Rout=50.0 Ом) Как правильно заметил Serg1956 базовая схема фильтра имеет некоторые особенности в рабочей зоне частот Я действительно настраиваю на левую впадину в коэффициентах отражения.. Рабочих картинок АЧХ дать не могу - приборы не пишут картинки во флешку.. Может - если что - фотографии.. Так что битва еще продолжается..
  19. Мне мой руководитель дал задачу спроектировать дополнительный фильтр для КВ-радиостанции (частотный диапазон 2,13-2,14 MHz) для дополнительного подавления гармоник передатчика. Я синтезировал схему - так как я вижу требуемую передаточную характеристику. В ней ко всему прочему я сделал плоский участок входного и выходного импеданса в рабочем диапазоне частот и подогнал его к активным 50 Оммам. Как-то помучался с настройкой и первый образец выдал - потери были 0.4 Вт на 11 Вт входной мощности. Всем этот результат понравился. Сейчас перевел это на печатку - и никак не могу добиться такого же уровня потерь (сейчас потери около 2 Вт) Я подозреваю что такие вещи надо как-то хитро настраивать - но как - для меня это темный лес поскольку это первая разработка в данной области и это не моя основная тематика. Хотелось бы знать совет людей с большим опытом в этом деле - как делается настрока таких фильтров.
  20. Спасибо за мнение- :a14: Давайте посмотрим на проблему конкретнее. 4-х слойка. Берем - вся фольга - 18 мкм, структура платы - препрег 0.12 мм - база где-то 0.8мм - снова препрег 0.12 мм. Препреги у меня здесь берутся прежде всего для выполнения условия по волновому сопротивлению для DDR-ов. И при тех же габаритах надо вписать несколько большую схему в тот же размер ( а там уже было начало натягов).. Здесь вроде бы можно повторить BGA-шные vias-ы но в глухом варианте (те же размеры но на двух слоях) - механический micro-Via - 0.2/0.5 (площадку во внутреннем слое все таки делаю чуть шире).
  21. При раскладке BGA согласно рекомендациям Резонита мы можем ориентироваться на сквозные via размера 0.2/0.5. Но если почитать что предлагается за бугром - примерно в подобном типоразмере при тонких препрегах выполняется сверловка контролируемой глубины с малым соотношением глубина/диаметр (скажем где-то под 0.5). Металлизация далее выполняется в едином процессе с основными Via-сами. И вроде бы - мы должны получить глухие отверстия на внешних слоях с весьма малым изменением технологии ( и как бы цены ?). А так ли это на самом деле? Хотелось бы знать мнение Ваших технологов. Потому что связываться с двумя базами и классическими глухими переходными отверстиями пока как-то не хочется.
  22. ST32F207 ADC+DMA

    Здравствуйте, Сейчас пытаюсь настроить ADC ST32F207 для работы через DMA на заполнение кругового буфера (для последующей DSP обработки). Периодически запускать ADC должен Timer2 (TR_GO). Но почему-то от представленной ниже инициализации процессор так и не входит в прерывание от DMA Инициализация ADC+DMA void ADC123_DMA_Config(void) { ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; DMA_InitTypeDef DMA_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; // Enable ADC1, DMA2 and GPIO clocks RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); // DMA2 Stream0 channel0 configuration DMA_InitStructure.DMA_Channel = DMA_Channel_0; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) & (ADC1->DR); DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t) ADCBuffer; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = ADC_B; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_Low; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream0, &DMA_InitStructure); DMA_ITConfig(DMA2_Stream0, DMA_IT_TC | DMA_IT_HT, ENABLE); DMA_Cmd(DMA2_Stream0, ENABLE); // Enable the DMA2_Stream0 Interrupt NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); // Configure ADC1 Channel1 pin as analog input - PA1 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStructure); // ADC Common Init ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8; // -- 2us ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; ADC_CommonInit(&ADC_CommonInitStructure); // ADC1 Init ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T2_TRGO; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Left; ADC_InitStructure.ADC_NbrOfConversion = 1; ADC_Init(ADC1, &ADC_InitStructure); // ADC1 regular channel0 configuration ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_3Cycles); // Enable DMA request after last transfer (Single-ADC mode) // ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE); // Enable ADC1 DMA ADC_DMACmd(ADC1, ENABLE); // Enable ADC1 ADC_Cmd(ADC1, ENABLE); } Инициализация Timer2 void TIM2_Config(void) { // Output 125 kHz -> for ADC1 sampling // Output signal -> TRGO TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; // TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseStructure.TIM_Period = 479; TIM_TimeBaseStructure.TIM_Prescaler = 0; // every clock TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); TIM_ARRPreloadConfig(TIM2, ENABLE); TIM_SelectOutputTrigger(TIM2, TIM_TRGOSource_Update); TIM_Cmd(TIM2, ENABLE); } И я надеюсь от этого кода побывать отладчиком в прерывании //------------------------------------------------------------------------------ void DMA2_Stream0_IRQHandler(void) // ADC -> DMA { if (DMA2->LISR & DMA_LISR_HTIF0 ) { // half transfer ADCp = &ADCBuffer[0]; LED_On (1); } else { // full transfer ADCp = &ADCBuffer[ADC_B>>1]; LED_Off (1); } ADCf=1; DMA1->LIFCR = DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTCIF0; // reset general irq flags } Буду признателен на подсказку решения
  23. Такая схема с длинной линией яляется длинной антенной помимо всего. Традиционно с таких входов я "сливаю" наводки конденсаторами (1000пФ 1.5кВ) на землю (тип земли - Шасси), чтобы наводка не заходила в малосигнальную часть схемы и не сливалась на малосигнальную землю. При желании транзистор оптопары можно зашунтировать конденсатором, и входной логический элемент взять с триггером Шмитта если актуальна дифференциальная наводка.
×
×
  • Создать...