shift -discrete signal

조회 수: 101 (최근 30일)
mohamed
mohamed 2023년 10월 31일
댓글: Walter Roberson 2023년 11월 2일
i want to shift signal to the right by time less than the sampling interval
for example i have sampling interval = 600 microsec and i want to shift signal by 100 microsec only

채택된 답변

Walter Roberson
Walter Roberson 2023년 10월 31일
If you have a fractional delay (as you seem to have -- 1/6 of a sample) then see
The discussion in the documentation talks about using different models for interpolation purposes.
  댓글 수: 3
Walter Roberson
Walter Roberson 2023년 11월 2일
probably yes, but that requires the Phased Array toolbox
Walter Roberson
Walter Roberson 2023년 11월 2일
Also delayseq does not give you any choice of interpolation models.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

recent works
recent works 2023년 10월 31일
Assuming you have a signal x sampled at a rate of 600 microseconds and you want to shift it to the right by 100 microseconds, you can follow these steps:
  1. Define your original signal x.
  2. Define the sampling interval, which is 600 microseconds.
  3. Define the desired time delay, which is 100 microseconds.
  4. Calculate the number of samples to shift the signal, which is equal to the time delay divided by the sampling interval.
  5. Use the circshift function to shift the signal by the calculated number of samples to the right.
% Define the original signal
Fs = 1 / 600e-6; % Sampling frequency (600 microseconds interval)
t = 0:1/Fs:1; % Time vector from 0 to 1 second
x = sin(2*pi*10*t); % Example signal (sine wave)
% Define the sampling interval and desired time delay
sampling_interval = 600e-6; % 600 microseconds
desired_time_delay = 100e-6; % 100 microseconds
% Calculate the number of samples to shift
samples_to_shift = round(desired_time_delay / sampling_interval);
% Shift the signal to the right
shifted_signal = circshift(x, samples_to_shift);
% Plot the original and shifted signals
figure;
subplot(2,1,1);
plot(t, x);
title('Original Signal');
subplot(2,1,2);
t_shifted = t - desired_time_delay; % Adjust the time vector
plot(t_shifted, shifted_signal);
title('Shifted Signal');
use circshift to shift the signal to the right by the specified number of samples.
  댓글 수: 2
Walter Roberson
Walter Roberson 2023년 10월 31일
The user wants to shift by 1/6 of a sample, not by 6 samples.
mohamed
mohamed 2023년 11월 2일
@recent works , can i use matlab code delayseq (signal,timedelay,sampling frequency ) in this condition

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Spectral Measurements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by