Jump to content

    

Версия MATLAB для изучeния?

Recommended Posts

Hitest

Начинаю изучать MATLAB с нуля. В бумажном виде есть только книга Дьяконова по версии R2007. По моим ощущениям от других книг этого автора, он "в теме". А читать в электронном виде очень не люблю, придется все равно распечатать всю книгу, если она есть в открытом доступе, хорошая и новая.

 

Кстати, если сейчас есть в продаже хорошая книга по современной версии MATLAB, прошу посоветовать.

 

Пока подумал, что с 2007 г. математика вряд ли изменилась, поэтому изучение старой версии тоже не пустая трата времени. Но я не увидел в книге и в самом Матлабе 2007 практически никаких средств ввода-вывода сигналов в реальном времени. Хотя бы со входа и выхода звуковой карты. Не говоря уже о вводе-выводе с проф. звуковых карт, где 32 входных канала и столько же выходных.

Хочу обрабатывать звук в реальном времени. Хотя бы простая обработка. На сегодняшний день в Матлабе это возможно?

 

Share this post


Link to post
Share on other sites

Hitest

И это возможно с помощью готовых средств, или нужно писать программный "переходник" с кучей вызовов Win32 API? Или вообще писать этот переходник на С++ и вызывать его из Матлаба? Я работаю в симуляторе в Windows XP, т. к. версия R2007b только там выполняется нормально.

 

Звуковая карта на 32 канала тоже видна как простое стерео устройство. Видимо в симуляторе большего и не будет. В родной среде к ней доступ через ASIO драйвер. (Эти железки вообще-то заточены под Мак. На нем я только музыку слушаю через эту звуковую карту. Но надо отдать должное яблочной корпорации - драйвера для операционок скажем 5-летней давности отлично работают в новых версиях.)

Share this post


Link to post
Share on other sites

Eddy_Em

Нет нужды тратить деньги, когда то же самое есть в Octave.

 

Хочу обрабатывать звук в реальном времени. Хотя бы простая обработка. На сегодняшний день в Матлабе это возможно?

Зачем для такой простой задачи матлаб тянуть? Посмотрите, как все в audacity устроено: alsalib + несколько библиотек для обработки сигналову — вуаля!

Share this post


Link to post
Share on other sites

Hitest

Эдди, здесь я частное лицо, и трачусь только на железки. На книги в бумажном варианте. И всё. (Можно поставить смайлик)

 

>> Зачем для такой простой задачи матлаб тянуть?

 

Не знаю, не знаю, куда там меня потянет. (Однажды чего-то может не хватить и я скажу себе "чтож ты дурак сразу Матлаб не изучал?". Во-вторых, "запас карман не тянет". В далеком студенчестве пришлось отбросить студенческую версию MathCAD в пользу полновесной, из-за потребности в одной-единственной мощной функции.)

 

Тем более с большим опытом DJ в далеком прошлом. Не секрет что все программные монстры для сведЕния, вроде Traktor DJ Studio, и более успешные потомки, изначально писались либо в Матлабе, либо в софте National, если разработчики японцы. Потом софт нормально реализовывался под MAC OS и почему-то с большими проблемами - под Windows. Это происходило еще задолго до появления Windows XP.

Понятия не имею, как разработчики таких систем добивались быстрого отклика звуковой карты из MATLAB, учитывая, что там много каналов на ввод и вывод. И сам математический пакет - вовсе не система жесткого реального времени.

Что бы почитать о вышеуказанных проблемах? Статьи, книги?

 

 

 

 

 

Share this post


Link to post
Share on other sites

gosha-z
программные монстры для сведЕния, вроде Traktor DJ Studio

Ну если это монстр, то что же тогда такое Nuendo? Про ProTools я даже заикаться не буду.

 

Share this post


Link to post
Share on other sites

Eddy_Em

Еще раз: ни в матлабе, ни тем паче в лабвью вы не добьетесь быстрого прямого доступа к аппаратным ресурсам ПК! А если и добьетесь, то такой ценой, что пожалеете, что вместо того, чтобы за недельку на С накалякать программку, возились с этими жиробасинами. Да еще и денег немерено отвалили!!!

