![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173156/image.png)
How to create an envelope on a specific signal
25 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
maryam
le 29 Jan 2015
Commenté : Scott MacKenzie
le 9 Juil 2021
could anybody please guide me how i can find the lower & upper envelope on a signal? would you give me a simple example?thank you
0 commentaires
Réponse acceptée
Star Strider
le 29 Jan 2015
Use the hilbert function:
t = linspace(0,5*pi,1000);
s = sin(t) .* cos(15*t);
hs = hilbert(s);
figure(1)
plot(t, s)
plot(t,-abs(hs),'r-', t,abs(hs),'-r', 'LineWidth',1.5)
hold off
grid
produces:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173156/image.png)
6 commentaires
Saeed Haidar
le 23 Juil 2020
hello guys,
can someone help me create an envelope to my signal, here's the code:
fs = 44100;
c5=key(52,8,fs);
a4=key(49,8,fs);
b4=key(51,8,fs);
e4=key(44,8,fs);
e5=key(56,8,fs);
d5=key(54,8,fs);
f5=key(57,8,fs);
line1= [ e4 a4 b4 c5 a4 ];
line2= [ e4 a4 b4 c5 a4 ];
line3= [ e4 a4 b4 c5 b4 a4 c5 b4 a4 e5 e5 e5 d5 e5 f5 f5];
song=[line1 line2 line3];
sound(song,fs,24);
function wave= key(p,n,fs)
t=0:1/fs:4/n;
idx=440*2^((p-49)/12);
tt=4/n:1/fs:0;
wave=(sin(2*pi*idx*t)).*exp(tt);
wave=wave./max(wave);
end
Scott MacKenzie
le 9 Juil 2021
@Saeed Haidar. You comment is about something quite different -- adding an envelope (attack, sustain, decay) to the notes in a melody. If you are still interested in this, please post as a separate question.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Hilbert and Walsh-Hadamard Transforms 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!