Сигнал как сумма синусоид, параметры которых заданы в массив

Простейшие вопросы в области инженерной разработки
Ответить
helenbrait
interested
interested
Сообщения: 2
Зарегистрирован: 09 май 2016, 10:18
Версия LabVIEW: 15
Контактная информация:

Сигнал как сумма синусоид, параметры которых заданы в массив

Сообщение helenbrait »

Доброе время суток!
Задача: сформировать сигнал для дальнейшей спектральной обработки
Имеем набор частот и амплитуд на этих частотах, сигнал представляет собой сумму синусоид A*sin(wt) и шума.
Ранее количество синусоид было постоянным и небольшим, две-четыре, создавалась под каждую свой сигнал (делала это и с помощью express и с генераторами синусоиды) и суммировала в формуле, где на входе были 4 сигнала, на выходе один.
Так как было решено хранить данный в БД(т.е. теперь набор частот и амплитуд - это одна таблица) и этих значений может быть много (более 10), встал вопрос как сгенерировать сигнал. Получаю два одномерных массива, но как их обрабатывать не понимаю. В голове сидит картинка, но :labview: меня не понимает.
Хотелось бы создать нечто универсальное ( т.е. с добавлением, третьего массива, например, значений фазы или шума не было очередного танца с бубнами :cry: )
Вложения
сумма синусов.png
Artem.spb

Activity Автор
professor
professor
Сообщения: 3407
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 176 раз
Контактная информация:

Re: Сигнал как сумма синусоид, параметры которых заданы в ма

Сообщение Artem.spb »

Что мешает сложить эти два одномерных массива?
helenbrait
interested
interested
Сообщения: 2
Зарегистрирован: 09 май 2016, 10:18
Версия LabVIEW: 15
Контактная информация:

Re: Сигнал как сумма синусоид, параметры которых заданы в ма

Сообщение helenbrait »

Наверное, плохо выразилась.
Один массив представляет набор частот(f0,f1,f2..fn), второй набор амплитуд(a0,a1,a2...an). Между собой не нужно складывать массивы.
На самом деле, я скорее путаюсь в представлении сигнала, потому что не до конца осознаю,что хочу получить,т.е. хочу я сигнал(в идеале, который толстенький синенький провод,как от express), зависящий от времени t, но в :labview: это же массив значений.
В общем, если б это был текстовый язык,то что-то в этом духе:

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

const N=10,T=500;
double freq[N],amp[N];
double dt=0.01,t=0;
{заполнение freq и amp данными}
double signal[T];
for(t=0; t<(T*dt); t=t+dt)
{
for(i=0;i<N;i++)
{
signal[t]=signal[t]+amp[i]*sin(2*pi*freq[i]*t)+noize(t);
}
}
Вложения
mas.png
Аватара пользователя
toshas
assistant
assistant
Сообщения: 105
Зарегистрирован: 05 апр 2009, 22:45
Версия LabVIEW: 9.0
Благодарил (а): 13 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Сигнал как сумма синусоид, параметры которых заданы в ма

Сообщение toshas »

На Labview это будет выглядеть точно также - два вложенных цикла.
На мой взгляд удобнее сначала выделять параметры (A,F), а потом полностью строить сигнал с заданными параметрами (от 0 до Т).
Так на каждой итерации (для каждого набора параметров A, F) при желании можно получить вид сигнала перед суммированием.
Вложения
скриншот
скриншот
блок диаграмма
блок диаграмма
Blackman

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

Re: Сигнал как сумма синусоид, параметры которых заданы в ма

Сообщение Blackman »

<vi.lib>\Analysis\1siggen.llb\Tones and Noise.vi
Generates an array composed of a sum of sine tones, noise, and DC offset.
Tones contains the parameters for each sine tone.
frequency specifies the frequency of the sine tone in hertz.
amplitude specifies the amplitude of the sine tone.
phase specifies the initial phase of the sine tone in degrees. The default is 0.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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