Автор Тема: DSP DIY (цифровая обработка своими руками)  (Прочитано 11083 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vovjkee

  • Частый посетитель
  • **
  • Сообщений: 187
Re: DSP DIY (цифровая обработка своими руками)
« Ответ #45 : Февраля 28, 2015, 15:54:48 »
Есть два файла:
* target.wav (601.61 КБ - загружено 78 раз.)
* source.wav (601.61 КБ - загружено 93 раз.)
Использую Ваш алгоритм:
[source,fs] = wavread(uigetfile("*.wav","","Select Source"));
target = wavread(uigetfile("*.wav","","Select Target"));
nfft = 2^nextpow2(fs);
target_spectrum=pspect(nfft/2,nfft,"kr",target,8);
source_spectrum=pspect(nfft/2,nfft,"kr",source,8);
matching_spectrum = sqrt(target_spectrum./source_spectrum);
cepst=ifft(log(abs(matching_spectrum)));
cepst(2:nfft/2)=2*cepst(2:nfft/2);
cepst(nfft/2+2:nfft)=0;
mpimp=real(ifft(exp(fft(cepst))));
mpimp=mpimp/max(abs(mpimp));
wavwrite(mpimp,fs,32,uiputfile("*.wav","","Select Output"));
Получается импульс:
* i8.wav (512.04 КБ - загружено 73 раз.), который не звучит, и выглядит очень странно:
1104759-3
Пробовал разные частоты дискретизации и размеры сэмпла.
Что я делаю нетак?

Оффлайн deLuther Автор темы

  • Живу на форуме
  • *******
  • Сообщений: 33493
  • alderman of morning star
    • Malefice
Re: DSP DIY (цифровая обработка своими руками)
« Ответ #46 : Февраля 28, 2015, 17:09:51 »
vovjkee,
А через MatcherCL что выходит?
Хотя я не представляю что можно получить из файлов длительностью в 1.6 сек... это же меньше размера блока (для частоты 96к).

Через матчер вроде что-то похожее на импульс выходит. Я не проверял SciLab по поводу может ли он грузить нормально файлы с частотами отличными от 44к, может и здесь какая-то проблема. Вообще с загрузкой материала были постоянно проблемы в нём, поэтому я таки и написал MatcherCL, чтобы больше вопросов не возникало.
Как видно из скрипта частота сэмплирования берётся по первому файлу, второй должен быть с таким же сэмплрейтом, импульс сохраняется с теми же параметрами.
Кстати в примерах источник и конечный файл перепутаны, source явно содержит сигнал снятый микрофоном. Или тут как раз требуется обратная операция? Тогда импульс и может будет выглядеть странновато...
« Последнее редактирование: Февраля 28, 2015, 17:21:56 от deLuther »

Оффлайн vovjkee

  • Частый посетитель
  • **
  • Сообщений: 187
Re: DSP DIY (цифровая обработка своими руками)
« Ответ #47 : Февраля 28, 2015, 18:50:42 »
Спасибо за информацию. Час попробую через МатчерЦЛ. Первый раз слышу про него просто. Я пробовал разные частоты дискретизации использовать. На всех странный результат.

... и добавил:

vovjkee,
Кстати в примерах источник и конечный файл перепутаны, source явно содержит сигнал снятый микрофоном. Или тут как раз требуется обратная операция? Тогда импульс и может будет выглядеть странновато...
Походу в этом ошибка. Час поменяю местами.

... и добавил:

Да, файлы попутал местами. Спасибо. Час все заработало. Почувствовал себя первоклассником ;)
« Последнее редактирование: Февраля 28, 2015, 18:59:09 от vovjkee »