My two cents:
-Always give notice. But never give notice in person, over the phone, or via text message. Always give your notice in writing to your HR department, then bring a copy to your supervisor/manager, hand it to him/her, and then tell him/her that you're giving your $x weeks.
-Try to give more than two weeks if you can. Two weeks is a minimum, because it normally coincides with the pay periods, and it helps budget figure it out.
-Talk to HR. Use phrases like "hostile environment", "retaliatory actions against me", and "harassment with a sexual component."
-Talk to your supervisor/manager's boss as long as you feel like it will be productive. If they're both members of the same country club, went to school together, kids play together every Saturday you're wasting your time.
-Just shut up, take it, listen, and take copious notes. Write down everything that happens, with a date and time associated with it. When you go to HR, use the theatric device "I hold in my hand documentation of all of the aforementioned events." Remember that they can't force you to divulge the information unwillingly. Use your poker face and never give any more than required to get the outcome. Be sure they know that you've got something in reserve -- even if you don't.
If you feel like you're being singled out, you're protected, but if you even think for a second you may have brought all of the disciplinary actions on yourself by your own actions, don't bother fighting it, and find a new job. Better to leave and have your sanity than to leave because you're dodging some disciplinary action.