четверг, 24 сентября 2009 г.

Тест на вменяемость :-)

Например, я хочу нарисовать осциллограмму гармонического сигнала. Например, с частотой 50 Гц. Например, на протяжении секунды.
Те, кто еще что-то помнят и понимают, сообразят, что я должен бы по идее увидеть 50 периодов синусоиды, там, или косинусоиды.

Пример на MATLAB:

f=50;
t=0:0.01:1;
s = sin(2*pi*f*t);
plot(t,s);

В результате получим, мягко говоря, неожиданный результат:

Тест на вменяемость: что и почему не так?

9 коммент.:

chavess09 25 сентября 2009 г., 17:50  

f=50;
t=0:0.001:1;
s = sin(2*pi*f*t);
plot(t,s);

apalkoff 25 сентября 2009 г., 22:56  

ну... правда ли надо для этого превышать в 10 раз требования теоремы Котельникова? :-)

chavess09 25 сентября 2009 г., 23:51  

Боюсь нести чушь, но по теореме Котельникова fd>=2fmax, где fmax у нас верхняя частота спектра. Ширина полосы частот будет 2*f то бишь 100Гц, значит интервал дискретизации должен быть никак не меньше 0.005с. Имхо все так)

apalkoff 26 сентября 2009 г., 0:21  

Маленько путаница, конечно :-)

В примере: F = Fmax = 50 Гц
По теореме Котельникова (ну или Найквиста, кому как нравится) частота дискретизации Fd должа быть >= 2Fmax.

Крайний вариант:
Fd = 2Fmax = 100Гц => Td = 1/100 c = 0.01, что и записано в примере. То есть условия теоремы формально выполнены.

А где синус? Ну хоть бы и косоватенький ;-)))

chavess09 26 сентября 2009 г., 14:18  

Дык спектр-то у нас относительно абсциссы вроде зеркален, значит fmax=2*f=100Гц, а собственно fd>=2fmax. Вот и (ко)синус) И даже не косоватенький)

apalkoff 26 сентября 2009 г., 21:56  

Приведенное рассуждение до конца мне не ясно, хотя и имеет определенное сходство с реальностью. Ни синуса не косинуса не вижу :-)

chavess09 26 сентября 2009 г., 23:18  

На 0.005 секундах(fd=2*fmax(fmax=2*f)=200Гц) получается замечательный синус, на больших интервалах - наложение. Если Котельников разрешает нам дискретить на 0.01 секунде, то как?
В чем секрет?

chegeras 27 сентября 2009 г., 21:46  

Илья, подсказкой служит порядок получаемых значений. Начало отсчетов в нуле (sin(0) = 0), последующие берутся с интервалом равным полупериоду (попадаем в тот же ноль), а отличие от нуля можно объяснить погрешностью (мы вроде писали лабы в маткаде по определению машинного нуля и бесконечности)

apalkoff 27 сентября 2009 г., 23:43  

Ответ зачтен.

Отправить комментарий