I have an ultrasound signal that is 1536x128. I first downsample the signal by a factor of 2x2 in x and t, then I upsample the missing data with zeros, then I do an fft, fftshift, then another fft to get the 2-D frequency spectrum. Due to the upsampling, I got many replicas to my original data, and I need to implement a low pass filter to extract the original data only, but the signal is kinda weird as the replicas are too close to the original signal.Can you help me implement a low pass filter capable of extracting the original data? Please see attached images for clearer details. Thanks!

%-- subsample original data
        Sx = 2;     %-- subsampling factor for original x-axis
        St = 2;     %-- subsampling factor for original t-axis
        NtFFT = 4096;  %-- frequency points
        NxFFT = 256;
        Nt = 1536;
        Nx = 128;

        Signal_sampled = Signal(1:St:end,1:Sx:end);                                      

        %-- upsample subsampled data
        if St > 1
            Du = zeros(Nt,size(Signal_sampled,2)); js = 1;
            for ju = 1:St:Nt
                Du(ju,:) = Signal_sampled(js,:); js = js + 1;
            Signal_sampled = Du;
        if Sx > 1
            Du = zeros(size(Signal_sampled,1),Nx); js = 1;
            for ju = 1:Sx:Nx
                Du(:,ju) = Signal_sampled(:,js); js = js + 1;
            Signal_sampled = Du;

        Signal_sampled_fft = fft(Signal_sampled,NxFFT,2);

        Signal_sampled_fft = fftshift(Signal_sampled_fft,2);       

        Signal_sampled_fft2 = fft(Signal_sampled_fft,NtFFT,1);

        Signal_sampled_fft2 = Signal_sampled_ftt2(1:NtFFT/2,:);  

enter image description here

The first image is the original spectrum, and the second is the full spectrum I got after upsampling, and the third is the upper half of the same spectrum in the 2nd image. I am trying to extract the signal that looks like the first image. Thanks!

  • 2
    $\begingroup$ The moment you subsampled, you introduced aliases, and that can't be undone. You need to low-pass filter first, then subsample. $\endgroup$ – Marcus Müller Oct 25 '19 at 8:59
  • $\begingroup$ Thanks marcus, is that the only way to avoid aliasing? You mean to apply a low pass filter in the time-x domain before actually applying the downsampling? $\endgroup$ – ZABA Oct 25 '19 at 21:27
  • $\begingroup$ yes, and yes, exactly as I wrote. $\endgroup$ – Marcus Müller Oct 25 '19 at 21:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.