|
минимизация погрешности, при плавающей частоте |
|
|
|
 |
Ответов
|
Dec 1 2012, 07:27
|
Участник

Группа: Свой
Сообщений: 67
Регистрация: 28-12-04
Из: Нижний Новгород
Пользователь №: 1 714

|
Добрый день, уважаемый fontp!
Что-то я совсем запутался. Накидал код в Matlab.
clear ; %-------------------------------------------------------------------------- A = 50 ; % Amplitude 1-harmonics 50V , Идеальная амплитуда 1-й гармоники ; Fmain = 50 ; % F 1 harmonics, Идеальная частота 1-й гармоники ; %-------------------------------------------------------------------------- SNR = 80 ; %-------------------------------------------------------------------------- Fs = 6400 ; % F sampling , частота дискретизации N = 512; % количество отсчетов %-------------------------------------------------------------------------- t = (0:N-1)/Fs; % вектор времени freq = 0:Fs/N:200 ; % вектор частоты %-------------------------------------------------------------------------- xx = A*sin(2*pi*Fmain*t) ; % x = awgn(xx, SNR, 'measured'); %x = x + randn(size(x)) ; %-------------------------------------------------------------------------- NFFT = abs(fft(x, N))./(N/2); %--------------------------------------------------------------------------
subplot(2,1,1), plot(t,x), axis([0 t(N) -(1.4*A) (1.4*A)]) ; hold on ;
subplot(2,1,2), stem(freq, NFFT(1:17)), grid on ; hold on ;
subplot(2,1,1); text(0, -20, sprintf('Идеальная частота %2.3f Гц\n',Fmain));
text(0, -50, sprintf('Идеальная амплитуда %2.3f В\n',A));
for k = 0.8:0.01:1.2 xx = A*sin(2*pi*(Fmain*k)*t) ; x = awgn(xx, SNR, 'measured'); NFFT = abs(fft(x, N))./(N/2); [Ampl_max N_bin_max] = max(NFFT) ; % максимальный бин и его значение y_l = NFFT(N_bin_max - 1) ; % амплитуда левого бина y_c = NFFT(N_bin_max) ; % амплитуда максимального центрального бина y_r = NFFT(N_bin_max + 1) ; % амплитуда правого бина x_l = (N_bin_max - 2)*(Fs/N) ; % частотное положение бинов x_c = (N_bin_max - 1)*(Fs/N) ; x_r = N_bin_max *(Fs/N) ; inp_vector_x = [x_l x_c x_r] ; inp_vector_y = [y_l y_c y_r] ; out_vector_x = x_l:0.01:x_r ; out_vector_y = lagrange(inp_vector_x, inp_vector_y, out_vector_x); [ymax xmax] = max(out_vector_y) ; A_calc = ymax ; Freq_izmer = xmax ; errorA = (abs(A - A_calc))*100/A ; subplot(2,1,1) ; h(1) = plot(t, x, 'r') ; h(3) = text(0, -35, sprintf('Измереная частота %2.3f Гц\n', Freq_izmer)); h(4) = text(0, -65, sprintf('Измереная амплитуда %2.3f В\n', A_calc)); h(5) = text(0.009, -65, sprintf('( %2.3f )\n', errorA)); subplot(2,1,2); h(2) = stem(freq, NFFT(1:17), 'r') ; h(6) = plot(out_vector_x, out_vector_y, 'r') ; drawnow ; pause(0.5) ; if k == 1.19 return end delete(h) ; end
function yy=lagrange(x,y,xx) % вычисление интерполяционного полинома в форме Лагранжа % x - массив координат узлов % y - массив значений интерполируемой функции % xx - массив значений аргумента, для которых надо вычислить значения полинома % yy - массив значений полинома в точках xx
% узнаем число узлов интерполяции (N=n+1) N=length(x); % создаем нулевой массив значений интерполяционного полинома yy=zeros(size(xx)); % в цикле считаем сумму по узлам for k=1:N % вычисляем произведения, т.е. функции Psi_k t=ones(size(xx)); for j=[1:k-1, k+1:N] t=t.*(xx-x(j))/(x(k)-x(j)); end % накапливаем сумму yy = yy + y(k)*t; end
Получается, что построением параболы, амплитуду точно определить не получается? Или я совсем уже туплю… Ткните, пожалуйста, носом, в нужную сторону, а лучше конечно в пример Matlab.
С уважением, Den.
|
|
|
|
Сообщений в этой теме
TigerSHARC минимизация погрешности Sep 4 2009, 10:48 fontp Цитата(TigerSHARC @ Sep 4 2009, 14:48) Ес... Sep 4 2009, 10:55 Den Цитата(fontp @ Sep 4 2009, 14:55) Посмотр... Nov 20 2012, 12:13  fontp QUOTE (Den @ Nov 20 2012, 15:13) Добрый д... Nov 20 2012, 13:17 thermit ЦитатаЕсть сигнал. Частота основной гармоники 50 г... Sep 4 2009, 11:12 fontp Цитата(thermit @ Sep 4 2009, 15:12) Похож... Sep 4 2009, 11:16 thermit ЦитатаБудет размазано. Но если априорно известно, ... Sep 4 2009, 11:27 sup-sup Интереснео, но не очень понятно. Похоже на передач... Sep 4 2009, 18:20 TigerSHARC Это нужно для оценки самой сети (в трёхфазной сети... Sep 5 2009, 12:16 sup-sup Так что, частота дискретизации задана от кварца, а... Sep 5 2009, 17:09 alex_os Цитата(TigerSHARC @ Sep 5 2009, 16:16) Эт... Sep 5 2009, 17:33 bahurin Цитата(TigerSHARC @ Sep 4 2009, 14:48) Ес... Sep 6 2009, 13:01 thermit ЦитатаЭто нужно для оценки самой сети (в трёхфазно... Sep 7 2009, 06:56 TigerSHARC Цитата(fontp @ Sep 4 2009, 14:55) Посмотр... Oct 15 2009, 19:31 fontp Цитата(TigerSHARC @ Oct 15 2009, 23:31) .... Oct 16 2009, 07:20 bahurin Цитата(TigerSHARC @ Sep 4 2009, 14:48) Ес... Oct 16 2009, 11:17 Alex11 Мы тут уже сделали прибор для измерения парметров ... Oct 16 2009, 18:04 AndeyP Если нужно что то померить и точности FFT не хвата... Oct 16 2009, 19:04 bahurin Цитата(AndeyP @ Oct 16 2009, 23:04) Если ... Oct 17 2009, 05:54  AndeyP Цитата(bahurin @ Oct 17 2009, 09:54) Доба... Oct 17 2009, 09:48   fontp Цитата(AndeyP @ Oct 17 2009, 13:48) Гейзе... Oct 17 2009, 10:08    AndeyP Цитата(fontp @ Oct 17 2009, 14:08) Здесь ... Oct 17 2009, 19:16     GetSmart Цитата(AndeyP @ Oct 18 2009, 01:16) А есл... Oct 18 2009, 17:20      TigerSHARC Цитата(GetSmart @ Oct 18 2009, 21:20) Тип... Oct 18 2009, 18:49     bahurin Цитата(AndeyP @ Oct 17 2009, 23:16) А спр... Oct 18 2009, 19:28      GetSmart Цитата(bahurin @ Oct 19 2009, 01:28) прин... Oct 18 2009, 22:08       fontp Цитата(GetSmart @ Oct 19 2009, 02:08) При... Oct 19 2009, 07:34        анатолий Цитата(fontp @ Oct 19 2009, 10:34) В реал... Oct 19 2009, 10:21         bahurin Цитата(анатолий @ Oct 19 2009, 14:21) Зде... Oct 19 2009, 10:37         fontp Цитата(анатолий @ Oct 19 2009, 14:21) Есл... Oct 19 2009, 10:43      AndeyP Цитата(bahurin @ Oct 18 2009, 23:28) прин... Oct 19 2009, 20:29       fontp Цитата(AndeyP @ Oct 20 2009, 00:29) Мне к... Oct 20 2009, 09:07        AndeyP Выкладываю свою тестовую среду для алгоритмов оцен... Oct 20 2009, 20:49         GetSmart Цитата(AndeyP @ Oct 21 2009, 02:49) Может... Oct 20 2009, 20:58 анатолий Лет 15 назад мы такое делали на 8051 микроконтролл... Oct 17 2009, 15:36 TigerSHARC Амплитуда мерялась по максимуму интерполяции графи... Oct 18 2009, 15:15 sup-sup Цитата(TigerSHARC @ Sep 4 2009, 13:48) Ес... Oct 19 2009, 05:10 bahurin Цитата(sup-sup @ Oct 19 2009, 09:10)... Oct 19 2009, 05:56 sup-sup Цитата(sup-sup @ Oct 19 2009, 08:10)... Oct 19 2009, 11:04 thermit ЦитатаМогучий принцип. Наверное им хорошо обосновы... Oct 20 2009, 07:18 анатолий Странные какие-то споры.
Сигнал 50 Гц - это, в общ... Oct 20 2009, 10:50 Oldring Цитата(TigerSHARC @ Sep 4 2009, 14:48) Ес... Oct 21 2009, 06:27 TigerSHARC Цитата(Oldring @ Oct 21 2009, 10:27) Вы з... Oct 21 2009, 19:38  Oldring Цитата(TigerSHARC @ Oct 21 2009, 23:38) .... Oct 21 2009, 20:39  alexkok Цитата(TigerSHARC @ Oct 21 2009, 23:38) .... Oct 22 2009, 01:16   TigerSHARC Цитата(alexkok @ Oct 22 2009, 05:16) А за... Oct 27 2009, 15:10    sup-sup Цитата(TigerSHARC @ Oct 27 2009, 18:10) .... Oct 27 2009, 16:28     TigerSHARC Цитата(sup-sup @ Oct 27 2009, 20:28)... Oct 28 2009, 17:24      bahurin Цитата(TigerSHARC @ Oct 28 2009, 20:24) .... Oct 28 2009, 17:48       sup-sup ... не совсем понимаю, что даёт интерполяция сама ... Oct 28 2009, 19:04        TigerSHARC Цитата(sup-sup @ Oct 28 2009, 23:04)... Oct 28 2009, 20:36         sup-sup Цитата(TigerSHARC @ Oct 28 2009, 23:36) .... Oct 28 2009, 21:25          bahurin Цитата(sup-sup @ Oct 29 2009, 00:25)... Oct 29 2009, 05:12           sup-sup Цитата(bahurin @ Oct 29 2009, 09:12) Вы т... Oct 29 2009, 06:14            TigerSHARC Цитата(sup-sup @ Oct 29 2009, 10:14)... Oct 29 2009, 18:23    alexkok Цитата(TigerSHARC @ Oct 27 2009, 18:10) .... Oct 27 2009, 16:30  sup-sup Цитата(TigerSHARC @ Oct 21 2009, 22:38) .... Oct 22 2009, 04:12  bahurin Цитата(TigerSHARC @ Oct 21 2009, 23:38) .... Oct 22 2009, 05:11 TigerSHARC ... как ещё можно минимизировать погрешность??? Oct 29 2009, 20:21 fontp Цитата(TigerSHARC @ Oct 29 2009, 23:21) .... Oct 30 2009, 06:35  sup-sup Цитата(fontp @ Oct 30 2009, 10:35) Вообще... Oct 30 2009, 11:51 AlexU Цитата(TigerSHARC @ Oct 29 2009, 23:21) .... Nov 1 2009, 17:52  GetSmart Цитата(AlexU @ Nov 1 2009, 23:52) На вход... Nov 1 2009, 18:33   AlexU Цитата(GetSmart @ Nov 1 2009, 21:33) Это ... Nov 2 2009, 06:29   fontp Цитата(GetSmart @ Nov 1 2009, 21:33) Это ... Nov 2 2009, 09:08    AlexU Цитата(fontp @ Nov 2 2009, 12:08) "У... Nov 2 2009, 09:27  GetSmart Цитата(AlexU @ Nov 1 2009, 23:52) На вход... Nov 2 2009, 18:49   AlexU Цитата(GetSmart @ Nov 2 2009, 21:49) Отку... Nov 3 2009, 08:20 Евгений Николаев TigerSHARC, Вы определитесь - Вам вычисление часто... Nov 1 2009, 20:12 TigerSHARC Цитата(Евгений Николаев @ Nov 1 2009, 23... Nov 3 2009, 16:40 Евгений Николаев Если аппаратно, то речь, как я понимаю идёт о ПЛИС... Nov 5 2009, 08:04 TigerSHARC Цитата(Евгений Николаев @ Nov 5 2009, 11... Nov 5 2009, 12:27 Евгений Николаев Цитатакоэффицент несинусоидальности посчитать...
У... Nov 5 2009, 15:09 TigerSHARC Цитата(Евгений Николаев @ Nov 5 2009, 18... Nov 5 2009, 15:30 Евгений Николаев Цитатадля предотвращения наложения используется RC... Nov 5 2009, 16:16 TigerSHARC Цитата(Евгений Николаев @ Nov 5 2009, 19... Nov 5 2009, 19:38 Евгений Николаев Все эти приборы работают с окном наблюдения намног... Nov 6 2009, 13:17 TigerSHARC Цитата(Евгений Николаев @ Nov 6 2009, 16... Nov 6 2009, 14:00 анатолий Цитата(Евгений Николаев @ Nov 6 2009, 16... Nov 7 2009, 15:23  TigerSHARC Цитата(анатолий @ Nov 7 2009, 18:23) Прав... Dec 1 2009, 13:56 Евгений Николаев А чем Вас так держит аппаратная частота?
Можно мен... Nov 6 2009, 14:54 TigerSHARC Цитата(Евгений Николаев @ Nov 6 2009, 17... Nov 6 2009, 16:07 Den Спасибо.
Уважаемый fontp, прочитал много Ваших по... Nov 21 2012, 05:13 TigerSHARC Цитата(Den @ Nov 21 2012, 09:13) Спасибо.... Nov 21 2012, 07:40 fontp QUOTE (Den @ Nov 21 2012, 08:13) Спасибо.... Nov 21 2012, 09:12  Den Цитата(fontp @ Nov 21 2012, 13:12) Амплит... Nov 21 2012, 09:33   fontp QUOTE (Den @ Nov 21 2012, 12:33) А разве ... Nov 21 2012, 09:36  Den Цитата(fontp @ Nov 21 2012, 13:12) Я прив... Nov 21 2012, 09:47   fontp QUOTE (Den @ Nov 21 2012, 12:47) Большое ... Nov 21 2012, 09:59 Den 128 точечное БПФ у меня высчитывается за 1.1 мкс.
... Nov 21 2012, 08:32 Den Спасибо.
Буду пробывать.
С уважением, Den. Nov 21 2012, 10:09 Serg76 Уважаемые знатоки!
Для обсуждаемых здесь алгор... Nov 21 2012, 18:46 fontp QUOTE (Serg76 @ Nov 21 2012, 21:46) Уважа... Nov 22 2012, 08:21 Serg76 2 fontp
Спасибо большое за такой развернутый отве... Nov 22 2012, 11:14 Serg76 2 fontp
пока тема не "остыла", хотел ещ... Nov 22 2012, 17:31 fontp QUOTE (Serg76 @ Nov 22 2012, 20:31) 2 fon... Nov 23 2012, 08:31  Serg76 Цитата(fontp @ Nov 23 2012, 11:31) Смысл ... Nov 23 2012, 11:02 fontp QUOTE (Den @ Dec 1 2012, 10:27) Добрый де... Dec 2 2012, 11:35 Den Добрый день.
Пытаюсь всё разобраться. Вот ещё код... Dec 20 2012, 10:03
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|