Перейти к содержанию
    

Измерение КНИ

Нужно измерить коэффициент нелинейных искажений (погрешность 1%) и фазы каждой гармоники (погрешность 1%) (по 9-тую включительно) сети 220В, 50Гц. Думаю сделать это так: 1) взять 200 отсчетов за период(20мсек.), разрядность АЦП 10бит; 2) разложить в ряд Фурье (ДПФ); 3) выбрать из ряда 3,5,7,9 гармоники: вычислить их амплитуды и фазы; 4) подсчитать коэффициент нелинейных искажений.

Такая задача мне попалась впервые, цифровой обработкой не занимался, когда-то учил но на практике не применял. Слышал об эффекте взвешивания. Что за эффект, какую погрешность будет давать, как с ним бороться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

post-30482-1202890576_thumb.jpg

Содержание файла:

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);

Может в формуле есть ошибки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t));

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Так, для общего развития. fft() проще, но для программирования микроконтроллера нужно формулы обкатать, а потом как-то проконтролировать правильность результата измерения. Одного периода будет достаточно для заявленой точности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты.

Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц.

Может кто знает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты.

Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц.

Может кто знает

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста.

 

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

 

% N - количество отсчетов.

% T - время наблюдения.

f=(-N/2:N/2-1)*1/T;

 

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

Изменено пользователем Ghost2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Как это оформить для записи в матлабе. Скинте файлик, просмотреть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты.

Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц.

Может кто знает

У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -;).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -;).

Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать.

С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -(

Может здесь: dsp-book.narod.ru/marpl.htm получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -(

Может здесь: dsp-book.narod.ru/marpl.htm получится.

Здесь: dsp-book.narod.ru/marpl.htm не получилось. Получилось сдесь:

http://www.phys-campus.uni-altai.ru/files/...5247/marpl.djvu

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...