My Atheros-based wifi router has a really good SNR (usually above +20, also because I am just a few meters away from it) but very poor performance. Most of the time ping is awful (see end of post), TCP is obviously not much better, and often it cannot even complete WPA key exchange or get its IP address.
The antenna gain is 3 dB and the router is at a heights of approx. 1.3 m. It is very close to a DECT base station (less than 10 cm). There is a wall behind it. There is a wooden cupboard about 1 meter away from the router, but it's not in the path between the access point and the laptop. In the neighborhood I can see up to 4 active access points including mine. The access point is only broadcasting one SSID even though it could theoretically do two with different MAC addresses.
Other probably irrelevant information: the router is in bridged mode and the uplink is to a wired network, which is relatively complex because it also hosts my home office but has good performance (ping time < 2 ms).
Here is a ping example collected with no other traffic on the wifi. No lost packets, but it appears to me like the network is being shut for noticeable periods, ranging from 0.2 to 2 seconds (but I've even seen five pings arriving at the same time after 5 seconds of blackout):
64 bytes from 192.168.10.2: icmp_seq=0 ttl=64 time=17.549 ms
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=844.128 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=19.354 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=268.005 ms
64 bytes from 192.168.10.2: icmp_seq=4 ttl=64 time=292.110 ms
64 bytes from 192.168.10.2: icmp_seq=5 ttl=64 time=823.084 ms
64 bytes from 192.168.10.2: icmp_seq=6 ttl=64 time=1.353 ms
64 bytes from 192.168.10.2: icmp_seq=7 ttl=64 time=676.620 ms
64 bytes from 192.168.10.2: icmp_seq=8 ttl=64 time=176.904 ms
64 bytes from 192.168.10.2: icmp_seq=9 ttl=64 time=11.536 ms
64 bytes from 192.168.10.2: icmp_seq=10 ttl=64 time=1.413 ms
64 bytes from 192.168.10.2: icmp_seq=11 ttl=64 time=862.640 ms
64 bytes from 192.168.10.2: icmp_seq=12 ttl=64 time=1.436 ms
64 bytes from 192.168.10.2: icmp_seq=13 ttl=64 time=822.594 ms
64 bytes from 192.168.10.2: icmp_seq=14 ttl=64 time=1.419 ms
64 bytes from 192.168.10.2: icmp_seq=15 ttl=64 time=870.897 ms
64 bytes from 192.168.10.2: icmp_seq=16 ttl=64 time=1.417 ms
64 bytes from 192.168.10.2: icmp_seq=17 ttl=64 time=918.914 ms
64 bytes from 192.168.10.2: icmp_seq=18 ttl=64 time=6.308 ms
64 bytes from 192.168.10.2: icmp_seq=19 ttl=64 time=848.949 ms
64 bytes from 192.168.10.2: icmp_seq=20 ttl=64 time=8.535 ms
Additional info, the behavior where "every other second something goes bad" is true even when wifi works. It just doesn't go as bad...
64 bytes from 192.168.10.2: icmp_seq=42 ttl=64 time=8.209 ms
64 bytes from 192.168.10.2: icmp_seq=43 ttl=64 time=2.727 ms
64 bytes from 192.168.10.2: icmp_seq=44 ttl=64 time=11.154 ms
64 bytes from 192.168.10.2: icmp_seq=45 ttl=64 time=1.931 ms
64 bytes from 192.168.10.2: icmp_seq=46 ttl=64 time=12.076 ms
64 bytes from 192.168.10.2: icmp_seq=47 ttl=64 time=2.908 ms
64 bytes from 192.168.10.2: icmp_seq=48 ttl=64 time=15.090 ms
64 bytes from 192.168.10.2: icmp_seq=49 ttl=64 time=1.805 ms
64 bytes from 192.168.10.2: icmp_seq=50 ttl=64 time=15.800 ms
64 bytes from 192.168.10.2: icmp_seq=51 ttl=64 time=2.382 ms
64 bytes from 192.168.10.2: icmp_seq=52 ttl=64 time=17.613 ms
64 bytes from 192.168.10.2: icmp_seq=53 ttl=64 time=1.841 ms
64 bytes from 192.168.10.2: icmp_seq=54 ttl=64 time=19.485 ms
64 bytes from 192.168.10.2: icmp_seq=55 ttl=64 time=1.876 ms
64 bytes from 192.168.10.2: icmp_seq=56 ttl=64 time=21.485 ms
64 bytes from 192.168.10.2: icmp_seq=57 ttl=64 time=1.888 ms
64 bytes from 192.168.10.2: icmp_seq=58 ttl=64 time=23.365 ms
64 bytes from 192.168.10.2: icmp_seq=59 ttl=64 time=1.876 ms
Also, turning off the DECT station changes nothing.