Converting a signal to baseband after resampling

51 views (last 30 days)
Hello,
After resampling a passband signal, how can I convert it back to the baseband domain? In particular, I have the following code in MATLAB:
v=d.*exp(1i*2*pi*fc.*t);
z=resample(v,p,q);
where d and t are the signal and time vector respectively,and fc is the carrier frequency. In this case z after resampling has a different length than v, and hence I cannot write:
zBP=z.*exp(-1i*2*pi*fc.*t);
How can I handle this then?
Thanks

Answers (1)

Rick Rosson
Rick Rosson on 3 Jun 2014
Nz = length(z);
Nv = length(v);
r = Nz/Nv;
dt_old = t(2) - t(1);
dt_new = dt_old/r;
t_old = t;
t_new = dt_new*(0:Nv-1);
zBP=z.*exp(-1i*2*pi*fc.*t_new);
  1 Comment
S. David
S. David on 3 Jun 2014
What if I am doing the resampling P different times, not just once, like:
Ld=max(p./q)*length(v);%Here p and q are vectors of length P
y=zeros(1,Ld);
for cc=1:P
z=resample(v,p(cc),q(cc));
y(1:length(z))=y(1:length(z))+z;
end
Shall I do the above for each (p,q) pair?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by