реклама на сайте
подробности

 
 
> Создание сигнала с гармониками 2...100 в Матлабе, Эффективный вариант
syoma
сообщение Apr 20 2016, 07:31
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Привет.
Вопрос - как сгенерировать сигнал 50 Гц с гармониками со 2-ой по 100-ую (т.е. до 5кГц) в Симулинке без применения сотни генераторов синусов. С различными амплитудами и фазами. Частота дискретизации(sample time) 20мкс.

Интересует нетрадиционное решение. Можно из области математики. Я помню в DSP генератор синуса можно было реализовать очень прикольненько и простенько на Си.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Fat Robot
сообщение Apr 20 2016, 08:31
Сообщение #2


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Многоканальный генератор на матлабе - это три строки
Код
% 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) *
очень прикольненько и простенько
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- syoma   Создание сигнала с гармониками 2...100 в Матлабе   Apr 20 2016, 07:31
- - Эдди   Сгенерировать Фурье-спектр с псевдо-дельтафункциям...   Apr 20 2016, 07:37
- - syoma   Дело в том, что "сделать обратное БПФ" я...   Apr 20 2016, 07:55
|- - Эдди   Цитата(syoma @ Apr 20 2016, 10:55) Дело в...   Apr 20 2016, 10:59
- - des00   пропустить через нелинейность?   Apr 20 2016, 08:29
|- - syoma   Цитата(des00 @ Apr 20 2016, 10:29) пропус...   Apr 20 2016, 08:37
|- - Serg76   Цитата(des00 @ Apr 20 2016, 11:29) пропус...   Apr 20 2016, 12:41
|- - Fat Robot   LPF{ ( 1 + cos(wt) ) * sign(cos( wt )) } Цитата(S...   Apr 20 2016, 14:48
|- - des00   Цитата(Serg76 @ Apr 20 2016, 19:41) Тогда...   Apr 20 2016, 14:53
- - petrov   Цитата(syoma @ Apr 20 2016, 10:31) Привет...   Apr 20 2016, 12:27
- - Serg76   Какова же будет точность представления амплитуды 1...   Apr 20 2016, 15:33
|- - Fat Robot   Ровно такая, на какую у вас хватит фантазии https:...   Apr 20 2016, 15:46
- - blackfin   Цитата(syoma @ Apr 20 2016, 11:31) С разл...   Apr 20 2016, 15:35
- - Serg76   Понятно, за границы double пока не выходил, небыло...   Apr 20 2016, 17:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 12:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016