IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Нужна помощь в работе с MathLab 6.1 (http://www.imho.ws/showthread.php?t=82670)

Lolek 28.03.2005 13:43

Нужна помощь в работе с MathLab 6.1
 
Мне нужна помощь в работе с .wav файлами. Вставить файл с расширением .wav и получить в MathLab его спектр для дальнейшей работы с ним. В том числе и Фурье анализ. Кучу книг перерыл, но ничего так и не нашел для работы с этим. Слёзно умоляю мне помочь. Возможно и для MathCad 2000.

crawler 28.03.2005 18:23

Да запросто.
Код:

[y,Fs,nbits] = wavread('mywavfile.wav');
sound(y,Fs)
Y=fft(y);
plot(abs(Y));

Ежу понятно что это пример, и для настоящих данных надо будет делать поправки, но принцип тот же. Пользуй хелп, в Матлабе это самое ценное.

Lolek 12.04.2005 11:13

Хех... все конечно хорошо если бы я разберался в этом пакете и знал математику. Но проблема заключается в том, что я абсолютно не знаком с данной областью. А руководителю нужно что я сделал проект в этой среде. Мне проще сделать в Си, но против начальства не попрешь.
Дело в том что мне нужно wav файл разложить по Фурье, получить графики (спектр) и таблицу значений. Можно мне подробно расписать что к чему?

Lolek 20.04.2005 14:06

Люди!!! Очень прошу!!! Помогите бедному студенту... Дайте код в матлабе чтобы файл wav'ский(Звукозапись в формате wav 22 050 Гц; 8 бит; Моно) раскладывал по быстрому преобразованию Фурье с графикой и табличными значениями... а то ну никак... пожалуйстаааа. :молись:

Satan Klaus 21.04.2005 23:25

Цитата:

Lolek:
Дайте код в матлабе чтобы файл wav'ский(Звукозапись в формате wav 22 050 Гц; 8 бит; Моно) раскладывал по быстрому преобразованию Фурье с графикой и табличными значениями.
Не совсем понятно насчет табличных значений.
А приличный график можно получить, немного изменив код crawler:
Код:

N=1024; %количество точек БПФ
Y=fft(y,N);
X=0:22050/(N-1):22050; %Шкала частот
plot(X,abs(Y));


Lolek 22.04.2005 14:22

Цитата:

Сообщение от Satan Klaus
Не совсем понятно насчет табличных значений.

Ну просто нужны значения.На точках. Проще сказать числовые значения.

Lolek 03.05.2005 15:16

А как получить график не только ФЧХ, но и АЧХ?

crawler 03.05.2005 19:24

У вас, батенька, проблема не только с Матлабом, но и с понятием что делать - а это самое плохое. Советую почитать книжки по DSP (John G. Proakis , Dimitris G. Manolakis. Digital signal processing: principles, algorithms, and applications или Simon S. Haykin.Signals and Systems - эта попроще) Без этого - ничего не поможет.

Satan Klaus : ты в корне не прав по отношению к оси Х. Это же дигитальная частота, а не аналоговая. Значит результат будет в промежутке [-pi,pi] и повторятся каждые 2*пи. К тому же преобразование будет от -22050 до 22050 :)

Код:

[y,Fs,nbits] = wavread('your.wav'); % читаем вав
sound(y,Fs);
Y=fftshift(fft(y)); % делаем БПФ -  длина зависит только от вектора у
scale=linspace(-pi,pi,length(Y)); % шкала оси Х
figure(1);
plot(scale,abs(Y)); % амплитуда
title('Amplitude');
figure(2);
plot(scale,angle(Y));% фаза
title('Phase');

Если тебе нужна информация по определенной частоте, то формула проста = (точка на шкале Х)*(Fs/2)/pi

Fs - это частота дигитизации (сэмплинга) - короче не знаю как по русски.

crawler 05.05.2005 11:40

В связи с большим количеством вопросов в личку, читайте http://www.ele.uri.edu/~hansenj/projects/ele436/fft.pdf , а если что будет непонятно - спрашивайте.


Часовой пояс GMT +4, время: 22:04.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.