rsln 0 12 февраля, 2008 Опубликовано 12 февраля, 2008 · Жалоба Нужно измерить коэффициент нелинейных искажений (погрешность 1%) и фазы каждой гармоники (погрешность 1%) (по 9-тую включительно) сети 220В, 50Гц. Думаю сделать это так: 1) взять 200 отсчетов за период(20мсек.), разрядность АЦП 10бит; 2) разложить в ряд Фурье (ДПФ); 3) выбрать из ряда 3,5,7,9 гармоники: вычислить их амплитуды и фазы; 4) подсчитать коэффициент нелинейных искажений. Такая задача мне попалась впервые, цифровой обработкой не занимался, когда-то учил но на практике не применял. Слышал об эффекте взвешивания. Что за эффект, какую погрешность будет давать, как с ним бороться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Designer56 0 12 февраля, 2008 Опубликовано 12 февраля, 2008 · Жалоба Собственно, это не эффект взвешивания. Это эффект Гиббса, который проявляется при вычислении ДПФ на временном интервале, не равном целому числу периодов сигнала. Для того, чтобы как-то скомпенсировать его, применяется метод взвешивающих окон, но это нужно подробно изучать. Например, чтобы получить минимальную погрешность по амплитуде гармоник, применяют окно Хэннинга, для лучшего разрешения по частоте -Блэкман. Но этих окон великое множество, и каждое хорошо для своего случая. При точных измерениях Кг и КНИ с помощью спектрального анализа чаще всего синхронизируют либо тактовый генератор АЦП с измеряемым сигналом, либо измерительный сигнал от тактового генератора АЦП. При этом соотношение частот делают кратным простому числу. В этом случае краевые эффекты не проявляются совсем. Разумеется, размер массива для анализа должен быть таким, чтобы содержал целое число периодов исследуемого сигнала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 13 февраля, 2008 Опубликовано 13 февраля, 2008 · Жалоба Беру 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); Может в формуле есть ошибки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 13 февраля, 2008 Опубликовано 13 февраля, 2008 · Жалоба x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)); Здесь кажется не правильно. А вообще проще fft() использовать. Скажите какая польза может быть от фаз гармоник? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 13 февраля, 2008 Опубликовано 13 февраля, 2008 · Жалоба Здесь кажется не правильно. А вообще проще fft() использовать. Скажите какая польза может быть от фаз гармоник? Так, для общего развития. fft() проще, но для программирования микроконтроллера нужно формулы обкатать, а потом как-то проконтролировать правильность результата измерения. Одного периода будет достаточно для заявленой точности? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 14 февраля, 2008 Опубликовано 14 февраля, 2008 · Жалоба x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты. Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц. Может кто знает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex_os 0 15 февраля, 2008 Опубликовано 15 февраля, 2008 · Жалоба x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты. Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц. Может кто знает Дык это отрицателные частоты :). Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 18 февраля, 2008 Опубликовано 18 февраля, 2008 · Жалоба Дык это отрицателные частоты :). Так и должно быть ... Вам нужны частоты с индексами 0...N/2 (в матлабе +1) Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ghost2 0 19 февраля, 2008 Опубликовано 19 февраля, 2008 (изменено) · Жалоба Как промасштабировать ось частот, для получения вразумительного графика? Если есть матлабовский файл для примера, прикрепите пожалуйста. Спектр периодический - высокочастотные гармоники на самом деле совсем не высокочастотные, просто частота через pi перевалила. Для получения нормальной картинки можно воспользоваться функцией fftshift. Получится, что частоты теперь идут от -pi до pi. Реальную ось частот можно вычислить так: % N - количество отсчетов. % T - время наблюдения. f=(-N/2:N/2-1)*1/T; PS. А лучше использовать fft - вторым аргументом можно добить последовательность нулями и получить большее разрешение (на пилу как-то неудобно смотреть). Изменено 19 февраля, 2008 пользователем Ghost2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 20 февраля, 2008 Опубликовано 20 февраля, 2008 · Жалоба PS. А лучше использовать fft - вторым аргументом можно добить последовательность нулями и получить большее разрешение (на пилу как-то неудобно смотреть). Как это оформить для записи в матлабе. Скинте файлик, просмотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ATname 0 21 февраля, 2008 Опубликовано 21 февраля, 2008 · Жалоба x(n+1)=sum(y.*exp(-i*n*2*pi*50.*t)) - эта формула и функция fft() дают одинаковые результаты. Мне не понятно, почему получаются гармоники на высоких частотах 9700кГц - 10кГц. Может кто знает У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -;). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 21 февраля, 2008 Опубликовано 21 февраля, 2008 · Жалоба У Вас имеет место быть конечное время наблюдения, что матлаб и учитывает. Отсюда высокие порядки гармоник... Матлаб штука честная, и бороться с этим не следует, лучше увеличивайте период наблюдения и делайте анализ в скользящем окне. Вообще есть книжка про цифровой спектральный анализ, ИМХО название типа: "Цифровой спектральный анализ и его применение", автор какой-то там ... - младший. В ентой книжке усё разжовано. Читайте и обрящите -;). Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ATname 0 22 февраля, 2008 Опубликовано 22 февраля, 2008 · Жалоба Буду очень признателен, если возможно уточнить название и автора книги. Еще лутше ссылку места откуда можно ее скачать. С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -( Может здесь: dsp-book.narod.ru/marpl.htm получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rsln 0 22 февраля, 2008 Опубликовано 22 февраля, 2008 · Жалоба С.Л. Марпл-мл. "цифровой спектральный анализ и его приложения". Откуда скачать, вопрос сложный, ща везде борются за авторские права. Со всеми вытекающими. -( Может здесь: dsp-book.narod.ru/marpl.htm получится. Здесь: dsp-book.narod.ru/marpl.htm не получилось. Получилось сдесь: http://www.phys-campus.uni-altai.ru/files/...5247/marpl.djvu Спасибо Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться