![]() |
在MATLAB中创建淡入/淡出功能?
我正在寻找一个可以在五秒钟内在.wav文件上创建淡入/淡出功能的函数。
我在MATLAB论坛上找到了这段代码,但是尽管有正确的想法,但似乎实现起来还是有一点错误。它是用于300ms的.WAV文件以及10ms淡入/淡出的: tenmssamples = length(soundfile)*10/300; fade1 = linspace(0,1,tenmssamples); fadedsound = soundfile .* ... [fade1, ones(1,length(soundfile)-2*tenmssamples), fliplr(fade1)]; tenmssamples = length(soundfile)*10/300; fade2 = sin(linspace(0,2*pi/4,tenmssamples)); fadedsound2 = soundfile .* ... [fade2, ones(1,length(soundfile)-2*tenmssamples), fliplr(fade2)]; 我可以尝试通过使用linspace缩放由递增函数读取的波形的前10个样本来了解他的尝试,但是我尝试进行修补和修改,但无法使其正常工作。 请问有人有什么建议吗?谢谢。 [B]回答:[/B] 我不确定您遇到的问题是什么,但是我会这样做: Fs = 1000; % sampling rate of signal FADE_LEN = 5; % 5 second fade sig = randn(15.*Fs,1); % generate 15 s signal fade_samples = round(FADE_LEN.*Fs); % figure out how many samples fade is over fade_scale = linspace(0,1,fade_samples)'; % create fade sig_faded = sig; sig_faded(1:fade_samples) = sig(1:fade_samples).*fade_scale; % apply fade subplot(211) plot(sig) subplot(212) plot(sig_faded) 当然,您可以用诸如S形之类的东西代替linspace,并使用相同的想法进行淡出... 编辑:做淡出,尝试 sig_faded(end-fade_samples+1:end) = sig(end-fade_samples+1:end).*fade_scale(end:-1:1); [url=https://stackoverflow.com/questions/3511221]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 13:15。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.