Какими должны быть мобильные фильтры товаров в 2021? + Геймификация подбора — Дизайн на vc.ru
2893 просмотров
Всем привет!
Я Евгений Абунагимов. Проектирую интернет-магазины и другие интерфейсы, пишу о них в телеграме. Сегодня на примере своего концепта расскажу, как сделать фильтры приложения магазина удобнее и полезнее.
Почему нельзя относиться к мобильным фильтрам халатно?
Проведём эксперимент
Условие: вы столкнулись с неизвестным параметром в фильтрах. Подсказок, что это такое, нет ни в одном из случаев. Нужно гуглить.
Решаем задачу на ПК: открываем новую вкладку → гуглим → открываем ссылку → возвращаемся.
Ушло 17 секунд.
Решаем задачу на смартфоне: сворачиваем приложение → открываем браузер → дожидаемся запуска → гуглим → читаем → открываем список запущенных приложений → возвращаемся.
Ушло 29 секунд.
Вывод эксперимента: Решение проблемы на мобилке требует почти в два раза больше трудозатрат, из-за чего вероятность невозврата в приложение увеличивается

Фильтры – это очень важно! Но не все делают их хорошо
Консультанты часто помогают сделать хорошую покупку. Но в фильтрах никто не поможет пользователю с его ограниченными (иногда ложными) знаниями о товарах.
Если фильтры непонятны и не содержат подсказок, значит человек оставлен наедине со своей неосведомленностью и растерянностью. Одни уйдут растерявшись, а другие выберут не то, что хотелось.
По поводу мобильных фильтров я поговорил с двумя проектировщиками: плохим и хорошим.
Мобильные фильтры сложно сделать удобными и полезными, ведь экран смартфона меньше, чем ноут
Плохой проектировщик
Но есть и другая точка зрения.
На смартфоне целый экран отдан только фильтрам. Целый экран для создания удобных и полезных интерфейсных решений. Да там такое придумать можно!
Хороший проектировщик
Позиция хорошего проектировщика мне ближе.
Проблемы мобильных фильтров и их решение
Проблема 1. Нет подсказок и полезной информации, помогающей в выборе
Рядом с непонятным параметром можно разместить короткий пояснительный текст. Если его недостаточно, можно сделать подробную информацию доступной по клику. В отдельном окне можно дать подробный текст, небольшой мультик или иллюстрацию.
Неплохую попытку в этом направлении сделали в DNS. Над выдачей товаров они разместили фильм о том, как выбирать телефоны и гайд об основных параметрах смартфона.
Однако, было бы полезнее собрать все эти полезности прямо в фильтрах.
Под сложным параметром дана короткая пояснялка. Подробности доступны по клику
Указывайте в подсказках плюсы и минусы наличия данной технологии в устройстве. Вначале давайте подробную, но простую и короткую информацию, а далее – переходите к подробностям.
Проблема 2. Отсутствие обратной связи: товары не отображаются на странице фильтров.
Итак, мы применили 10 фильтров, но на мобильном экране мы не видим, к чему это привело. В лучшем случае на кнопке будет написано, что после фильтрации вам доступно 50 товаров. Но сам список товаров вы увидите только тогда, когда выйдите из интерфейса фильтров к списку товаров.
Это противоречит важному признаку хорошего интерфейса: наличию молниеносной обратной связи. Об этом написано в книге А. Купера «Об интерфейсе».
на странице с фильтрами.
Решение
А что, если внизу разместить сворачиваемый и разворачиваемый блок с отфильтрованными товарами. Все товары выводить не нужно. Но 20 наиболее релевантных можно.
Такое решение будет сокращать время на фильтрацию, потому что в некоторых случаях человек сможет заметь нужный товар уже после первого примененного фильтра, и сразу сможет к нему перейти.
Чтобы этот блок не занимал много места, предусмотрите возможность сворачивать его.
Проблема 3. Нет иллюстраций к сложным параметрам
Я понятия не имею, чем отличаются джинсы бойфренды от дудочек и джеггинсов. Как я могу сделать адекватный выбор в таком случае? Покажите мне, как это выглядит.
Решение
Везде, где иллюстрация помогает пониманию сложных параметров и делает интерфейс интереснее, нужно использовать картинки.
Плохо, когда цвет устройства просто написан текстом «Красный», «Синий» и т.п.
Также плохо, когда указывается только цветовая пиктограмма без подписи. Есть пользователи, не различающие цвета.
Лучше, когда есть и пиктограмма, и подпись.
Пример оформления вариантов с цветами устройства
А разницу между диагоналями экрана можно показать так
Проблема 4. Нет быстрого доступа к примененным фильтрам
Когда вы применили много фильтров, о каких-то вы можете забыть. Кроме того, в таких случаях важен быстрый переход к применённому фильтру. Подробнее об этом читайте в исследовании Baymard.
Решение
В некоторых приложениях крупных магазинов быстрый доступ к примененным фильтрам реализован за счёт тегов над кнопками.
Поддерживаю это решение и желаю опаздывающему большинству скорее к этому прийти.
Проблема 5. Хороший поиск – это редкость.
Поиск должен быть там, где больше 12 фильтров. Он также должен быть в фильтрах с большим количеством вариантов.
Поиск должен быть не только семантический, но и смысловой. Например, если пользователь хочет найти фильтр «Аккумулятор», этот вариант должен находиться по запросам вроде «Батарея», «Размер батареи» и т.п.
Проблема 6. Нет режима для чайников
Если вы плохо знакомы с продуктом, то классическая фильтрация может быть не только бесполезной, но и вредной, ведь вы можете нафильтровавать себе всякую белиберду.
Как же упростить процедуру выбора, при этом сделать выбор осознанно?
Решение
Когда мы блуждаем среди полок в магазине и ничего не понимаем, мы зовём консультанта. Для большинства задавать вопросы или отвечать на них проще, чем брать на себя ответственность за выбор и долгое изучение технических характеристик.
Вывод: Нужно геймифицировать процедуру выбора – поиграть с потенциальным покупателем в вопрос-ответ.
Как же должен выглядеть наш режим для чайников?
Те же DNS попытались создать режим для чайников. Они задают пользователям несколько вопросов, в конце предлагая подборку товаров.
Так выглядит Smart-консультант у DNS.
Вот, почему такая форма нам не подходит:
1. Она не гуманна.
Если бы Алиса, Siri или ассистент Олег не умели бы шутить и по-человечески реагировать на действия пользователя, ими было бы неинтересно пользоваться.
Хорошо, когда интерфейсы напоминают человека, и у пользователя есть ощущение что он взаимодействует с чем-то разумным.
2. Интерфейс задаёт сложные технические вопросы
Консультанты не должны мучить человека вопросами о технических характеристиках. Они созданы, чтобы упростить выбор и снять напряжение.
3. После ответа на вопросы он предлагает большое количество товаров
Несколько десятков. Это противоречит логике: консультант в магазине никогда не покажет вам 40 товаров, он предложит 3 – 7 наиболее подходящих, чтобы ваша голова не кружилась от изобилия.
Есть много исследований, подтверждающих, что сокращение изобилия снижает психологическую нагрузку и повышает вероятность покупки. Почитайте эту статью о проблемах изобилия.
4. Консультант не объясняет, почему эти смартфоны подходят пользователю и чем один лучше другого.
Однако похвалим DNS за попытку сделать взаимодействие удобнее.
Идеальная форма интерфейса для мобильного консультанта в продаже сложного продукта должна:
а) быть знакомой и понятной;
б) быть регулярной: пользователь должен делать нечто похожее каждый день или почти;
в) не быть сложной и скучной;
г) должна быть рассчитана даже на человека с нулевым знанием о продукте.
д) интерфейс должен предлагать товары, исходя из особенностей и целей пользователя, а не из технических характеристик устройств.
Для нашей задачи идеально подходит чат
Чаты с виртуальными консультантами уже вовсю используются в банкинге и технической поддержке, но в e-commerce они пока выглядят экзотикой. Чувствую, это ненадолго.
Знакомьтесь, это Гоша. Гоша знает всё о популярных смартфонах в разных ценовых категориях. Он знает, какие телефоны подходят блогерам, какие – детям, а какие – начальнику.
Вот, как это выглядит.
Чат с онлайн-консультантом.
В конце диалога Гоша предлагает наиболее подходящие для вас смартфоны.
Пользователь должен понимать, почему эти устройства подходят ему, поэтому напишите о % соответствия каждого устройства нуждам человека, а также от каких параметром смарта зависит это соответствие. Пользователь должен на что-то полагаться при выборе телефона из всех, предложенных консультантом.
Проблема 7. Отсутствие подборок фильтров для разных пользователей, поводов и задач
Среди нас мало экспертов в сложных продуктах. Изобилие непонятных нам товаров заставляет нас страдать. Пользователь будет рад, если вы уберёте всё лишнее и покажете ему то, что нужно ему в его случае.
Решение
Группируйте фильтры по типам пользователей и поводам для покупки. Так вы поможете людям и повысите вероятность покупки.
Охотник будет очень рад подборкам фильтров, помогающим найти влагостойкий и живучий телефон.
Сын, выбирающий телефон для матери, скажет вам спасибо за подборку фильтров товаров для пожилых людей.
Мать оценит подборку фильтров к телефонам для детей.
Рекомендую статью Baymard об эффективных способах сортировки, где в том числе говорится о важности тематических фильтров.
Подборки фильтров в мобильном приложении
Несколько важных мелочей
Слайдер с вариантами компактнее вертикального списка
Горизонтальный слайдер с вариантами в отличие от вертикального списка помогает экономить пространство.
Вставляйте в слайдер 5-7 популярных вариантов, а все остальные варианты пусть будут доступны по клику на кнопку «Все».
Если большинство параметров ваших фильтров имеют длинные формулировки, то лучше использовать классический вертикальный список.
Для каждого варианта стоит писать сколько товаров с данным параметром есть в магазине.
Используйте ручной ввод, ползунок и варианты с диапазонами одновременно
Для диапазонных параметров используйте не только ползунок, но и ручной ввод. Ещё лучше, когда можно выбрать из предложенных диапазонов.
Поле для ввода значения должно иметь крестик для быстрого удаления введённого.
Выносите сервисные фильтры вверх списка
Фильтры, помогающие подобрать товары по рассрочке, с быстрой доставкой, товары по уценке и другие параметры, фильтрующие товары не характеристикам товара лучше выносить в начало списка.
Выносите популярные варианты вверх списка
Изучите статистику, посмотрите, какие фильтры пользователи применяют чающего всего, и какие чаще приводят к покупке.
Разместите самые популярные фильтры в начале списка.
То же самое сделайте с вариантами. Если разрешение экрана 1920X1080 является самым популярным, оно должно быть самым первым в списке.
Однако в некоторых случаях варианты лучше размещать по порядку.
Например, диагональ экрана. Это вкусовщина, меньший размер экрана – не значит хуже. Если пользователь увидит варианты, расположенные по популярности, он сможет предположить, что нужного ему размера просто нет в наличии. После этого пользователь уйдёт. Поэтому размеры диагонали будет лучше разместить в порядке увеличения.
Выводы
1. Мобильным фильтрам стоит уделять не меньше вынимания, чем десктопным. Решение интерфейсных проблем на мобилке стоят пользователю и бизнесу в два раза дороже, чем на ПК.
2. Мобильный экран даёт вам больше возможностей для создания удобного и полезного интерфейса, потому что весь он будет отдан только фильтрам.
3. Делайте интерфейс информативнее: оставляйте подсказки к сложным параметрам, добавляйте иллюстрации, картинки и видео. Не оставляйте пользователя наедине с его некомпетентностью.
4. Делайте обратную связь быстрой: отображайте отфильтрованные товары на странице фильтрами, но оставляйте пользователю возможность скрыть их.
5. Предусмотрите режим для чайников. Идеальная форма – это чат с ботом, потому что мы чатимся каждый день, нам это привычно. Бот должен быть гуманным, не предлагать много вариантов. Он также должен давать информацию для принятия решения.
6. Предоставляйте пользователю быстрый доступ к примененным фильтрам, иначе он может забыть, что он применил.
7. Поиск должен быть там, где много фильтров. Он должен быть умным и находить фильтры по разным возможным запросам.
8. Предлагайте подборки фильтров, помогающие найти товары для определенных задач, людей, событий.
9. Предлагайте пользователю самый кроткий путь к цели: вначале списка фильтров должны быть самые популярные фильтры и варианты к ним.
Спасибо, что дочитали до конца! Напишите в комментах, чем ещё можно улучшить мобильные фильтры.
В своём телеграме я пишу об интернет-магазинах, плохих и хороших интерфейсах, дизайне и потребительском мышлении. Пожалуйста, поддержите меня подпиской, лайком или репостом. Это даст мне больше поводов писать чаще.
Хорошей недели!
Расширенный фильтр Excel – великолепная альтернатива регулярным выражениям
Расширенный фильтр Excel – великолепная альтернатива регулярным выражениям
Текст представляет собой адаптированный перевод статьи Annie Cushing (Энни Кашинг), оригинал — Advanced Filters: Excel’s Amazing Alternative To Regex. Курсивом выделяются названия пунктов меню для Excel 2013 и Mac 2011 или термины.
Всегда казалось странным, что Excel не поддерживает регулярные выражения (кои в среде программистов зовут регулярками или регэкспами). С их помощью делают сложную сортировку и фильтрацию. Инструмент SeoTools plugin for Excel поддерживает регулярки, но, как и большинство дополнительных ресурсов для Excel, работает только на платформе ПК. Эта статья предназначена, в основном, для пользователей Mac (мы не рекламируем SeoTools).
Однако Excel предлагает альтернативу регэкспам, дающую похожий функционал и доступную на всех операционных системах. Она называется расширенный фильтр. И это более гибкий и лёгкий для изучения инструмент.
Всегда казалось странным, что Excel не поддерживает регулярные выражения (кои в среде программистов зовут регулярками или регэкспами). С их помощью делают сложную сортировку и фильтрацию. Инструмент SeoTools plugin for Excel поддерживает регулярки, но, как и большинство дополнительных ресурсов для Excel, работает только на платформе ПК. Эта статья предназначена, в основном, для пользователей Mac (мы не рекламируем SeoTools).
Однако Excel предлагает альтернативу регэкспам, дающую похожий функционал и доступную на всех операционных системах. Она называется расширенный фильтр. И это более гибкий и лёгкий для изучения инструмент.
Для дальнейшего нам нужен «подопытный» — база данных, над которой будем ставить эксперименты. Мы её оставили отформатированной под таблицу. Но это лишь для «красоты», поскольку применение расширенного фильтра удалит стандартные табличные фильтры. Последние можно включить повторно по окончании получения наборов данных.
Расширенный фильтр находится:
Для ПК: Данные > Сортировка и фильтр >Дополнительно.
Для Мак: Данные > Сортировка и фильтр > Фильтр > Расширенный фильтр
Пользователи Mac могут щёлкнуть ПКМ по таблице и выбрать нужный пункт из контекстного меню. На ПК такой возможности нет.
Ещё один момент — база данных должна иметь заголовки столбцов, как показано ниже.
Подробная информация о фильтрах приведена ниже в пунктах Операторы, Заголовки и Множественные условия.
В дополнение к вышеупомянутым подстановочным знакам приведём некоторые операторы, необходимые при работе с фильтром:
- = равенство, т.е. левая и правая часть должна совпасть: =билет [включит все ячейки, содержащие билет]
- <> не равно, левая и правая часть не должны совпасть: <> https://www.aviasales.ru/mag* [исключаем данный адрес (блог)]
- ‘ апостроф преобразует формулу в текст, если поставить его первым в ячейке: ‘=купить авиабилет
- > больше чем: >500
- >= больше или равно: B4-C4>=3
- < меньше чем: C6<D6
- <= меньше или равно: <=3
Чтобы начать работу с расширенным фильтром, скопируйте заголовки базы данных в удобное место вне самой базы. Как правило, отбор идёт по одному столбцу, но встречаются и более сложные случаи. На первых порах сделайте заголовки как в учебной базе. Критерии для отбора пишутся непосредственно под заголовками. Примеры приведены ниже.
Вот три базовых конструкции для множественных условий:
ИЛИ: Если имеется несколько критериев и отбор нужен при совпадении хотя бы одного, используется логический оператор ИЛИ. При использовании таблицы условий это достигается расположением критериев вертикально на разных строках. Приведённый пример демонстрирует это:
Фильтр отберёт строки, для которых выполняется хотя бы одно из условий, т.е. либо Позиция меньше 11, либо Количество больше 1000. Оператор ИЛИ можно использовать и для одного столбца. В таком случае, все критерии располагаются друг под другом в целевом столбце.
И: Если необходимо одновременное соблюдение всех критериев, применяется логический оператор И. Для этого критерии располагают на одной строке.
Данный пример отбирает строки, где в столбце Ключевые слова встречается слово «купить» и нет слова «самолёт», также значение в Позиция больше 7, а значение в Среднемесячное количество больше 1000. Помним, что звёздочка обозначает любое количество знаков. В нашем примере будут отобраны строки, в которых встречается «купить» на любой позиции внутри ячейки. Обратите внимание, что отсев идёт по слову «самолёт», «самолет» вполне проходит.
ОБА ОПЕРАТОРА: Можно блеснуть своим умением, применив оба оператора для установки критериев.
Такая таблица условий слегка обескураживает. Но этот фильтр всего лишь отбирает строки, в которых присутствует слово «купить» или «аэрофлот», при этом нет слов «самолет» или «самолёт», а значения последнего столбца больше 1000.
Примечание: Чтобы получить текст вместо формул, достаточно поставить апостроф перед операторами сравнения: ‘=купить или ‘<>самолёт. Майкрософт на своём сайте советует излишне сложный способ, предлагая заключить в двойные кавычки всё выражение, а перед ним ставить знак равенства: =»=купить«.
В файле справки самого Excel написано, что преобразовать формулу в текст можно, поставив первым знаком апостроф. Но на сайте предлагают весьма замысловатый путь.
Промежуток: Если необходимо получить данные, лежащие в некотором промежутке, можно применить следующий приём:
Эти условия отберут ключевые слова, для которых Среднемесячное количество находится в промежутке от 3700 до 10000.
Формулы: Это действительно мощный инструмент. Вместо таблицы критериев можно использовать формулы.
На примере сделано то же, что и в пункте Оба оператора. Только условия заданы с помощью формул.
Пара моментов, на которые необходимо обращать внимание при использовании формул:
- Формула должна возвращать логическое значение ЛОЖЬ или ИСТИНА;
- Заголовки над формулами должны отличаться от заголовков базы данных, можно вообще использовать пустую строку;
- Формула должна ссылаться на ячейки первой строки под заголовками базы данных;
- Ссылки на проверяемые ячейки базы должны быть относительными: вида С4, при абсолютных, таких как $C$4 — значение формул будет статичным, т.е. всегда ЛОЖЬ или всегда ИСТИНА.
Общий алгоритм
Пошаговый алгоритм работы с расширенным фильтром (полагаем, что данные и табличка условий уже подготовлена):
Шаг 1: Как упоминалось ранее, щёлкните любую ячейку внутри подготовленного набора данных и перейдите:
Данные > Сортировка и фильтр >Дополнительно для ПК. Для Мак: Данные > Сортировка и фильтр > Фильтр > Расширенный фильтр.
Откроется меню. Здесь приведён скриншот Excel 2013, но все пункты совпадают с Mac.
Шаг 2: Выберите, где будут размещаться отобранные данные. В большинстве случаев разумнее определить «другое место», это оставит неизменным исходный массив данных. Но выбор за вами.
Шаг 3: Для исходного диапазона Excel по умолчанию отбирает всю «таблицу». Это можно изменить, исключив ненужные столбцы. Но Excel позволит выбрать только прямоугольный диапазон. Чтобы отобрать столбцы с пропусками, введите названия целевых столбцов в свободных ячейках и укажите их адрес для диапазона вывода. В Дополнительных примерах приводится подробное пояснение.
Шаг 4: Для установки диапазона условий щёлкните внутри поля и выделите соответствующий диапазон на листе. Если нужно свернуть меню, нажмите на значок выбора диапазона справа от поля.
Шаг 5: Если выбран пункт Cкопировать результат в другое место, укажите адрес в поле Поместить результат в диапазон. Можно указать единичную ячейку, тогда она станет верхней левой выводимого диапазона, или выбрать ячейки с введёнными названиями нужных столбцов.
Шаг 6: Если нужны только уникальные записи поставьте флажок. К сожалению, большинство людей используют исключительно эту функцию.
Шаг 7: Жмём OK, смотрим на результат.
Шаг 8: Если список фильтровался на месте, можно сбросить фильтр, нажав Очистить, но это верно для ПК. Данный пункт расположен выше пункта Дополнительно. На Маке присутствует аналог — Очистить фильтр, но он недоступен. Ещё один довод в пользу фильтрации на новое место. Чтобы сбросить фильтр нужно отменить действие — нажать Command-Z, или подключить стандартный фильтр.
Дополнительные примеры
1. Исключить слова
<> В данном контексте значит не содержит
2. Получить ключевые слова первой десятки
Заголовки двух столбцов скопированы для диапазона вывода
3. Вывести ключевые слова, для которых Cреднемесячное количество лежит в промежутке [5000, 10000]
Для получения промежутка копируем дважды заголовок столбца и вводим ограничения на одной строке.
4. Содержит хотя бы одно из слов: «купить», «аэрофлот». Не содержит слово «туту», и значение в столбце Среднемесячное количество больше 500
В ячейках с условиями первый знак — апостроф, увидеть его можно в строке формул.
5. Ключевые слова содержат «аэрофлот» и Среднемесячное количество больше 500
Как и в предыдущем примере, первый знак в ячейке — апостроф.
6. Ключевые слова, для которых Позиция меньше 3, или Среднемесячное количество больше 1000
Для диапазона условий ИЛИ наличие пустого столбца — не помеха.
7. Ключевые слова содержат, по крайней мере, 1 знак перед словом «аэрофлот»
Сочетание ?* требует наличия хотя бы 1 знака, но может содержать больше (эквивалент .+ в регулярках)
8. Ключевые слова, для которых Среднемесячное количество больше 8000
Сделано формулой, не забываем включить пустую ячейку над ней в диапазон условий.
9. Ключевые слова, для которых Среднемесячное количество больше 10000, а Конкурентность меньше 0,75
Используем функцию И в формуле.
10. Ключевые слова первой десятки по критерию Среднемесячное количество
Формула отбирает ячейки, значение которых больше или равно 10-му по величине числу. Само число получаем функцией НАИБОЛЬШИЙ. Обратите внимание, сравниваемая ячейка получена относительной ссылкой, а диапазон поиска для функции — абсолютной.
Заключительные рекомендации
Есть несколько подводных камней в применении расширенного фильтра. Помните о них, чтобы избежать неприятных сюрпризов.
- Если случайно включить в диапазон условий пустые ячейки, расположенные под заполненными строками, то Excel воспримет их как условия, включающие всё.
- Если вывод результатов идёт на другой лист, то запускать фильтр нужно с этого листа. Excel разрешает вывод результатов только на тот лист, с которого запущен фильтр.
- Если фильтрации идёт на месте, то не получится последовательно применить несколько фильтров. Применение нового аннулирует предыдущие результаты.
- Как уже писалось выше, пункт Очистить фильтр не работает в Excel 2011.
Для сброса фильтра используйте отмену действия (Command-Z) или подключите обычный фильтр. В 2016 это исправили (прим. пер).
- При выводе результатов в другое место полезно совместное применение оператора <>. Кроме того, можно транспонировать полученные данные: выделить, Копировать > Специальная вставка > флажок транспонировать.
Совет для продвинутых пользователей Excel
Для создания динамического фильтра можно сделать выпадающий список через пункт Проверка данных. Это позволит применять предопределённые значения для генерации фильтров. Но придётся каждый раз запускать расширенный фильтр вручную.
Однако существует хороший выход — макрос. Достаточно подключить несложный макрос и назначить его запуск по сочетанию клавиш или по щелчку на кнопке. Вместо кнопки можно использовать картинку. Например, такую:
Если вы затратите немного времени на изучение расширенного фильтра, то поймёте простоту и мощь данного инструмента.
Фильтр нижних частот комплексного сигнала
спросил
Изменено 2 года, 4 месяца назад
Просмотрено 481 раз
$\begingroup$
Я пытаюсь реализовать фильтр нижних частот в python для сложного сигнала, но результат выглядит неправильно. Я создал простой пример ниже, где я смешал сложную синусоиду 15 Гц и сложную синусоиду 30 Гц, чтобы получить сигнал с компонентами (30 + 15 = 45 Гц и 30-15 = 15 Гц).
Что я пытаюсь сделать, так это отфильтровать этот сигнал с помощью фильтра нижних частот, чтобы просто получить результирующую компоненту 15 Гц. Когда я смотрю на график отфильтрованного сигнала, мнимая составляющая кажется почти идентичной (та же фаза), что и реальный сигнал. Это не выглядит правильно.
Пример кода для воспроизведения, а затем графика ниже:
импортировать numpy как np импортировать matplotlib.pyplot как plt из scipy.signal импортное масло, lfilter импортировать scipy.signal как сигнал #Частота дискретизации. ставка = 5000 # Создайте комплексный сигнал 15 Гц. t = np.arange(0,5000)/скорость f1 = 15 msg = np.exp(1j* (2*np.pi * f1 * t)) # Создайте комплексный сигнал частотой 30 Гц. f2 = 30 bb_lo = np.exp(1j * (2*np.pi * f2 * t)) # Создайте фильтр низких частот, чтобы удалить верхнюю частоту. nyq = 0,5 * скорость разрез = 30 низкий = вырезать / nyq b, a = sig.butter(5, low, btype='low') # Смешайте низкочастотный и высокочастотный сигналы вместе. # Будет получен сигнал с частотными составляющими f1+f2 и f2 - f1. # Затем примените фильтр к реальным и мнимым частям. signalFilt = lfilter(b,a, bb_lo.real*msg.real) + 1j*lfilter(b,a, bb_lo.imag*msg.imag) plt.plot(signalFilt.real) plt.plot(signalFilt.imag) plt.grid() plt.show()
Частотный фильтр выглядит правильно примерно на 15 Гц, но я не думаю, что реальное/воображаемое на графике должно быть одинаковым. Что я здесь делаю неправильно?
Спасибо
- фильтры
- фильтр нижних частот
- комплекс
$\endgroup$
1
$\begingroup$
На самом деле вы не смешиваете две комплексные экспоненты, потому что иначе вы получите комплексную экспоненту с суммой частот отдельных комплексных экспонент. Об этом уже упоминалось в комментарии Маркуса Мюллера.
Вы вычисляете сигнал с действительной частью $\cos(\omega_0t)\cos(\omega_1t)$ и с мнимой частью $\sin(\omega_0t)\sin(\omega_1t)$. Если вы отфильтруете этот сигнал фильтром нижних частот, останутся только компоненты с разницей двух частот, но эти компоненты одинаковы для действительной и мнимой частей, потому что
$$\cos(\omega_0t)\cos(\omega_1t )=\frac12\big[\cos[(\omega_0-\omega_1)t]+\cos[(\omega_0+\omega_1)t]\big]\tag{1}$$
и
$$\sin (\omega_0t)\sin(\omega_1t)=\frac12\big[\cos[(\omega_0-\omega_1)t]-\cos[(\omega_0+\omega_1)t]\big]\tag{2}$$
Очевидно, компоненты с разностной частотой одинаковы.
Также, если вы хотите отфильтровать компонент с частотой $\omega_x$ (в вашем случае компонент с суммарной частотой), нецелесообразно использовать фильтр с частотой среза $\omega_c=\omega_x$ потому что затухание на $\omega_c$ обычно довольно скромное, в вашем случае $3$дБ. Выберите частоту, которая намного ближе к низкочастотной составляющей, чтобы получить приличное затухание высокочастотной составляющей.
$\endgroup$
3
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.
конечная импульсная характеристика — конструкция КИХ-фильтра для сложного сигнала
спросил
Изменено 2 года, 2 месяца назад
Просмотрено 7к раз
$\begingroup$
Анализатор импеданса генерирует сложный сигнал.
- Каков наилучший подход к разработке низкочастотного КИХ-фильтра для этого?
- Оптимален ли для этого реальный фильтр, применяемый отдельно к реальному и мнимому потокам, или нужен специализированный алгоритм для сложного построения фильтра?
- конструкция фильтра
- конечно-импульсная характеристика
- комплексная
$\endgroup$
2
$\begingroup$
На самом деле у вас есть два сигнала, и это зависит от того, чего вы хотите достичь, но обычно вы просто фильтруете оба сигнала (действительную и мнимую часть) одним и тем же (действительным) фильтром нижних частот. Таким образом, вам либо нужны два (идентичных) фильтра нижних частот, либо вы последовательно фильтруете оба сигнала одним и тем же фильтром.
В общем случае фильтрация сложного сигнала $x(t)=x_R(t)+jx_I(t)$ с комплексной импульсной характеристикой $h(t)=h_R(t)+jh_I(t)$ требует четырех операций фильтрации с действительными значениями (точно так же, как сложное умножение требует четырех умножений с действительными значениями):
$$\begin{align}y(t)&=(x\star h)(t)\\&=(x_R\star h_R)(t)-(x_I\star h_I)(t)+j\ left\{(x_R\star h_I)(t)+(x_I\star h_R)(t)\right\}\end{align}\tag{1}\\$$
В вашем случае $h_I(t) $ равен нулю, поэтому у вас остается только две операции фильтрации.
Последнее замечание по поводу сложной свертки: на самом деле, можно обойтись только тремя свертками с действительными значениями (точно так же, как сложное умножение действительно требует только 3 умножения, если вы сообразительны):
$$\begin{align}y_1(t)&=(x_R\star h_R)(t)\\ y_2(t)&=(x_I\звезда h_I)(t)\\ y_3(t)&=((x_R+x_I)\звезда (h_R+h_I))(t)\\ y(t)&=y_1(t)-y_2(t)+j\left\{y_3(t)-y_1(t)-y_2(t)\right\}\end{align}\tag{2}\ \$$
$\endgroup$
6
$\begingroup$
Перефразируя ответы Мэтта Л. в комментариях:
Мэтт: «[Дизайн] отличается, если вы хотите разработать сложный фильтр, то есть фильтр с комплекснозначной импульсной характеристикой. Но это необходимо только в том случае, если для по какой-то причине вам нужна несимметричная частотная характеристика».
Мэтт: «[В противном случае] вы создаете (действительный) фильтр, как обычно, а затем применяете его к реальной части, а также к мнимой части входного сигнала.»
Я: Поскольку я не хочу фильтровать отрицательные частоты иначе, чем положительные, я просто создам соответствующий реальный фильтр, а затем применю его к отдельным реальным и мнимым потокам данных. Мне не нужно беспокоиться о перекрестных терминах в уравнении. 1, потому что Hi = 0 по определению.
$\endgroup$
$\begingroup$
Термин «комплекс» относится к области математики. Это гипотетически. Сложные «данные» рассматриваются как информация. Поэтому, когда мы передаем эти математические (гипотетические) данные в реальный мир, нам нужна система, которая каким-то образом передает эти математические данные. Итак, если анализатор импеданса генерирует «комплексный» сигнал, то этот сигнал может быть сигналом с действительным знаком, за исключением того, что он может включать сумму ДВУХ синусоидальных сигналов, причем каждая синусоида имеет одинаковую частоту и разность фаз между этими синусоидами, равная 90 градусов. Таким образом, фактический сигнал является действительным.
Если на приемной стороне применить соответствующие математические и аппаратные приемы обработки, то становится возможным захват (восстановление) «действительной» и «мнимой» составляющих из суммированного синусоидального (составного) сигнала.
В зависимости от того, какую обработку вы хотите выполнить (т. е. просто обрабатывать образцы только составного сигнала и больше не нуждаться в действительных/мнимых компонентах, или обрабатывать по отдельности действительные и мнимые компоненты), будет определено, достаточно ли 1 фильтра, или нужно 2 фильтра.