Noise rejection / feature extraction I'm hoping someone could point me in the direction of some signal processing methods to clean up my data. I'm collecting physiological data from human muscle (lower leg; gastrocnemius) during walking/gait. 

I know the sensor is picking up contractions, but the problem is it's so plagued by motion and skin artefacts I can barely do anything with it. Performing an isometric contraction (contracting the muscle without changing its length) shows a good signal (as there are no motion or skin artefacts to contaminate it. However, when collecting real-world data of a subject walking I'm getting huge spikes on the heel strike, amongst other unpleasantries.

The sensor type revolves around a MEMS microphone, so basically it picks up everything. It is un-amplified and only filtered by post processing. The sampling rate is 1kHz and seems to be more than enough. It's a single channel/vector of a continuous signal (i.e. 10 minutes of collection at 1kHz is a 1x600000 vector). 

Please help me by suggesting some methods on what I can do. I've been looking at wavelet transforms which look promising, but any help on the matter will be much appreciated. Also look at PCA but having a vector makes it difficult (unless I break my data into windows?). I'm trying to keep it as uncontrolled as possible, so any analysis that I can do on my current collected data would be great! 

Can provide some data if it helps in your analysis. 

Cheers!
I've tried a copule of methods on your data (low-pass filtering via DFT, SSA filtering), but I don't know what result will satisfy you.

You mentioned that the signal is sampled with a higher-then-enough frequency. Can you rise the  sampling frequency even higher? I'm talking about oversampling. This can help to get rid of some part (some kind) of the noise present.

You also mentioned PCA and that it's not appropriate for univariate time series. Right, PCA is almost useles with univariate time series, but there is an appropriate and closely related technique, SSA. You can find detailed description here: Singular Spectrum Analysis for Time Series (free sample is enough: Chapter 2: Basic SSA). And my own GNU Octave (hope Matlab compatible) implementation here: ssa-octave.m (there is also Scilab implementation, but you probably don't need it). Take a look at chapter 2.4 "Choice of Parameters in Basic SSA" for interpretation and tuning tips.

It's also not clear to me: the "5 seconds of stationary" pattern in isometric data sample should be filtred out or it is a useful signal too?