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

 
 
 
Reply to this topicStart new topic
> Измерение КНИ, Эффект взвешивания
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
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
kolisnichenko_r
сообщение Feb 18 2008, 06:11
Сообщение #8


Местный
***

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



Цитата(alex_os @ Feb 15 2008, 20:34) *
Дык это отрицателные частоты smile.gif. Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1)

Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста.
Go to the top of the page
 
+Quote Post
Ghost2
сообщение Feb 19 2008, 15:06
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 046



Цитата(kolisnichenko_r @ Feb 18 2008, 09:11) *
Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста.


Спектр периодический - высокочастотные гармоники на самом деле совсем не высокочастотные, просто частота через pi перевалила. Для получения нормальной картинки можно воспользоваться функцией fftshift. Получится, что частоты теперь идут от -pi до pi. Реальную ось частот можно вычислить так:

% N - количество отсчетов.
% T - время наблюдения.
f=(-N/2:N/2-1)*1/T;

PS. А лучше использовать fft - вторым аргументом можно добить последовательность нулями и получить большее разрешение (на пилу как-то неудобно смотреть).

Сообщение отредактировал Ghost2 - Feb 19 2008, 15:09
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 20 2008, 06:11
Сообщение #10


Местный
***

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



Цитата(Ghost2 @ Feb 19 2008, 19:06) *
PS. А лучше использовать fft - вторым аргументом можно добить последовательность нулями и получить большее разрешение (на пилу как-то неудобно смотреть).

Как это оформить для записи в матлабе. Скинте файлик, просмотреть
Go to the top of the page
 
+Quote Post
ATname
сообщение Feb 21 2008, 11:16
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-06
Пользователь №: 15 797



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

У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -wink.gif.
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 21 2008, 11:39
Сообщение #12


Местный
***

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



Цитата(ATname @ Feb 21 2008, 15:16) *
У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -wink.gif.

Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать.
Go to the top of the page
 
+Quote Post
ATname
сообщение Feb 22 2008, 05:19
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 4-04-06
Пользователь №: 15 797



Цитата(kolisnichenko_r @ Feb 21 2008, 14:39) *
Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать.

С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -(
Может здесь: dsp-book.narod.ru/marpl.htm получится.
Go to the top of the page
 
+Quote Post
kolisnichenko_r
сообщение Feb 22 2008, 06:56
Сообщение #14


Местный
***

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



Цитата(ATname @ Feb 22 2008, 09:19) *
С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -(
Может здесь: dsp-book.narod.ru/marpl.htm получится.

Здесь: dsp-book.narod.ru/marpl.htm не получилось. Получилось сдесь:
http://www.phys-campus.uni-altai.ru/files/...5247/marpl.djvu
Спасибо
Go to the top of the page
 
+Quote Post

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

 


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


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