Ярлыки

_GetPixelIndex (1) _SetPixelIndex (1) 3-phase (1) 800x480 (1) АЦП (1) генератор (1) синхронный усилитель (2) структура (1) учебный курс (1) шаговый двигатель (1) ШИМ (2) accert (1) AD7608 (1) AD8429 (1) ADC (5) amplifer (1) arccos (1) arcsin (1) arctang (2) arctg (3) ARM (2) arm_sqrt_q15 (2) assembler (6) ASSERT (1) atan (2) bit (1) Bitband (1) boot (3) bootlloader (1) BUTTON (1) C (5) C# (1) CAN (2) CC2530 (5) CMSIS (4) command (1) Cordic (1) Core746I (1) CubeMX (4) DBGMCU (2) debug (2) debug.ini (1) delegate (1) Digital Potentiometers (1) DigitalPOT (1) Discovery (1) DMA (9) DMA2D (1) DSP (1) DSP library (1) DWT (1) EFM32 (5) EmWin (9) EXTI (1) FATFS (1) FMC (2) FreeRTOS (2) gl868-dual cmux (1) GPIO (4) GUI (2) GUIBuilder (1) GUIDRV_CompactColor_16 (1) HAL (3) HappyGecko (1) Hard Fault (2) heap (1) I2C (1) ID (1) ILI9320 (1) ILI9325 (1) Initialisation (1) InitLTDC (1) Instrumentithion (1) Interrupt (4) ITR (1) JTAG (1) Keil (5) LCDConf (2) lock-in (1) LTCD (1) LTDC (3) main (1) memory (1) MINI_STM32 Revision 01 (1) nBoot0 (1) NVIC (1) OnePulse (2) OSAL (4) pack (1) phase (1) printf (3) Pulse (1) PWM (12) RCC (2) RCR (1) Register (1) RESET (2) RS232 (3) RSS (1) RTC (3) RTOS-RTX (1) RTT (1) RTX-RTOS (1) SDCard (1) SDRAM (6) Segger (2) SPI (3) sqrt (3) SSD1298 (1) SSD1963 (1) Standart Peripherial Library (3) STANDBAY (1) startup (1) STemWin (8) stepper motor (1) STlink (2) STM32 (17) STM32429ZI (1) STM32Cube (1) STM32DBG.IN (1) STM32F (28) STM32F0 (4) STM32F1 (13) STM32F4 (10) STM32F4 Discovery (1) STM32F407ZG (1) STM32F429 (2) STM32F746 (1) STOP (1) string (1) struct (1) SWD (1) SWD JTAG (1) Synhronization (1) system_stm32f4xx.c (1) SystemInit (1) SysTick (1) task (4) telit (1) TIM (27) typedef (1) UART (1) USART (9) viewer (2) WM_PAINT (1) Z-stack (5) ZigBee (5)

суббота, 6 декабря 2014 г.

arcsin arccos arctg sqrt

arcsin(x)=sqrt((315-55*x^2-sqrt(99225-97650*x^2-2435*x^4))*(78*x^2+900))/(26*x^2+300), где sqrt()- корень квадратный, а ^-знак степени, данная формула в интервале 0<x<1 , даёт ошибку не более 1%, 

arccos(x)=sqrt(84+6*x-6*sqrt(106+118*x+x^2))/3, данная формула в интервале 0<x<1 даёт ошибку менее 0,1% 

arctg(x)=sqrt(6)*sqrt((150+163*x^2)*(315+260*x^2-sqrt(99225+100800*x^2-860*x^4)))/(326*x^2+300), даёт на интервале 0<x<5 , ошибку менее 1%,а на интервале 0<x<2.5 ошибку менее 0,1%

Understanding Digital
Signal Processing
Richard G. Lyons
p. 539

                                                   X = Re + j Im

Q - аргумент комплексного числа Х в радианах, используя апроксимацию в радианах

                          arctg ( Im/Re) = Q = (Im/Re) / [1+0.28125(Im/Re)^2]

Q лежит в пределах от -45 до 45 градусов,  -1 < Im/Re < 1 ( max ошибка 0,26 градуса)



вычисление sqrt алгоритм основаный на итерационной формуле Герона.

Xn+1 = (A/Xn + Xn)*1/2

unsigned int root1(unsigned int a)
{
   unsigned int x;
   x = (a/0x3f + 0x3f)>>1;
   x = (a/x + x)>>1;
   x = (a/x + x)>>1;
   return(x);
}

еще один алгоритм

unsigned int isqrt(unsigned int x)
{
   unsigned int m, y, b;
   m = 0x4000;
   y = 0;
   while (m != 0){
      b = y | m;
      y = y >> 1;
      if (x >= b) {
         x = x - b;
         y = y | m;
      }
      m = m >> 2;
   }
   return y;
}

Комментариев нет:

Отправить комментарий