Насчет лабвью, делались попытки управлять научным оборудованием при помощи этой фиговины. Общий вывод такой: ужасно дорого и неэффективно. А уж системы реального времени с обработкой изображений...

Share this post


Link to post
Share on other sites

Hitest

Ну про то, что Traktor DJ Studio был изначально написан на Матлабе, известно от самих разработчиков, с которыми общался мой хороший друг. Было в бородатые годы. Это одна из первых реализаций алгоритма сведения, очень еще плохая реализация. Дальше было много конкурирующих продуктов, но по сей день никакое программное обеспечение не сможет свести любые 2 трека, ему подсунутые. Живой DJ справится. Это искусственный интеллект, какие уж там реализации на С за неделю...

 

Скорее всего, разработчики "машины" на Матлабе для тестирования подсовывают 2 файла. Они сейчас никаких подробностей не рассказывают.

Жалко, что и в Лабьвью нет быстрого доступа к звуковой карте. Программировать на Си я точно не буду, за много лет в прошлом это порядочно надоело.

Изначально мне и была нужна сложная обработка готового файла. Но хотел вводить сигнал с микрофона и слышать некоторые характерные детали в наушниках. Получается, что послушать можно, но с приличной задержкой. Значит, нужны изолирующие наушники, не пропускающие грохот малого двигателя. Это легко решаемо, например Technics RP-DJ 1210.

 

P. S. Пожалуйста, перестаньте про денежные траты на софт. Ну не надо про это, и точка.

Edited by Hitest

Share this post


Link to post
Share on other sites

Hitest

В общем мне нужно сделать следующую вещь. С микрофона вводится звук выхлопа малого двигателя внутреннего сгорания. Его обороты стабилизированы центробежным регулятором на величине 50Гц. Изменение нагрузки на валу двигателя приводит к не очень качественному переходному процессу. У регулятора плохая устойчивость.

Если полученный с микрофона сигнал перевести в частотную область, то наибольшая плотность мощности будет на частоте f вращения двигателя. На выход звуковой карты буду подавать несущую 500Гц, которая должна быть частотно-модулированной частотой f. Для большего удобства можно f возвести в некоторую степень, от 1 до 2. Навскидку f^1.5

Тогда медленные автоколебания стабилизатора оборотов будут хорошо слышны. По крайней мере мне в полевых испытаниях так будет удобнее. Можно рисовать трехмерную спектрограмму, но у меня с геометрией всегда были проблемы :) Со звуком я всегда на "ты".

 

Ну как, идея не слишком бредовая?

 

P. S. Можно конечно нагрузить этим DSP звуковой карты. Прилагаемый с ней софт позволяет это сделать. И можно слышать результат в реальном времени. Но только под Мак, в Лоджике. Но у меня яблочная машина только огромная настольная, ноута нет. Поэтому полевые испытания не получатся.

Share this post


Link to post
Share on other sites

jorikdima

1. Изучать матлаб (как таковой а не его тулбокс работы со звуком) можео любой. 2007 в том числе. Это не С#, изучив который 10 лет назад, я не понимаю современный код.

2. Что касается работы со звуковой картой, я не пробовал, но уверен считать данные оттуда не проблема, так как устройство довольно стандартное.

3. По объявленной задаче, имхую, что матлаб справится с потоком со свуковой карты в реальном времени. В том числе обработку, если она не сложная.

4. Я был приверженцом матлаба. Но сейчас его в области научных счислений двигает связка Python+NumPy . На вашем месте при отсутсвии опыта там и там, я бы ударился в питон. Работает везде, хоть в разпберри пай. Бесплатен. Популярен. Матлаб хорош тулбоксами. Если у вас нет обработки, где использовался бы один из тулбоксов очень активно, сэкономив вам время, я бы не брался за матлаб сейчас. А питон даст вам сильный плс в резме, если плюсы там нужны, конечно.

Share this post


Link to post
Share on other sites

vvvv

По моему ТС правильной дорогой идет. Он же написал "для изучения". У него есть конкретная задача которую надо решить алгоритмически.

