INDEX EXCEEDS THE NUMBER OF ARRAY ELEMENTS.
Afficher commentaires plus anciens
% Load the signal data from the text file using the load command with the -ascii option
x = load('Lab7data1.txt', '-ascii');
% Plot the signal
%figure;
%plot(x);
%xlabel('Sample');
%ylabel('Amplitude');
%title('Original Signal');
%grid on;
% Calculate the length of the signal in samples
signal_length = length(x);
num_periods = 100;
% Estimate the number of samples per period
samples_per_period = signal_length / num_periods;
% Check Nyquist condition
if samples_per_period >= 2
disp('Nyquist sampling rate is satisfied.');
else
disp('Nyquist sampling rate is not satisfied.');
end
% Calculate the current sampling rate
current_sampling_rate = 1 / samples_per_period;
% Estimate the down-sampling factor needed to reduce the sampling rate to
% the Nyquist
downsampling_factor = ceil(current_sampling_rate / 2);
% Down-sample the signal
downsampled_signal = x(1:downsampling_factor:end);
% Define the x-values for the down-sampled signal
downsampled_indices = 1:downsampling_factor:signal_length;
% Make sure the lengths match
if length(downsampled_indices) ~= length(downsampled_signal)
downsampled_indices = downsampled_indices(1:length(downsampled_signal));
end
% Interpolate the down-sampled signal to up-sample it
up_sampled_signal = interp1(downsampled_indices, downsampled_signal, 1:signal_length,'linear');
% Plot both the original and down-sampled signals
figure;
plot(1:signal_length, x, 'b', 'DisplayName', 'Original Signal');
hold on;
plot(downsampled_signal, 'ro', 'DisplayName', 'Down-sampled Signal');
plot(up_sampled_signal, 'g', 'DisplayName', 'Up-sampled Signal (Linear Interpolation)');
hold off;
xlabel('Sample');
ylabel('Amplitude');
title('Original vs Down-sampled Signal vs Up-sampled Signal');
legend('Location', 'best');
grid on;
3 commentaires
Voss
le 25 Avr 2024
Please upload 'Lab7data1.txt' using the paperclip button.
Kiet Ho
le 25 Avr 2024
Déplacé(e) : Dyuman Joshi
le 25 Avr 2024
Voss
le 25 Avr 2024
It's better to use size rather than length.
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Multirate Signal Processing dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
