Generate trapezoidal waveform from a square waveform using convolution
35 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Victor Dos Santos
le 9 Mar 2023
Commenté : William Rose
le 9 Mar 2023
Hello,
I try to generate a trapezoidal waveform from a square waveform using convolution using rectpuls() and fft() but I don't manage to obtain the good result with correct amplitude (i.e. same as the original signal). Could you please help me ?
Thank you !
Example:
t = 0:10e-6:10;
signal = 270*square(t);
trise=100e-6;
x = rectpuls(t-trise/2,trise);
conv = ifft(fft(signal).*fft(x));
figure
plot(t,signal,'k-+'); hold on
plot(t,conv,'r-s'); hold on
legend('signal', 'conv')
xlabel('Time (s)')
ylabel('Signal (-)')
0 commentaires
Réponse acceptée
William Rose
le 9 Mar 2023
Modifié(e) : William Rose
le 9 Mar 2023
[edit correct capitalization errors]
Your convolution worked and it did produce a trapezoidal signal. You just need to zoom in more on the transitions to see the trapezoidal shape. See zoomed-in plot below.
If you want wider transitions, then you need to make the signal x have a wider pulse. In its present form, the pulse in x is only 0.0001 time units long.
4 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Waveform Generation 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!