Лучшего инструмента чем Matlab не придумали пока. И опять же зачем человеку быстрый отклик, если алгоритм в Матлабе можно обкатывать

на массивах данных. И опять же в Матлабе все можно визуализировать, построить крайне наглядно и понятно.

Вот когда алгоритм уже создан можно программировать хоть на питоне, хоть на ассемблере чтобы получить быстрое время отклика.

Зачем смешивать две задачи создание алгоритма и его оптимизацию.

Share this post


Link to post
Share on other sites

jorikdima
По моему ТС правильной дорогой идет. Он же написал "для изучения". У него есть конкретная задача которую надо решить алгоритмически.

Лучшего инструмента чем Matlab не придумали пока. И опять же зачем человеку быстрый отклик, если алгоритм в Матлабе можно обкатывать

на массивах данных. И опять же в Матлабе все можно визуализировать, построить крайне наглядно и понятно.

Вот когда алгоритм уже создан можно программировать хоть на питоне, хоть на ассемблере чтобы получить быстрое время отклика.

Зачем смешивать две задачи создание алгоритма и его оптимизацию.

Вы, веротно, с питоном не знакомы. Он не про быстрый отклик как раз. И я совершенно н еприводил это как аргумент в его пользу. И про визуализаци вы тоже не правы.

Share this post


Link to post
Share on other sites

Eddy_Em

В простейшем виде задача ТСа решается тремя страницами кода на С! Если вместо alsa использовать oss4, то и двумя!!!

БПФ очень хорошо делает fftw3. Если сэмплы будут не очень большими, то в реальном времени можно будет получать спектр на 96кГц дискретизации (а такие звуковушки нынче совсем недороги).

 

Если же автор хочет сначала алгоритм разработать, то согласен — я сам сначала "обкатываю" все в Octave и только потом делаю результирующую версию, которая работает с нормальной скоростью. От октавы матлаб отличается лишь одним — он умеет компилировать ваш код, в результате чего время выполнения в некоторых случаях значительно повышается. Но все равно оптимизации там 0, так что годится вся эта чепуха лишь на развлечения с разработкой алгоритма (т.к. пару строк кода заменить таки проще, чем полстраницы!).

Share this post


Link to post
Share on other sites

syoma

Мой совет - изучать сразу последний матлаб, потому что

Еще раз: ни в матлабе, ни тем паче в лабвью вы не добьетесь быстрого прямого доступа к аппаратным ресурсам ПК! А если и добьетесь, то такой ценой, что пожалеете, что вместо того, чтобы за недельку на С накалякать программку, возились с этими жиробасинами. Да еще и денег немерено отвалили!!!

уже давно не правда. В Матлабе уже давно практически все тулбоксы поддерживают real-time в том числе на Windows машинах с ихним родным kernel. И я сам смотрел, что там присутствует поддержка быстрого доступа для практически всего существующего i/o железа, и конечно-же звуковых плат.

Я думаю, что похожая задача, как у автора, вполне возможно будет в числе входящих в комплект примеров.

Share this post


Link to post
Share on other sites

dxp
4. Я был приверженцом матлаба. Но сейчас его в области научных счислений двигает связка Python+NumPy . На вашем месте при отсутсвии опыта там и там, я бы ударился в питон. Работает везде, хоть в разпберри пай. Бесплатен. Популярен. Матлаб хорош тулбоксами. Если у вас нет обработки, где использовался бы один из тулбоксов очень активно, сэкономив вам время, я бы не брался за матлаб сейчас. А питон даст вам сильный плс в резме, если плюсы там нужны, конечно.

+100500 за питон (+numpy). Универсальный язык, позволяет писать код не только для вычислений, но и для обычных утилит и даже взрослых приложений (PyQt). Матлаб на данный момент имеет преимущества:

 

* если нужен какой-то его тулпбокс, который не имеет аналогов в библиотеках питона;

* используется генератор С или HDL кода из матлабовского скрипта;

* используется Симулинк.

 

В остальном питон заруливат малтаб без вопросов.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.