|
Измерение КНИ, Эффект взвешивания |
|
|
|
Feb 12 2008, 07:54
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Нужно измерить коэффициент нелинейных искажений (погрешность 1%) и фазы каждой гармоники (погрешность 1%) (по 9-тую включительно) сети 220В, 50Гц. Думаю сделать это так: 1) взять 200 отсчетов за период(20мсек.), разрядность АЦП 10бит; 2) разложить в ряд Фурье (ДПФ); 3) выбрать из ряда 3,5,7,9 гармоники: вычислить их амплитуды и фазы; 4) подсчитать коэффициент нелинейных искажений. Такая задача мне попалась впервые, цифровой обработкой не занимался, когда-то учил но на практике не применял. Слышал об эффекте взвешивания. Что за эффект, какую погрешность будет давать, как с ним бороться?
|
|
|
|
|
 |
Ответов
(1 - 13)
|
Feb 12 2008, 08:08
|
Гуру
     
Группа: Свой
Сообщений: 2 932
Регистрация: 13-10-06
Из: Уфа
Пользователь №: 21 290

|
Собственно, это не эффект взвешивания. Это эффект Гиббса, который проявляется при вычислении ДПФ на временном интервале, не равном целому числу периодов сигнала. Для того, чтобы как-то скомпенсировать его, применяется метод взвешивающих окон, но это нужно подробно изучать. Например, чтобы получить минимальную погрешность по амплитуде гармоник, применяют окно Хэннинга, для лучшего разрешения по частоте -Блэкман. Но этих окон великое множество, и каждое хорошо для своего случая. При точных измерениях Кг и КНИ с помощью спектрального анализа чаще всего синхронизируют либо тактовый генератор АЦП с измеряемым сигналом, либо измерительный сигнал от тактового генератора АЦП. При этом соотношение частот делают кратным простому числу. В этом случае краевые эффекты не проявляются совсем. Разумеется, размер массива для анализа должен быть таким, чтобы содержал целое число периодов исследуемого сигнала.
--------------------
"...Дьяволу ведомо многое не потому, что он- Дьявол, а потому, что он стар..."
|
|
|
|
|
Feb 13 2008, 08:15
|
Местный
  
Группа: Свой
Сообщений: 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); Может в формуле есть ошибки?
|
|
|
|
|
Feb 13 2008, 08:36
|
Знающий
   
Группа: Свой
Сообщений: 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() использовать. Скажите какая польза может быть от фаз гармоник?
--------------------
ну не художники мы...
|
|
|
|
|
Feb 13 2008, 11:01
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(alex_os @ Feb 13 2008, 12:36)  Здесь кажется не правильно. А вообще проще fft() использовать. Скажите какая польза может быть от фаз гармоник? Так, для общего развития. fft() проще, но для программирования микроконтроллера нужно формулы обкатать, а потом как-то проконтролировать правильность результата измерения. Одного периода будет достаточно для заявленой точности?
|
|
|
|
|
Feb 15 2008, 16:34
|
Знающий
   
Группа: Свой
Сообщений: 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кГц. Может кто знает Дык это отрицателные частоты  . Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1)
--------------------
ну не художники мы...
|
|
|
|
|
Feb 18 2008, 06:11
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(alex_os @ Feb 15 2008, 20:34)  Дык это отрицателные частоты  . Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1) Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста.
|
|
|
|
|
Feb 19 2008, 15:06
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Feb 20 2008, 06:11
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

|
Цитата(Ghost2 @ Feb 19 2008, 19:06)  PS. А лучше использовать fft - вторым аргументом можно добить последовательность нулями и получить большее разрешение (на пилу как-то неудобно смотреть). Как это оформить для записи в матлабе. Скинте файлик, просмотреть
|
|
|
|
|
Feb 21 2008, 11:16
|
Участник

Группа: Свой
Сообщений: 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кГц. Может кто знает У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -  .
|
|
|
|
|
Feb 21 2008, 11:39
|
Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 12-09-07
Пользователь №: 30 482

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

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

|
Цитата(kolisnichenko_r @ Feb 21 2008, 14:39)  Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать. С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -( Может здесь: dsp-book.narod.ru/marpl.htm получится.
|
|
|
|
|
Feb 22 2008, 06:56
|
Местный
  
Группа: Свой
Сообщений: 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Спасибо
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|