|
Подстройка частоты и фазы, Ищется метод |
|
|
|
Dec 19 2006, 12:11
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 5-04-06
Из: Penza
Пользователь №: 15 852

|
Доброго времени суток! Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд? Кол-во отсчетов на период пока также не выбрано.
|
|
|
|
|
 |
Ответов
(1 - 12)
|
Dec 25 2006, 16:13
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 5-04-06
Из: Penza
Пользователь №: 15 852

|
Цитата(vladv @ Dec 23 2006, 13:47)  Для измереня RMS (я так понимаю, речь идет о синусоидальном сигнале) можно вообще не подстраиваться под фазу и частоту. Метод зависит от времени и точности определения RMS и зашумленности сигнала.
В простейшем случае достаточно трех отсчетов через, скажем, ~1/12 периода периода, а дальше решение системы из 3-х уравнений - можно будет определить и амлитуду, и частоту, и фазу. Точность будет порядка уровня шумов/помех. Для подавления последних, можно предварительно пофильтровать сигнал. К сожалению чистый синус вряд ли будет, всегда есть какое-то искажение. Поэтому IMHO этот метод даст большую погрешность. Цитата(DuHast @ Dec 22 2006, 19:08)  привязываться надо к смене знака (переходу сигнала через ноль) Да, этой пожалуй будет проще всего. Около нуля и погрешность будет минимальной, если ошибемся на один отсчет. Спасибо всем откликнувшимся!
|
|
|
|
|
Dec 27 2006, 18:24
|
Знающий
   
Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030

|
Цитата(AST @ Dec 19 2006, 12:11)  Доброго времени суток! Для измерения RMS тока (45-55 Гц), выполняется оцифровка аналогового сигнала микроконтроллером. Вопрос в следующем: каким образом подстраиваться под фазу и частоту входного сигнала? Или другими словами как попроще определять время начала/конца интегрирования квадратов амплитуд? Кол-во отсчетов на период пока также не выбрано. А почему бы на выборку наложить какое-нибудь окно и далее напрямую подсчитать среднеквадратическое значение? Странно почему никто такой метод не предоложил... Код N = 20; Fs = 500; fi0 = randn(1,1); w = 2*pi*50/Fs;
sig = 10*sin( w*(1:N)+fi0 ); W = hann(N); K = sqrt(N/sum(W.^2));
rms = K*sqrt(sum((sig.*W.').^2)/N) plot(sig)
--------------------
ну не художники мы...
|
|
|
|
|
Dec 27 2006, 23:47
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 5-04-06
Из: Penza
Пользователь №: 15 852

|
Мне стыдно, не знаю элементарных понятий, а изучать и разбираться похоже все же придется. Понимаю, что разъяснять никто здесь ничего не будет, но плиз ткните в какой-нибудь букварь по ЦОС (лучше если доступный в электронном виде), здесь уже два раза упомянулась оконная функция, а что это такое и что она дает въехать не могу. Цитата(alex_os @ Dec 27 2006, 18:24)  А почему бы на выборку наложить какое-нибудь окно и далее напрямую подсчитать среднеквадратическое значение? Странно почему никто такой метод не предоложил... Код N = 20; Fs = 500; fi0 = randn(1,1); w = 2*pi*50/Fs;
sig = 10*sin( w*(1:N)+fi0 ); W = hann(N); K = sqrt(N/sum(W.^2));
rms = K*sqrt(sum((sig.*W.').^2)/N) plot(sig) Если я правильно понял размер выборки может быть произвольным и не привязанным к фазе и периоду входного сигнала?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|