Генерация модели антенны и двухполупериодный анализ из фотографии

Этот пример демонстрирует процесс использования фотографии плоской антенны, чтобы сгенерировать жизнеспособную модель антенны и ее последующий анализ для порта, поверхности и полевых характеристик. Приложение Image Segmenter будет использоваться, чтобы выполнить сегментацию на изображении тега RFID, и получившиеся контуры будут использоваться, чтобы настроить модель антенны в Antenna Toolbox™. Начальный анализ импеданса будет сделан по частотному диапазону, чтобы изучить характеристики порта антенны. После определения резонансной частоты текущая и далекая диаграмма направленности по напряжённости поля будет вычислена и построена.

  • Этот пример зависит от Image Processing Toolbox™

Тег RFID

Начните, делая фотографию тега RFID на фоне контраста высококачественного цвета. Камера позиционирована непосредственно по антенне. Эта фотография была сделана со смартфоном.

Отобразите сегментацию Используя приложение Image Segmenter

Выберите Foreground и Background

Используя приложение, импортируйте эту антенну и выберите опцию сокращения графика на панели инструментов. Выберите передний план и фоновые области памяти на изображении. В данном примере область переднего плана является металлизованными областями тега RFID, и фон является цветной областью.

Улучшение качества сегментации

Выбор знаний в приложении приводит к начальной сегментации изображения в фоновые фрагменты и передний план. Если эта сегментация достаточна, примените изменения и перейдите к следующей части процесса путем закрытия вкладки сокращения графика.

Если однако, все части антенны еще не были идентифицированы, продолжают повышать передний план и фоновые области памяти. Это позволяет алгоритму сегментации улучшать результаты. Это может также быть полезным, чтобы настроить плотность подобласти, чтобы совершенствовать качество сегментации. После внесения необходимых корректировок примените изменения и закройте сокращенную из графика вкладку сегментации в приложении. При возврате основной вкладке существует несколько опций, чтобы далее улучшить сегментацию. В этом примере мы используем Активную опцию Контуров и развиваем существующую сегментацию, чтобы заполнить любые недостатки в контурах.

Заметьте, что после нескольких итераций активного алгоритма контуров выполнился, контур намного более сглажен и свободен от метки как артефакты. Область в качестве примера показывают для сравнения.

Экспортируйте код и контур

Основанный на цвете процесс сегментации дает к маске изображения антенны. Используйте опцию экспорта на приложении, чтобы получить функцию и граничную информацию, которая может затем использоваться в скрипте для последующей обработки (такой как этот).

Граничная очистка

Считайте изображение, создайте маску и визуализируйте

Изображение тега RFID импортируется в рабочую область, и контур сгенерирован при помощи экспортируемого кода из приложения Image Segmenter.

I = imread('IMG_2151.JPG');
BWf = createMask_2151(I);
figure
imshow(BWf)

Вычислите контуры на декартовом пробеле

Для выполнения двухполупериодного анализа этой структуры следующий шаг должен преобразовать пиксельное представление пробела контура к декартову представлению пробела. Для этого мы извлекаем максимальные и минимальные пиксельные индексы в x, y размерности и масштабируем его на основе полных размерностей тега в терминах его длины и ширины.

B = bwboundaries(BWf);
xmax = max(B{1}(:,1));
xmin = min(B{1}(:,1));
ymax = max(B{1}(:,2));
ymin = min(B{1}(:,2));

% Scale per pixel based on tag dimensions
L = 18.61e-3;
W = 72.27e-3;
LperColpixel = L/(xmax-xmin);
WperRowpixel = W/(ymax-ymin);
Bp = B;
for i = 1:length(Bp)
    Bp{i} = [Bp{i}(:,1).*LperColpixel Bp{i}(:,2).*WperRowpixel zeros(size(Bp{i},1),1)];
end
p = cell2mat(Bp);
x = p(:,1);
y = p(:,2);
figure
plot(x,y,'*')
grid on
axis equal
xlabel('x (m)')
ylabel('y (m)')
title('Boundary points')

Уменьшайте граничные точки

