How can I write a Matlab code on Digital Signals Processing ?

7 ビュー (過去 30 日間)
Jone Erikson
Jone Erikson 2020 年 8 月 23 日
コメント済み: Rena Berman 2020 年 10 月 12 日
How can I write a MATLAB function (not a script!) to generate a periodic waveform of total length L. Each period must be a pulse of amplitude A that lasts a total ofM samples followed by T−M samples that are zero so that the overall period is T. The result should be a squarewave. Could you please help with this code, with a brief explaination of the code
  2 件のコメント
Stephen23
Stephen23 2020 年 8 月 26 日
編集済み: Stephen23 2020 年 8 月 26 日
Original question by Jone Erikson on 23rd August 2020 retrieved from Google Cache:
"How can I write a Matlab code on Digital Signals Processing ?"
How can I write a MATLAB function (not a script!) to generate a periodic waveform of total length L. Each period must be a pulse of amplitude A that lasts a total ofM samples followed by T−M samples that are zero so that the overall period is T. The result should be a squarewave. Could you please help with this code, with a brief explaination of the code
Rena Berman
Rena Berman 2020 年 10 月 12 日
(Answers Dev) Restored edit

サインインしてコメントする。

採用された回答

Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato 2020 年 8 月 23 日
This should work for you, the code is almost self explanatory:
L = 1024;
Periods = 4;
M = 128;
A = 1;
figure,plot( squareWave(L,M,Periods,A) )
function signal = squareWave(L,M,Periods,A)
signal = zeros(L,1); %initialize signal with zeros
if mod(L,Periods) ~= 0
signal = -1; % False input data
end
T = L/Periods; % Get length
% Replace only non-zero values
for idx=1:Periods
signal( 1+(idx-1)*T:1+(idx-1)*T+M) = A;
end
end
  2 件のコメント
Thiago Henrique Gomes Lobato
Thiago Henrique Gomes Lobato 2020 年 8 月 23 日
Which error do you become? Here it works fine. Remember that you need to save it to a file and run, and not just evaluate it (F9).
Stephen23
Stephen23 2020 年 8 月 26 日
Original comments by Jone Erikson retrieved from Google Cache:
The code above is not running Thigao
>> squareWave
Error: File: squareWave.m Line: 14 Column: 30
Function definitions are not permitted in this context.
Line 14: signal(1+(idx-1)*T:1+(idx-1)*T+M)= A;
Also, why did you assume these values for: L, M, A, and Periods?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePulse and Transition Metrics についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by