The UART needs a clock signal that determines the baud rate. It is generated in the chip by dividing the CPU clock frequency by the UBRR register value. It must be 16x higher than the desired baud rate. The x16 factor is used by the UART to sub-sample the received serial data, it improves noise immunity by calculating the received bit value from the average of 16 samples.
So if the desired baudrate is 9600 baud and the CPU clock is 16 MHz then UBBR is (16000000 / (16 x 9600)) - 1 = 103.167. Round that to the closest integer = 103. Which makes UBRRL = 0x67, UBRRH = 0x00. You should see this calculation being made in the util/setbaud.h source file.