Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

resampling of very long signals

Status
Not open for further replies.

hudla

Newbie level 1
Joined
Aug 3, 2003
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
Czech Republic
Activity points
19
matlab resample signal

I'd like to ask about an effective ways how to arbitrarily resample very long signals (e.g. several millions of samples). My signal is a trace from oscilloscope (which has fixed sampling ferequencies, e.g. 100 MS/s, 1 GS/s, 2.5 GS/s) containing data with arbitrary symbol rate. I need to apply a root-rised cosine (RRC) filter to this signal rcosflt(x, Fd, Fs). The problem is, that the ratio Fs/Fd has to be an integer number, which is not always true for an arbitrary symbol rate. Thus I want to resample the signal in order to obtain Fs/Fd integer. I tried to use resample(x,p,q) Matlab function (Signal Process. Toolbox), but usually I need very big p, q numbers to do it.

Example: sampling frequency Fs = 100 MS/s, sample rate Fd = 5.676 MS/s, the length of signal is 2 millions of samples. Thus I need p = 100 000 and q = 5676 to resample this signal. Such ratio is impossible to calculate on an average PC for 2 megasamples long signal due to memory.

Then I thought about a piecewise-like resampling, i.e. to take lets say 1000 samples, resample them and to repeat it 2000 times. It doesn't work well, since resample function in Matlab assumes the signal to be zero at times before and after the given samples, so an amplitude error is introduced at the beginning and at the end of the resampled signal (due to filtering process). Another problem - the resampled signal is then very long, to be exact ceil(length(x)*p/q) = approx. 35 Msamples, which is really impossible to filter with rcosflt function on average PC.

Any ideas how to do it effectively and without introducing additional amplitude errors to the signal?

Thanks, Martin
 

Petre Petrov

Member level 3
Joined
Aug 5, 2009
Messages
58
Helped
7
Reputation
14
Reaction score
2
Trophy points
1,288
Location
Sofia
Activity points
1,780
signal resampling matlab howto

Hello!
It is complicated and may be the “standard solutions” are not the best solutions.
You could try:
* re-sample between two zero crossings or between any two appropriate points
* cut the signal into parts, approximate it as a sum of the simplest band limited signals, or just as sum of sine and cosine signals;
* may be the data is not exactly “arbitrary” and you will find the good approximation;
* piecewise-like resembling is too simple. May be approximation with sum of two or three sine functions is better
* try to add to the signal some useful data
Good luck!
BR
 

EngrAdnan

Junior Member level 1
Joined
Jan 8, 2008
Messages
15
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,363
Its not easily possible in MATLAB , try to write a code in C++ etc.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top