resampling signals in matlab 2012b

hello i want to downsampling a signal with 173HZ and 23.6s to 120HZ ,can i do it with matlab 2012b ?

 Accepted Answer

m
m on 16 Aug 2013
yes, i have signalprocessing toolbox,but i cant use '_resample()_' can you tell me about parameters (173 hz to 120 hz)? thanks.

17 Comments

Jan
Jan on 16 Aug 2013
Edited: Jan on 16 Aug 2013
Matlab help says:
y = resample(x,p,q) resamples the sequence in vector x at p/q times the original sampling rate, using a polyphase filter implementation. p and q must be positive integers. The length of y is equal to ceil(length(x)*p/q). If x is a matrix, resample works down the columns of x.
i.e. in your case p=120 and q=173, so:
x_resampled = resample( x, 120, 172 )
should do the trick.
thanks for your answer,i run it but get this error: "_Too many input arguments._" do you know this error? my x variable is eq 4096
Check the type of your signal. It should be either a vector or a 2-d matrix.
m
m on 16 Aug 2013
Edited: m on 16 Aug 2013
can i attach the file of sampled signal to this comment, that you can see it?
Before you start uploading files: how do you load the signal into the Matlab environment and what kind of signal is it that you are dealing with?
i want to import the eeg signal ,the file has 4097 numbers,i use import from menu then import it to a variable,and the file has one column... i think matlab has a bug with this function because when i try to run sample code of 'resample' i see this error again !
In the Matlab command line type whos and post the output.
Also type the variable name and post that output, too.
my input command : y=resample(inputsig,120,173); output : Error using resample Too many input arguments.
my enviroment report : Name Size Bytes Class Attributes
inputsig 4097x1 32776 double
y 1x4098 32784 double
Could you type
which resample
and post that output?
Please post the result of
which -all resample
ofcourse, the output is :E:\edu\ARSHAD AI\classes\EVALUATIONARY ALGORITHMS\Project\Steps\Data\resample.m
do you think the path is so long?
No, there is a function in your project that is called resample too which hides Matlab's resample function. Unload the path you just posted from your environment and try to call resample again.
m
m on 16 Aug 2013
Edited: m on 16 Aug 2013
E:\edu\ARSHAD AI\classes\EVALUATIONARY ALGORITHMS\Project\Steps\Data\resample.m C:\Program Files\MATLAB\R2012b\toolbox\matlab\timeseries\@timeseries\resample.m C:\Program Files\MATLAB\R2012b\toolbox\ident\ident\@iddata\resample.m C:\Program Files\MATLAB\R2012b\toolbox\simbio\simbio\@SimData\resample.m C:\Program Files\MATLAB\R2012b\toolbox\matlab\timeseries\@tscollection\resample.m C:\Program Files\MATLAB\R2012b\toolbox\signal\signal\resample.m
after i delete my resample function : C:\Program Files\MATLAB\R2012b\toolbox\signal\signal\resample.m
OK OK ,after delete my resample function it works well... thanks so much
No problem... but next time check which answer you chose as 'accepted answer' (:
yes,sorry..

Sign in to comment.

More Answers (1)

Jan
Jan on 16 Aug 2013
If you have the Signalprocessing Toolbox use resample() or decimate()
If not, look at interp1()

Products

Asked:

m
m
on 16 Aug 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!