There is that frebreeze spray you can buy in all big supermarkets, it is a wet liquid based spray which soaks in and attacks the problem at a molecular level as apposed to try to cover up the smell.
Also they still sell that product or like product called 'shake and vac' - do you remember the advert. You shake the power over your carpet and vac it up, it is supposed to refreshen your carpet. I bought some recently but heard that it may be cause problems to people with breathing problems and it could damage your vac. So if you breathings fine and you have a cheap old vac give it ago..
A good and cheap way is to sprinkle the floor with Bicarbonate of Soda , let it soak in a bit and vacuum it up. You can also do this with mattresses. Otherwise, shake n vac is great, but it doesn't go very far!