Anyone
Changing the frequency of an array does not work always
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All
I have a time array , from which I first drop some elements, then change its frequency based on the input I give. the array is X in the code. what happens is that for some specific values , like reduction = 2 and freq = 1000 Hz if the original frequency of X was 512 Hz, the length of redt2 falls one element shorter than the original X array. how does this happen and what is the solution.
X is any time signal, 1D array with any length and frequency
reduction =2
X =X (1:reduction:numel(X));
redt1=[X];
rf= redt1(2)-redt1(1);
tend=redt1(numel(redt1));
freq= input(frequency)
dt= 1/freq
redt2= 0:dt:tend/rf/freq;
8 commentaires
Réponse acceptée
Image Analyst
le 28 Nov 2020
In
freq= input(frequency)
what is frequency? Some string you defined to ask the user for the frequency? Please show how you defined it.
reduction = 2
X_Original = 1 : 1000;
whos X
samplingFreqOriginal = (X_Original(end) - X_Original(1)) / numel(X_Original)
X_Reduced = X_Original(1:reduction:numel(X_Original));
whos X
samplingFreqReduced = (X_Reduced(end) - X_Reduced(1)) / numel(X_Reduced) % Will be 2 times samplingFreqOriginal
% Not sure what anything after here is intended to do.
redt1 = X_Reduced;
rf = redt1(2) - redt1(1)
tend = redt1(numel(redt1))
frequency = 'Enter the frequency : ';
freq = input(frequency)
dt = 1 / freq
redt2 = 0:dt:tend/rf/freq;
9 commentaires
Image Analyst
le 28 Nov 2020
Then simply do
% Sample values:
startingValue = 1
deltaX = 3
numElements = 9
% Create array:
x = startingValue : deltaX : (startingValue + (numElements - 1) * deltaX)
fprintf('x is %d elements long.\n', length(x));
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Signal Processing Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!