2012-03-09 5 views
0

В настоящее время я изучаю DSP, и я использую пакет программного обеспечения Matlab, чтобы проделать свой путь через проблемы. В настоящее время я только начинаю пытаться узнать о серии Fourier, и у меня возникают проблемы со следующей проблемой.Путаница относительно серии Фурье в Matlab

Генерировать волну треугольника 100 Гц с использованием рядов Фурье.

Теперь я не могу полностью понять эту часть проблемы об использовании серии Fourier.

Я произвел 100Hz треугольную волну со следующим кодом MatLab:

t = 0:1/10000:1; 
f=100; 
x1 = sawtooth(2*pi*f*t, 0.5); 
x2 = fft(x1); 
plot(t,x1); 
axis([0 0.10 -1 1]); 
grid on; 

Теперь то, что код будет я использую в MATLAB для построения ряда Фурье этой треугольной волны?

Спасибо всем, кто может внести свой вклад в эту конкретную проблему.

ответ

4

Я думаю, что вопрос задается для вас, чтобы выяснить коэффициенты «a» и «b», а затем сформировать пилообразную волну, суммируя синусы и косинусы на соответствующих частотах. Это не слишком трудно найти коэффициенты Фурье для пилообразной волны в Интернете, но я призываю вас работать его и использовать, чтобы проверить свой ответ :)

Затем сделать что-то вроде этого

n_harmonics = 10; 
n = zeros(1, n_harmonics); 
a = ?; % for you to figure out - probably a function of n 
b = ?; % same idea 

t = linspace(0, 2*pi); 
x = zeros(size(t)); 
for nx = 1 : n, 
    x = x + a(nx)*cos(nx*t) + b(nx)*sin(nx*t); 
end 
plot(t, x) 

Обратите внимание на Ряды Фурье - это не то же самое, что преобразование Фурье, которое оценивает fft. Большинство текстов обработки сигналов начинаются с рядов Фурье и основываются на этом, чтобы перейти к преобразованию Фурье. Обратите также внимание на то, что при переходе от непрерывного времени к дискретному времени существует множество важных и тонких различий. Опять же, большинство учебников, вероятно, начнется с непрерывного времени, а затем использовать это как основу для введения концепций дискретного времени.

Смежные вопросы