Effacer les filtres
Effacer les filtres

I cannot pass one of the final MATLAB problems on the coursera MATLAB course. What is wrong with my code? Why won't it work for the 'echo generator assignment?

1 vue (au cours des 30 derniers jours)
The task is to given an input column vector (with values between -1 and 1 representing the digitized data), fs the sampling rate, delay to represent the delay of the echo in seconds, amp specifying the amplification of the echo, to add this echo to the original signal after delay seconds.
Other information given is:
  • the output vector will be longer than the input vector when the delay is nonzero- round to the nearest number of points needed to get the delay, as opposted to floor or ceil.
  • if the echo causes some values to be outside of the range -1 to 1, scale the entire vector retaining their relative amplitudes.
Below is the code I have so far. One simple test for the assignment which my code fails is the case:
input= [-0.5; 0; 0.5; 0] and the following parameters: fs = 1, delay: 0.0 seconds, amp = 0.5
For this, I thought the answer should be: [-0.25;0;0.25;0] which my code DOES yield. So I'm wondering if I've mis understood the task also tbh?
Aside from that, for the amplitude rescaling, where i've put 'if norm(input(a)) > 1', from playing around in matlab outside of this function in the live script, I dont think how I've wrote it, in terms of a, some arbitary variable, works? But I'm unsure how to write it without this?
This is what I have wrote so far...
function [output]=echo_gen(input,fs,delay,amp)
N = length(input); % sample lenth
%time = N/fs ;% total time span of audio signaltif
%dt * d=delay
lowerlimit=floor(delay*fs);
M=N+lowerlimit;
%implementingtheecho
length(((lowerlimit+1):M));
length((1:N));
input((lowerlimit+1):M)=amp*input(1:(N));
%condition to check amps and scale relative amps if over
a=[];
if norm(input(a)) > 1
%conditiontoscale
c=max(abs(input))
%solve for the sf s.t c*sf=1
sf=1/c
input=input*sf;
else
output=input;
end
output=input;
end
  2 commentaires
Cris LaPierre
Cris LaPierre le 26 Sep 2020
Modifié(e) : Cris LaPierre le 26 Sep 2020
Have you tried asking for help in the course's week 9 forum? You may find that someone has already asked a similar question, which may contain the answers you need.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by