I have an extremely bizarre problem with my Comcast supplied router. I have a Comcast supplied router on the main floor of the house. When I go upstairs to my room and try to use my wifi, the wifi for the whole house becomes extremely laggy and stops working. Anyone on the wifi feels the same effects (laggy, stops working). The people connected to directly to the router through ethernet do not feel the effects. Why does this happen when I go upstairs to my room? When I am on the main floor, I can have a consistent connection to the wifi network for the whole day, yet as soon as I walk upstairs, I bring down the wifi for everybody in the house.
Wireless networks are susceptible to a principle called "hidden node" https://en.wikipedia.org/wiki/Hidden_node_problem.
Because radio transmissions are simplex (like a walkie talkie), only one device can communicate at a time. In a sense, the wireless devices on a network negotiate with each other who will communicate next.
Imagine something like this. Your laptop shouts out "I'm going to talk to the wireless access point, everyone else cool with that?" If no other devices respond, then your laptop begins transmission to the wireless access point.
However because another device on the network is already communicating with the wireless device, but didn't hear the request to speak from your laptop, network collisions occur. Collisions cause both devices to retransmit which cause more collisions.
Moving your laptop closer, or turning off one of the devices will instantly cause the speed to increase.
Dynamic Rate Scaling
Another consideration is something called DRS, Dynamic Rate Scaling. Essentially it means that wireless networks are able to slow down the transmit rate depending on the quality of the connection. The quality is determined by decibels, distance, and ISI.
Just because your 802.11n router can do 300 mbps, your laptop which is far away may only negotiate a 6 mbps communication with the access point. Remember that all communication is simplex, so that all other wireless devices are going to be waiting while the 6mbps device finishes its transmission. A full list of the supported wireless speeds for your network can be found by looking at the MCS charts.
Some 802.11g routers I've seen allow you to specify what the lowest allowed speed should be. (The lowest being 1mbps). If your router allows you to change this setting, increase it from 1 or 2mpbs to the next highest value.
See the 'hidden node' wikipedia link, it outlines steps to work around the issue.
Your best bet will be to move the location of your access point, or turn down the power of your AP, so that devices that are far away do not attempt to connect.