Считывание из массива

Простейшие вопросы в области инженерной разработки
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Считывание из массива

Сообщение Blackman »

Из массива чисел размером N считать значения через каждые m отсчётов N раз. Индекс k первого элемента k=0.
http://labviewportal.org/viewtopic.php? ... 006#p72519
Для любого k в диапазоне от 0 до N-1?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Считывание из массива

Сообщение Borjomy_1 »

Blackman, в любом случае реализуется через децимацию ))
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Считывание из массива

Сообщение Blackman »

:think:
Borjomy_1 писал(а):Blackman, в любом случае реализуется через децимацию ))
Для k(j=0) в диапазоне от 0 до N-1 и k(j+1)=k(j)-1, j - условный индекс цикла пересортировки (прохода)?
reed
user
user
Сообщения: 97
Зарегистрирован: 21 окт 2014, 09:39
Версия LabVIEW: 12
Контактная информация:

Re: Считывание из массива

Сообщение reed »

Artem.spb писал(а):что-то я не понимаю сути задачи.
Нужно "по кругу" бегать по элементам массива, при этом брать только каждый n-й?

регистр сбрасывать по условию. В палитре comparison есть функции сравнения и выбора. Так что условие "если y больше X, то 0, иначе y"
Можно ещё использовать деление по модулю: Хi+1 = ( Хi+d ) % P
где d - шаг прореживания (в данном случае 3)
P - период, или размер массива, или что там является критерием начала с нуля (в данном случае 63 и 2048)
% - остаток от деления: 1%63=1, 25%63=25, 64%63=1...
все функции есть в палитрах.
Спасибо за совет! У меня задача разобраться в том как же работает метод прямого цифрового синтеза сигнала. Массив из 64 отсчётов - это у меня аккумулятор фазы. Изменяя приращение i, мы выбираем разные отсчёты, тем самым изменяя частоту выходной синусоиды. Поэтому мне и надо было Достать из массива каждый 3-й. Но достаточно всё таки было пробежаться всего лишь один раз)) не обязательно по кругу бегать...
Последний раз редактировалось reed 20 ноя 2016, 18:09, всего редактировалось 1 раз.
reed
user
user
Сообщения: 97
Зарегистрирован: 21 окт 2014, 09:39
Версия LabVIEW: 12
Контактная информация:

Re: Считывание из массива

Сообщение reed »

Kosist писал(а):
reed писал(а):но это способ заточенный под конкретную задачу, когда размер массива считывания 64. А если будет 2048 или ещё больше, то такой алгоритм не пойдёт..
В Вашем случае задача вообще не типичная, и я сомневаюсь, что попадется на практике - по-сути, Вы трижды дублируете результат поиска n-ных элементов. Т.е. в таком случае никто не делает проход по массиву три раза. По массиву "проходятся" один раз, а далее работают с полученными результатами. Ведь за один проход массива из 64 элементами, Вы все равно должны получить 22 элемент, т.к. каждый третий элемент встречается там 22 раз, не 64.
Плюс - Вы работаете не с самими данными, а с их индексами. Т.е. Вы ищете "каждый третий элемент", а не "каждое значение, кратное чему-то". Разница существенная, т.е. в первом случае Вам не нужно проходить по всем элементам массива, дабы получить желаемый результат. Вам достаточно сделать вот что:
Each 3rd element.png
И зачем в этом случае проходить по всему массиву 64 раза, или 2048 раз? (в случае массива с 2048 элементами, каждый 3-й элемент Вы найдете за 682 итерации, не за 2048).
Поэтому переживать за то, что такой алгоритм не пойдет в других ситуациях - не стоит; сама задача чисто учебная, и не практичная.
Хотя, может быть, за ней есть какое-то объяснение - если да, то хотелось бы узнать, если не секрет.
Спасибо за совет! Действительно не обязательно бегать по кругу) Задача стоит разобраться в методе прямого цифрового синтеза. Массив из 64 отсчётов - это аккумулятор фазы.
reed
user
user
Сообщения: 97
Зарегистрирован: 21 окт 2014, 09:39
Версия LabVIEW: 12
Контактная информация:

Re: Считывание из массива

Сообщение reed »

Blackman писал(а)::think:
Спасибо!
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»