реклама на сайте
подробности

 
 
> Измерение КНИ, Эффект взвешивания
kolisnichenko_r
сообщение Feb 12 2008, 07:54
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Нужно измерить коэффициент нелинейных искажений (погрешность 1%) и фазы каждой гармоники (погрешность 1%) (по 9-тую включительно) сети 220В, 50Гц. Думаю сделать это так: 1) взять 200 отсчетов за период(20мсек.), разрядность АЦП 10бит; 2) разложить в ряд Фурье (ДПФ); 3) выбрать из ряда 3,5,7,9 гармоники: вычислить их амплитуды и фазы; 4) подсчитать коэффициент нелинейных искажений.
Такая задача мне попалась впервые, цифровой обработкой не занимался, когда-то учил но на практике не применял. Слышал об эффекте взвешивания. Что за эффект, какую погрешность будет давать, как с ним бороться?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Designer56
сообщение Feb 12 2008, 08:08
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290



Собственно, это не эффект взвешивания. Это эффект Гиббса, который проявляется при вычислении ДПФ на временном интервале, не равном целому числу периодов сигнала. Для того, чтобы как-то скомпенсировать его, применяется метод взвешивающих окон, но это нужно подробно изучать. Например, чтобы получить минимальную погрешность по амплитуде гармоник, применяют окно Хэннинга, для лучшего разрешения по частоте -Блэкман. Но этих окон великое множество, и каждое хорошо для своего случая. При точных измерениях Кг и КНИ с помощью спектрального анализа чаще всего синхронизируют либо тактовый генератор АЦП с измеряемым сигналом, либо измерительный сигнал от тактового генератора АЦП. При этом соотношение частот делают кратным простому числу. В этом случае краевые эффекты не проявляются совсем. Разумеется, размер массива для анализа должен быть таким, чтобы содержал целое число периодов исследуемого сигнала.


--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 13 2008, 08:15
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Беру 200 отсчетов за 1 период. Вот что получается при моделирровании в matlab6.5:
Прикрепленное изображение

Содержание файла:
Код
t=[0:1e-4:20e-3];
y1=200*sin(314*t);
y3=100*sin(314*3*t);
y5=50*sin(314*5*t);
y7=25*sin(314*7*t);
y=y1+y3+y5+y7;
x=[1:1:201];
for n=0:1:200
   x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t));
end
for n=0:1:20
   z(n+1)=x(n+1);
   f(n+1)=x(n+1);
end
n=[0:1:20];
subplot(4,1,1),plot(n,abs(z));
subplot(4,1,2),plot(n,(angle(f)*180/pi));
i1=[0:1:200];
subplot(4,1,4),plot(i1,abs(x+1));
subplot(4,1,3),plot(t,y,t,y1,t,y3,t,y5,t,y7);

Может в формуле есть ошибки?
Go to the top of the page
 
+Quote Post
alex_os
сообщение Feb 13 2008, 08:36
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(kolisnichenko_r @ Feb 13 2008, 11:15) *
x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t));

Здесь кажется не правильно. А вообще проще fft() использовать. Скажите какая польза может быть от фаз гармоник?


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 13 2008, 11:01
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



Цитата(alex_os @ Feb 13 2008, 12:36) *
Здесь кажется не правильно. А вообще проще fft() использовать. Скажите какая польза может быть от фаз гармоник?

Так, для общего развития. fft() проще, но для программирования микроконтроллера нужно формулы обкатать, а потом как-то проконтролировать правильность результата измерения. Одного периода будет достаточно для заявленой точности?
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 14 2008, 06:34
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482



x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты.
Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц.
Может кто знает
Go to the top of the page
 
+Quote Post
alex_os
сообщение Feb 15 2008, 16:34
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(kolisnichenko_r @ Feb 14 2008, 09:34) *
x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты.
Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц.
Может кто знает

Дык это отрицателные частоты smile.gif. Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1)


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 01:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016