Получение переходной характеристики...

dronych
Сообщения: 5
Зарегистрирован: 28 май 2014, 16:09

Получение переходной характеристики...

Сообщение dronych »

Доброго времени суток. Краткое описание проблемы:
Получаю с прибора (анализатор цепей Agilent) комплексные данные об отраженной волне (s11). Зеркально дополняю массив данных:

Код: Выделить всё

int num_points = data_.numberOfPoints * 2;
scalarRealData_.resize(num_points);
scalarImagData_.resize(num_points);

for(int i=0; i < num_points / 2; ++i)
	{
		scalarRealData_[num_points - 1 - i]= scalarRealData_[i];
		scalarImagData_[num_points - 1 - i]= -scalarImagData_[i];
	}
Провожу обратное преобразование фурье с помощью FFTW3.
Нормализую массив. (получена импульсная характеристика)
Считаю интеграл (а точнее площадь под графиком импульсной характеристики) (получена переходная характеристика).
Итог получается пока не совсем что я задумал
Программа сыровата конечно нет подписей и т.д., но по горизонтали - время, по вертикали центральная линия - ноль, далее 0.5 и 1 и -0.5, -1. Красный график - импульсная характеристика синий - переходная
Рис 1
Пустой разъем
Пустой разъем
рис2
Накручен кабель около полу метра
Накручен кабель около полу метра
рис3
еще сантиметров 30 кабеля
еще сантиметров 30 кабеля
рис4
В конце нагрузка 50 Ом
В конце нагрузка 50 Ом
Так вот появляется непонятный мне наклон ВНИЗ, из-за чего все сбивается !?!?!?!
А теперь вопрос:
1. С прибора я не могу получить данные о частотах ниже 10 МГц. Как мне быть, ведь я провожу RFFT над неполной выборкой. (например 10 МГц - 1 ГГц 1000 точек) Возможно надо дополнить массив или каким-то образом проводить преобразование только части даннных)?
2. Попробовал применение оконной функции Ханна для начала. код:

Код: Выделить всё

inline double HannFunction(size_t n, size_t N)
{
	return .5 * (1 - std::cos(2*M_PI*n/(N-1)));
}

bool CrefMetrDoc::WindowingData(void)
{
	int num_points = data_.numberOfPoints;

	for(int i=0; i < num_points; ++i)
	{
		scalarRealData_[i]*= HannFunction(i, num_points);
		scalarImagData_[i]*= HannFunction(i, num_points);
	}

	return true;
}
Результат немного сглаживается, но масштаб по вертикали уменьшается в два раза... может я че-то делаю не так?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Получение переходной характеристики...

Сообщение Бахурин Сергей »

1) Если нет частот ниже 10 МГц то откуда в импульсной характеристике постоянная составляющая?
2) Собственно где наклон вниз который смущает? На графиках криминала не увидел. Согласовали и не стало отраженной волны
3) Масштаб изменился из-за ослабления окном. Для его компенсации надо учесть этот к-т ослабления. Подробнее в этом разделе

dronych
Сообщения: 5
Зарегистрирован: 28 май 2014, 16:09

Re: Получение переходной характеристики...

Сообщение dronych »

В том-то и дело что нет информации о постоянной составляющей и всего остального ниже 10 МГц!!! Сначала я попытался дополнить нулями (спереди). Получалось еще хуже. По этому преобразовываю только полученные данные.
Наклона все-равно быть не должно, т.к подключен 50 омный кабель к 50 омному прибору. Завтра попробую полученные данные дополнить спереди нулями и с помощью оконной функции оставить только реально полученные и преобразовать... отпишусь о результате...

dronych
Сообщения: 5
Зарегистрирован: 28 май 2014, 16:09

Re: Получение переходной характеристики...

Сообщение dronych »

