Сгенерируйте код к Denoise сигнал

Этот пример показывает, как использовать MATLAB® Coder™, чтобы сгенерировать исполняемый код. Wavelet Toolbox™ поддерживает генерацию кода для функций, которые поддерживают дискретный вейвлет преобразовывает (DWT), максимальное перекрытие дискретный вейвлет преобразовывает (MODWT), максимальный пакет вейвлета перекрытия преобразовывают (MODWPT), и рабочие процессы шумоподавления. Этот пример требует лицензии MATLAB Coder.

Задайте функцию, которая использует wden для denoise сигнал. Вы также задаете уровень, к которому к denoise, сигнал когда вы запускаете сгенерированный код.

  1. От подсказки команды MATLAB создайте файл, sigdenoise.m.

    edit sigdenoise
    Если вы не имеете разрешения записать в текущую рабочую папку, изменяете текущую папку на ту, которая перезаписываема.

  2. Скопируйте этот код функции sigdenoise в файл sigdenoise.m. Ваш файл должен включать %#codegen, чтобы указать, что эта функция сгенерирует код.

    function xdenoise = sigdenoise(x,level)
    
    %#codegen
    
    wname = 'sym4';
    xdenoise = wden(x,'sqtwolog','s','mln',level,wname);
    

  3. Сохраните файл.

  4. В командной строке MATLAB используйте функцию codegen, чтобы скомпилировать функцию sigdenoise в файл MEX. Можно использовать опцию -o, чтобы задать имя исполняемого файла. Если вы не используете опцию -o, сгенерированный файл MEX имеет то же имя как исходный файл MATLAB с добавленным _mex. Можно включать опцию -report, чтобы сгенерировать отчет компиляции. Этот отчет показывает оригинальный код MATLAB и связанные файлы, созданные во время генерации кода. Опция -args задает типы данных входных параметров, требуемых запускать сгенерированный код. В этом случае вектор - строка переменного размера и скалярный вход требуются.

    codegen sigdenoise.m -config:mex -args {coder.typeof(1,[1,inf],[false,true]),0}

  5. В командной строке MATLAB запустите сгенерированный код на шумных Доплеровских данных и denoise это, чтобы выровняться три. Сравните сигналы denoised и оригинал.

    load noisdopp
    xden = sigdenoise_mex(noisdopp,3);
    plot([noisdopp',xden'])
    legend('Original','Denoised')

Для списка функций Wavelet Toolbox, поддерживаемых для генерации кода и сопоставленных ограничений, смотрите Поддержку Генерации кода, Указания по применению и Ограничения. Для получения дополнительной информации о генерации кода смотрите Начало работы с MATLAB Coder (MATLAB Coder).