How to generate a vector of a shifted impulse function?
조회 수: 10 (최근 30일)
이전 댓글 표시
Hello, Suppose we have a time vector x=0:0.1: 50. I would like to have a delta function at a non-zero position, say at 25 with unit height (or any other scaled version of it).
MATLAB has a function d = dirac(x)
It generates dirac at x=0. If we write, d=dirac(x-25), it does not shift the impulse function like the H=heaviside(t-25) translates the heaviside function at 25.
I tried differentiating the translated heaviside function but I get 0.5 0.5 at the desired location instead of 1 at 25, no matter what the sampling frequency is.
Is there are a better way to do
(a) Generate a vector unit delta at a non-zero position
(b) Differentiate translated Heaviside and get a shifted delta at the desired position.
Thanks.
댓글 수: 0
채택된 답변
Star Strider
2020년 7월 27일
‘If we write, d=dirac(x-25), it does not shift the impulse function like the H=heaviside(t-25) translates the heaviside function at 25.’
It does, actually.
Consider:
x = 0:0.1:50;
d = dirac(x - 25);
nzdidx = find(d>0) % Index
dnzd = d(nzdidx) % Value
producing:
nzdidx =
251
dnzd =
Inf
So it will not appear on the plot, since it has infinite amplitude and 0 width, integrating to an area of 1.
.
댓글 수: 6
Star Strider
2020년 7월 27일
As always, my pleasure!
As for upgrading to R2020a, see the Release Notes to see if it would be of any benefit to you. (Note that Update 4 is current.)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Floating-Point to Fixed-Point Conversion에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!