Многоканальный генератор на матлабе - это три строки
Код
% generate 1 output sample
phi = phi + dphi;
phi = phi - ( phi > pi ) .* ( 2. * pi ) + ( phi <= -pi ) .* ( 2. * pi );
out = sum( mag .* cos( phi ));
Вырианты, если три строки - это слишком мало и/или не достаточно наукоемко:
> DDS. 1 таблица с периодом синусоиды с нужной частотой дискретизации. Обновляете 100 фазовых аккумуляторов с кратным инкрементом. Частота дискретизации периода в таблице определяет SFDR.
> генератор - нелинейность - фильтр. Будет сложновато построить фильтр, обеспечивающий заданный набор амплитуд и фаз на выходе.
> ОБПФ, как вам писали, но там видится одна проблема - сшивка окон, если возникнет требование изменять частоту основной гармоники. Придется выкручиваться с интерполяцией на выходе обпф. Или напрямую менять частоту отсчетов цап.
Цитата(syoma @ Apr 20 2016, 11:31)

очень прикольненько и простенько