rectangularPulse: no drop to 1/2 at edges
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello I want to do the fourier of a rectangular pulse which is also 1 at the edges, so that the fourier returns a sinc function. rectangularPulse drops to 1/2 at the edges and does not seem to return the equivalent function if I plot the result vs. a sinc function. I tried ceil but this is not accepted with the fourier function.
Thanks a lot!
0 commentaires
Réponses (2)
Image Analyst
le 27 Juin 2014
So just create it manually
myPulse = [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];
2 commentaires
Image Analyst
le 27 Juin 2014
Modifié(e) : Image Analyst
le 27 Juin 2014
T's "Answer" moved here since it's not an answer to the original question.
I can't, the width of the rectangular pulse depends on a syms variable :/ And besides that, I dont think fourier(myPulse,f,y) would work then anymore anyway.
Image Analyst
le 27 Juin 2014
Make it depend on the variable:
signalLength = 512; % whatever.
myPulse = zeros(1, signalLength);
startingIndex = 20; % Whatever
pulseWidth = 64; % Whatever, e.g. your syms variable value.
myPulse(startingIndex:(startingIndex + pulseWidth - 1)) = 1;
Matthew Suttinger
le 30 Mar 2018
Modifié(e) : Matthew Suttinger
le 30 Mar 2018
If you don't mind converting it to a double after applying inputs, wrap the result in the ceil() function.
y = ceil(rectangularPulse(x_start,x_end,x_values));
class(y) % ans = 'double'
0 commentaires
Voir également
Catégories
En savoir plus sur Calculus 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!