Контур имеет 28 000 точек, и это приведет к очень большому размеру mesh. Downsample этот контур на коэффициент 39. Прореживать фактор был выбран, поскольку он все еще представлял граничные детали точно на основе простого визуального осмотра.

D = 39;
xD = x(1:D:end);
yD = y(1:D:end);
BpD{1} = Bp{1}(1:D:end,:);
figure
hold on
plot(xD,yD,'r*')
shg
grid on
axis equal

Создайте слой для стека PCB

Создайте форму из контура

pol = antenna.Polygon('Vertices',BpD{1});

При создании Канала Антенны область канала тега все еще имеет некоторые резкие артефакты в контуре. Это должно быть очищено до определения канала. Мы используем boolean, вычитают операцию, сделан путем создания прямоугольника, чтобы удалить этот артефакт.

rect1 = antenna.Rectangle('Length', 5e-3, 'Width', 2e-3,                  ...
                        'Center', [0.019 0.0392]);

Последний шаг, должен задать питающуюся полосу. Добавьте канал в форме прямоугольника.

rect2 = antenna.Rectangle('Length', 0.25e-3, 'Width', 2e-3,               ...
                       'Center', [0.0185 0.0392]);

Результирующая форма

final_shape = pol-rect1+rect2;

Создайте стек PCB

Присвойте результирующую форму, сгенерированную как слой для стека pcb. FeedLocation задан соответственно так, чтобы он нашелся на этом слое

p = pcbStack;
p.Layers = {final_shape};
p.BoardShape = antenna.Rectangle('Length',1,'Width',1);
p.FeedLocations = [0.0185 0.0392 1 ];
p.FeedDiameter = 1.25e-4;
show(p);

Анализ порта - поведение импеданса по сравнению с частотой

Определите характеристики порта этой антенны путем выполнения анализа импеданса по крупному произведенному частотному диапазону. Тег, как ожидают, будет действовать в полосе UHF между 800 - 900 МГц. Наш частотный диапазон расширит немного прошлые 900 МГц.

f_coarse = linspace(0.8e9,0.95e9,21);
figure
impedance(p,f_coarse)

Настройка тега для резонанса

Тег является индуктивным и имеет хороший резистивный компонент на уровне приблизительно 854 МГц. Кроме того, реактивное сопротивление показывает классическую параллельную резонансную кривую вокруг той частоты. Как правило, входной импеданс чипа был бы комплексным, чтобы соответствовать к тегу. Используйте свойство Load на антенне, чтобы отменить индуктивный компонент. Поскольку реактивное сопротивление, приблизительно 200$\Omega$ создают загрузку с реактивным сопротивлением-200$\Omega$ и добавляют его в модель антенны.

X = -1i*200;
zl = lumpedElement;
zl.Impedance = X;
p.Load = zl;

Повторно вычислите импеданс С загрузкой на месте в канале, индуктивная часть реактивного сопротивления должна быть отменена на уровне 854 МГц. Подтвердите это путем анализа импеданса по прекрасному частотному диапазону. Реактивное сопротивление на уровне 854 МГц должно составить приблизительно 0 Ом.

f_fine = linspace(0.8e9,0.95e9,51);
figure
impedance(p,f_fine)

Поверхностный Анализ - Текущее поведение на Центральной Частоте

На центральной частоте визуализируют распределение тока на поверхности антенны.

figure
current(p,854e6,'scale','log10');
view(0,90);

Полевой анализ - шаблон на центральной частоте

Теги RFID обычно имеют всенаправленную далекую диаграмму направленности по напряжённости поля в одной плоскости. Визуализируйте диаграмму направленности далекого поля тега.

figure
pattern(p,854e6)

Тег имеет усиление приблизительно 2dBi на уровне 854 МГц.

Заключение

Процедура для идентификации контура антенны из фотографии, преобразования в геометрическую модель антенны и ее последующего двухполупериодного анализа была подробно изложена в этом примере. Эти шаги графически изображены как показано:

Показатели производительности антенны, полученные из этой процедуры, достаточно хороши для дальнейшего интегрирования в большую системную симуляцию.

Смотрите также