Бахурин Сергей писал(а):1) Если нет частот ниже 10 МГц то откуда в импульсной характеристике постоянная составляющая?
2) Собственно где наклон вниз который смущает? На графиках криминала не увидел. Согласовали и не стало отраженной волны
3) Масштаб изменился из-за ослабления окном. Для его компенсации надо учесть этот к-т ослабления. Подробнее в этом разделе
Спасибо за ответ...
Я не правильно задал вопрос. Надо было вот так:
1. Необходимо получить переходную характеристику кабельной системы, я имею данные об отраженной волне в комплексной форме, но о частотах ниже 10 МГц данных НЕТ! Необходимо по видимому либо как то заполнить, либо нивелировать каким-либо образом эти потери, т.к. я попытался либо просто произвести обратное преобразование Фурье над полученными данными, либо над дополненными спереди НУЛЯМИ, получается НЕ то. (см. первый пост).
затем я попытался считывать данные с шагом 10 МГц и добавил нулевую постоянную составляющую - тоже ерунда вышла.
2. Попытался дополнить спереди нулями и вырезать оконной функцией, только правильные данные... результат тоже не тот. (спасибо за объяснение коэффициента ослабления оконной функции)
3. Данные об отраженной волне дополняю "сзади" комплексно-сопряженными передней части числами, массив увеличивается вдвое . Верно ли это?
Видимо я что-то делаю не так... пойду учить мат.часть ...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Получение переходной характеристики...

Сообщение Бахурин Сергей »

Ну я бы предложил вам для начала как-то выложить данные которые вы получаете и их обработку в матлабе или gnu octave. После этого будет более понятна проблема. Если речь идет об отраженной волне то я думаю что нулевую частоту целесообразно задать 0 потому что я себе не очень представляю как постоянная составляющая может отразиться :?

dronych
Сообщения: 5
Зарегистрирован: 28 май 2014, 16:09

Re: Получение переходной характеристики...

Сообщение dronych »

Бахурин Сергей писал(а):Ну я бы предложил вам для начала как-то выложить данные которые вы получаете и их обработку в матлабе или gnu octave. После этого будет более понятна проблема. Если речь идет об отраженной волне то я думаю что нулевую частоту целесообразно задать 0 потому что я себе не очень представляю как постоянная составляющая может отразиться :?
К сожалению под рукой нет Матлаба, да и к своему стыду не работал я в нем...
Но вот накидал в Маткаде (уж простите) ВОТ:
Fourie.rar
Архив с алгоритмом и исходными данными
(179.34 КБ) 555 скачиваний
В архиве два исходных файла с данными об отраженной волне, маткадовский файл с "расчетами" (версия маткада № 14).
Для тех кто не хочет связываться с таки ПО я конвертировал в проект в HTML и RTF, так что посмотреть можно...
Вот результат...
Результат
Результат
Примерно как у меня ранее...
Описание: Данные считываются с шагом 10 МГц, таким образом добавляю только постоянную составляющую (ноль соответственно). Я не очень разобрался с маткадовским преобразованием Фурье, но для обратного преобразования он требует масссив комплексный числен - выдает массив (удвоенный) чисел с плавающей точкой. Таким образом неизвестно как он подготавливает данные для преобразования... Поскольку результат похож на мой... можно сделать вывод, что он дополняет его комплексно-сопряженными числами как я (см. выше).
А вообще займусь установкой матлаба...

dronych
Сообщения: 5
Зарегистрирован: 28 май 2014, 16:09

Re: Получение переходной характеристики...

Сообщение dronych »

А вот график если дополнять исходные данные спереди нулевой постоянной составляющей ;)
Без дополнения нулем вначале
Без дополнения нулем вначале

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: Получение переходной характеристики...

Сообщение Бахурин Сергей »

я посмотрел ваши данные. Основная проблема в том что вы хотите оценить характеристику без информации о постоянной составляющей. Это очень большая проблема. Если вы будете доопределять постоянную составляющую до 0 или до 1 то будете получать абсолютно разные результаты.

Сравнить ваши результаты со своими сложно потому что не работаю в маткаде. Так что если будет матлаб скрипт то могу посмотореть. Визуально мои картинки на ваши похожи но совпадение оценить сложно.

Ответить