shift -discrete signal

95 ビュー (過去 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 Center および File ExchangeSpectral Measurements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by